scylla 1.0.0 → 1.0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. data/lib/scylla/classifier.rb +3 -2
  2. data/lib/scylla/generator.rb +11 -4
  3. data/lib/scylla/lms/arabic.lm +398 -398
  4. data/lib/scylla/lms/bulgarian.lm +268 -268
  5. data/lib/scylla/lms/catalan.lm +400 -400
  6. data/lib/scylla/lms/chinese.lm +345 -345
  7. data/lib/scylla/lms/czech.lm +382 -382
  8. data/lib/scylla/lms/danish.lm +354 -354
  9. data/lib/scylla/lms/dutch.lm +380 -380
  10. data/lib/scylla/lms/english.lm +327 -327
  11. data/lib/scylla/lms/finnish.lm +297 -297
  12. data/lib/scylla/lms/french.lm +348 -348
  13. data/lib/scylla/lms/german.lm +386 -386
  14. data/lib/scylla/lms/greek.lm +352 -352
  15. data/lib/scylla/lms/hebrew.lm +385 -385
  16. data/lib/scylla/lms/hindi.lm +400 -400
  17. data/lib/scylla/lms/icelandic.lm +195 -195
  18. data/lib/scylla/lms/indonesian.lm +374 -374
  19. data/lib/scylla/lms/italian.lm +365 -365
  20. data/lib/scylla/lms/japanese.lm +368 -368
  21. data/lib/scylla/lms/kannada.lm +299 -299
  22. data/lib/scylla/lms/korean.lm +335 -335
  23. data/lib/scylla/lms/marathi.lm +240 -240
  24. data/lib/scylla/lms/norwegian.lm +348 -348
  25. data/lib/scylla/lms/persian.lm +337 -337
  26. data/lib/scylla/lms/polish.lm +399 -399
  27. data/lib/scylla/lms/portuguese.lm +386 -386
  28. data/lib/scylla/lms/romanian.lm +255 -255
  29. data/lib/scylla/lms/russian.lm +400 -400
  30. data/lib/scylla/lms/slovak.lm +267 -267
  31. data/lib/scylla/lms/slovenian.lm +243 -243
  32. data/lib/scylla/lms/spanish.lm +371 -371
  33. data/lib/scylla/lms/swedish.lm +236 -236
  34. data/lib/scylla/lms/tagalog.lm +287 -287
  35. data/lib/scylla/lms/thai.lm +369 -369
  36. data/lib/scylla/lms/turkish.lm +341 -341
  37. data/lib/scylla/lms/vietnamese.lm +392 -392
  38. data/lib/scylla/lms/welsh.lm +275 -275
  39. data/lib/scylla/loader.rb +1 -1
  40. metadata +2 -2
@@ -50,7 +50,8 @@ module Scylla
50
50
  # Gets the score of the text in question compared to a particular language
51
51
  def get_score(unknown, ngram)
52
52
  i, p = 0,0
53
- while i < unknown.size
53
+ max_size = [unknown.size, 400].min
54
+ while i < max_size
54
55
  if (ngram[unknown[i]])
55
56
  p += (ngram[unknown[i]]-i).abs
56
57
  else
@@ -61,4 +62,4 @@ module Scylla
61
62
  return p
62
63
  end
63
64
  end
64
- end
65
+ end
@@ -1,3 +1,4 @@
1
+ # encoding: utf-8
1
2
  require 'sanitize'
2
3
  require 'cgi'
3
4
  require 'unicode'
@@ -5,7 +6,7 @@ require 'unicode'
5
6
  module Scylla
6
7
  class Generator
7
8
  attr_accessor :dirtext, :dirlm, :minsize, :delimiter
8
- NONLATIN = ["bg","ar","ru","zh","ja","he","kn","ko","mr","hi","th","fa","el"]
9
+ NONLATIN = ["bg","ar","ru","zh","ja","he","kn","ko","mr","hi","th","fa","el","uk"]
9
10
  # dirtext: The location of the source training text files
10
11
  # minsize: The minimum size of the ngrams that you would like to store
