tokenizer 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.yardopts +8 -0
- data/CHANGELOG.rdoc +20 -0
- data/LICENSE.rdoc +2 -1
- data/README.rdoc +39 -12
- data/lib/tokenizer.rb +2 -2
- data/lib/tokenizer/version.rb +1 -1
- data/test/test_by_tokenizer_dev.rb +19 -0
- data/test/{test_tokenizer.rb → test_de_tokenizer.rb} +0 -2
- data/test/test_de_tokenizer_dev.rb +283 -0
- data/test/test_en_tokenizer_dev.rb +19 -0
- data/test/test_fr_tokenizer_dev.rb +19 -0
- data/test/test_it_tokenizer_dev.rb +19 -0
- data/test/test_ru_tokenizer_dev.rb +19 -0
- metadata +45 -12
- data/HISTORY.rdoc +0 -0
- data/TODO.rdoc +0 -16
data/.yardopts
ADDED
data/CHANGELOG.rdoc
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
== COMPLETED
|
2
|
+
=== 0.1.1
|
3
|
+
* Documentation and the whole project tree updated. No functional improvements.
|
4
|
+
* Corrected typos.
|
5
|
+
=== 0.1.0
|
6
|
+
* Notion of binary tokenizer and a library for embedded tokenization.
|
7
|
+
* Separation of punctuaction marks.
|
8
|
+
=== 0.0.1
|
9
|
+
* Simple tokenization is desired.
|
10
|
+
|
11
|
+
== PLANNED
|
12
|
+
=== 0.2.0
|
13
|
+
=== 0.3.0
|
14
|
+
=== 0.4.0
|
15
|
+
=== 0.5.0
|
16
|
+
=== 0.6.0
|
17
|
+
=== 0.7.0
|
18
|
+
=== 0.8.0
|
19
|
+
=== 0.9.0
|
20
|
+
=== 1.0.0
|
data/LICENSE.rdoc
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
Copyright (c) 2011- Andrei Beliankou,
|
1
|
+
Copyright (c) 2011- Andrei Beliankou, Sven Naumann
|
2
|
+
University of Trier, Germany
|
2
3
|
|
3
4
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
5
|
of this software and associated documentation files (the "Software"), to deal
|
data/README.rdoc
CHANGED
@@ -2,35 +2,62 @@
|
|
2
2
|
|
3
3
|
* {RubyGems}[http://rubygems.org/gems/tokenizer]
|
4
4
|
* {Developers Homepage}[http://www.uni-trier.de/index.php?id=24140]
|
5
|
+
* {Source Code}[https://github.com/arbox/tokenizer]
|
6
|
+
* {Bug Tracker}[https://github.com/arbox/tokenizer/issues]
|
5
7
|
|
6
8
|
== DESCRIPTION
|
7
|
-
|
9
|
+
A simple multilingual tokenizer -- a linguistic tool intended
|
10
|
+
to split a text into tokens for NLP tasks. This tool provides a CLI and
|
11
|
+
a library for linguistic tokenization which is an anavoidable step for many HLT
|
12
|
+
(human language technology) tasks in the preprocessing phase for further
|
13
|
+
syntactic, semantic and other higher level processing goals.
|
14
|
+
|
15
|
+
Use it for tokenization of German, English and French texts.
|
8
16
|
|
9
17
|
== INSTALLATION
|
18
|
+
+Tokenizer+ is provided as a .gem package. Simply install it via
|
19
|
+
{RubyGems}[http://rubygems.org/gems/tokenizer].
|
20
|
+
|
21
|
+
To install +tokenizer+ issue the following command:
|
22
|
+
$ gem install tokenizer
|
23
|
+
|
24
|
+
If you want to do a system wide installation, do this as root
|
25
|
+
(possibly using +sudo+).
|
26
|
+
|
27
|
+
Alternatively use your Gemfile for dependency management.
|
10
28
|
|
11
|
-
_Tokenizer_ is provided as a .gem package. Simply install it via RubyGems.
|
12
29
|
|
13
30
|
== SYNOPSIS
|
14
31
|
|
15
|
-
You can use
|
16
|
-
|
17
|
-
|
32
|
+
You can use +Tokenizer+ in two ways.
|
33
|
+
* As a command line tool:
|
34
|
+
$ echo 'Hi, ich gehe in die Schule!. | tokenize
|
18
35
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
36
|
+
* As a library for embedded tokenization:
|
37
|
+
$ require 'tokenizer'
|
38
|
+
$ de_tokenizer = Tokenizer::Tokenizer.new
|
39
|
+
$ de_tokenizer.tokenize('Ich gehe in die Schule!')
|
40
|
+
$ => ["Ich", "gehe", "in", "die", "Schule", "!"]
|
24
41
|
|
25
|
-
See documentation in the Tokenizer::Tokenizer class for details
|
42
|
+
See documentation in the Tokenizer::Tokenizer class for details
|
43
|
+
on particular methods.
|
26
44
|
|
27
45
|
== SUPPORT
|
28
46
|
|
29
47
|
If you have question, bug reports or any suggestions, please drop me an email :) Any help is deeply appreciated!
|
30
48
|
|
49
|
+
== CHANGELOG
|
50
|
+
For details on future plan and working progress see CHANGELOG.rdoc.
|
51
|
+
|
52
|
+
== CAUTION
|
53
|
+
This library is <b>work in process</b>! Though the interface is mostly complete,
|
54
|
+
you might face some not implemented features.
|
55
|
+
|
56
|
+
Please contact me with your suggestions, bug reports and feature requests.
|
57
|
+
|
31
58
|
== LICENSE
|
32
59
|
|
33
|
-
|
60
|
+
+Tokenizer+ is a copyrighted software by Andrei Beliankou, 2011-
|
34
61
|
|
35
62
|
You may use, redistribute and change it under the terms
|
36
63
|
provided in the LICENSE.rdoc file.
|
data/lib/tokenizer.rb
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
require 'tokenizer/tokenizer'
|
2
|
+
require 'tokenizer/version'
|
data/lib/tokenizer/version.rb
CHANGED
@@ -0,0 +1,19 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'test/unit'
|
3
|
+
require 'tokenizer'
|
4
|
+
|
5
|
+
class TestTokenizerDev < Test::Unit::TestCase
|
6
|
+
|
7
|
+
def setup
|
8
|
+
@by_tokenizer = Tokenizer::Tokenizer.new(:by)
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_tokenization_001
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
def compare(exp_result, input)
|
16
|
+
act_result = @de_tokenizer.tokenize(input)
|
17
|
+
assert_equal(exp_result, act_result)
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,283 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'test/unit'
|
3
|
+
require 'tokenizer'
|
4
|
+
|
5
|
+
class TestTokenizerDev < Test::Unit::TestCase
|
6
|
+
|
7
|
+
def setup
|
8
|
+
@de_tokenizer = Tokenizer::Tokenizer.new(:de)
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_tokenization_001
|
12
|
+
input = 'ich ging? du, und ich nicht (konnte nicht)? Warum?!!'
|
13
|
+
etalon = %w{ ich ging ? du , und ich nicht ( konnte nicht ) ? Warum ? ! !}
|
14
|
+
compare(etalon, input)
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_tokenization_002
|
18
|
+
input = "Die deutschen Umlaute und Sonderzeichen, wie in Mäuse, Scheiß und Tütchen, sind blöd!"
|
19
|
+
etalon = %w{Die deutschen Umlaute und Sonderzeichen , wie in Mäuse , Scheiß und Tütchen , sind blöd !}
|
20
|
+
compare(etalon, input)
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_tokenization_003
|
24
|
+
input = "Abkürzungen, wie z.B. usw. und d.h. können zu Problemem führen."
|
25
|
+
etalon = %w{Abkürzungen , wie z.B. usw. und d.h. können zu Problemem führen .}
|
26
|
+
compare(etalon, input)
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_tokenization_004
|
30
|
+
input = "Es gibt mehr als 1.023.345 Menschen in Deutschland, die keine Tausenderpunkte verstehen."
|
31
|
+
etalon = %w{Es gibt mehr als 1.023.345 Menschen in Deutschland , die keine Tausenderpunkte verstehen .}
|
32
|
+
compare(etalon, input)
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_tokenization_005
|
36
|
+
input = "Cocktails, wie Apfel-Martini, Rum-Kirsche-Cola und andere, bereiten nicht nur Menschen Probleme."
|
37
|
+
etalon = %w{ Cocktails , wie Apfel-Martini , Rum-Kirsche-Cola und andere , bereiten nicht nur Menschen Probleme . }
|
38
|
+
compare(etalon, input)
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_tokenization_006
|
42
|
+
input = 'Es gibt viele verschiedene Zeichen, die noch in Texten vorkommen können wie - zum Beispiel - diese hier "text" oder (text).'
|
43
|
+
etalon = %w{Es gibt viele verschiedene Zeichen , die noch in Texten vorkommen können wie - zum Beispiel - diese hier " text " oder ( text ) .}
|
44
|
+
compare(etalon, input)
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_tokenization_007
|
48
|
+
input = "Abkürzungen sind immer ein Problem, da auch Leerzeichen dazwischen stehen können, wie z. B. hier."
|
49
|
+
etalon = ["Abkürzungen", "sind", "immer", "ein", "Problem", ",", "da", "auch", "Leerzeichen", "dazwischen", "stehen", "können", ",", "wie", "z. B.", "hier", "."]
|
50
|
+
compare(etalon, input)
|
51
|
+
end
|
52
|
+
|
53
|
+
def test_tokenization_008
|
54
|
+
input = "Außerdem kann es nach Abkürzungen und Satzenden auch mit Großschreibung weiter gehen, bei z.B. Aufzählungen."
|
55
|
+
etalon = %w{Außerdem kann es nach Abkürzungen und Satzenden auch mit Großschreibung weiter gehen , bei z.B. Aufzählungen .}
|
56
|
+
compare(etalon, input)
|
57
|
+
end
|
58
|
+
|
59
|
+
def test_tokenization_009
|
60
|
+
input = "Ein weiteres Problem sind solche Getrennt- und Zusammenschreibungen."
|
61
|
+
etalon = %w{Ein weiteres Problem sind solche Getrenntschreibungen und Zusammenschreibungen .}
|
62
|
+
compare(etalon, input)
|
63
|
+
end
|
64
|
+
|
65
|
+
def test_tokenization_010
|
66
|
+
input = "In manchen Texten gibt es auch Worttrennung am Zeilen- ende."
|
67
|
+
etalon = %w{In manchen Texten gibt es auch Worttrennung am Zeilenende .}
|
68
|
+
compare(etalon, input)
|
69
|
+
end
|
70
|
+
|
71
|
+
def test_tokenization_011 #Ellipsis
|
72
|
+
input = "Der Satz endet in einer Ellips..."
|
73
|
+
etalon = %w{ Der Satz endet in einer Ellips... } #die elliptischen Punkte sollten nicht vom Wort getrennt werden
|
74
|
+
compare(etalon, input)
|
75
|
+
end
|
76
|
+
|
77
|
+
def test_tokenization_012 #Fehlende Leerzeichen
|
78
|
+
input = "Der Satz endet.Das Leerzeichen fehlt."
|
79
|
+
etalon = %w{ Der Satz endet . Das Leerzeichen fehlt . } #/\.\s(?=[A-Z])/ wuerde die Saetze nicht trennen
|
80
|
+
compare(etalon, input)
|
81
|
+
end
|
82
|
+
|
83
|
+
def test_tokenization_013 #Bindestriche
|
84
|
+
input = "Das Bindeglied - manisch-depressives Verhalten, binden-verbinden"
|
85
|
+
etalon = %w{ Das Bindeglied - manisch-depressives Verhalten , binden - verbinden}
|
86
|
+
compare(etalon, input)
|
87
|
+
end
|
88
|
+
|
89
|
+
def test_tokenization_014 #Abkuerzungen
|
90
|
+
input = "Der Satz enthielt z.B. Fehler"
|
91
|
+
etalon = %w{ Der Satz enthielt z.B. Fehler } #/\.\s(?=[A-Z])/ wuerde hinter Punkt den Satz beenden
|
92
|
+
compare(etalon, input)
|
93
|
+
end
|
94
|
+
|
95
|
+
def test_tokenization_015 #Fehlende Grossbuchstaben
|
96
|
+
input = "Der Satz endet. der Satz beginnt"
|
97
|
+
etalon = %w{ Der Satz endet . der Satz beginnt } #/\.\s(?=[A-Z])/ wuerde die Saetze nicht trennen
|
98
|
+
compare(etalon, input)
|
99
|
+
end
|
100
|
+
|
101
|
+
def test_tokenization_016 #Franzoesisch
|
102
|
+
input = "L'art de l'univers, c'est un art"
|
103
|
+
etalon = %w{ L' art de l' univers , c'est un art } #Kontrovers!
|
104
|
+
compare(etalon, input)
|
105
|
+
end
|
106
|
+
|
107
|
+
def test_tokenization_017 #James Bond
|
108
|
+
input = "Bond,... James Bond."
|
109
|
+
etalon = %w{ Bond , ... James Bond . } #Kontrovers!
|
110
|
+
compare(etalon, input)
|
111
|
+
end
|
112
|
+
|
113
|
+
def test_tokenization_018 #Inches
|
114
|
+
input = "The square had four 9\" sides"
|
115
|
+
etalon = %w{ The square had four 9" sides }
|
116
|
+
compare(etalon, input)
|
117
|
+
end
|
118
|
+
|
119
|
+
def test_tokenization_019 #Abkuerzung zugleich Lexikon-Eintrag
|
120
|
+
input = "In fig. 3, a fig can be seen. Fig. no. 4 shows no fig."
|
121
|
+
etalon = %w{ In fig. 3 , a fig can be seen . Fig. no. 4 shows no fig . } #fig sowohl als Abkuerzung als auch als Wort
|
122
|
+
compare(etalon, input)
|
123
|
+
end
|
124
|
+
|
125
|
+
def test_tokenization_020 #Leerzeichen-getrennte Zusammengehörigkeiten
|
126
|
+
input = "They booked the flight New York-Los Angeles"
|
127
|
+
etalon = ["They", "booked", "the", "flight", "New York", "-", "Los Angeles"] #oder mit Bindestrich verbunden
|
128
|
+
compare(etalon, input)
|
129
|
+
end
|
130
|
+
|
131
|
+
def test_tokenization_021 #Ordinale
|
132
|
+
input = "Der 1. Platz ging an den Sieger"
|
133
|
+
etalon = %w{ Der 1. Platz ging an den Sieger }
|
134
|
+
compare(etalon, input)
|
135
|
+
end
|
136
|
+
|
137
|
+
def test_tokenization_022 #Klitika
|
138
|
+
input = "Er war's, stimmt's?"
|
139
|
+
etalon = %w{ Er war es , stimmt es ? } #Kontrovers! Benoetigt komplexere Analyse
|
140
|
+
compare(etalon, input)
|
141
|
+
end
|
142
|
+
|
143
|
+
def test_tokenization_023 #Datums- und Zeitangaben
|
144
|
+
input = "Es passierte am 13. Januar 2011 um 12:13 Uhr"
|
145
|
+
etalon = [ "Es", "passierte", "am", "13. Januar 2011", "um", "12:13 Uhr"]
|
146
|
+
compare(etalon, input)
|
147
|
+
end
|
148
|
+
|
149
|
+
def test_tokenization_024 #Eingebettete Saetze
|
150
|
+
input = "\"This is all?\" George asked."
|
151
|
+
etalon = %w{ This is all ? George asked . } #kann zu ungrammatischen Saetzen fuehren
|
152
|
+
compare(etalon, input)
|
153
|
+
end
|
154
|
+
|
155
|
+
def test_tokenization_025 #Eingebettete Saetze 2
|
156
|
+
input = "\"Das ist alles?\" fragte sie."
|
157
|
+
etalon = %w{ Das ist alles ? fragte sie . } #ungrammatischer Satz "fragte sie."
|
158
|
+
compare(etalon, input)
|
159
|
+
end
|
160
|
+
|
161
|
+
|
162
|
+
def test_tokenization_026
|
163
|
+
input = "Die deutschen Umlaute und Sonderzeichen, wie in Mäuse, Scheiß und Tütchen, sind blöd!"
|
164
|
+
etalon = %w{ Die deutschen Umlaute und Sonderzeichen , wie in Mäuse , Scheiß und Tütchen , sind blöd ! }
|
165
|
+
compare(etalon, input)
|
166
|
+
end
|
167
|
+
|
168
|
+
def test_tokenization_027
|
169
|
+
input = "Abkürzungen, wie z.B. usw. und d.h. können zu Problemem führen."
|
170
|
+
etalon = %w{ Abkürzungen , wie z.B. usw. und d.h. können zu Problemem führen . }
|
171
|
+
compare(etalon, input)
|
172
|
+
end
|
173
|
+
|
174
|
+
def test_tokenization_028
|
175
|
+
input = "Es gibt mehr als 1.023.345 Menschen in Deutschland, die keine Tausenderpunkte verstehen."
|
176
|
+
etalon = %w{ Es gibt mehr als 1.023.345 Menschen in Deutschland , die keine Tausenderpunkte verstehen . }
|
177
|
+
compare(etalon, input)
|
178
|
+
end
|
179
|
+
|
180
|
+
def test_tokenization_029
|
181
|
+
input = "Cocktails, wie Apfel-Martini, Rum-Kirsche-Cola und andere, bereiten nicht nur Menschen Probleme."
|
182
|
+
etalon = %w{ Cocktails , wie Apfel-Martini , Rum-Kirsche-Cola und andere , bereiten nicht nur Menschen Probleme . }
|
183
|
+
compare(etalon, input)
|
184
|
+
end
|
185
|
+
|
186
|
+
def test_tokenization_030 #Ellipsis
|
187
|
+
input = "Der Satz endet in einer Ellips..."
|
188
|
+
etalon = %w{ Der Satz endet in einer Ellips... } #die elliptischen Punkte sollten nicht vom Wort getrennt werden
|
189
|
+
compare(etalon, input)
|
190
|
+
end
|
191
|
+
|
192
|
+
def test_tokenization_031 #Fehlende Leerzeichen
|
193
|
+
input = "Der Satz endet.Das Leerzeichen fehlt."
|
194
|
+
etalon = %w{ Der Satz endet . Das Leerzeichen fehlt . } #/\.\s(?=[A-Z])/ wuerde die Saetze nicht trennen
|
195
|
+
compare(etalon, input)
|
196
|
+
end
|
197
|
+
|
198
|
+
def test_tokenization_032 #Bindestriche
|
199
|
+
input = "Das Bindeglied - manisch-depressives Verhalten, binden-verbinden"
|
200
|
+
etalon = %w{ Das Bindeglied - manisch-depressives Verhalten , binden - verbinden}
|
201
|
+
compare(etalon, input)
|
202
|
+
end
|
203
|
+
|
204
|
+
def test_tokenization_033 #Abkuerzungen
|
205
|
+
input = "Der Satz enthielt z.B. Fehler"
|
206
|
+
etalon = %w{ Der Satz enthielt z.B. Fehler } #/\.\s(?=[A-Z])/ wuerde hinter Punkt den Satz beenden
|
207
|
+
compare(etalon, input)
|
208
|
+
end
|
209
|
+
|
210
|
+
def test_tokenization_034 #Fehlende Grossbuchstaben
|
211
|
+
input = "Der Satz endet. der Satz beginnt"
|
212
|
+
etalon = %w{ Der Satz endet . der Satz beginnt } #/\.\s(?=[A-Z])/ wuerde die Saetze nicht trennen
|
213
|
+
compare(etalon, input)
|
214
|
+
end
|
215
|
+
|
216
|
+
def test_tokenization_035 #Franzoesisch
|
217
|
+
input = "L'art de l'univers, c'est un art"
|
218
|
+
etalon = %w{ L' art de l' univers , c'est un art } #Kontrovers!
|
219
|
+
compare(etalon, input)
|
220
|
+
end
|
221
|
+
|
222
|
+
def test_tokenization_036 #James Bond
|
223
|
+
input = "Bond,... James Bond."
|
224
|
+
etalon = %w{ Bond , ... James Bond . } #Kontrovers!
|
225
|
+
compare(etalon, input)
|
226
|
+
end
|
227
|
+
|
228
|
+
def test_tokenization_037 #Inches
|
229
|
+
input = "The square had four 9\" sides"
|
230
|
+
etalon = %w{ The square had four 9" sides }
|
231
|
+
compare(etalon, input)
|
232
|
+
end
|
233
|
+
|
234
|
+
def test_tokenization_039 #Abkuerzung zugleich Lexikon-Eintrag
|
235
|
+
input = "In fig. 3, a fig can be seen. Fig. no. 4 shows no fig."
|
236
|
+
etalon = %w{ In fig. 3 , a fig can be seen . Fig. no. 4 shows no fig . } #fig sowohl als Abkuerzung als auch als Wort
|
237
|
+
compare(etalon, input)
|
238
|
+
end
|
239
|
+
|
240
|
+
def test_tokenization_040 #Leerzeichen-getrennte Zusammengehörigkeiten
|
241
|
+
input = "They booked the flight New York-Los Angeles"
|
242
|
+
etalon = ["They", "booked", "the", "flight", "New York", "-", "Los Angeles"] #oder mit Bindestrich verbunden
|
243
|
+
compare(etalon, input)
|
244
|
+
end
|
245
|
+
|
246
|
+
def test_tokenization_041 #Ordinale
|
247
|
+
input = "Der 1. Platz ging an den Sieger"
|
248
|
+
etalon = %w{ Der 1. Platz ging an den Sieger }
|
249
|
+
compare(etalon, input)
|
250
|
+
end
|
251
|
+
|
252
|
+
def test_tokenization_042 #Klitika
|
253
|
+
input = "Er war's, stimmt's?"
|
254
|
+
etalon = %w{ Er war es , stimmt es ? } #Kontrovers! Benoetigt komplexere Analyse
|
255
|
+
compare(etalon, input)
|
256
|
+
end
|
257
|
+
|
258
|
+
#Datums- und Zeitangaben
|
259
|
+
def test_tokenization_043
|
260
|
+
input = "Es passierte am 13. Januar 2011 um 12:13 Uhr"
|
261
|
+
etalon = ["Es", "passierte", "am", "13. Januar 2011", "um", "12:13 Uhr"]
|
262
|
+
compare(etalon, input)
|
263
|
+
end
|
264
|
+
|
265
|
+
#Eingebettete Sätze
|
266
|
+
def test_tokenization_044
|
267
|
+
input = '"This is all?" George asked.'
|
268
|
+
etalon = %w{ This is all ? George asked . } #kann zu ungrammatischen Saetzen fuehren
|
269
|
+
compare(etalon, input)
|
270
|
+
end
|
271
|
+
|
272
|
+
def test_tokenization_046 #Eingebettete Saetze 2
|
273
|
+
input = '"Das ist alles?" fragte sie.'
|
274
|
+
etalon = %w{Das ist alles ? fragte sie .} #ungrammatischer Satz "fragte sie."
|
275
|
+
compare(etalon, input)
|
276
|
+
end
|
277
|
+
|
278
|
+
private
|
279
|
+
def compare(exp_result, input)
|
280
|
+
act_result = @de_tokenizer.tokenize(input)
|
281
|
+
assert_equal(exp_result, act_result)
|
282
|
+
end
|
283
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'test/unit'
|
3
|
+
require 'tokenizer'
|
4
|
+
|
5
|
+
class TestTokenizerDev < Test::Unit::TestCase
|
6
|
+
|
7
|
+
def setup
|
8
|
+
@en_tokenizer = Tokenizer::Tokenizer.new(:en)
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_tokenization_001
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
def compare(exp_result, input)
|
16
|
+
act_result = @de_tokenizer.tokenize(input)
|
17
|
+
assert_equal(exp_result, act_result)
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'test/unit'
|
3
|
+
require 'tokenizer'
|
4
|
+
|
5
|
+
class TestTokenizerDev < Test::Unit::TestCase
|
6
|
+
|
7
|
+
def setup
|
8
|
+
@fr_tokenizer = Tokenizer::Tokenizer.new(:fr)
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_tokenization_001
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
def compare(exp_result, input)
|
16
|
+
act_result = @de_tokenizer.tokenize(input)
|
17
|
+
assert_equal(exp_result, act_result)
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'test/unit'
|
3
|
+
require 'tokenizer'
|
4
|
+
|
5
|
+
class TestTokenizerDev < Test::Unit::TestCase
|
6
|
+
|
7
|
+
def setup
|
8
|
+
@it_tokenizer = Tokenizer::Tokenizer.new(:it)
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_tokenization_001
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
def compare(exp_result, input)
|
16
|
+
act_result = @de_tokenizer.tokenize(input)
|
17
|
+
assert_equal(exp_result, act_result)
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'test/unit'
|
3
|
+
require 'tokenizer'
|
4
|
+
|
5
|
+
class TestTokenizerDev < Test::Unit::TestCase
|
6
|
+
|
7
|
+
def setup
|
8
|
+
@ru_tokenizer = Tokenizer::Tokenizer.new(:ru)
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_tokenization_001
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
def compare(exp_result, input)
|
16
|
+
act_result = @de_tokenizer.tokenize(input)
|
17
|
+
assert_equal(exp_result, act_result)
|
18
|
+
end
|
19
|
+
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: tokenizer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.1.
|
5
|
+
version: 0.1.1
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Andrei Beliankou
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-
|
13
|
+
date: 2011-08-25 00:00:00 +02:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -21,21 +21,43 @@ dependencies:
|
|
21
21
|
requirements:
|
22
22
|
- - ">="
|
23
23
|
- !ruby/object:Gem::Version
|
24
|
-
version:
|
24
|
+
version: 3.9.1
|
25
25
|
type: :development
|
26
26
|
version_requirements: *id001
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
prerelease: false
|
30
30
|
requirement: &id002 !ruby/object:Gem::Requirement
|
31
|
+
none: false
|
32
|
+
requirements:
|
33
|
+
- - "="
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: 0.8.7
|
36
|
+
type: :development
|
37
|
+
version_requirements: *id002
|
38
|
+
- !ruby/object:Gem::Dependency
|
39
|
+
name: yard
|
40
|
+
prerelease: false
|
41
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
31
42
|
none: false
|
32
43
|
requirements:
|
33
44
|
- - ">="
|
34
45
|
- !ruby/object:Gem::Version
|
35
46
|
version: "0"
|
36
47
|
type: :development
|
37
|
-
version_requirements: *
|
38
|
-
|
48
|
+
version_requirements: *id003
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
name: bundler
|
51
|
+
prerelease: false
|
52
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
53
|
+
none: false
|
54
|
+
requirements:
|
55
|
+
- - ">="
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: "0"
|
58
|
+
type: :development
|
59
|
+
version_requirements: *id004
|
60
|
+
description: A simple multilingual tokenizer for NLP tasks. This tool provides a CLI and a library for linguistic tokenization which is an anavoidable step for many HLT (human language technology) tasks in the preprocessing phase for further syntactic, semantic and other higher level processing goals. Use it for tokenization of German, English and French texts.
|
39
61
|
email: a.belenkow@uni-trier.de
|
40
62
|
executables:
|
41
63
|
- tokenize
|
@@ -43,18 +65,23 @@ extensions: []
|
|
43
65
|
|
44
66
|
extra_rdoc_files:
|
45
67
|
- README.rdoc
|
46
|
-
-
|
68
|
+
- CHANGELOG.rdoc
|
47
69
|
- LICENSE.rdoc
|
48
|
-
- HISTORY.rdoc
|
49
70
|
files:
|
50
71
|
- lib/tokenizer.rb
|
51
72
|
- lib/tokenizer/tokenizer.rb
|
52
73
|
- lib/tokenizer/version.rb
|
53
74
|
- README.rdoc
|
54
|
-
- TODO.rdoc
|
55
75
|
- LICENSE.rdoc
|
56
|
-
-
|
57
|
-
-
|
76
|
+
- CHANGELOG.rdoc
|
77
|
+
- .yardopts
|
78
|
+
- test/test_en_tokenizer_dev.rb
|
79
|
+
- test/test_de_tokenizer_dev.rb
|
80
|
+
- test/test_de_tokenizer.rb
|
81
|
+
- test/test_by_tokenizer_dev.rb
|
82
|
+
- test/test_it_tokenizer_dev.rb
|
83
|
+
- test/test_fr_tokenizer_dev.rb
|
84
|
+
- test/test_ru_tokenizer_dev.rb
|
58
85
|
- bin/tokenize
|
59
86
|
has_rdoc: true
|
60
87
|
homepage: http://www.uni-trier.de/index.php?id=34451
|
@@ -70,7 +97,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
70
97
|
requirements:
|
71
98
|
- - ">="
|
72
99
|
- !ruby/object:Gem::Version
|
73
|
-
version:
|
100
|
+
version: 1.8.7
|
74
101
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
75
102
|
none: false
|
76
103
|
requirements:
|
@@ -85,4 +112,10 @@ signing_key:
|
|
85
112
|
specification_version: 3
|
86
113
|
summary: Tokenizer is a linguistic tool intended to split a text into tokens.
|
87
114
|
test_files:
|
88
|
-
- test/
|
115
|
+
- test/test_en_tokenizer_dev.rb
|
116
|
+
- test/test_de_tokenizer_dev.rb
|
117
|
+
- test/test_de_tokenizer.rb
|
118
|
+
- test/test_by_tokenizer_dev.rb
|
119
|
+
- test/test_it_tokenizer_dev.rb
|
120
|
+
- test/test_fr_tokenizer_dev.rb
|
121
|
+
- test/test_ru_tokenizer_dev.rb
|
data/HISTORY.rdoc
DELETED
File without changes
|
data/TODO.rdoc
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
= Milestones for the project _Tokenizer_
|
2
|
-
|
3
|
-
== 0.0.1
|
4
|
-
- simple tokenization is desired
|
5
|
-
== 0.1.0
|
6
|
-
- notion of binary tokenizer and a library for embedded tokenization;
|
7
|
-
- separation of punctuaction marks.
|
8
|
-
== 0.2.0
|
9
|
-
== 0.3.0
|
10
|
-
== 0.4.0
|
11
|
-
== 0.5.0
|
12
|
-
== 0.6.0
|
13
|
-
== 0.7.0
|
14
|
-
== 0.8.0
|
15
|
-
== 0.9.0
|
16
|
-
== 1.0.0
|