greek_stemmer 1.1.10 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 3e00d7149d6ce4ff5862a3f05972e8f3e33bb7b9
4
- data.tar.gz: 0be47fef1c838f6d47d4d756cfc342bde6db6978
2
+ SHA256:
3
+ metadata.gz: 7d74d733ad6b73cb5ef7dd799abddaa9968723838d5905da7c087792fd62cbe3
4
+ data.tar.gz: e4041de586528a85eeff003e894ffa4d6062dd696e87e144e362345f2b01da19
5
5
  SHA512:
6
- metadata.gz: cf9295a424de7d6a9a41610f739456e841e3e00bf75130f6d4b607c0963d2bb14540dcf67c3d90239ff256128feea8abc7a568d10c3f58570f82edb366deb39d
7
- data.tar.gz: bd702e15f4491c54f06b614b51374dea84812fabbce64ad14732d3a0cf1144b7cd5340bb6a4f06f5ce258e1a851e1dac4a28bed259ebb7fd556810d98f1a8930
6
+ metadata.gz: 481525b1f4c37ee929722bdcf8aec5ff6003e0cac65c4c3300a8eb51d12272305b71b257ae48c80affc9e25e5b9ee19cb4c08d5e5528a0a5fed6411b372881db
7
+ data.tar.gz: efbc852c6a17d5a03d6c35a6edbfec7d809bb19cfcd26d7db4e1a63af0ff2b9de51a4b9c0723b294d6acc6608cd69e73428a0e2b6ff31466663fb729af1db6bc
data/README.md CHANGED
@@ -41,9 +41,11 @@ Original work: [bandito](https://github.com/bandito)
41
41
 
42
42
  1. Fork it ( http://github.com/<my-github-username>/greek_stemmer/fork )
43
43
  2. Create your feature branch (`git checkout -b my-new-feature`)
44
- 3. Commit your changes (`git commit -am 'Add some feature'`)
45
- 4. Push to the branch (`git push origin my-new-feature`)
46
- 5. Create new Pull Request
44
+ 3. Perform changes and run `bundle exec rake update_greek_stemming_sample` to
45
+ update the stemming samples
46
+ 4. Commit your changes (`git commit -a`)
47
+ 5. Push to the branch (`git push origin my-new-feature`)
48
+ 6. Create new Pull Request
47
49
 
48
50
  ## License
49
51
 
@@ -2732,7 +2732,7 @@
2732
2732
  ΒΕΡΕΝΙΚ,ΒΕΡΕΝΙΚ
2733
2733
  ΒΕΡΕΝΙΚΗΣ,ΒΕΡΕΝ
2734
2734
  ΒΕΡΜΟΥΔΑ,ΒΕΡΜΟΥΔ
2735
- ΒΕΡΜΟΥΔΕΣ,ΒΕΡΜ
2735
+ ΒΕΡΜΟΥΔΕΣ,ΒΕΡΜΟΥΔ
2736
2736
  ΒΕΡΝ,ΒΕΡΝ
2737
2737
  ΒΕΡΝΑ,ΒΕΡΝ
2738
2738
  ΒΕΡΝΤ,ΒΕΡΝΤ
@@ -4196,9 +4196,9 @@
4196
4196
  ΔΙΑΦΟΡΕΤΙΚΑ,ΔΙΑΦΟΡΕΤ
4197
4197
  ΔΙΑΦΟΡΕΤΙΚΟΣ,ΔΙΑΦΟΡΕΤ
4198
4198
  ΔΙΑΦΟΡΙΚ,ΔΙΑΦΟΡΙΚ
4199
- ΔΙΑΦΟΡΙΚΕΣ,ΔΙΑΦΟΡ
4200
- ΔΙΑΦΟΡΙΚΗ,ΔΙΑΦΟΡ
4201
- ΔΙΑΦΟΡΙΚΟΣ,ΔΙΑΦΟΡ
4199
+ ΔΙΑΦΟΡΙΚΕΣ,ΔΙΑΦΟΡΙΚ
4200
+ ΔΙΑΦΟΡΙΚΗ,ΔΙΑΦΟΡΙΚ
4201
+ ΔΙΑΦΟΡΙΚΟΣ,ΔΙΑΦΟΡΙΚ
4202
4202
  ΔΙΑΦΟΡΩΝ,ΔΙΑΦΟΡ
4203
4203
  ΔΙΑΦΥΛΛΙΚ,ΔΙΑΦΥΛΛΙΚ
4204
4204
  ΔΙΑΦΥΛΛΙΚΕΣ,ΔΙΑΦΥΛΛ
@@ -7711,7 +7711,7 @@
7711
7711
  ΚΑΝΙΑΡΗΣ,ΚΑΝΙΑΡ
7712
7712
  ΚΑΝΝΑΒΗ,ΚΑΝΝΑΒ
7713
7713
  ΚΑΝΝΑΒΙΣ,ΚΑΝΝΑΒΙΣ
7714
- ΚΑΝΟ,ΚΑΝ
7714
+ ΚΑΝΟ,ΚΑΝΟ
7715
7715
  ΚΑΝΟΝ,ΚΑΝΟΝ
7716
7716
  ΚΑΝΟΝΕΣ,ΚΑΝΟΝ
7717
7717
  ΚΑΝΟΝΙΚ,ΚΑΝΟΝΙΚ
@@ -7867,7 +7867,7 @@
7867
7867
  ΚΑΡΦ,ΚΑΡΦ
7868
7868
  ΚΑΡΦΙ,ΚΑΡΦ
7869
7869
  ΚΑΡΦΩΤΑ,ΚΑΡΦΩ
7870
- ΚΑΡΦΩΤΟ,ΚΑΡΦΩΤ
7870
+ ΚΑΡΦΩΤΟ,ΚΑΡΦΩ
7871
7871
  ΚΑΡΦΩΤΟΙ,ΚΑΡΦΩΤ
7872
7872
  ΚΑΡΩ,ΚΑΡ
7873
7873
  ΚΑΣ,Κ
@@ -8859,7 +8859,7 @@
8859
8859
  ΚΡΕΒΑΤΙΑ,ΚΡΕΒΑΤ
8860
8860
  ΚΡΕΜΑΜΕΝ,ΚΡΕΜΑΜΕΝ
8861
8861
  ΚΡΕΜΑΜΕΝΟΣ,ΚΡΕΜΑΜΕΝ
8862
- ΚΡΕΜΑΣ,ΚΡΕΜ
8862
+ ΚΡΕΜΑΣ,ΚΡΕΜΑ
8863
8863
  ΚΡΕΜΑΣΜΕΝ,ΚΡΕΜΑΣΜΕΝ
8864
8864
  ΚΡΕΜΑΣΜΕΝΟΙ,ΚΡΕΜΑΣΜΕΝ
8865
8865
  ΚΡΕΜΑΣΟΥΝ,ΚΡΕΜΑΣ
@@ -9668,7 +9668,7 @@
9668
9668
  ΜΑΓΙΚΟ,ΜΑΓ
9669
9669
  ΜΑΓΙΚΟΣ,ΜΑΓ
9670
9670
  ΜΑΓΙΚΟΥ,ΜΑΓ
9671
- ΜΑΓΙΟ,ΜΑΓΙ
9671
+ ΜΑΓΙΟ,ΜΑΓΙΟ
9672
9672
  ΜΑΓΙΟΡΚ,ΜΑΓΙΟΡΚ
9673
9673
  ΜΑΓΙΟΡΚΑ,ΜΑΓΙΟΡΚ
9674
9674
  ΜΑΓΙΣΣ,ΜΑΓΙΣΣ
@@ -9976,8 +9976,8 @@
9976
9976
  ΜΑΤ,ΜΑΤ
9977
9977
  ΜΑΤΑΚΙΑ,ΜΑΤΑΚ
9978
9978
  ΜΑΤΑΚΙΑΣ,ΜΑΤΑΚ
9979
- ΜΑΤΙ,ΜΑΤ
9980
- ΜΑΤΙΑ,ΜΑΤ
9979
+ ΜΑΤΙ,ΜΑΤΙ
9980
+ ΜΑΤΙΑ,ΜΑΤΙ
9981
9981
  ΜΑΤΙΑΣ,ΜΑΤ
9982
9982
  ΜΑΤΙΕΣ,ΜΑΤ
9983
9983
  ΜΑΤΣΑΔ,ΜΑΤΣΑΔ
@@ -10718,6 +10718,8 @@
10718
10718
  ΜΟΝΟΦΑΣΙΚΟΣ,ΜΟΝΟΦΑΣ
10719
10719
  ΜΟΝΟΦΘΑΛΜ,ΜΟΝΟΦΘΑΛΜ
10720
10720
  ΜΟΝΟΦΘΑΛΜΟΣ,ΜΟΝΟΦΘΑΛΜ
10721
+ ΜΟΝΟΦΩΤΑ,ΜΟΝΟΦΩ
10722
+ ΜΟΝΟΦΩΤΟ,ΜΟΝΟΦΩ
10721
10723
  ΜΟΝΡΟ,ΜΟΝΡ
10722
10724
  ΜΟΝΡΟΕ,ΜΟΝΡΟ
10723
10725
  ΜΟΝΤ,ΜΟΝΤ
@@ -12451,7 +12453,7 @@
12451
12453
  ΠΑΝΕΠΙΣΤΗΜΙΟΥ,ΠΑΝΕΠΙΣΤΗΜ
12452
12454
  ΠΑΝΕΠΙΣΤΗΜΙΩΝ,ΠΑΝΕΠΙΣΤΗΜ
12453
12455
  ΠΑΝΕΣ,ΠΑΝ
12454
- ΠΑΝΙ,ΠΑΝ
12456
+ ΠΑΝΙ,ΠΑΝΙ
12455
12457
  ΠΑΝΙΕΡ,ΠΑΝΙΕΡ
12456
12458
  ΠΑΝΙΕΡΟΣ,ΠΑΝΙΕΡ
12457
12459
  ΠΑΝΙΚΟ,ΠΑΝΙΚ
@@ -13042,9 +13044,9 @@
13042
13044
  ΠΕΡΙΣΣΟΤΕΡΟ,ΠΕΡΙΣΣ
13043
13045
  ΠΕΡΙΣΤΑΤ,ΠΕΡΙΣΤΑΤ
13044
13046
  ΠΕΡΙΣΤΑΤΙΚΑ,ΠΕΡΙΣΤΑΤ
13045
- ΠΕΡΙΣΤΡΟΦΙΚΗ,ΠΕΡΙΣΤΡΟΦ
13046
- ΠΕΡΙΣΤΡΟΦΙΚΟ,ΠΕΡΙΣΤΡΟΦ
13047
- ΠΕΡΙΣΤΡΟΦΙΚΟΣ,ΠΕΡΙΣΤΡΟΦ
13047
+ ΠΕΡΙΣΤΡΟΦΙΚΗ,ΠΕΡΙΣΤΡΟΦΙΚ
13048
+ ΠΕΡΙΣΤΡΟΦΙΚΟ,ΠΕΡΙΣΤΡΟΦΙΚ
13049
+ ΠΕΡΙΣΤΡΟΦΙΚΟΣ,ΠΕΡΙΣΤΡΟΦΙΚ
13048
13050
  ΠΕΡΙΤΟΝΑΙΚ,ΠΕΡΙΤΟΝΑΙΚ
13049
13051
  ΠΕΡΙΤΟΝΑΙΚΗ,ΠΕΡΙΤΟΝΑΙΚ
13050
13052
  ΠΕΡΙΦΕΡΕΙΑΚ,ΠΕΡΙΦΕΡΕΙΑΚ
@@ -13078,7 +13080,7 @@
13078
13080
  ΠΕΤΑ,ΠΕΤ
13079
13081
  ΠΕΤΑΕΙ,ΠΕΤ
13080
13082
  ΠΕΤΑΛ,ΠΕΤΑΛ
13081
- ΠΕΤΑΛΟ,ΠΕΤΑΛ
13083
+ ΠΕΤΑΛΟ,ΠΕΤΑΛΟ
13082
13084
  ΠΕΤΑΛΟΥΔ,ΠΕΤΑΛΟΥΔ
13083
13085
  ΠΕΤΑΛΟΥΔΑ,ΠΕΤΑΛΟΥΔ
13084
13086
  ΠΕΤΑΛΟΥΔΑΣ,ΠΕΤΑΛΟΥΔ
@@ -13636,7 +13638,7 @@
13636
13638
  ΠΟΛΥΦΩΝΑ,ΠΟΛΥΦΩΝ
13637
13639
  ΠΟΛΥΦΩΝΙΚΑ,ΠΟΛΥΦΩΝ
13638
13640
  ΠΟΛΥΦΩΤΑ,ΠΟΛΥΦΩ
13639
- ΠΟΛΥΦΩΤΟ,ΠΟΛΥΦΩΤ
13641
+ ΠΟΛΥΦΩΤΟ,ΠΟΛΥΦΩ
13640
13642
  ΠΟΛΥΦΩΤΩΝ,ΠΟΛΥΦΩ
13641
13643
  ΠΟΛΥΧΡΩΜ,ΠΟΛΥΧΡΩΜ
13642
13644
  ΠΟΛΥΧΡΩΜΑ,ΠΟΛΥΧΡΩΜ
@@ -14460,9 +14462,9 @@
14460
14462
  ΡΟΙΔΙΚΗΣ,ΡΟΙΔ
14461
14463
  ΡΟΚ,ΡΟΚ
14462
14464
  ΡΟΛ,ΡΟΛ
14463
- ΡΟΛΑ,ΡΟΛ
14465
+ ΡΟΛΑ,ΡΟΛΑ
14464
14466
  ΡΟΛΟ,ΡΟΛ
14465
- ΡΟΛΟΓΙΑ,ΡΟΛΟΓ
14467
+ ΡΟΛΟΓΙΑ,ΡΟΛ
14466
14468
  ΡΟΛΟΙ,ΡΟΛ
14467
14469
  ΡΟΛΟΣ,ΡΟΛ
14468
14470
  ΡΟΛΣ,ΡΟΛΣ
@@ -14939,7 +14941,7 @@
14939
14941
  ΣΚΗΠΤΡΟ,ΣΚΗΠΤΡ
14940
14942
  ΣΚΗΤ,ΣΚΗΤ
14941
14943
  ΣΚΗΤΗ,ΣΚΗΤ
14942
- ΣΚΙ,ΣΚΙ
14944
+ ΣΚΙ,ΣΚ
14943
14945
  ΣΚΙΑ,ΣΚΙ
14944
14946
  ΣΚΙΑΘ,ΣΚΙΑΘ
14945
14947
  ΣΚΙΑΘΟΣ,ΣΚΙΑΘ
@@ -15189,10 +15191,10 @@
15189
15191
  ΣΠΟΝΔ,ΣΠΟΝΔ
15190
15192
  ΣΠΟΝΔΗ,ΣΠΟΝΔ
15191
15193
  ΣΠΟΡ,ΣΠΟΡ
15192
- ΣΠΟΡΑ,ΣΠΟΡ
15194
+ ΣΠΟΡΑ,ΣΠΟΡΟ
15193
15195
  ΣΠΟΡΑΔ,ΣΠΟΡΑΔ
15194
15196
  ΣΠΟΡΑΔΕΣ,ΣΠΟΡΑΔ
15195
- ΣΠΟΡΟΣ,ΣΠΟΡ
15197
+ ΣΠΟΡΟΣ,ΣΠΟΡΟ
15196
15198
  ΣΠΟΥΔ,ΣΠΟΥΔ
15197
15199
  ΣΠΟΥΔΑΙ,ΣΠΟΥΔΑ
15198
15200
  ΣΠΟΥΔΑΙΑ,ΣΠΟΥΔΑΙ
@@ -16169,8 +16171,8 @@
16169
16171
  ΤΕΤΡΑΓΩΝΟ,ΤΕΤΡΑΓΩΝ
16170
16172
  ΤΕΤΡΑΔ,ΤΕΤΡΑΔ
16171
16173
  ΤΕΤΡΑΔΙ,ΤΕΤΡΑΔ
16172
- ΤΕΤΡΑΔΙΑ,ΤΕΤΡΑΔ
16173
- ΤΕΤΡΑΔΙΟ,ΤΕΤΡΑΔ
16174
+ ΤΕΤΡΑΔΙΑ,ΤΕΤΡΑΔΙ
16175
+ ΤΕΤΡΑΔΙΟ,ΤΕΤΡΑΔΙ
16174
16176
  ΤΕΤΣ,ΤΕΤΣ
16175
16177
  ΤΕΤΣΗΣ,ΤΕΤΣ
16176
16178
  ΤΕΧΝ,ΤΕΧΝ
@@ -16266,10 +16268,10 @@
16266
16268
  ΤΗΛΕΠΙΚΟΙΝΩΝΙΕΣ,ΤΗΛΕΠΙΚΟΙΝΩΝ
16267
16269
  ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ,ΤΗΛΕΠΙΚΟΙΝΩΝ
16268
16270
  ΤΗΛΕΣΚΟΠΙΑ,ΤΗΛΕΣΚΟΠ
16269
- ΤΗΛΕΣΚΟΠΙΚΗ,ΤΗΛΕΣΚΟΠ
16270
- ΤΗΛΕΣΚΟΠΙΚΟ,ΤΗΛΕΣΚΟΠ
16271
- ΤΗΛΕΣΚΟΠΙΚΟΙ,ΤΗΛΕΣΚΟΠ
16272
- ΤΗΛΕΣΚΟΠΙΚΟΣ,ΤΗΛΕΣΚΟΠ
16271
+ ΤΗΛΕΣΚΟΠΙΚΗ,ΤΗΛΕΣΚΟΠΙΚ
16272
+ ΤΗΛΕΣΚΟΠΙΚΟ,ΤΗΛΕΣΚΟΠΙΚ
16273
+ ΤΗΛΕΣΚΟΠΙΚΟΙ,ΤΗΛΕΣΚΟΠΙΚ
16274
+ ΤΗΛΕΣΚΟΠΙΚΟΣ,ΤΗΛΕΣΚΟΠΙΚ
16273
16275
  ΤΗΛΕΣΚΟΠΙΟ,ΤΗΛΕΣΚΟΠ
16274
16276
  ΤΗΛΕΣΚΟΠΙΟΥ,ΤΗΛΕΣΚΟΠ
16275
16277
  ΤΗΛΕΦΩΝ,ΤΗΛΕΦ
@@ -17161,7 +17163,7 @@
17161
17163
  ΦΕΓΓΑΡΟΠΛΕΚΤ,ΦΕΓΓΑΡΟΠΛΕΚΤ
17162
17164
  ΦΕΓΓΑΡΟΠΛΕΚΤΗ,ΦΕΓΓΑΡΟΠΛΕΚΤ
17163
17165
  ΦΕΓΓΑΡΟΦΩΤ,ΦΕΓΓΑΡΟΦΩΤ
17164
- ΦΕΓΓΑΡΟΦΩΤΟ,ΦΕΓΓΑΡΟΦΩΤ
17166
+ ΦΕΓΓΑΡΟΦΩΤΟ,ΦΕΓΓΑΡΟΦΩ
17165
17167
  ΦΕΓΓΑΡΟΨΗΜΕΝ,ΦΕΓΓΑΡΟΨΗΜΕΝ
17166
17168
  ΦΕΓΓΑΡΟΨΗΜΕΝΕΣ,ΦΕΓΓΑΡΟΨΗΜΕΝ
17167
17169
  ΦΕΓΓΙΤ,ΦΕΓΓΙΤ
@@ -17524,8 +17526,8 @@
17524
17526
  ΦΥΤΕΜΑ,ΦΥΤΕΜ
17525
17527
  ΦΥΤΕΥ,ΦΥΤΕ
17526
17528
  ΦΥΤΕΥΩ,ΦΥΤΕΥ
17527
- ΦΥΤΙΚΑ,ΦΥΤ
17528
- ΦΥΤΙΚΗ,ΦΥΤ
17529
+ ΦΥΤΙΚΑ,ΦΥΤΙΚ
17530
+ ΦΥΤΙΚΗ,ΦΥΤΙΚ
17529
17531
  ΦΥΤΟΛΟ,ΦΥΤΟΛ
17530
17532
  ΦΥΤΟΛΟΓΙΑ,ΦΥΤΟΛΟΓ
17531
17533
  ΦΥΤΟΠΑΘΟΛΟ,ΦΥΤΟΠΑΘΟΛ
@@ -17580,7 +17582,7 @@
17580
17582
  ΦΩΤΙΣΤΙΚΑ,ΦΩΤΙΣΤ
17581
17583
  ΦΩΤΙΣΤΙΚΗ,ΦΩΤΙΣΤ
17582
17584
  ΦΩΤΙΣΤΙΚΟΙ,ΦΩΤΙΣΤ
17583
- ΦΩΤΟ,ΦΩΤ
17585
+ ΦΩΤΟ,ΦΩ
17584
17586
  ΦΩΤΟΒΟΛΤΑΙΚ,ΦΩΤΟΒΟΛΤΑΙΚ
17585
17587
  ΦΩΤΟΒΟΛΤΑΙΚΑ,ΦΩΤΟΒΟΛΤΑΙΚ
17586
17588
  ΦΩΤΟΓΡΑΦ,ΦΩΤΟΓΡΑΦ
@@ -1,3 +1,11 @@
1
+ step_0_exceptions:
2
+ ΡΟΛΟΓΙΑ: ΡΟΛ
3
+ ΛΑΔΟΥΣΑ: ΛΑΔΟΥΣ
4
+ ΣΚΙ: ΣΚ
5
+ ΚΡΕΜΑΣ: ΚΡΕΜΑ
6
+ ΒΕΡΜΟΥΔΕΣ: ΒΕΡΜΟΥΔ
7
+ ΜΑΤΙΑ: ΜΑΤΙ
8
+ ΜΑΤΙΩΝ: ΜΑΤΙ
1
9
  step_1_exceptions:
2
10
  ΦΑΓΙΑ: ΦΑ
3
11
  ΦΑΓΙΟΥ: ΦΑ
@@ -30,6 +38,7 @@ step_1_exceptions:
30
38
  ΦΩΤΟΣ: ΦΩ
31
39
  ΦΩΤΑ: ΦΩ
32
40
  ΦΩΤΩΝ: ΦΩ
41
+ ΦΩΤΟ: ΦΩ
33
42
  ΚΑΘΕΣΤΩΣ: ΚΑΘΕΣΤ
34
43
  ΚΑΘΕΣΤΩΤΟΣ: ΚΑΘΕΣΤ
35
44
  ΚΑΘΕΣΤΩΤΑ: ΚΑΘΕΣΤ
@@ -133,6 +142,7 @@ protected_words:
133
142
  - ΚΑΘΩΣ
134
143
  - ΚΑΙ
135
144
  - ΚΑΝ
145
+ - ΚΑΝΟ
136
146
  - ΚΑΠΟΤΕ
137
147
  - ΚΑΠΟΥ
138
148
  - ΚΑΤΑ
@@ -144,7 +154,10 @@ protected_words:
144
154
  - ΚΚΕ
145
155
  - ΚΟΛΑΝ
146
156
  - ΚΥΡΙΩΣ
157
+ - ΚΡΕΜΑ
147
158
  - ΚΩΣ
159
+ - ΜΑΓΙΟ
160
+ - ΜΑΓΙΩ
148
161
  - ΜΑΚΑΡΙ
149
162
  - ΜΑΛΙΣΤΑ
150
163
  - ΜΑΛΛΟΝ
@@ -152,6 +165,7 @@ protected_words:
152
165
  - ΜΑΟ
153
166
  - ΜΑΟΥΣ
154
167
  - ΜΑΣ
168
+ - ΜΑΤΙ
155
169
  - ΜΕΘΑΥΡΙΟ
156
170
  - ΜΕΣ
157
171
  - ΜΕΣΑ
@@ -194,14 +208,17 @@ protected_words:
194
208
  - ΠΑΛΙ
195
209
  - ΠΑΝ
196
210
  - ΠΑΝΟ
211
+ - ΠΑΝΤΕΛΟΝΑ
197
212
  - ΠΑΝΤΟΤΕ
198
213
  - ΠΑΝΤΟΥ
199
214
  - ΠΑΝΤΩΣ
200
215
  - ΠΑΝΩ
201
216
  - ΠΑΡΑ
217
+ - ΠΑΝΙ
202
218
  - ΠΕΡΑ
203
219
  - ΠΕΡΙ
204
220
  - ΠΕΡΙΠΟΥ
221
+ - ΠΕΤΑΛΟ
205
222
  - ΠΙΑ
206
223
  - ΠΙΟ
207
224
  - ΠΙΣΩ
@@ -215,13 +232,13 @@ protected_words:
215
232
  - ΠΡΟΧΤΕΣ
216
233
  - ΠΡΟΧΘΕΣ
217
234
  - ΡΟΔΙ
235
+ - ΡΟΛΑ
218
236
  - ΠΩΣ
219
237
  - ΣΑΙ
220
238
  - ΣΑΣ
221
239
  - ΣΑΝ
222
240
  - ΣΕΙΣ
223
241
  - ΣΙΑ
224
- - ΣΚΙ
225
242
  - ΣΟΙ
226
243
  - ΣΟΥ
227
244
  - ΣΡΙ
@@ -21,9 +21,6 @@ module GreekStemmer
21
21
  end
22
22
  end
23
23
 
24
- # Transformations for step 1 words
25
- STEP_1_EXCEPTIONS = load_settings("step_1_exceptions")
26
-
27
24
  # Protected words
28
25
  PROTECTED_WORDS = load_settings("protected_words")
29
26
 
@@ -37,13 +34,14 @@ module GreekStemmer
37
34
  def stem(word)
38
35
  return word if word.length < 3
39
36
  stem = word.dup
37
+
40
38
  return stem if PROTECTED_WORDS.include?(stem) || !greek?(word)
41
39
 
42
- step_1_regexp = /(.*)(#{STEP_1_EXCEPTIONS.keys.join("|")})$/u
40
+ return step_0_exceptions[stem] if step_0_exceptions.include?(stem)
43
41
 
44
42
  # step 1
45
- stem.scan(step_1_regexp) do |st, suffix|
46
- stem = st + STEP_1_EXCEPTIONS[suffix]
43
+ stem.scan(step_1_regex) do |st, suffix|
44
+ stem = st + step_1_exceptions[suffix]
47
45
  end
48
46
 
49
47
  # step 2a
@@ -85,8 +83,8 @@ module GreekStemmer
85
83
  ΑΕΡ|ΑΘΛ|ΑΚΟΥΣ|ΑΞ|ΑΣ|Β|ΒΙΒΛ|ΒΥΤ|Γ|ΓΙΑΓ|ΓΩΝ|Δ|ΔΑΝ|ΔΗΛ|ΔΗΜ|
86
84
  ΔΟΚΙΜ|ΕΛ|ΖΑΧΑΡ|ΗΛ|ΗΠ|ΙΔ|ΙΣΚ|ΙΣΤ|ΙΟΝ|ΙΩΝ|ΚΙΜΩΛ|ΚΟΛΟΝ|ΚΟΡ|
87
85
  ΚΤΗΡ|ΚΥΡ|ΛΑΓ|ΛΟΓ|ΜΑΓ|ΜΠΑΝ|ΜΠΕΤΟΝ|ΜΠΡ|ΝΑΥΤ|ΝΟΤ|ΟΠΑΛ|ΟΞ|ΟΡ|ΟΣ|
88
- ΠΑΝΑΓ|ΠΑΤΡ|ΠΗΛ|ΠΗΝ|ΠΛΑΙΣ|ΠΟΝΤ|ΡΑΔ|ΡΟΔ|ΣΚ|ΣΚΟΡΠ|ΣΟΥΝ|ΣΠΑΝ|
89
- ΣΤΑΔ|ΣΥΡ|ΤΗΛ|ΤΙΜ|ΤΟΚ|ΤΟΠ|ΤΡΟΧ|ΦΙΛ|ΦΩΤ|Χ|ΧΙΛ|ΧΡΩΜ|ΧΩΡ)$/ux
86
+ ΠΑΝ|ΠΑΝΑΓ|ΠΑΤΡ|ΠΗΛ|ΠΗΝ|ΠΛΑΙΣ|ΠΟΝΤ|ΡΑΔ|ΡΟΔ|ΣΚ|ΣΚΟΡΠ|ΣΟΥΝ|ΣΠΑΝ|
87
+ ΣΤΑΔ|ΣΥΡ|ΤΗΛ|ΤΕΤΡΑΔ|ΤΙΜ|ΤΟΚ|ΤΟΠ|ΤΡΟΧ|ΦΙΛ|ΦΩΤ|Χ|ΧΙΛ|ΧΡΩΜ|ΧΩΡ)$/ux
90
88
  stem << "ΑΙ" if st =~ /^(ΠΑΛ)$/u
91
89
  end
92
90
 
@@ -94,12 +92,13 @@ module GreekStemmer
94
92
  stem.scan(/^(.+?)(ΙΚΟΣ|ΙΚΟΝ|ΙΚΕΙΣ|ΙΚΟΙ|ΙΚΕΣ|ΙΚΟΥΣ|ΙΚΗ|ΙΚΗΣ|ΙΚΟ|ΙΚΑ|ΙΚΟΥ|ΙΚΩΝ|ΙΚΩΣ)$/u) do |st, suffix|
95
93
  stem = st
96
94
  stem << "ΙΚ" if ends_on_vowel?(st) || st =~ /^(ΑΔ|ΑΛ|ΑΜΑΝ|ΑΜΕΡ|ΑΜΜΟΧΑΛ|
97
- ΑΝΗΘ|ΑΝΤΙΔ|ΑΠΛ|ΑΤΤ|ΑΦΡ|ΒΑΣ|ΒΡΩΜ|ΓΕΝ|ΓΕΡ|Δ|ΔΙΚΑΝ|ΔΥΤ|ΕΙΔ|
98
- ΕΝΔ|ΕΞΩΔ|ΗΘ|ΘΕΤ|ΚΑΛΛΙΝ|ΚΑΛΠ|ΚΑΤΑΔ|ΚΟΥΖΙΝ|ΚΡ|ΚΩΔ|ΛΟΓ|Μ|ΜΕΡ|
99
- ΜΟΝΑΔ|ΜΟΥΛ|ΜΟΥΣ|ΜΠΑΓΙΑΤ|ΜΠΑΝ|ΜΠΟΛ|ΜΠΟΣ|ΜΥΣΤ|Ν|ΝΙΤ|ΞΙΚ|ΟΠΤ|
100
- ΠΑΝ|ΠΕΤΣ|ΠΙΚΑΝΤ|ΠΙΤΣ|ΠΛΑΣΤ|ΠΛΙΑΤΣ|ΠΟΝΤ|ΠΟΣΤΕΛΝ|ΠΡΩΤΟΔ|ΣΕΡΤ|
101
- ΣΗΜΑΝΤ|ΣΤΑΤ|ΣΥΝΑΔ|ΣΥΝΟΜΗΛ|ΤΕΛ|ΤΕΧΝ|ΤΡΟΠ|ΤΣΑΜ|ΥΠΟΔ|Φ|ΦΙΛΟΝ|
102
- ΦΥΛΟΔ|ΦΥΣ|ΧΑΣ)$/ux || st =~ /(ΦΟΙΝ)$/u
95
+ ΑΝΗΘ|ΑΝΤΙΔ|ΑΠΛ|ΑΤΤ|ΑΦΡ|ΒΑΣ|ΒΡΩΜ|ΓΕΝ|ΓΕΡ|Δ|ΔΙΑΦΟΡ|ΔΙΚΑΝ|
96
+ ΔΥΤ|ΕΙΔ|ΕΝΔ|ΕΞΩΔ|ΗΘ|ΘΕΤ|ΚΑΛΛΙΝ|ΚΑΛΠ|ΚΑΤΑΔ|ΚΟΥΖΙΝ|ΚΡ|ΚΩΔ|
97
+ ΛΑΔ|ΛΟΓ|Μ|ΜΕΡ|ΜΟΝΑΔ|ΜΟΥΛ|ΜΟΥΣ|ΜΠΑΓΙΑΤ|ΜΠΑΝ|ΜΠΟΛ|ΜΠΟΣ|ΜΥΣΤ|
98
+ Ν|ΝΙΤ|ΞΙΚ|ΟΠΤ|ΠΑΝ|ΠΕΡΙΣΤΡΟΦ|ΠΕΤΣ|ΠΙΚΑΝΤ|ΠΙΤΣ|ΠΛΑΣΤ|ΠΛΙΑΤΣ|
99
+ ΠΟΝΤ|ΠΟΣΤΕΛΝ|ΠΡΩΤΟΔ|ΣΕΡΤ|ΣΗΜΑΝΤ|ΣΤΑΤ|ΣΥΝΑΔ|ΣΥΝΟΜΗΛ|ΤΕΛ|
100
+ ΤΕΧΝ|ΤΗΛΕΣΚΟΠ|ΤΡΟΠ|ΤΣΑΜ|ΥΠΟΔ|Φ|ΦΙΛΟΝ|ΦΥΛΟΔ|ΦΥΣ|ΧΑΣ|ΦΥΤ)
101
+ $/ux || st =~ /(ΦΟΙΝ)$/u
103
102
  end
