pragmatic_segmenter 0.3.3 → 0.3.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +1 -0
- data/lib/pragmatic_segmenter/abbreviation_replacer.rb +6 -6
- data/lib/pragmatic_segmenter/between_punctuation.rb +6 -4
- data/lib/pragmatic_segmenter/cleaner.rb +51 -47
- data/lib/pragmatic_segmenter/cleaner/rules.rb +86 -0
- data/lib/pragmatic_segmenter/languages.rb +21 -30
- data/lib/pragmatic_segmenter/languages/arabic.rb +0 -13
- data/lib/pragmatic_segmenter/languages/common.rb +67 -44
- data/lib/pragmatic_segmenter/languages/common/ellipsis.rb +37 -0
- data/lib/pragmatic_segmenter/languages/common/numbers.rb +90 -0
- data/lib/pragmatic_segmenter/languages/deutsch.rb +25 -48
- data/lib/pragmatic_segmenter/languages/english.rb +3 -3
- data/lib/pragmatic_segmenter/languages/japanese.rb +5 -13
- data/lib/pragmatic_segmenter/languages/persian.rb +0 -14
- data/lib/pragmatic_segmenter/languages/russian.rb +0 -25
- data/lib/pragmatic_segmenter/languages/spanish.rb +0 -9
- data/lib/pragmatic_segmenter/list.rb +60 -58
- data/lib/pragmatic_segmenter/{process.rb → processor.rb} +47 -26
- data/lib/pragmatic_segmenter/punctuation_replacer.rb +41 -20
- data/lib/pragmatic_segmenter/segmenter.rb +19 -5
- data/lib/pragmatic_segmenter/version.rb +1 -1
- data/pragmatic_segmenter.gemspec +1 -0
- data/spec/pragmatic_segmenter/languages/amharic_spec.rb +18 -0
- data/spec/pragmatic_segmenter/languages/arabic_spec.rb +59 -0
- data/spec/pragmatic_segmenter/languages/armenian_spec.rb +160 -0
- data/spec/pragmatic_segmenter/languages/burmese_spec.rb +18 -0
- data/spec/pragmatic_segmenter/languages/chinese_spec.rb +11 -0
- data/spec/pragmatic_segmenter/languages/deutsch_spec.rb +189 -0
- data/spec/pragmatic_segmenter/languages/dutch_spec.rb +23 -0
- data/spec/pragmatic_segmenter/languages/english_spec.rb +1348 -0
- data/spec/pragmatic_segmenter/languages/french_spec.rb +31 -0
- data/spec/pragmatic_segmenter/languages/greek_spec.rb +18 -0
- data/spec/pragmatic_segmenter/languages/hindi_spec.rb +18 -0
- data/spec/pragmatic_segmenter/languages/italian_spec.rb +190 -0
- data/spec/pragmatic_segmenter/languages/japanese_spec.rb +53 -0
- data/spec/pragmatic_segmenter/languages/persian_spec.rb +18 -0
- data/spec/pragmatic_segmenter/languages/polish_spec.rb +11 -0
- data/spec/pragmatic_segmenter/languages/russian_spec.rb +219 -0
- data/spec/pragmatic_segmenter/languages/spanish_spec.rb +189 -0
- data/spec/pragmatic_segmenter/languages/urdu_spec.rb +18 -0
- data/spec/pragmatic_segmenter/languages_spec.rb +31 -0
- data/spec/pragmatic_segmenter_spec.rb +24 -2583
- metadata +59 -8
- data/lib/pragmatic_segmenter/number.rb +0 -35
- data/lib/pragmatic_segmenter/rules.rb +0 -168
- data/lib/pragmatic_segmenter/rules/ellipsis.rb +0 -35
- data/lib/pragmatic_segmenter/rules/html.rb +0 -13
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe PragmaticSegmenter::Languages::French, '(fr)' do
|
4
|
+
|
5
|
+
describe '#segment' do
|
6
|
+
it 'correctly segments text #001' do
|
7
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Après avoir été l'un des acteurs du projet génome humain, le Genoscope met aujourd'hui le cap vers la génomique environnementale. L'exploitation des données de séquences, prolongée par l'identification expérimentale des fonctions biologiques, notamment dans le domaine de la biocatalyse, ouvrent des perspectives de développements en biotechnologie industrielle.", language: 'fr')
|
8
|
+
expect(ps.segment).to eq(["Après avoir été l'un des acteurs du projet génome humain, le Genoscope met aujourd'hui le cap vers la génomique environnementale.", "L'exploitation des données de séquences, prolongée par l'identification expérimentale des fonctions biologiques, notamment dans le domaine de la biocatalyse, ouvrent des perspectives de développements en biotechnologie industrielle."])
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'correctly segments text #002' do
|
12
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "\"Airbus livrera comme prévu 30 appareils 380 cette année avec en ligne de mire l'objectif d'équilibre financier du programme en 2015\", a-t-il ajouté.", language: 'fr')
|
13
|
+
expect(ps.segment).to eq(["\"Airbus livrera comme prévu 30 appareils 380 cette année avec en ligne de mire l'objectif d'équilibre financier du programme en 2015\", a-t-il ajouté."])
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'correctly segments text #003' do
|
17
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "À 11 heures ce matin, la direction ne décomptait que douze grévistes en tout sur la France : ce sont ceux du site de Saran (Loiret), dont l’effectif est de 809 salariés, dont la moitié d’intérimaires. Elle assure que ce mouvement « n’aura aucun impact sur les livraisons ».", language: 'fr')
|
18
|
+
expect(ps.segment).to eq(["À 11 heures ce matin, la direction ne décomptait que douze grévistes en tout sur la France : ce sont ceux du site de Saran (Loiret), dont l’effectif est de 809 salariés, dont la moitié d’intérimaires.", "Elle assure que ce mouvement « n’aura aucun impact sur les livraisons »."])
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'correctly segments text #004' do
|
22
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Ce modèle permet d’afficher le texte « LL.AA.II.RR. » pour l’abréviation de « Leurs Altesses impériales et royales » avec son infobulle.", language: 'fr')
|
23
|
+
expect(ps.segment).to eq(["Ce modèle permet d’afficher le texte « LL.AA.II.RR. » pour l’abréviation de « Leurs Altesses impériales et royales » avec son infobulle."])
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'correctly segments text #005' do
|
27
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Les derniers ouvrages de Intercept Ltd. sont ici.", language: 'fr')
|
28
|
+
expect(ps.segment).to eq(["Les derniers ouvrages de Intercept Ltd. sont ici."])
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe PragmaticSegmenter::Languages::Greek, '(el)' do
|
4
|
+
|
5
|
+
context "Golden Rules" do
|
6
|
+
it "Question mark to end sentence #001" do
|
7
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Με συγχωρείτε· πού είναι οι τουαλέτες; Τις Κυριακές δε δούλευε κανένας. το κόστος του σπιτιού ήταν £260.950,00.", language: "el")
|
8
|
+
expect(ps.segment).to eq(["Με συγχωρείτε· πού είναι οι τουαλέτες;", "Τις Κυριακές δε δούλευε κανένας.", "το κόστος του σπιτιού ήταν £260.950,00."])
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
describe '#segment' do
|
13
|
+
it 'correctly segments text #001' do
|
14
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Με συγχωρείτε· πού είναι οι τουαλέτες; Τις Κυριακές δε δούλευε κανένας. το κόστος του σπιτιού ήταν £260.950,00.", language: 'el')
|
15
|
+
expect(ps.segment).to eq(["Με συγχωρείτε· πού είναι οι τουαλέτες;", "Τις Κυριακές δε δούλευε κανένας.", "το κόστος του σπιτιού ήταν £260.950,00."])
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe PragmaticSegmenter::Languages::Hindi, '(hi)' do
|
4
|
+
|
5
|
+
context "Golden Rules" do
|
6
|
+
it "Full stop #001" do
|
7
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "सच्चाई यह है कि इसे कोई नहीं जानता। हो सकता है यह फ़्रेन्को के खिलाफ़ कोई विद्रोह रहा हो, या फिर बेकाबू हो गया कोई आनंदोत्सव।", language: "hi")
|
8
|
+
expect(ps.segment).to eq(["सच्चाई यह है कि इसे कोई नहीं जानता।", "हो सकता है यह फ़्रेन्को के खिलाफ़ कोई विद्रोह रहा हो, या फिर बेकाबू हो गया कोई आनंदोत्सव।"])
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
describe '#segment' do
|
13
|
+
it 'correctly segments text #001' do
|
14
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "सच्चाई यह है कि इसे कोई नहीं जानता। हो सकता है यह फ़्रेन्को के खिलाफ़ कोई विद्रोह रहा हो, या फिर बेकाबू हो गया कोई आनंदोत्सव।", language: 'hi')
|
15
|
+
expect(ps.segment).to eq(["सच्चाई यह है कि इसे कोई नहीं जानता।", "हो सकता है यह फ़्रेन्को के खिलाफ़ कोई विद्रोह रहा हो, या फिर बेकाबू हो गया कोई आनंदोत्सव।"])
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,190 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe PragmaticSegmenter::Languages::Italian, "(it)" do
|
4
|
+
|
5
|
+
context "Golden Rules" do
|
6
|
+
it "Abbreviations #001" do
|
7
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Salve Sig.ra Mengoni! Come sta oggi?", language: "it")
|
8
|
+
expect(ps.segment).to eq(["Salve Sig.ra Mengoni!", "Come sta oggi?"])
|
9
|
+
end
|
10
|
+
|
11
|
+
it "Quotations #002" do
|
12
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Una lettera si può iniziare in questo modo «Il/la sottoscritto/a.».", language: "it")
|
13
|
+
expect(ps.segment).to eq(["Una lettera si può iniziare in questo modo «Il/la sottoscritto/a.»."])
|
14
|
+
end
|
15
|
+
|
16
|
+
it "Numbers #003" do
|
17
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "La casa costa 170.500.000,00€!", language: "it")
|
18
|
+
expect(ps.segment).to eq(["La casa costa 170.500.000,00€!"])
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
# Thanks to Davide Fornelli for the Italian test examples.
|
23
|
+
describe '#segment' do
|
24
|
+
|
25
|
+
it 'correctly segments text #001' do
|
26
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Salve Sig.ra Mengoni! Come sta oggi?", language: 'it')
|
27
|
+
expect(ps.segment).to eq(["Salve Sig.ra Mengoni!", "Come sta oggi?"])
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'correctly segments text #002' do
|
31
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Buongiorno! Sono l'Ing. Mengozzi. È presente l'Avv. Cassioni?", language: 'it')
|
32
|
+
expect(ps.segment).to eq(["Buongiorno!", "Sono l'Ing. Mengozzi.", "È presente l'Avv. Cassioni?"])
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'correctly segments text #003' do
|
36
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Mi fissi un appuntamento per mar. 23 Nov.. Grazie.", language: 'it')
|
37
|
+
expect(ps.segment).to eq(["Mi fissi un appuntamento per mar. 23 Nov..", "Grazie."])
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'correctly segments text #004' do
|
41
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Ecco il mio tel.:01234567. Mi saluti la Sig.na Manelli. Arrivederci.", language: 'it')
|
42
|
+
expect(ps.segment).to eq(["Ecco il mio tel.:01234567.", "Mi saluti la Sig.na Manelli.", "Arrivederci."])
|
43
|
+
end
|
44
|
+
|
45
|
+
it 'correctly segments text #005' do
|
46
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "La centrale meteor. si è guastata. Gli idraul. son dovuti andare a sistemarla.", language: 'it')
|
47
|
+
expect(ps.segment).to eq(["La centrale meteor. si è guastata.", "Gli idraul. son dovuti andare a sistemarla."])
|
48
|
+
end
|
49
|
+
|
50
|
+
it 'correctly segments text #006' do
|
51
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Hanno creato un algoritmo allo st. d. arte. Si ringrazia lo psicol. Serenti.", language: 'it')
|
52
|
+
expect(ps.segment).to eq(["Hanno creato un algoritmo allo st. d. arte.", "Si ringrazia lo psicol. Serenti."])
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'correctly segments text #007' do
|
56
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Chiamate il V.Cte. delle F.P., adesso!", language: 'it')
|
57
|
+
expect(ps.segment).to eq(["Chiamate il V.Cte. delle F.P., adesso!"])
|
58
|
+
end
|
59
|
+
|
60
|
+
it 'correctly segments text #008' do
|
61
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Giancarlo ha sostenuto l'esame di econ. az..", language: 'it')
|
62
|
+
expect(ps.segment).to eq(["Giancarlo ha sostenuto l'esame di econ. az.."])
|
63
|
+
end
|
64
|
+
|
65
|
+
it 'correctly segments text #009' do
|
66
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Stava viaggiando a 90 km/h verso la provincia di TR quando il Dott. Mesini ha sentito un rumore e si fermò!", language: 'it')
|
67
|
+
expect(ps.segment).to eq(["Stava viaggiando a 90 km/h verso la provincia di TR quando il Dott. Mesini ha sentito un rumore e si fermò!"])
|
68
|
+
end
|
69
|
+
|
70
|
+
it 'correctly segments text #010' do
|
71
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Egregio Dir. Amm., le faccio sapere che l'ascensore non funziona.", language: 'it')
|
72
|
+
expect(ps.segment).to eq(["Egregio Dir. Amm., le faccio sapere che l'ascensore non funziona."])
|
73
|
+
end
|
74
|
+
|
75
|
+
it 'correctly segments text #011' do
|
76
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Stava mangiando e/o dormendo.", language: 'it')
|
77
|
+
expect(ps.segment).to eq(["Stava mangiando e/o dormendo."])
|
78
|
+
end
|
79
|
+
|
80
|
+
it 'correctly segments text #012' do
|
81
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Ricordatevi che dom 25 Set. sarà il compleanno di Maria; dovremo darle un regalo.", language: 'it')
|
82
|
+
expect(ps.segment).to eq(["Ricordatevi che dom 25 Set. sarà il compleanno di Maria; dovremo darle un regalo."])
|
83
|
+
end
|
84
|
+
|
85
|
+
it 'correctly segments text #013' do
|
86
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "La politica è quella della austerità; quindi verranno fatti tagli agli sprechi.", language: 'it')
|
87
|
+
expect(ps.segment).to eq(["La politica è quella della austerità; quindi verranno fatti tagli agli sprechi."])
|
88
|
+
end
|
89
|
+
|
90
|
+
it 'correctly segments text #014' do
|
91
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Nel tribunale, l'Avv. Fabrizi ha urlato \"Io, l'illustrissimo Fabrizi, vi si oppone!\".", language: 'it')
|
92
|
+
expect(ps.segment).to eq(["Nel tribunale, l'Avv. Fabrizi ha urlato \"Io, l'illustrissimo Fabrizi, vi si oppone!\"."])
|
93
|
+
end
|
94
|
+
|
95
|
+
it 'correctly segments text #015' do
|
96
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Le parti fisiche di un computer (ad es. RAM, CPU, tastiera, mouse, etc.) sono definiti HW.", language: 'it')
|
97
|
+
expect(ps.segment).to eq(["Le parti fisiche di un computer (ad es. RAM, CPU, tastiera, mouse, etc.) sono definiti HW."])
|
98
|
+
end
|
99
|
+
|
100
|
+
it 'correctly segments text #016' do
|
101
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "La parola 'casa' è sinonimo di abitazione.", language: 'it')
|
102
|
+
expect(ps.segment).to eq(["La parola 'casa' è sinonimo di abitazione."])
|
103
|
+
end
|
104
|
+
|
105
|
+
it 'correctly segments text #017' do
|
106
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "La \"Mulino Bianco\" fa alimentari pre-confezionati.", language: 'it')
|
107
|
+
expect(ps.segment).to eq(["La \"Mulino Bianco\" fa alimentari pre-confezionati."])
|
108
|
+
end
|
109
|
+
|
110
|
+
it 'correctly segments text #018' do
|
111
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "\"Ei fu. Siccome immobile / dato il mortal sospiro / stette la spoglia immemore / orba di tanto spiro / [...]\" (Manzoni).", language: 'it')
|
112
|
+
expect(ps.segment).to eq(["\"Ei fu. Siccome immobile / dato il mortal sospiro / stette la spoglia immemore / orba di tanto spiro / [...]\" (Manzoni)."])
|
113
|
+
end
|
114
|
+
|
115
|
+
it 'correctly segments text #019' do
|
116
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Una lettera si può iniziare in questo modo «Il/la sottoscritto/a ... nato/a a ...».", language: 'it')
|
117
|
+
expect(ps.segment).to eq(["Una lettera si può iniziare in questo modo «Il/la sottoscritto/a ... nato/a a ...»."])
|
118
|
+
end
|
119
|
+
|
120
|
+
it 'correctly segments text #020' do
|
121
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Per casa, in uno degli esercizi per i bambini c'era \"3 + (14/7) = 5\"", language: 'it')
|
122
|
+
expect(ps.segment).to eq(["Per casa, in uno degli esercizi per i bambini c'era \"3 + (14/7) = 5\""])
|
123
|
+
end
|
124
|
+
|
125
|
+
it 'correctly segments text #021' do
|
126
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Ai bambini è stato chiesto di fare \"4:2*2\"", language: 'it')
|
127
|
+
expect(ps.segment).to eq(["Ai bambini è stato chiesto di fare \"4:2*2\""])
|
128
|
+
end
|
129
|
+
|
130
|
+
it 'correctly segments text #022' do
|
131
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "La maestra esclamò: \"Bambini, quanto fa '2/3 + 4/3?'\".", language: 'it')
|
132
|
+
expect(ps.segment).to eq(["La maestra esclamò: \"Bambini, quanto fa \'2/3 + 4/3?\'\"."])
|
133
|
+
end
|
134
|
+
|
135
|
+
it 'correctly segments text #023' do
|
136
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Il motore misurava 120°C.", language: 'it')
|
137
|
+
expect(ps.segment).to eq(["Il motore misurava 120°C."])
|
138
|
+
end
|
139
|
+
|
140
|
+
it 'correctly segments text #024' do
|
141
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Il volume era di 3m³.", language: 'it')
|
142
|
+
expect(ps.segment).to eq(["Il volume era di 3m³."])
|
143
|
+
end
|
144
|
+
|
145
|
+
it 'correctly segments text #025' do
|
146
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "La stanza misurava 20m².", language: 'it')
|
147
|
+
expect(ps.segment).to eq(["La stanza misurava 20m²."])
|
148
|
+
end
|
149
|
+
|
150
|
+
it 'correctly segments text #026' do
|
151
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "1°C corrisponde a 33.8°F.", language: 'it')
|
152
|
+
expect(ps.segment).to eq(["1°C corrisponde a 33.8°F."])
|
153
|
+
end
|
154
|
+
|
155
|
+
it 'correctly segments text #027' do
|
156
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Oggi è il 27-10-14.", language: 'it')
|
157
|
+
expect(ps.segment).to eq(["Oggi è il 27-10-14."])
|
158
|
+
end
|
159
|
+
|
160
|
+
it 'correctly segments text #028' do
|
161
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "La casa costa 170.500.000,00€!", language: 'it')
|
162
|
+
expect(ps.segment).to eq(["La casa costa 170.500.000,00€!"])
|
163
|
+
end
|
164
|
+
|
165
|
+
it 'correctly segments text #029' do
|
166
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Il corridore 103 è arrivato 4°.", language: 'it')
|
167
|
+
expect(ps.segment).to eq(["Il corridore 103 è arrivato 4°."])
|
168
|
+
end
|
169
|
+
|
170
|
+
it 'correctly segments text #030' do
|
171
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Oggi è il 27/10/2014.", language: 'it')
|
172
|
+
expect(ps.segment).to eq(["Oggi è il 27/10/2014."])
|
173
|
+
end
|
174
|
+
|
175
|
+
it 'correctly segments text #031' do
|
176
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Ecco l'elenco: 1.gelato, 2.carne, 3.riso.", language: 'it')
|
177
|
+
expect(ps.segment).to eq(["Ecco l'elenco: 1.gelato, 2.carne, 3.riso."])
|
178
|
+
end
|
179
|
+
|
180
|
+
it 'correctly segments text #032' do
|
181
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Devi comprare : 1)pesce 2)sale.", language: 'it')
|
182
|
+
expect(ps.segment).to eq(["Devi comprare : 1)pesce 2)sale."])
|
183
|
+
end
|
184
|
+
|
185
|
+
it 'correctly segments text #033' do
|
186
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "La macchina viaggiava a 100 km/h.", language: 'it')
|
187
|
+
expect(ps.segment).to eq(["La macchina viaggiava a 100 km/h."])
|
188
|
+
end
|
189
|
+
end
|
190
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe PragmaticSegmenter::Languages::Japanese, "(ja)" do
|
4
|
+
|
5
|
+
context "Golden Rules" do
|
6
|
+
it "Simple period to end sentence #001" do
|
7
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "これはペンです。それはマーカーです。", language: "ja")
|
8
|
+
expect(ps.segment).to eq(["これはペンです。", "それはマーカーです。"])
|
9
|
+
end
|
10
|
+
|
11
|
+
it "Question mark to end sentence #002" do
|
12
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "それは何ですか?ペンですか?", language: "ja")
|
13
|
+
expect(ps.segment).to eq(["それは何ですか?", "ペンですか?"])
|
14
|
+
end
|
15
|
+
|
16
|
+
it "Exclamation point to end sentence #003" do
|
17
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "良かったね!すごい!", language: "ja")
|
18
|
+
expect(ps.segment).to eq(["良かったね!", "すごい!"])
|
19
|
+
end
|
20
|
+
|
21
|
+
it "Quotation #004" do
|
22
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "自民党税制調査会の幹部は、「引き下げ幅は3.29%以上を目指すことになる」と指摘していて、今後、公明党と合意したうえで、30日に決定する与党税制改正大綱に盛り込むことにしています。2%台後半を目指すとする方向で最終調整に入りました。", language: "ja")
|
23
|
+
expect(ps.segment).to eq(["自民党税制調査会の幹部は、「引き下げ幅は3.29%以上を目指すことになる」と指摘していて、今後、公明党と合意したうえで、30日に決定する与党税制改正大綱に盛り込むことにしています。", "2%台後半を目指すとする方向で最終調整に入りました。"])
|
24
|
+
end
|
25
|
+
|
26
|
+
it "Errant newlines in the middle of sentences #005" do
|
27
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "これは父の\n家です。", language: "ja")
|
28
|
+
expect(ps.segment).to eq(["これは父の家です。"])
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
describe '#segment' do
|
33
|
+
it 'correctly segments text #001' do
|
34
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "これは山です \nこれは山です \nこれは山です(「これは山です」) \nこれは山です(これは山です「これは山です」)これは山です・これは山です、これは山です。 \nこれは山です(これは山です。これは山です)。これは山です、これは山です、これは山です、これは山です(これは山です。これは山です)これは山です、これは山です、これは山です「これは山です」これは山です(これは山です:0円)これは山です。 \n1.)これは山です、これは山です(これは山です、これは山です6円(※1))これは山です。 \n※1 これは山です。 \n2.)これは山です、これは山です、これは山です、これは山です。 \n3.)これは山です、これは山です・これは山です、これは山です、これは山です、これは山です(これは山です「これは山です」)これは山です、これは山です、これは山です、これは山です。 \n4.)これは山です、これは山です(これは山です、これは山です、これは山です。これは山です)これは山です、これは山です(これは山です、これは山です)。 \nこれは山です、これは山です、これは山です、これは山です、これは山です(者)これは山です。 \n(1) 「これは山です」(これは山です:0円) (※1) \n① これは山です", language: 'ja')
|
35
|
+
expect(ps.segment).to eq(["これは山です", "これは山です", "これは山です(「これは山です」)", "これは山です(これは山です「これは山です」)これは山です・これは山です、これは山です。", "これは山です(これは山です。これは山です)。", "これは山です、これは山です、これは山です、これは山です(これは山です。これは山です)これは山です、これは山です、これは山です「これは山です」これは山です(これは山です:0円)これは山です。", "1.)これは山です、これは山です(これは山です、これは山です6円(※1))これは山です。", "※1 これは山です。", "2.)これは山です、これは山です、これは山です、これは山です。", "3.)これは山です、これは山です・これは山です、これは山です、これは山です、これは山です(これは山です「これは山です」)これは山です、これは山です、これは山です、これは山です。", "4.)これは山です、これは山です(これは山です、これは山です、これは山です。これは山です)これは山です、これは山です(これは山です、これは山です)。", "これは山です、これは山です、これは山です、これは山です、これは山です(者)これは山です。", "(1) 「これは山です」(これは山です:0円) (※1)", "① これは山です"])
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'correctly segments text #002' do
|
39
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "フフーの\n主たる債務", language: 'ja')
|
40
|
+
expect(ps.segment).to eq(["フフーの主たる債務"])
|
41
|
+
end
|
42
|
+
|
43
|
+
it 'correctly segments text #003' do
|
44
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "これは山です \nこれは山です \nこれは山です(「これは山です」) \nこれは山です(これは山です「これは山です」)これは山です・これは山です、これは山です. \nこれは山です(これは山です.これは山です).これは山です、これは山です、これは山です、これは山です(これは山です.これは山です)これは山です、これは山です、これは山です「これは山です」これは山です(これは山です:0円)これは山です. \n1.)これは山です、これは山です(これは山です、これは山です6円(※1))これは山です. \n※1 これは山です. \n2.)これは山です、これは山です、これは山です、これは山です. \n3.)これは山です、これは山です・これは山です、これは山です、これは山です、これは山です(これは山です「これは山です」)これは山です、これは山です、これは山です、これは山です. \n4.)これは山です、これは山です(これは山です、これは山です、これは山です.これは山です)これは山です、これは山です(これは山です、これは山です). \nこれは山です、これは山です、これは山です、これは山です、これは山です(者)これは山です. \n(1) 「これは山です」(これは山です:0円) (※1) \n① これは山です", language: 'ja')
|
45
|
+
expect(ps.segment).to eq(["これは山です", "これは山です", "これは山です(「これは山です」)", "これは山です(これは山です「これは山です」)これは山です・これは山です、これは山です.", "これは山です(これは山です.これは山です).", "これは山です、これは山です、これは山です、これは山です(これは山です.これは山です)これは山です、これは山です、これは山です「これは山です」これは山です(これは山です:0円)これは山です.", "1.)これは山です、これは山です(これは山です、これは山です6円(※1))これは山です.", "※1 これは山です.", "2.)これは山です、これは山です、これは山です、これは山です.", "3.)これは山です、これは山です・これは山です、これは山です、これは山です、これは山です(これは山です「これは山です」)これは山です、これは山です、これは山です、これは山です.", "4.)これは山です、これは山です(これは山です、これは山です、これは山です.これは山です)これは山です、これは山です(これは山です、これは山です).", "これは山です、これは山です、これは山です、これは山です、これは山です(者)これは山です.", "(1) 「これは山です」(これは山です:0円) (※1)", "① これは山です"])
|
46
|
+
end
|
47
|
+
|
48
|
+
it 'correctly segments text #004' do
|
49
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "これは山です \nこれは山です \nこれは山です(「これは山です」) \nこれは山です(これは山です「これは山です」)これは山です・これは山です、これは山です! \nこれは山です(これは山です!これは山です)!これは山です、これは山です、これは山です、これは山です(これは山です!これは山です)これは山です、これは山です、これは山です「これは山です」これは山です(これは山です:0円)これは山です! \n1.)これは山です、これは山です(これは山です、これは山です6円(※1))これは山です! \n※1 これは山です! \n2.)これは山です、これは山です、これは山です、これは山です! \n3.)これは山です、これは山です・これは山です、これは山です、これは山です、これは山です(これは山です「これは山です」)これは山です、これは山です、これは山です、これは山です! \n4.)これは山です、これは山です(これは山です、これは山です、これは山です!これは山です)これは山です、これは山です(これは山です、これは山です)! \nこれは山です、これは山です、これは山です、これは山です、これは山です(者)これは山です! \n(1) 「これは山です」(これは山です:0円) (※1) \n① これは山です", language: 'ja')
|
50
|
+
expect(ps.segment).to eq(["これは山です", "これは山です", "これは山です(「これは山です」)", "これは山です(これは山です「これは山です」)これは山です・これは山です、これは山です!", "これは山です(これは山です!これは山です)!", "これは山です、これは山です、これは山です、これは山です(これは山です!これは山です)これは山です、これは山です、これは山です「これは山です」これは山です(これは山です:0円)これは山です!", "1.)これは山です、これは山です(これは山です、これは山です6円(※1))これは山です!", "※1 これは山です!", "2.)これは山です、これは山です、これは山です、これは山です!", "3.)これは山です、これは山です・これは山です、これは山です、これは山です、これは山です(これは山です「これは山です」)これは山です、これは山です、これは山です、これは山です!", "4.)これは山です、これは山です(これは山です、これは山です、これは山です!これは山です)これは山です、これは山です(これは山です、これは山です)!", "これは山です、これは山です、これは山です、これは山です、これは山です(者)これは山です!", "(1) 「これは山です」(これは山です:0円) (※1)", "① これは山です"])
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe PragmaticSegmenter::Languages::Persian, '(fa)' do
|
4
|
+
|
5
|
+
context "Golden Rules" do
|
6
|
+
it "Sentence ending punctuation #001" do
|
7
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "خوشبختم، آقای رضا. شما کجایی هستید؟ من از تهران هستم.", language: 'fa')
|
8
|
+
expect(ps.segment).to eq(["خوشبختم، آقای رضا.", "شما کجایی هستید؟", "من از تهران هستم."])
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
describe '#segment' do
|
13
|
+
it 'correctly segments text #001' do
|
14
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "خوشبختم، آقای رضا. شما کجایی هستید؟ من از تهران هستم.", language: 'fa')
|
15
|
+
expect(ps.segment).to eq(["خوشبختم، آقای رضا.", "شما کجایی هستید؟", "من از تهران هستم."])
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe PragmaticSegmenter::Languages::Polish, '(pl)' do
|
4
|
+
|
5
|
+
describe '#segment' do
|
6
|
+
it 'correctly segments text #001' do
|
7
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "To słowo bałt. jestskrótem.", language: 'pl')
|
8
|
+
expect(ps.segment).to eq(["To słowo bałt. jestskrótem."])
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,219 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe PragmaticSegmenter::Languages::Russian, "(ru)" do
|
4
|
+
|
5
|
+
context "Golden Rules" do
|
6
|
+
it "Abbreviations #001" do
|
7
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Объем составляет 5 куб.м.", language: "ru")
|
8
|
+
expect(ps.segment).to eq(["Объем составляет 5 куб.м."])
|
9
|
+
end
|
10
|
+
|
11
|
+
it "Quotations #002" do
|
12
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Маленькая девочка бежала и кричала: «Не видали маму?».", language: "ru")
|
13
|
+
expect(ps.segment).to eq(["Маленькая девочка бежала и кричала: «Не видали маму?»."])
|
14
|
+
end
|
15
|
+
|
16
|
+
it "Numbers #003" do
|
17
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Сегодня 27.10.14", language: "ru")
|
18
|
+
expect(ps.segment).to eq(["Сегодня 27.10.14"])
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
# Thanks to Anastasiia Tsvitailo for the Russian test examples.
|
23
|
+
describe '#segment' do
|
24
|
+
it 'correctly segments text #001' do
|
25
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Маленькая девочка бежала и кричала: «Не видали маму?».", language: 'ru')
|
26
|
+
expect(ps.segment).to eq(["Маленькая девочка бежала и кричала: «Не видали маму?»."])
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'correctly segments text #002' do
|
30
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "«Я приду поздно», — сказал Андрей.", language: 'ru')
|
31
|
+
expect(ps.segment).to eq(["«Я приду поздно», — сказал Андрей."])
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'correctly segments text #003' do
|
35
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "«К чему ты готовишься? – спросила мама. – Завтра ведь выходной».", language: 'ru')
|
36
|
+
expect(ps.segment).to eq(["«К чему ты готовишься? – спросила мама. – Завтра ведь выходной»."])
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'correctly segments text #004' do
|
40
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "По словам Пушкина, «Привычка свыше дана, замена счастью она».", language: 'ru')
|
41
|
+
expect(ps.segment).to eq(["По словам Пушкина, «Привычка свыше дана, замена счастью она»."])
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'correctly segments text #005' do
|
45
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Он сказал: «Я очень устал», и сразу же замолчал.", language: 'ru')
|
46
|
+
expect(ps.segment).to eq(["Он сказал: «Я очень устал», и сразу же замолчал."])
|
47
|
+
end
|
48
|
+
|
49
|
+
it 'correctly segments text #006' do
|
50
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Мне стало как-то ужасно грустно в это мгновение; однако что-то похожее на смех зашевелилось в душе моей.", language: 'ru')
|
51
|
+
expect(ps.segment).to eq(["Мне стало как-то ужасно грустно в это мгновение; однако что-то похожее на смех зашевелилось в душе моей."])
|
52
|
+
end
|
53
|
+
|
54
|
+
it 'correctly segments text #007' do
|
55
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Шухов как был в ватных брюках, не снятых на ночь (повыше левого колена их тоже был пришит затасканный, погрязневший лоскут, и на нем выведен черной, уже поблекшей краской номер Щ-854), надел телогрейку…", language: 'ru')
|
56
|
+
expect(ps.segment).to eq(["Шухов как был в ватных брюках, не снятых на ночь (повыше левого колена их тоже был пришит затасканный, погрязневший лоскут, и на нем выведен черной, уже поблекшей краской номер Щ-854), надел телогрейку…"])
|
57
|
+
end
|
58
|
+
|
59
|
+
it 'correctly segments text #008' do
|
60
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Слово «дом» является синонимом жилища", language: 'ru')
|
61
|
+
expect(ps.segment).to eq(["Слово «дом» является синонимом жилища"])
|
62
|
+
end
|
63
|
+
|
64
|
+
it 'correctly segments text #009' do
|
65
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "В Санкт-Петербург на гастроли приехал театр «Современник»", language: 'ru')
|
66
|
+
expect(ps.segment).to eq(["В Санкт-Петербург на гастроли приехал театр «Современник»"])
|
67
|
+
end
|
68
|
+
|
69
|
+
it 'correctly segments text #010' do
|
70
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Машина едет со скоростью 100 км/ч.", language: 'ru')
|
71
|
+
expect(ps.segment).to eq(["Машина едет со скоростью 100 км/ч."])
|
72
|
+
end
|
73
|
+
|
74
|
+
it 'correctly segments text #011' do
|
75
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Я поем и/или лягу спать.", language: 'ru')
|
76
|
+
expect(ps.segment).to eq(["Я поем и/или лягу спать."])
|
77
|
+
end
|
78
|
+
|
79
|
+
it 'correctly segments text #012' do
|
80
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Он не мог справиться с примером \"3 + (14:7) = 5\"", language: 'ru')
|
81
|
+
expect(ps.segment).to eq(["Он не мог справиться с примером \"3 + (14:7) = 5\""])
|
82
|
+
end
|
83
|
+
|
84
|
+
it 'correctly segments text #013' do
|
85
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Вот список: 1.мороженое, 2.мясо, 3.рис.", language: 'ru')
|
86
|
+
expect(ps.segment).to eq(["Вот список: 1.мороженое, 2.мясо, 3.рис."])
|
87
|
+
end
|
88
|
+
|
89
|
+
it 'correctly segments text #014' do
|
90
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Квартира 234 находится на 4-ом этаже.", language: 'ru')
|
91
|
+
expect(ps.segment).to eq(["Квартира 234 находится на 4-ом этаже."])
|
92
|
+
end
|
93
|
+
|
94
|
+
it 'correctly segments text #015' do
|
95
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "В это время года температура может подниматься до 40°C.", language: 'ru')
|
96
|
+
expect(ps.segment).to eq(["В это время года температура может подниматься до 40°C."])
|
97
|
+
end
|
98
|
+
|
99
|
+
it 'correctly segments text #016' do
|
100
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Объем составляет 5м³.", language: 'ru')
|
101
|
+
expect(ps.segment).to eq(["Объем составляет 5м³."])
|
102
|
+
end
|
103
|
+
|
104
|
+
it 'correctly segments text #017' do
|
105
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Объем составляет 5 куб.м.", language: 'ru')
|
106
|
+
expect(ps.segment).to eq(["Объем составляет 5 куб.м."])
|
107
|
+
end
|
108
|
+
|
109
|
+
it 'correctly segments text #018' do
|
110
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Площадь комнаты 14м².", language: 'ru')
|
111
|
+
expect(ps.segment).to eq(["Площадь комнаты 14м²."])
|
112
|
+
end
|
113
|
+
|
114
|
+
it 'correctly segments text #019' do
|
115
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Площадь комнаты 14 кв.м.", language: 'ru')
|
116
|
+
expect(ps.segment).to eq(["Площадь комнаты 14 кв.м."])
|
117
|
+
end
|
118
|
+
|
119
|
+
it 'correctly segments text #020' do
|
120
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "1°C соответствует 33.8°F.", language: 'ru')
|
121
|
+
expect(ps.segment).to eq(["1°C соответствует 33.8°F."])
|
122
|
+
end
|
123
|
+
|
124
|
+
it 'correctly segments text #021' do
|
125
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Сегодня 27.10.14", language: 'ru')
|
126
|
+
expect(ps.segment).to eq(["Сегодня 27.10.14"])
|
127
|
+
end
|
128
|
+
|
129
|
+
it 'correctly segments text #022' do
|
130
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Сегодня 27 октября 2014 года.", language: 'ru')
|
131
|
+
expect(ps.segment).to eq(["Сегодня 27 октября 2014 года."])
|
132
|
+
end
|
133
|
+
|
134
|
+
it 'correctly segments text #023' do
|
135
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Эта машина стоит 150 000 дол.!", language: 'ru')
|
136
|
+
expect(ps.segment).to eq(["Эта машина стоит 150 000 дол.!"])
|
137
|
+
end
|
138
|
+
|
139
|
+
it 'correctly segments text #024' do
|
140
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Эта машина стоит $150 000!", language: 'ru')
|
141
|
+
expect(ps.segment).to eq(["Эта машина стоит $150 000!"])
|
142
|
+
end
|
143
|
+
|
144
|
+
it 'correctly segments text #025' do
|
145
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Вот номер моего телефона: +39045969798. Передавайте привет г-ну Шапочкину. До свидания.", language: 'ru')
|
146
|
+
expect(ps.segment).to eq(["Вот номер моего телефона: +39045969798.", "Передавайте привет г-ну Шапочкину.", "До свидания."])
|
147
|
+
end
|
148
|
+
|
149
|
+
it 'correctly segments text #026' do
|
150
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Постойте, разве можно указывать цены в у.е.!", language: 'ru')
|
151
|
+
expect(ps.segment).to eq(["Постойте, разве можно указывать цены в у.е.!"])
|
152
|
+
end
|
153
|
+
|
154
|
+
it 'correctly segments text #027' do
|
155
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Едем на скорости 90 км/ч в сторону пгт. Брагиновка, о котором мы так много слышали по ТВ!", language: 'ru')
|
156
|
+
expect(ps.segment).to eq(["Едем на скорости 90 км/ч в сторону пгт. Брагиновка, о котором мы так много слышали по ТВ!"])
|
157
|
+
end
|
158
|
+
|
159
|
+
it 'correctly segments text #028' do
|
160
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Д-р ветеринарных наук А. И. Семенов и пр. выступали на этом семинаре.", language: 'ru')
|
161
|
+
expect(ps.segment).to eq(["Д-р ветеринарных наук А. И. Семенов и пр. выступали на этом семинаре."])
|
162
|
+
end
|
163
|
+
|
164
|
+
it 'correctly segments text #029' do
|
165
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Уважаемый проф. Семенов! Просьба до 20.10 сдать отчет на кафедру.", language: 'ru')
|
166
|
+
expect(ps.segment).to eq(["Уважаемый проф. Семенов!", "Просьба до 20.10 сдать отчет на кафедру."])
|
167
|
+
end
|
168
|
+
|
169
|
+
it 'correctly segments text #030' do
|
170
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Первоначальная стоимость этого комплекта 30 долл., но сейчас действует скидка. Предъявите дисконтную карту, пожалуйста!", language: 'ru')
|
171
|
+
expect(ps.segment).to eq(["Первоначальная стоимость этого комплекта 30 долл., но сейчас действует скидка.", "Предъявите дисконтную карту, пожалуйста!"])
|
172
|
+
end
|
173
|
+
|
174
|
+
it 'correctly segments text #031' do
|
175
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Виктор съел пол-лимона и ушел по-английски из дома на ул. 1 Мая.", language: 'ru')
|
176
|
+
expect(ps.segment).to eq(["Виктор съел пол-лимона и ушел по-английски из дома на ул. 1 Мая."])
|
177
|
+
end
|
178
|
+
|
179
|
+
it 'correctly segments text #032' do
|
180
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Напоминаю Вам, что 25.10 день рождения у Маши К., нужно будет купить ей подарок.", language: 'ru')
|
181
|
+
expect(ps.segment).to eq(["Напоминаю Вам, что 25.10 день рождения у Маши К., нужно будет купить ей подарок."])
|
182
|
+
end
|
183
|
+
|
184
|
+
it 'correctly segments text #033' do
|
185
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "В 2010-2012 гг. Виктор посещал г. Волгоград неоднократно.", language: 'ru')
|
186
|
+
expect(ps.segment).to eq(["В 2010-2012 гг. Виктор посещал г. Волгоград неоднократно."])
|
187
|
+
end
|
188
|
+
|
189
|
+
it 'correctly segments text #034' do
|
190
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Маленькая девочка бежала и кричала: «Не видали маму?»", language: 'ru')
|
191
|
+
expect(ps.segment).to eq(["Маленькая девочка бежала и кричала: «Не видали маму?»"])
|
192
|
+
end
|
193
|
+
|
194
|
+
it 'correctly segments text #035' do
|
195
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Кв. 234 находится на 4 этаже.", language: 'ru')
|
196
|
+
expect(ps.segment).to eq(["Кв. 234 находится на 4 этаже."])
|
197
|
+
end
|
198
|
+
|
199
|
+
it 'correctly segments text #036' do
|
200
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "В это время года температура может подниматься до 40°C.", language: 'ru')
|
201
|
+
expect(ps.segment).to eq(["В это время года температура может подниматься до 40°C."])
|
202
|
+
end
|
203
|
+
|
204
|
+
it 'correctly segments text #037' do
|
205
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Нужно купить 1)рыбу 2)соль.", language: 'ru')
|
206
|
+
expect(ps.segment).to eq(["Нужно купить 1)рыбу 2)соль."])
|
207
|
+
end
|
208
|
+
|
209
|
+
it 'correctly segments text #038' do
|
210
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Машина едет со скоростью 100 км/ч.", language: 'ru')
|
211
|
+
expect(ps.segment).to eq(["Машина едет со скоростью 100 км/ч."])
|
212
|
+
end
|
213
|
+
|
214
|
+
it 'correctly segments text #039' do
|
215
|
+
ps = PragmaticSegmenter::Segmenter.new(text: "Л.Н. Толстой написал \"Войну и мир\". Кроме Волконских, Л. Н. Толстой состоял в близком родстве с некоторыми другими аристократическими родами. Дом, где родился Л.Н.Толстой, 1898 г. В 1854 году дом продан по распоряжению писателя на вывоз в село Долгое.", language: 'ru')
|
216
|
+
expect(ps.segment).to eq(["Л.Н. Толстой написал \"Войну и мир\".", "Кроме Волконских, Л. Н. Толстой состоял в близком родстве с некоторыми другими аристократическими родами.", "Дом, где родился Л.Н.Толстой, 1898 г. В 1854 году дом продан по распоряжению писателя на вывоз в село Долгое."])
|
217
|
+
end
|
218
|
+
end
|
219
|
+
end
|