pragmatic_tokenizer 0.2.3 → 0.2.4
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.
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: db86f5c14e05efabcaedc5d86d730445db7aaed2
|
|
4
|
+
data.tar.gz: 87e8cb36fffffef3424f540e5cb8c044b0acf2f9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2d135b1814bd5385c699d2e6732dc51013bd5fe7e9a1d55e83ac34b37f91f0cfbc97855288c1ce29af3866cbf8a7f561c13c33376a73f929abebbe5f2392cc65
|
|
7
|
+
data.tar.gz: 9ef4499aaf6d48df889c069f00d3d56fb3984bbf03f92e7cf83e64f62cce814ec0cecfda36cdffdf5e461d4a28c20176520454b3e998a216cbf6b5617727e0da
|
|
@@ -2,8 +2,8 @@ module PragmaticTokenizer
|
|
|
2
2
|
module Languages
|
|
3
3
|
module Bulgarian
|
|
4
4
|
include Languages::Common
|
|
5
|
-
ABBREVIATIONS = [
|
|
6
|
-
STOP_WORDS = ["а", "автентичен", "аз", "ако", "ала", "бе", "без", "беше", "би", "бивш", "бивша", "бившо", "бил", "била", "били", "било", "благодаря", "близо", "бъдат", "бъде", "бяха", "в", "вас", "ваш", "ваша", "вероятно", "вече", "взема", "ви", "вие", "винаги", "внимава", "време", "все", "всеки", "всички", "всичко", "всяка", "във", "въпреки", "върху", "г", "ги", "главен", "главна", "главно", "глас", "го", "година", "години", "годишен", "д", "да", "дали", "два", "двама", "двамата", "две", "двете", "ден", "днес", "дни", "до", "добра", "добре", "добро", "добър", "докато", "докога", "дори", "досега", "доста", "друг", "друга", "други", "е", "евтин", "едва", "един", "една", "еднаква", "еднакви", "еднакъв", "едно", "екип", "ето", "живот", "за", "забавям", "зад", "заедно", "заради", "засега", "заспал", "затова", "защо", "защото", "и", "из", "или", "им", "има", "имат", "иска", "й", "каза", "как", "каква", "какво", "както", "какъв", "като", "кога", "когато", "което", "които", "кой", "който", "колко", "която", "къде", "където", "към", "лесен", "лесно", "ли", "лош", "м", "май", "малко", "ме", "между", "мек", "мен", "месец", "ми", "много", "мнозина", "мога", "могат", "може", "мокър", "моля", "момента", "му", "н", "на", "над", "назад", "най", "направи", "напред", "например", "нас", "не", "него", "нещо", "нея", "ни", "ние", "никой", "нито", "нищо", "но", "нов", "нова", "нови", "новина", "някои", "някой", "няколко", "няма", "обаче", "около", "освен", "особено", "от", "отгоре", "отново", "още", "пак", "по", "повече", "повечето", "под", "поне", "поради", "после", "почти", "прави", "пред", "преди", "през", "при", "пък", "първата", "първи", "първо", "пъти", "равен", "равна", "с", "са", "сам", "само", "се", "сега", "си", "син", "скоро", "след", "следващ", "сме", "смях", "според", "сред", "срещу", "сте", "съм", "със", "също", "т", "тази", "така", "такива", "такъв", "там", "твой", "те", "тези", "ти", "
|
|
5
|
+
ABBREVIATIONS = ["акад", "ал", "б.р", "б.ред", "бел.а", "бел.пр", "бр", "бул", "в", "вж", "вкл", "вм", "вр", "г", "ген", "гр", "дж", "дм", "доц", "др", "ем", "заб", "зам", "инж", "к.с", "кв", "кв.м", "кг", "км", "кор", "куб", "куб.м", "л", "лв", "м", "м.г", "мин", "млн", "млрд", "мм", "н.с", "напр", "пл", "полк", "проф", "р", "рис", "с", "св", "сек", "см", "сп", "срв", "ст", "стр", "т", "т.г", "т.е", "т.н", "т.нар", "табл", "тел", "у", "ул", "фиг", "ха", "хил", "ч", "чл", "щ.д"]
|
|
6
|
+
STOP_WORDS = ["а", "автентичен", "аз", "ако", "ала", "бе", "без", "беше", "би", "бивш", "бивша", "бившо", "бил", "била", "били", "било", "благодаря", "близо", "бъдат", "бъде", "бяха", "в", "вас", "ваш", "ваша", "вероятно", "вече", "взема", "ви", "вие", "винаги", "внимава", "време", "все", "всеки", "всички", "всичко", "всяка", "във", "въпреки", "върху", "г", "г.", "ги", "главен", "главна", "главно", "глас", "го", "година", "години", "годишен", "д", "да", "дали", "два", "двама", "двамата", "две", "двете", "ден", "днес", "дни", "до", "добра", "добре", "добро", "добър", "докато", "докога", "дори", "досега", "доста", "друг", "друга", "други", "е", "евтин", "едва", "един", "една", "еднаква", "еднакви", "еднакъв", "едно", "екип", "ето", "живот", "за", "забавям", "зад", "заедно", "заради", "засега", "заспал", "затова", "защо", "защото", "и", "из", "или", "им", "има", "имат", "иска", "й", "каза", "как", "каква", "какво", "както", "какъв", "като", "кога", "когато", "което", "които", "кой", "който", "колко", "която", "къде", "където", "към", "лесен", "лесно", "ли", "лош", "м", "май", "малко", "ме", "между", "мек", "мен", "месец", "ми", "много", "мнозина", "мога", "могат", "може", "мокър", "моля", "момента", "му", "н", "на", "над", "назад", "най", "направи", "напред", "например", "нас", "не", "него", "нещо", "нея", "ни", "ние", "никой", "нито", "нищо", "но", "нов", "нова", "нови", "новина", "някои", "някой", "няколко", "няма", "обаче", "около", "освен", "особено", "от", "отгоре", "отново", "още", "пак", "по", "повече", "повечето", "под", "поне", "поради", "после", "почти", "прави", "пред", "преди", "през", "при", "пък", "първата", "първи", "първо", "пъти", "равен", "равна", "с", "са", "сам", "само", "се", "сега", "си", "син", "скоро", "след", "следващ", "сме", "смях", "според", "сред", "срещу", "сте", "съм", "със", "също", "т", "т.н.", "тази", "така", "такива", "такъв", "там", "твой", "те", "тези", "ти", "то", "това", "тогава", "този", "той", "толкова", "точно", "три", "трябва", "тук", "тъй", "тя", "тях", "у", "утре", "харесва", "хиляди", "ч", "часа", "че", "често", "чрез", "ще", "щом", "юмрук", "я", "як"]
|
|
7
7
|
CONTRACTIONS = {}
|
|
8
8
|
end
|
|
9
9
|
end
|
|
@@ -82,11 +82,7 @@ module PragmaticTokenizer
|
|
|
82
82
|
|
|
83
83
|
def downcase_tokens(tokens)
|
|
84
84
|
return tokens unless downcase
|
|
85
|
-
|
|
86
|
-
tokens.map { |t| t.downcase }
|
|
87
|
-
else
|
|
88
|
-
tokens.map { |t| Unicode::downcase(t) }
|
|
89
|
-
end
|
|
85
|
+
tokens.map { |t| Unicode::downcase(t) }
|
|
90
86
|
end
|
|
91
87
|
|
|
92
88
|
def remove_short_tokens(tokens)
|
|
@@ -100,7 +96,7 @@ module PragmaticTokenizer
|
|
|
100
96
|
|
|
101
97
|
def delete_roman_numerals(tokens)
|
|
102
98
|
return tokens unless remove_roman_numerals
|
|
103
|
-
tokens.delete_if { |t| PragmaticTokenizer::Languages::Common::ROMAN_NUMERALS.include?(t
|
|
99
|
+
tokens.delete_if { |t| PragmaticTokenizer::Languages::Common::ROMAN_NUMERALS.include?(Unicode::downcase(t)) || PragmaticTokenizer::Languages::Common::ROMAN_NUMERALS.include?("#{Unicode::downcase(t)}.") } if remove_roman_numerals
|
|
104
100
|
end
|
|
105
101
|
|
|
106
102
|
def cleaner(tokens)
|
|
@@ -133,23 +129,19 @@ module PragmaticTokenizer
|
|
|
133
129
|
def delete_stop_words(tokens)
|
|
134
130
|
return tokens unless remove_stop_words && language_module::STOP_WORDS
|
|
135
131
|
if downcase
|
|
136
|
-
|
|
137
|
-
tokens.map { |t| t.downcase } - language_module::STOP_WORDS
|
|
138
|
-
else
|
|
139
|
-
tokens.map { |t| Unicode::downcase(t) } - language_module::STOP_WORDS
|
|
140
|
-
end
|
|
132
|
+
tokens.map { |t| Unicode::downcase(t) } - language_module::STOP_WORDS
|
|
141
133
|
else
|
|
142
|
-
tokens.delete_if { |t| language_module::STOP_WORDS.include?(t
|
|
134
|
+
tokens.delete_if { |t| language_module::STOP_WORDS.include?(Unicode::downcase(t)) }
|
|
143
135
|
end
|
|
144
136
|
end
|
|
145
137
|
|
|
146
138
|
def find_contractions(tokens)
|
|
147
139
|
return tokens unless expand_contractions && language_module::CONTRACTIONS
|
|
148
140
|
if downcase
|
|
149
|
-
tokens.flat_map { |t| language_module::CONTRACTIONS.has_key?(t
|
|
141
|
+
tokens.flat_map { |t| language_module::CONTRACTIONS.has_key?(Unicode::downcase(t)) ? language_module::CONTRACTIONS[Unicode::downcase(t)].split(' ').flatten : t }
|
|
150
142
|
.flat_map { |t| t.include?("/") ? t.gsub!(/\//, '\1 \2').split(' ').flatten : t }
|
|
151
143
|
else
|
|
152
|
-
tokens.flat_map { |t| language_module::CONTRACTIONS.has_key?(t
|
|
144
|
+
tokens.flat_map { |t| language_module::CONTRACTIONS.has_key?(Unicode::downcase(t)) ? language_module::CONTRACTIONS[Unicode::downcase(t)].split(' ').each_with_index.map { |t, i| i.eql?(0) ? Unicode::capitalize(t) : t }.flatten : t }
|
|
153
145
|
.flat_map { |t| t.include?("/") ? t.gsub!(/\//, '\1 \2').split(' ').flatten : t }
|
|
154
146
|
end
|
|
155
147
|
end
|