scylla 0.7.0 → 0.7.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. data/lib/scylla/classifier.rb +3 -4
  2. data/lib/scylla/generator.rb +4 -7
  3. data/lib/scylla/lms/afrikaans.lm +280 -280
  4. data/lib/scylla/lms/arabic.lm +225 -225
  5. data/lib/scylla/lms/bulgarian.lm +208 -208
  6. data/lib/scylla/lms/catalan.lm +212 -212
  7. data/lib/scylla/lms/chinese.lm +201 -201
  8. data/lib/scylla/lms/danish.lm +155 -155
  9. data/lib/scylla/lms/english.lm +207 -207
  10. data/lib/scylla/lms/finnish.lm +259 -259
  11. data/lib/scylla/lms/french.lm +203 -203
  12. data/lib/scylla/lms/german.lm +280 -280
  13. data/lib/scylla/lms/greek.lm +276 -276
  14. data/lib/scylla/lms/hebrew.lm +170 -170
  15. data/lib/scylla/lms/hindi.lm +241 -241
  16. data/lib/scylla/lms/icelandic.lm +264 -264
  17. data/lib/scylla/lms/indonesian.lm +272 -272
  18. data/lib/scylla/lms/italian.lm +283 -283
  19. data/lib/scylla/lms/japanese.lm +105 -105
  20. data/lib/scylla/lms/korean.lm +400 -400
  21. data/lib/scylla/lms/norwegian.lm +235 -235
  22. data/lib/scylla/lms/polish.lm +264 -264
  23. data/lib/scylla/lms/portuguese.lm +269 -269
  24. data/lib/scylla/lms/romanian.lm +278 -278
  25. data/lib/scylla/lms/russian.lm +127 -127
  26. data/lib/scylla/lms/slovak.lm +281 -281
  27. data/lib/scylla/lms/slovenian.lm +276 -276
  28. data/lib/scylla/lms/spanish.lm +190 -190
  29. data/lib/scylla/lms/swedish.lm +195 -195
  30. data/lib/scylla/lms/tagalog.lm +282 -282
  31. data/lib/scylla/lms/thai.lm +257 -257
  32. data/lib/scylla/lms/turkish.lm +300 -300
  33. data/lib/scylla/lms/vietnamese.lm +277 -277
  34. data/lib/scylla/lms/welsh.lm +271 -271
  35. data/scylla.gemspec +3 -22
  36. data/source_texts/korean.txt +219 -134
  37. metadata +15 -14
  38. data/scylla-0.6.0.gem +0 -0
@@ -5,7 +5,7 @@ module Scylla
5
5
  # limit : Up to how many matching language results should be displayed
6
6
  # ngrams : The total number of ngrams that are stored for each language
7
7
  # threshold: The threshold score for matches
8
- def initialize(limit = 10, ngrams = 400, threshold = 1.05)
8
+ def initialize(limit = 10, ngrams = 400, threshold = 1.01)
9
9
  @limit = limit
10
10
  @ngrams = ngrams
11
11
  @threshold = threshold
@@ -13,15 +13,14 @@ module Scylla
13
13
 
14
14
  # Classifies a string to a list of languages in order of best match
15
15
  def classify_string(text)
16
- @input = ""
17
- text.each_line { |line| @input += line.strip }
16
+ @input = text
18
17
  classify
19
18
  end
20
19
 
21
20
  # Classifies a file to a list of languages in order of best match
22
21
  def classify_file(path)
23
22
  @input = ""
24
- File.readlines(path).each { |line| @input += line.strip }
23
+ File.readlines(path).each { |line| @input += " " + line.strip }
25
24
  classify
26
25
  end
27
26
 
@@ -29,7 +29,7 @@ module Scylla
29
29
  # lib/scylla/lms
30
30
  def write_lm(path)
31
31
  text = ""
32
- File.open(path).each { |line| text += clean(line) }
32
+ File.open(path).each { |line| text += " " + line }
33
33
  p "Creating language map for " + path
34
34
  lm = create_lm(text, true)
35
35
  lmname = File.join(@dirlm, File.basename(path, ".txt") + ".lm")
@@ -45,21 +45,18 @@ module Scylla
45
45
  end
46
46
 
47
47
  def clean(string)
