scylla 0.7.0 → 0.7.5

Sign up to get free protection for your applications and to get access to all the features.
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