104
103
 
105
104
  # step 5a
@@ -261,6 +260,21 @@ module GreekStemmer
261
260
 
262
261
  private
263
262
 
263
+ # Top-level stemming exceptions for full words
264
+ def step_0_exceptions
265
+ @step_0_exceptions ||= load_settings("step_0_exceptions")
266
+ end
267
+
268
+ # Transformations for step 1 suffixes
269
+ def step_1_exceptions
270
+ @step_1_exceptions ||= load_settings("step_1_exceptions")
271
+ end
272
+
273
+ # Regex matching terms having step 1 exceptions as suffix
274
+ def step_1_regex
275
+ @step_1_regex ||= /(.*)(#{step_1_exceptions.keys.join("|")})$/u
276
+ end
277
+
264
278
  def ends_on_vowel?(word)
265
279
  word =~ /[ΑΕΗΙΟΥΩ]$/u
266
280
  end
@@ -278,6 +292,7 @@ module GreekStemmer
278
292
  ΟΝΤΑΙ|ΟΝΤΑΝ|ΟΝΤΟΥΣΑΝ|ΟΣ|ΟΣΑΣΤΑΝ|ΟΣΑΣΤΕ|ΟΣΟΥΝ|ΟΣΟΥΝΑ|ΟΤΑΝ|ΟΥ|ΟΥΜΑΙ|ΟΥΜΑΣΤΕ|
279
293
  ΟΥΝ|ΟΥΝΤΑΙ|ΟΥΝΤΑΝ|ΟΥΣ|ΟΥΣΑΝ|ΟΥΣΑΤΕ|Υ||ΥΑ|ΥΣ|Ω|ΩΝ|ΟΙΣ)$/ux) do |st, suffix|