48
- string.strip!
49
48
  string = Sanitize.clean(string)
50
49
  string = CGI.unescapeHTML(string)
51
50
  string.gsub!(/(?:http|https):\/\/[a-z0-9]+(?:[\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(?:(?::[0-9]{1,5})?\/[^\s]*)?/, "")
52
- string.gsub!(/[\*\^><!\"#\$%&\'\(\)\*\+:;=\?@\{\}\[\]|-]/,"")
53
- string.strip
51
+ string.gsub!(/[\*\^><!\"#\$%&\'\(\)\*\+:;=\?@\{\}\[\]|\-\n\r0-9]/," ")
52
+ string.strip.split(" ").join(" ")
54
53
  end
55
54
 
56
55
  # Creates a language map for a given input string.
57
56
  # The frequencies boolean specifies whether or not the method should
58
57
  # return the freqencies of the ngrams, or simply an array in sorted order
59
58
  def create_lm(input, frequencies = false)
60
- text = ""
61
- input.each_line {|line| text += clean(line) }
62
- input = text
59
+ input = clean(input)
63
60
  ngram = Hash.new
64
61
  input.split(/[\d\s\[\]]/).each do |word|
65
62
  word = "_" + word + "_";
@@ -1,4 +1,4 @@
1
- _ 1596
1
+ _ 1772
2
2
  e 609
3
3
  a 326
4
4
  n 308
@@ -8,393 +8,393 @@ r 224
8
8
  t 206
9
9
  s 202
10
10
  d 190
11
- e_ 144
11
+ e_ 158
12
12
  l 126
13
13
  g 125
14
14
  m 124
15
15
  ie 123
16
16
  k 122
17
- n_ 112
18
- t_ 92
17
+ n_ 120
18
+ t_ 99
19
19
  h 89
20
+ _d 84
20
21
  er 83
21
22
  an 83
23
+ ie_ 82
22
24
  v 82
23
25
  y 81
24
- _d 76
25
- ie_ 76
26
+ _h 79
27
+ s_ 76
26
28
  aa 75
27
- _h 74
28
29
  w 73
29
- di 73
30
- s_ 71
31
- _n 69
32
- _v 66
33
- en 65
30
+ di 72
31
+ _n 71
32
+ _v 71
33
+ en 64
34
+ r_ 63
35
+ y_ 63
36
+ _s 62
34
37
  . 62
38
+ _di 61
35
39
  ge 60
36
- r_ 60
37
- y_ 59
38
40
  u 59
39
- _di 58
40
- _s 57
41
- et 56
42
- _m 53
41
+ ._ 59
42
+ _m 56
43
+ et 54
43
44
  die 51
45
+ _w 51
44
46
  b 50
47
+ die_ 49
48
+ _die 48
45
49
  te 48
50
+ _die_ 47
46
51
  ee 47
52
+ an_ 46
47
53
  ni 46
48
- _w 46
54
+ et_ 46
55
+ _e 46
49
56
  in 46
50
- die_ 45
51
- _die 45
52
- an_ 45
53
- et_ 44
57
+ _o 44
54
58
  p 43
55
- _e 43
56
59
  de 42
57
- _die_ 41
58
- _o 40
59
- ._ 38
60
- nd 36
61
- ar 35
60
+ _g 40
61
+ k_ 38
62
+ _a 37
62
63
  at 35
63
- _g 35
64
64
  el 35
65
- oe 34
66
- k_ 34
65
+ g_ 35
66
+ ar 35
67
+ nd 34
67
68
  wa 34
68
69
  nie 34
70
+ oe 34
69
71
  , 33
70
- g_ 33
71
- _a 33
72
72
  _ni 33
73
+ _i 33
74
+ ,_ 33
73
75
  he 32
74
- oo 32
75
76
  _nie 32
76
- ,_ 31
77
+ _wa 32
78
+ oo 32
79
+ _ge 30
80
+ d_ 30
77
81
  ek 30
78
- _i 29
82
+ _he 30
83
+ en_ 30
84
+ _k 29
79
85
  om 29
80
- _wa 28
81
- me 28
82
- en_ 28
83
- _he 28
84
- _k 28
86
+ _b 29
85
87
  va 28
86
88
  aan 28
89
+ me 28
87
90
  is 27
91
+ er_ 27
92
+ m_ 27
93
+ _en 27
94
+ _t 27
88
95
  f 26
89
- _en 26
90
96
  at_ 26
91
- _ge 26
97
+ l_ 25
92
98
  or 25
93
- es 25
94
- er_ 24
95
- it 24
96
- on 24
97
99
  het 24
98
- _b 24
100
+ as 24
101
+ es 24
99
102
  ma 24
100
- _t 24
101
- l_ 24
102
- m_ 24
103
+ _het 24
104
+ on 24
105
+ it 24
103
106
  aar 24
104
- as 24
105
- d_ 23
106
107
  van 23
108
+ li 22
109
+ _het_ 22
110
+ het_ 22
107
111
  ra 22
108
112
  ou 22
109
- _het 22
110
- li 22
113
+ te_ 22
114
+ _en_ 21
111
115
  _va 21
112
- het_ 21
113
116
  be 21
114
- da 20
115
117
  om_ 20
116
- al 20
117
118
  ng 20
118
- _het_ 20
119
+ da 20
120
+ al 20
119
121
  rd 20
120
- te_ 19
121
122
  st 19
122
- _en_ 19
123
- _van 19
124
123
  ke 19
124
+ nie_ 19
125
+ _van 19
126
+ _sy 18
127
+ sy_ 18
125
128
  van_ 18
126
- is_ 18
127
129
  sy 18
130
+ it_ 18
131
+ is_ 18
132
+ _nie_ 18
128
133
  ag 18
129
- sy_ 18
134
+ _sy_ 18
135
+ der 17
136
+ _hy_ 17
137
+ _me 17
138
+ in_ 17
130
139
  _van_ 17
131
- ro 17
132
- - 17
133
- aar_ 17
134
- _ma 17
140
+ _hy 17
135
141
  ar_ 17
142
+ aan_ 17
143
+ hy 17
144
+ ro 17
145
+ and 17
136
146
  re 17
137
- nie_ 17
138
- nde 17
147
+ _ma 17
148
+ aar_ 17
139
149
  se 17
140
150
  le 17
141
- and 17
142
- der 17
143
- hy 17
144
- as_ 16
145
- _hy 16
151
+ as_ 17
152
+ hy_ 17
146
153
  H 16
147
- ei 16
148
- _me 16
149
154
  _H 16
150
- aan_ 16
151
- _nie_ 16
155
+ ei 16
152
156
  we 16
153
- ho 15
154
- _sy_ 15
155
- it_ 15
156
- ko 15
157
- em 15
158
- ns 15
159
- ig 15
157
+ _be 16
158
+ nde 16
160
159
  ik 15
160
+ _in 15
161
+ ns 15
162
+ ek_ 15
163
+ em 15
161
164
  so 15
162
- _sy 15
163
- rs 14
164
- in_ 14
165
- hy_ 14
165
+ _te 15
166
+ ig 15
167
+ ko 15
168
+ ho 15
169
+ mo 14
170
+ _te_ 14
171
+ _in_ 14
172
+ _n_ 14
166
173
  ha 14
174
+ ve 14
175
+ ou_ 14
176
+ _is 14
177
+ u_ 14
178
+ _vi 14
167
179
  si 14
168
- vo 14
169
- nt 14
170
180
  vi 14
171
- mo 14
172
- ve 14
173
- no 13
181
+ nt 14
182
+ vo 14
174
183
  rt 13
175
- _n_ 13
176
- ou_ 13
177
- u_ 13
178
- _in 13
179
- eer 13
180
- _hy_ 13
181
- wo 13
184
+ _is_ 13
185
+ rs 13
186
+ op 13
182
187
  e, 13
183
- ag_ 13
184
- _be 13
188
+ _ve 13
185
189
  e,_ 13
186
- _vi 13
187
- op 13
188
- ek_ 12
189
- _vo 12
190
- _te_ 12
191
- ew 12
192
- ver 12
190
+ _mo 13
191
+ ag_ 13
192
+ eer 13
193
+ _da 13
194
+ _vo 13
195
+ no 13
196
+ wo 13
197
+ _ha 13
193
198
  _om_ 12
199
+ ver 12
200
+ _aan 12
201
+ _aa 12
194
202
  ne 12
195
- was 12
196
- _is 12
197
- e. 12
198
- al_ 12
203
+ _wat 12
199
204
  wat 12
200
- ing 12
205
+ _so 12
206
+ _p 12
207
+ al_ 12
201
208
  _om 12
202
- _te 12
203
- ed 12
204
- _so 11
205
- _is_ 11
206
- vir_ 11
207
- ord 11
208
- bl 11
209
- vir 11
209
+ ing 12
210
+ _was 12
211
+ was 12
212
+ f_ 12
210
213
  ka 11
211
- _ko 11
212
- ta 11
213
- met 11
214
- wat_ 11
215
- _was 11
216
- _on 11
217
- _mo 11
218
- ir 11
219
- moe 11
214
+ _was_ 11
220
215
  maa 11
221
- S 11
222
- _p 11
223
- _ha 11
224
216
  _no 11
225
217
  ir_ 11
226
- met_ 10
227
- sta 10
228
- _aan 10
229
- to 10
230
- f_ 10
231
- nder 10
232
- sie 10
233
- _in_ 10
234
- oor 10
235
- _vir 10
236
- E 10
237
- _vir_ 10
238
- ui 10
239
- _da 10
240
- was_ 10
241
- ers 10
218
+ moe 11
219
+ was_ 11
220
+ S 11
221
+ _vir_ 11
222
+ ta 11
223
+ _ko 11
224
+ p_ 11
225
+ wat_ 11
226
+ ir 11
227
+ e. 11
228
+ ed 11
229
+ bl 11
230
+ vir_ 11
231
+ _vir 11
232
+ _ver 11
233
+ _wat_ 11
234
+ _ek 11
235
+ ew 11
236
+ ord 11
237
+ met 11
238
+ vir 11
239
+ _ek_ 11
240
+ _on 11
242
241
  vr 10
243
242
  ri 10
244
- _was_ 10
245
- lik 10
243
+ de_ 10
244
+ _met_ 10
245
+ _moe 10
246
246
  raa 10
247
- _aa 10
248
- _ve 10
249
- nk 10
247
+ ui 10
248
+ nder 10
249
+ E 10
250
+ e._ 10
251
+ sie 10
252
+ sta 10
253
+ met_ 10
254
+ _al 10
250
255
  nge 10
251
- eg 10
252
- p_ 10
253
- A 9
254
- de_ 9
255
- ges 9
256
- _wat 9
257
- pr 9
258
- ie. 9
259
- ll 9
260
- _ver 9
261
- _ho 9
262
- el_ 9
256
+ to 10
257
+ _met 10
258
+ lik 10
259
+ oor 10
260
+ _r 9
261
+ ers 9
262
+ og 9
263
263
  _vr 9
264
- _Hy 9
265
- _met 9
266
- man 9
267
- _ek 9
268
- _met_ 9
269
- _se 9
264
+ nk 9
265
+ ll 9
270
266
  _maa 9
271
- og 9
267
+ _se 9
272
268
  Hy 9
273
- _moe 9
274
- wor 8
275
- rte 8
269
+ el_ 9
270
+ ie. 9
271
+ man 9
272
+ Hy_ 9
273
+ _ho 9
274
+ A 9
275
+ pr 9
276
+ _Hy_ 9
277
+ _S 9
278
+ nd_ 9
279
+ _Hy 9
280
+ ges 9
281
+ word 8
282
+ _l 8
283
+ ga 8
284
+ M 8
285
+ _pr 8
286
+ pa 8
287
+ _op 8
288
+ nie. 8
276
289
  aat 8
277
- my_ 8
290
+ taa 8
291
+ my 8
278
292
  ak 8
279
- j 8
293
+ na 8
294
+ my_ 8
295
+ _M 8
280
296
  es_ 8
281
- _al 8
282
- _op 8
283
- _ek_ 8
284
- nie. 8
285
- _Hy_ 8
286
- D 8
287
- _l 8
297
+ og_ 8
298
+ kl 8
299
+ op_ 8
288
300
  _to 8
289
- my 8
290
- ga 8
291
- _nie. 8
292
- _my_ 8
293
- taa 8
294
- Hy_ 8
295
- _r 8
296
301
  din 8
297
- M 8
298
- na 8
299
- pa 8
300
- _wat_ 8
301
- word 8
302
- sk 8
303
- ewe 8
302
+ _my_ 8
303
+ rte 8
304
+ _E 8
305
+ een 8
306
+ ke_ 8
304
307
  eu 8
308
+ ie._ 8
309
+ ewe 8
310
+ sk 8
311
+ _nie. 8
312
+ wor 8
313
+ eg 8
305
314
  _my 8
306
- kl 8
307
- een 8
308
- ier 7
309
- ke_ 7
310
- _dit 7
311
- op_ 7
312
- og_ 7
315
+ _ne 8
316
+ D 8
317
+ j 8
318
+ la 7
319
+ le_ 7
313
320
  gaa 7
314
- er. 7
315
- dit 7
316
- gaan 7
317
- _maar 7
318
- _ges 7
319
- r. 7
320
- ur 7
321
- wee 7
322
- end 7
321
+ s._ 7
322
+ _dit_ 7
323
323
  oe_ 7
324
+ ie, 7
325
+ er._ 7
324
326
  staa 7
325
- _pr 7
326
- e._ 7
327
- ste 7
327
+ tee 7
328
+ gaan_ 7
328
329
  _st 7
329
- ie,_ 7
330
- la 7
331
- gew 7
332
- ie, 7
333
- maar_ 7
334
- id 7
335
- nd_ 7
336
- do 7
337
- a_ 7
330
+ maar 7
338
331
  lin 7
339
- tee 7
340
- ti 7
341
- le_ 7
342
- s. 7
343
- ders 7
344
- ger 7
345
332
  br 7
333
+ eer_ 7
334
+ ger 7
335
+ r. 7
336
+ ie,_ 7
337
+ maar_ 7
346
338
  erd 7
347
- maar 7
339
+ r._ 7
348
340
  O 7
349
- uit 7
341
+ end 7
342
+ dit_ 7
343
+ s. 7
344
+ id 7
350
345
  ng_ 7
351
- _ne 7
352
346
  oet 7
353
- rs_ 6
354
- ns_ 6
347
+ dit 7
348
+ ur 7
349
+ _maar 7
350
+ ge_ 7
351
+ _ges 7
352
+ der_ 7
353
+ a_ 7
354
+ er. 7
355
+ _wo 7
356
+ ns_ 7
357
+ nie._ 7
358
+ ier 7
359
+ _dit 7
360
+ ste 7
361
+ wee 7
362
+ gaan 7
363
+ uit 7
364
+ _hier 6
365
+ _word 6
366
+ eur 6
367
+ ens 6
368
+ r, 6
369
+ _as 6
370
+ _nog_ 6
355
371
  ent 6
356
- nog 6
372
+ _ui 6
373
+ ig_ 6
357
374
  dat 6
375
+ eel 6
376
+ nie,_ 6
358
377
  _wi 6
359
- nig 6
360
- rm 6
361
- oet_ 6
362
- eer_ 6
363
- ens 6
364
- inde 6
365
- _wo 6
366
- _hie 6
367
- _hi 6
368
- eke 6
369
- il 6
370
- _ui 6
371
- ie._ 6
372
- wi 6
373
- nda 6
374
- _hier 6
375
- ing_ 6
376
- lle 6
377
- hie 6
378
- toe 6
379
- os 6
380
- eni 6
381
- aak 6
382
- dat_ 6
383
- yd 6
384
- hi 6
385
- mer 6
386
- kom 6
387
378
  hier 6
388
- _uit 6
389
- lo 6
379
+ ti 6
380
+ hi 6
381
+ nog_ 6
382
+ nders 6
383
+ dat_ 6
384
+ _de 6
385
+ gew 6
390
386
  _nog 6
387
+ rs_ 6
391
388
  ad 6
392
- s._ 6
393
- eid 6
394
- eli 6
395
- _nie, 6
396
- r, 6
397
- _bl 6
398
- gaan_ 6
399
389
  ige 6
390
+ toe 6
391
+ _nie, 6
392
+ r,_ 6
393
+ nig 6
394
+ eli 6
400
395
  am 6
396
+ os 6
397
+ _kl 6
398
+ lo 6
399
+ do 6
400
+ nog 6