11
12
  def initialize(dirtext = DEFAULT_SOURCE_DIR, dirlm = DEFAULT_TARGET_DIR, minsize = 0, silent = false, delimiter = "[[classifier_delimiter]]")
@@ -50,7 +51,9 @@ module Scylla
50
51
  }
51
52
  p article
52
53
  page = Wikipedia.find( article )
53
- value = page.content.gsub(/\{\{(.*?)\}\}/,"")
54
+ value = page.raw_data['query']['pages'].values.first['revisions'].first.fetch('*')
55
+ value = value.force_encoding("UTF-8").chars.select {|c| c.valid_encoding?}.join
56
+ value = value.gsub(/\{\{(.*?)\}\}/,"")
54
57
  value = value.gsub(/\[\[(.+?)\]\]/m,"")
55
58
  value = value.gsub(/\{\{(.+?)\}\}/m,"")
56
59
  value = value.gsub(/\{(.+?)\}/m,"")
@@ -82,9 +85,13 @@ module Scylla
82
85
  string = string[0, delimit] if delimit
83
86
  string = Sanitize.clean(string)
84
87
  string = CGI.unescapeHTML(string)
88
+ string = Unicode::downcase(string)
85
89
  string.gsub!(/(?:http|https):\/\/[a-z0-9]+(?:[\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(?:(?::[0-9]{1,5})?\/[^\s]*)?/, "")
90
+ string.gsub!(/[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}/, "")
86
91
  string.gsub!(/[\*\^><!\"#\$%&\'\(\)\*\+:;,._\/=\?@\{\}\[\]|\-\n\r0-9]/," ")
87
- Unicode::downcase(string.strip.split(" ").join(" "))
92
+ latin, nonlatin = string.scan(/[a-z]/), string.scan(/[\p{L}&&[^a-z]]/)
93
+ string.gsub!(/[a-zA-Z]/, "") if !latin.empty? && !nonlatin.empty? && nonlatin.size/(latin.size*1.0) > 0.5
94
+ string.strip.split(" ").join(" ")
88
95
  end
89
96
 
90
97
  # Creates a language map for a given input string.
@@ -115,4 +122,4 @@ module Scylla
115
122
  return sorted
116
123
  end
117
124
  end
118
- end
125
+ end
@@ -1,400 +1,400 @@
1
- _ 10168
2
- ا 3663
3
- ل 2972
4
- ي 1852
5
- ال 1849
6
- م 1794
7
- 1551
8
- _ال 1496
9
- و 1431
10
- ر 1149
11
- ت 1066
12
- ن 1064
13
- ة 1009
14
- ة_ 972
15
- ع 924
16
- ب 839
17
- د 780
18
- 656
19
- س 586
20
- _م 562
21
- ف 544
22
- ي_ 502
23
- ه 501
24
- ن_ 478
25
- ق 477
26
- ك 443
27
- ح 417
28
- ية 399
29
- أ 387
30
- ية_ 380
31
- لم 349
32
- ط 330
33
- الم 316
34
- ج 303
35
- ر_ 302
36
- وا 297
37
- م_ 296
38
- من 294
39
- ا_ 293
40
- 287
41
- ت_ 267
42
- ل_ 266
43
- ص 262
44
- _ف 261
45
- في 260
46
- 250
47
- د_ 229
48
- _في 225
49
- ات 222
50
- _من 219
51
- إ 214
52
- في_ 214
53
- خ 213
54
- ش 212
55
- لي 204
56
- من_ 203
57
- ى 197
58
- ى_ 196
59
- 195
60
- _ت 192
61
- ار 191
62
- ض 190
63
- _وا 188
64
- ز 183
65
- وال 183
66
- ات_ 183
67
- لا 173
68
- دي 170
69
- ، 169
70
- ما 168
71
- ،_ 167
72
- مل 163
73
- عا 156
74
- ها 150
75
- لع 147
76
- 137
77
- لس 137
78
- را 136
79
- لك 136
80
- ام 136
81
- الع 136
82
- يا 133
83
- ود 132
84
- بي 131
85
- ين 131
86
- ري 130
87
- ث 128
88
- لى_ 127
89
- لى 127
90
- ها_ 127
91
- الس 126
92
- با 120
93
- لأ 119
94
- مي 119
95
- ه_ 117
96
- 115
97
- ع_ 113
98
- لت 108
99
- غ 107
100
- ذ 105
101
- الأ 105
102
- _ي 104
103
- و_ 102
104
- سع 101
105
- عو 101
106
- وي 98
107
- اد 98
108
- رب 97
109
- ول 97
110
- عل 97
111
- ئ 96
112
- ان 93
113
- ب_ 93
114
- لب 90
115
- ام_ 89
116
- عود 89
117
- ودي 89
118
- سعو 86
119
- دية 86
120
- ين_ 86
121
- لإ 84
122
- الت 84
123
- رة 83
124
- ار_ 83
125
- رة_ 81
126
- 81
127
- ف_ 81
128
- ير 81
129
- عر 81
130
- الب 80
131
- _ك 80
132
- مر 80
133
- كة 79
134
- سي 79
135
- نا 79
136
- وت 78
137
- الإ 78
138
- ملك 77
139
- كة_ 76
140
- لسع 76
141
- وم 76
142
- اع 76
143
- _وت 75
144
- لر 75
145
- شر 74
146
- عد 74
147
- إل 73
148
- 72
149
- نت 72
150
- يم 72
151
- لق 72
152
- الر 71
153
- بل 71
154
- ء 71
155
- _إل 70
156
- عام 70
157
- لل 70
158
- مم 69
159
- طا 68
160
- لج 68
161
- لن 68
162
- ائ 67
163
- _ق 67
164
- لح 66
165
- _عا 66
166
- لش 66
167
- سم 65
168
- مع 65
169
- ما_ 65
170
- كا 65
171
- ني 64
172
- الج 64
173
- 64
174
- ء_ 64
175
- _عل 64
176
- الق 63
177
- در 63
178
- إلى 63
179
- الش 62
180
- لكة 62
181
- لغ 62
182
- لص 62
183
- ممل 62
184
- سا 62
185
- لمم 62
186
- اس 62
187
- بر 61
188
- ق_ 61
189
- ً 61
190
- اح 61
191
- ون 60
192
- مت 60
193
- 60
194
- تم 60
195
- الح 59
196
- اء 59
197
- على 59
198
- جا 59
199
- يو 58
200
- نو 57
201
- وب 57
202
- الص 56
203
- _وي 56
204
- لخ 56
205
- لعر 56
206
- لي_ 56
207
- ربي 55
208
- ز_ 55
209
- لة 55
210
- الخ 55
211
- الن 54
212
- عي 53
213
- ك_ 53
214
- لة_ 53
215
- مس 53
216
- بع 53
217
- لد 53
218
- دو 53
219
- اء_ 53
220
- بال 52
221
- تع 52
222
- _لل 52
223
- تي 52
224
- ون_ 52
225
- _مل 52
226
- مة 51
227
- _با 51
228
- نه 51
229
- ال_ 50
230
- مة_ 50
231
- ط_ 50
232
- تر 50
233
- أن 50
234
- الي 50
235
- ست 50
236
- _و_ 49
237
- تو 49
238
- صا 49
239
- ض_ 49
240
- 48
241
- دا 48
242
- بية 48
243
- الد 48
244
- الا 47
245
- تص 47
246
- مو 47
247
- عرب 46
248
- عة 46
249
- لو 46
250
- ور 46
251
- اف 46
252
- حل 45
253
- كم 45
254
- عة_ 45
255
- لف 45
256
- ير_ 45
257
- ئي 45
258
- تق 44
259
- يد 44
260
- زي 44
261
- خا 44
262
- قد 44
263
- قا 44
264
- مط 44
265
- حو 44
266
- لية 44
267
- قر 43
268
- يل 43
269
- مد 43
270
- ملي 43
271
- اد_ 43
272
- يع 42
273
- 42
274
- حد 42
275
- رق 41
1
+ _ 13714
2
+ ا 4707
3
+ ل 3908
4
+ ي 2408
5
+ م 2346
6
+ ال 2310
7
+ و 1917
8
+ _ا 1909
9
+ _ال 1867
10
+ ر 1519
11
+ ن 1505
12
+ ت 1443
13
+ ة 1291
14
+ ع 1264
15
+ ة_ 1251
16
+ د 1164
17
+ ب 1148
18
+ 867
19
+ س 784
20
+ ن_ 747
21
+ 742
22
+ ف 730
23
+ ه 670
24
+ ق 644
25
+ ي_ 632
26
+ ك 629
27
+ ح 558
28
+ أ 527
29
+ ية 511
30
+ ية_ 487
31
+ لم 443
32
+ م_ 435
33
+ ا_ 433
34
+ 411
35
+ ط 402
36
+ ج 391
37
+ من 389
38
+ الم 384
39
+ ر_ 382
40
+ إ 380
41
+ د_ 365
42
+ ت_ 363
43
+ ل_ 359
44
+ _ع 359
45
+ وا 355
46
+ ص 351
47
+ _ف 351
48
+ في 326
49
+ _من 297
50
+ _ت 288
51
+ ات 287
52
+ _في 286
53
+ 284
54
+ ش 283
55
+ من_ 278
56
+ في_ 276
57
+ خ 269
58
+ لي 265
59
+ ى 265
60
+ ى_ 264
61
+ لا 243
62
+ ات_ 242
63
+ ار 236
64
+ ض 227
65
+ 226
66
+ دي 224
67
+ ز 221
68
+ ما 219
69
+ _وا 217
70
+ عا 207
71
+ ها 204
72
+ وال 203
73
+ را 198
74
+ 198
75
+ ود 197
76
+ ام 196
77
+ مل 195
78
+ لى_ 189
79
+ لك 189
80
+ لى 189
81
+ يا 183
82
+ ين 183
83
+ لس 182
84
+ ، 181
85
+ ،_ 180
86
+ ري 177
87
+ ها_ 173
88
+ لع 170
89
+ بي 168
90
+ الس 166
91
+ با 163
92
+ عو 162
93
+ عل 161
94
+ الع 158
95
+ سع 158
96
+ عود 150
97
+ ه_ 149
98
+ سعو 147
99
+ ث 146
100
+ و_ 145
101
+ مي 144
102
+ ع_ 143
103
+ غ 142
104
+ لت 141
105
+ لأ 141
106
+ ام_ 140
107
+ 139
108
+ ول 139
109
+ اد 139
110
+ ذ 137
111
+ ب_ 135
112
+ ان 133
113
+ لإ 133
114
+ ين_ 130
115
+ الأ 129
116
+ رة 125
117
+ الإ 124
118
+ رة_ 123
119
+ ودي 122
120
+ ئ 122
121
+ ف_ 121
122
+ 120
123
+ رب 119
124
+ ير 118
125
+ لب 116
126
+ دية 116
127
+ _س 115
128
+ وي 115
129
+ عد 114
130
+ الت 112
131
+ _عل 110
132
+ وت 108
133
+ لسع 107
134
+ لل 105
135
+ إل 105
136
+ عر 104
137
+ لح 102
138
+ _إل 101
139
+ _ن 101
140
+ على 101
141
+ 100
142
+ اع 100
143
+ كا 100
144
+ مع 99
145
+ لق 99
146
+ أن 99
147
+ _وت 99
148
+ الب 98
149
+ در 97
150
+ ء 96
151
+ ملك 96
152
+ مر 94
153
+ بل 93
154
+ 93
155
+ نا 93
156
+ ار_ 92
157
+ كة 92
158
+ سي 92
159
+ عام 92
160
+ ك_ 90
161
+ الح 90
162
+ لن 90
163
+ كة_ 90
164
+ سم 89
165
+ نه 89
166
+ لر 89
167
+ مم 88
168
+ ائ 87
169
+ _عا 87
170
+ شر 86
171
+ ء_ 86
172
+ نت 85
173
+ اء 84
174
+ وم 84
175
+ _لل 83
176
+ طا 83
177
+ الر 83
178
+ 83
179
+ الق 83
180
+ ون 82
181
+ دو 82
182
+ يم 81
183
+ _با 81
184
+ لص 79
185
+ تم 78
186
+ تر 78
187
+ لج 77
188
+ لة 77
189
+ إلى 77
190
+ ني 77
191
+ مت 77
192
+ دا 77
193
+ دة 77
194
+ اء_ 76
195
+ بر 76
196
+ دة_ 75
197
+ لش 75
198
+ لة_ 75
199
+ بال 75
200
+ اح 75
201
+ ممل 74
202
+ الج 73
203
+ ق_ 73
204
+ سا 72
205
+ نو 72
206
+ لد 72
207
+ تو 72
208
+ لغ 72
209
+ _أن 72
210
+ مة 71
211
+ صا 71
212
+ تع 70
213
+ مة_ 70
214
+ لمم 70
215
+ الص 70
216
+ لعر 69
217
+ تص 69
218
+ عي 69
219
+ ست 69
220
+ اس 69
221
+ ير_ 68
222
+ ور 68
223
+ لي_ 68
224
+ لكة 68
225
+ حد 68
226
+ إن 68
227
+ يو 68
228
+ _و_ 68
229
+ ربي 68
230
+ لو 67
231
+ جا 67
232
+ الش 67
233
+ قا 66
234
+ ال_ 66
235
+ ما_ 66
236
+ كم 66
237
+ وب 66
238
+ قر 65
239
+ تي 65
240
+ الد 65
241
+ ز_ 65
242
+ اف 65
243
+ مس 64
244
+ الن 64
245
+ الي 63
246
+ خل 63
247
+ ون_ 63
248
+ لك_ 63
249
+ يد 63
250
+ لخ 63
251
+ بن 63
252
+ الخ 62
253
+ هم 62
254
+ ط_ 62
255
+ لف 62
256
+ _مل 61
257
+ قي 61
258
+ 61
259
+ بع 60
260
+ تق 59
261
+ اد_ 59
262
+ مد 59
263
+ كان 59
264
+ عرب 59
265
+ 58
266
+ ود_ 58
267
+ ان_ 58
268
+ بية 58
269
+ مو 58
270
+ نها 58
271
+ _وي 57
272
+ قد 57
273
+ ته 57
274
+ س_ 56
275
+ _مع 56
276
+ اب 55
277
+ أن_ 55
278
+ _ر 55
279
+ لية 54
280
+ خا 54
281
+ يل 54
282
+ رو 54
283
+ جد 54
284
+ ض_ 54
285
+ لا_ 53
286
+ زي 53
287
+ أس 52
288
+ حا 52
289
+ ئي 51
290
+ له 51
291
+ تح 51
292
+ ً 50
293
+ تب 50
294
+ يت 50
295
+ بين 50
296
+ تل 49
297
+ ضا 49
298
+ ملي 49
299
+ وع 48
300
+ ارة 48
301
+ مط 48
302
+ دم 48
303
+ حل 48
304
+ يع 48
305
+ أو 47
306
+ نف 47
307
+ قة 47
308
+ حر 47
309
+ بة_ 46
310
+ در_ 46
311
+ حي 46
312
+ رق 46
313
+ إم 46
314
+ قة_ 46
315
+ بة 46
316
+ رات 46
317
+ عة 45
318
+ أم 45
319
+ صد 45
320
+ يس 45
321
+ وه 45
322
+ حو 45
323
+ وف 45
324
+ مال 45
325
+ كل 44
326
+ بد 44
327
+ ول_ 44
328
+ قل 44
329
+ اق 44
330
+ هو 44
331
+ رك 44
332
+ _د 44
333
+ الو 44
334
+ طق 44
335
+ عة_ 44
336
+ لم_ 44
337
+ يا_ 44
338
+ _بن 43
339
+ لعا 43
340
+ صل 43
341
+ _بي 43
342
+ ح_ 42
343
+ كو 42
344
+ مح 42
345
+ وج 42
346
+ _وم 42
347
+ لذ 42
276
348
  طار 41
277
- ّ 41
278
- رو 40
279
- ول_ 40
280
- س_ 40
349
+ إما 41
350
+ تا 41
351
+ تي_ 41
352
+ _خ 41
353
+ هد 41
354
+ لمن 41
355
+ رت 40
356
+ ة،_ 40
281
357
  مطا 40
282
- تب 40
283
- نها 39
284
- ضا 39
285
- اق 39
286
- حر 39
287
- وف 38
288
- يت 38
289
- رم 38
290
- ح_ 38
291
- ارة 38
292
- مح 37
293
- ان_ 37
294
- ة، 37
295
- لعا 37
296
- ة،_ 37
297
- يس 37
298
- رات 37
299
- قي 36
300
- أو 36
301
- أس 36
302
- مال 36
303
- _وم 36
304
- اب 36
305
- إن 36
306
- وع 35
307
- 35
308
- حي 35
309
- فا 35
310
- قة 35
311
- لك_ 35
312
- ته 35
313
- بين 34
314
- له 34
315
- تح 34
316
- هم 34
317
- طق 34
318
- دم 34
319
- اض 34
320
- خل 34
321
- قة_ 34
322
- قل 34
323
- طو 34
324
- أم 33
325
- لمن 33
326
- جد 33
327
- _ط 33
328
- نة 33
329
- لشر 33
330
- يه 33
331
- نية 33
332
- _، 33
333
- صل 33
334
- تت 33
335
- _بي 32
336
- _كم 32
337
- تا 32
338
- _مع 32
339
- _مط 32
340
- يق 31
341
- نة_ 31
342
- از 31
343
- دة 31
344
- رت 31
345
- ث_ 31
346
- _،_ 31
347
- ظ 31
348
- هي 31
349
- _أن 31
350
- نف 31
351
- وس 31
352
- لط 31
353
- الغ 31
354
- ليم 31
355
- شم 31
356
- رية 31
357
- كان 31
358
- كو 30
359
- دول 30
360
- بة_ 30
361
- ً_ 30
362
- أك 30
363
- لذ 30
364
- در_ 30
365
- بر_ 30
366
- اً 30
367
- _د 30
368
- عن 30
369
- رك 30
370
- بة 30
371
- طن 29
372
- اص 29
373
- الو 29
374
- عب 29
375
- ائي 29
376
- رض 29
377
- دة_ 29
378
- _م_ 29
379
- حلي 29
380
- نط 29
381
- _عن 29
382
- سب 29
383
- لخا 29
384
- حت 29
385
- يد_ 28
386
- هو 28
387
- حا 28
388
- ليو 28
389
- دن 28
390
- سل 28
391
- _مر 28
392
- اً_ 28
393
- عية 28
394
- يم_ 28
395
- ود_ 28
396
- ًا 28
397
- _بع 28
398
- بد 28
399
- ميا 28
400
- ساح 28
358
+ الا 40
359
+ ة، 40
360
+ ّ 40
361
+ دول 40
362
+ رية 40
363
+ عن 40
364
+ هم_ 40
365
+ بن_ 40
366
+ يد_ 40
367
+ اض 40
368
+ سب 39
369
+ يق 39
370
+ _سع 39
371
+ ظ 39
372
+ طو 39
373
+ رم 39
374
+ نية 39
375
+ سل 39
376
+ تت 39
377
+ وأ 39
378
+ عب 38
379
+ لإن 38
380
+ _وه 38
381
+ صاد 38
382
+ الذ 38
383
+ الغ 38
384
+ _وأ 38
385
+ مية 38
386
+ اي 37
387
+ بت 37
388
+ اه 37
389
+ يه 37
390
+ فا 37
391
+ هي 37
392
+ _عد 37
393
+ _كا 36
394
+ ج_ 36
395
+ _كم 36
396
+ _مس 36
397
+ _عن 36
398
+ نج 36
399
+ كل_ 36
400
+ لط 36