280
294
  word = st
295
+ word << "Ο" if st =~ /^(ΣΠΟΡ)$/u && suffix != ''
281
296
  end
282
297
  word
283
298
  end
@@ -1,3 +1,3 @@
1
1
  module GreekStemmer
2
- VERSION = "1.1.10"
2
+ VERSION = "1.2.0"
3
3
  end
@@ -5,6 +5,8 @@ require "yaml"
5
5
  describe GreekStemmer do
6
6
  describe "#stem" do
7
7
  let(:words) { YAML.load_file('spec/fixtures/examples.yml') }
8
+ let(:config) { YAML.load_file('config/stemmer.yml') }
9
+
8
10
  it "stems words correctly" do
9
11
  words.each_pair do |word, stem|
10
12
  expect(described_class.stem(word)).to eq(stem)
@@ -16,5 +18,19 @@ describe GreekStemmer do
16
18
  expect(described_class.stem("englishΟΣ")).to eq("englishΟΣ")
17
19
  end
18
20
  end
21
+
22
+ context 'exceptions' do
23
+ it 'does not stem protected words' do
24
+ config['protected_words'].each do |word|
25
+ expect(described_class.stem(word)).to eq(word)
26
+ end
27
+ end
28
+
29
+ it 'correctly stems 0-level exceptions' do
30
+ config['step_0_exceptions'].each_pair do |word, stem|
31
+ expect(described_class.stem(word)).to eq(stem)
32
+ end
33
+ end
34
+ end
19
35
  end
20
36
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: greek_stemmer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.10
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tasos Stathopoulos
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-07-27 00:00:00.000000000 Z
12
+ date: 2018-08-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -110,7 +110,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
110
110
  version: '0'
111
111
  requirements: []
112
112
  rubyforge_project:
113
- rubygems_version: 2.4.7
113
+ rubygems_version: 2.7.6
114
114
  signing_key:
115
115
  specification_version: 4
116
116
  summary: A simple Greek stemmer