pragmatic_tokenizer 3.0.3 → 3.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/README.md +1 -1
- data/lib/pragmatic_tokenizer/languages.rb +26 -26
- data/lib/pragmatic_tokenizer/languages/arabic.rb +2 -2
- data/lib/pragmatic_tokenizer/languages/bulgarian.rb +3 -3
- data/lib/pragmatic_tokenizer/languages/common.rb +14 -24
- data/lib/pragmatic_tokenizer/languages/czech.rb +2 -2
- data/lib/pragmatic_tokenizer/languages/danish.rb +2 -2
- data/lib/pragmatic_tokenizer/languages/deutsch.rb +3 -93
- data/lib/pragmatic_tokenizer/languages/dutch.rb +2 -2
- data/lib/pragmatic_tokenizer/languages/english.rb +11 -14
- data/lib/pragmatic_tokenizer/languages/finnish.rb +2 -2
- data/lib/pragmatic_tokenizer/languages/french.rb +36 -9
- data/lib/pragmatic_tokenizer/languages/greek.rb +2 -2
- data/lib/pragmatic_tokenizer/languages/indonesian.rb +2 -2
- data/lib/pragmatic_tokenizer/languages/italian.rb +1 -1
- data/lib/pragmatic_tokenizer/languages/norwegian.rb +2 -2
- data/lib/pragmatic_tokenizer/languages/persian.rb +2 -2
- data/lib/pragmatic_tokenizer/languages/polish.rb +2 -2
- data/lib/pragmatic_tokenizer/languages/portuguese.rb +1 -1
- data/lib/pragmatic_tokenizer/languages/romanian.rb +2 -2
- data/lib/pragmatic_tokenizer/languages/russian.rb +3 -3
- data/lib/pragmatic_tokenizer/languages/slovak.rb +2 -2
- data/lib/pragmatic_tokenizer/languages/swedish.rb +2 -2
- data/lib/pragmatic_tokenizer/languages/turkish.rb +2 -2
- data/lib/pragmatic_tokenizer/post_processor.rb +42 -88
- data/lib/pragmatic_tokenizer/pre_processor.rb +33 -142
- data/lib/pragmatic_tokenizer/regex.rb +149 -0
- data/lib/pragmatic_tokenizer/tokenizer.rb +82 -116
- data/lib/pragmatic_tokenizer/version.rb +1 -1
- data/pragmatic_tokenizer.gemspec +5 -6
- data/spec/languages/deutsch_spec.rb +1 -1
- data/spec/languages/english_spec.rb +52 -0
- data/spec/languages/french_spec.rb +2 -2
- data/spec/performance_spec.rb +1 -1
- data/spec/spec_helper.rb +1 -1
- metadata +8 -8
- data/lib/pragmatic_tokenizer/full_stop_separator.rb +0 -63
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 0feac0e3ed363c652e85fda4dd631b6f221da44af13ef9da24e9f0be5a0cdd38
|
4
|
+
data.tar.gz: adc17ceadcf5749c1c9d1abce01f28658511a9bd251e25dda2ccf333f32cd355
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 99bbf93e63cf667703c2c386e51592873f9c70fa20df823d15ef69cf3714fef98c48d2428d451ce9c1433c3b1d23c5a317a2ecf1fc5ed6f9be04a66c8d268773
|
7
|
+
data.tar.gz: ddb68cee3ea6cf0b4d2bbe581c99a37d1ecb34de5a2c0703073cc53b27d6520dbf6d9bdd811f0bfcb244120c91290040f269eefeb002c3440d8c9fa55a2d9671
|
data/README.md
CHANGED
@@ -103,7 +103,7 @@ options = {
|
|
103
103
|
|
104
104
|
##### `filter_languages`
|
105
105
|
**default** = `nil`
|
106
|
-
- You can pass an array of languages of which you would like to process abbreviations, stop words and contractions. This language can be indepedent of the language of the string you are tokenizing (for example your
|
106
|
+
- You can pass an array of languages of which you would like to process abbreviations, stop words and contractions. This language can be indepedent of the language of the string you are tokenizing (for example your text might be German but contain some English stop words that you want to remove). If you supply your own abbreviations, stop words or contractions they will be merged with the abbreviations, stop words and contractions of any languages you add in this option. You can pass an array of symbols or strings (i.e. `[:en, :de]` or `['en', 'de']`)
|
107
107
|
|
108
108
|
<hr>
|
109
109
|
|
@@ -28,32 +28,32 @@ require 'pragmatic_tokenizer/languages/turkish'
|
|
28
28
|
module PragmaticTokenizer
|
29
29
|
module Languages
|
30
30
|
LANGUAGE_CODES = {
|
31
|
-
:
|
32
|
-
:
|
33
|
-
:
|
34
|
-
:
|
35
|
-
:
|
36
|
-
:
|
37
|
-
:
|
38
|
-
:
|
39
|
-
:
|
40
|
-
:
|
41
|
-
:
|
42
|
-
:
|
43
|
-
:
|
44
|
-
:
|
45
|
-
:
|
46
|
-
:
|
47
|
-
:
|
48
|
-
:
|
49
|
-
:
|
50
|
-
:
|
51
|
-
:
|
52
|
-
:
|
53
|
-
:
|
54
|
-
:
|
55
|
-
:
|
56
|
-
:
|
31
|
+
en: English,
|
32
|
+
ar: Arabic,
|
33
|
+
bg: Bulgarian,
|
34
|
+
ca: Catalan,
|
35
|
+
cs: Czech,
|
36
|
+
da: Danish,
|
37
|
+
de: Deutsch,
|
38
|
+
el: Greek,
|
39
|
+
es: Spanish,
|
40
|
+
fa: Persian,
|
41
|
+
fi: Finnish,
|
42
|
+
fr: French,
|
43
|
+
id: Indonesian,
|
44
|
+
it: Italian,
|
45
|
+
lv: Latvian,
|
46
|
+
nl: Dutch,
|
47
|
+
nn: Norwegian,
|
48
|
+
nb: Norwegian,
|
49
|
+
no: Norwegian,
|
50
|
+
pl: Polish,
|
51
|
+
pt: Portuguese,
|
52
|
+
ro: Romanian,
|
53
|
+
ru: Russian,
|
54
|
+
sk: Slovak,
|
55
|
+
sv: Swedish,
|
56
|
+
tr: Turkish
|
57
57
|
}.freeze
|
58
58
|
|
59
59
|
def self.get_language_by_code(code)
|
@@ -3,8 +3,8 @@ module PragmaticTokenizer
|
|
3
3
|
module Arabic
|
4
4
|
include Languages::Common
|
5
5
|
ABBREVIATIONS = Set.new(['ا', 'ا. د', 'ا.د', 'ا.ش.ا', 'ا.ش.ا', 'إلخ', 'ت.ب', 'ت.ب', 'ج.ب', 'جم', 'ج.ب', 'ج.م.ع', 'ج.م.ع', 'س.ت', 'س.ت', 'سم', 'ص.ب.', 'ص.ب', 'كج.', 'كلم.', 'م', 'م.ب', 'م.ب', 'ه', 'د']).freeze
|
6
|
-
STOP_WORDS
|
7
|
-
CONTRACTIONS
|
6
|
+
STOP_WORDS = Set.new(%w[فى في كل لم لن له من هو هي قوة كما لها منذ وقد ولا نفسه لقاء مقابل هناك وقال وكان نهاية وقالت وكانت للامم فيه كلم لكن وفي وقف ولم ومن وهو وهي يوم فيها منها مليار لوكالة يكون يمكن مليون حيث اكد الا اما امس السابق التى التي اكثر ايار ايضا ثلاثة الذاتي الاخيرة الثاني الثانية الذى الذي الان امام ايام خلال حوالى الذين الاول الاولى بين ذلك دون حول حين الف الى انه اول ضمن انها جميع الماضي الوقت المقبل اليوم ـ ف و و6 قد لا ما مع مساء هذا واحد واضاف واضافت فان قبل قال كان لدى نحو هذه وان واكد كانت واوضح مايو ب ا أ ، عشر عدد عدة عشرة عدم عام عاما عن عند عندما على عليه عليها زيارة سنة سنوات تم ضد بعد بعض اعادة اعلنت بسبب حتى اذا احد اثر برس باسم غدا شخصا صباح اطار اربعة اخرى بان اجل غير بشكل حاليا بن به ثم اف ان او اي بها صفر فى]).freeze
|
7
|
+
CONTRACTIONS = {}.freeze
|
8
8
|
end
|
9
9
|
end
|
10
10
|
end
|
@@ -2,9 +2,9 @@ module PragmaticTokenizer
|
|
2
2
|
module Languages
|
3
3
|
module Bulgarian
|
4
4
|
include Languages::Common
|
5
|
-
ABBREVIATIONS = Set.new([
|
6
|
-
STOP_WORDS
|
7
|
-
CONTRACTIONS
|
5
|
+
ABBREVIATIONS = Set.new(%w[акад ал б.р б.ред бел.а бел.пр бр бул в вж вкл вм вр г ген гр дж дм доц др ем заб зам инж к.с кв кв.м кг км кор куб куб.м л лв м м.г мин млн млрд мм н.с напр пл полк проф р рис с св сек см сп срв ст стр т т.г т.е т.н т.нар табл тел у ул фиг ха хил ч чл щ.д]).freeze
|
6
|
+
STOP_WORDS = Set.new(%w[а автентичен аз ако ала бе без беше би бивш бивша бившо бил била били било благодаря близо бъдат бъде бяха в вас ваш ваша вероятно вече взема ви вие винаги внимава време все всеки всички всичко всяка във въпреки върху г г. ги главен главна главно глас го година години годишен д да дали два двама двамата две двете ден днес дни до добра добре добро добър докато докога дори досега доста друг друга други е евтин едва един една еднаква еднакви еднакъв едно екип ето живот за забавям зад заедно заради засега заспал затова защо защото и из или им има имат иска й каза как каква какво както какъв като кога когато което които кой който колко която къде където към лесен лесно ли лош м май малко ме между мек мен месец ми много мнозина мога могат може мокър моля момента му н на над назад най направи напред например нас не него нещо нея ни ние никой нито нищо но нов нова нови новина някои някой няколко няма обаче около освен особено от отгоре отново още пак по повече повечето под поне поради после почти прави пред преди през при пък първата първи първо пъти равен равна с са сам само се сега си син скоро след следващ сме смях според сред срещу сте съм със също т т.н. тази така такива такъв там твой те тези ти то това тогава този той толкова точно три трябва тук тъй тя тях у утре харесва хиляди ч часа че често чрез ще щом юмрук я як]).freeze
|
7
|
+
CONTRACTIONS = {}.freeze
|
8
8
|
end
|
9
9
|
end
|
10
10
|
end
|
@@ -1,36 +1,26 @@
|
|
1
1
|
module PragmaticTokenizer
|
2
2
|
module Languages
|
3
3
|
module Common
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
SPECIAL_CHARACTERS = Set.new(['®', '©', '™']).freeze
|
9
|
-
ABBREVIATIONS = Set.new([]).freeze
|
10
|
-
STOP_WORDS = Set.new([]).freeze
|
11
|
-
CONTRACTIONS = {}.freeze
|
12
|
-
EMOJI_REGEX = /[\u{203C}\u{2049}\u{20E3}\u{2122}\u{2139}\u{2194}-\u{2199}\u{21A9}-\u{21AA}\u{231A}-\u{231B}\u{23E9}-\u{23EC}\u{23F0}\u{23F3}\u{24C2}\u{25AA}-\u{25AB}\u{25B6}\u{25C0}\u{25FB}-\u{25FE}\u{2600}-\u{2601}\u{260E}\u{2611}\u{2614}-\u{2615}\u{261D}\u{263A}\u{2648}-\u{2653}\u{2660}\u{2663}\u{2665}-\u{2666}\u{2668}\u{267B}\u{267F}\u{2693}\u{26A0}-\u{26A1}\u{26AA}-\u{26AB}\u{26BD}-\u{26BE}\u{26C4}-\u{26C5}\u{26CE}\u{26D4}\u{26EA}\u{26F2}-\u{26F3}\u{26F5}\u{26FA}\u{26FD}\u{2702}\u{2705}\u{2708}-\u{270C}\u{270F}\u{2712}\u{2714}\u{2716}\u{2728}\u{2733}-\u{2734}\u{2747}\u{274C}\u{274E}\u{2753}-\u{2755}\u{2757}\u{2764}\u{2795}-\u{2797}\u{27A1}\u{27B0}\u{2934}-\u{2935}\u{2B05}-\u{2B07}\u{2B1B}-\u{2B1C}\u{2B50}\u{2B55}\u{3030}\u{303D}\u{3297}\u{3299}\u{1F004}\u{1F0CF}\u{1F170}-\u{1F171}\u{1F17E}-\u{1F17F}\u{1F18E}\u{1F191}-\u{1F19A}\u{1F1E7}-\u{1F1EC}\u{1F1EE}-\u{1F1F0}\u{1F1F3}\u{1F1F5}\u{1F1F7}-\u{1F1FA}\u{1F201}-\u{1F202}\u{1F21A}\u{1F22F}\u{1F232}-\u{1F23A}\u{1F250}-\u{1F251}\u{1F300}-\u{1F320}\u{1F330}-\u{1F335}\u{1F337}-\u{1F37C}\u{1F380}-\u{1F393}\u{1F3A0}-\u{1F3C4}\u{1F3C6}-\u{1F3CA}\u{1F3E0}-\u{1F3F0}\u{1F400}-\u{1F43E}\u{1F440}\u{1F442}-\u{1F4F7}\u{1F4F9}-\u{1F4FC}\u{1F500}-\u{1F507}\u{1F509}-\u{1F53D}\u{1F550}-\u{1F567}\u{1F5FB}-\u{1F640}\u{1F645}-\u{1F64F}\u{1F680}-\u{1F68A}\u{1F914}\u{1F644}]/
|
13
|
-
PREFIX_EMOJI_REGEX = /(?<=\S)(?=#{EMOJI_REGEX})/
|
14
|
-
POSTFIX_EMOJI_REGEX = /(?<=#{EMOJI_REGEX})(?=\S)/
|
15
|
-
EMOTICON_REGEX = /(?::|;|=)(?:-)?(?:\)|D|P)/
|
4
|
+
PUNCTUATION_MAP = { "。" => "♳", "." => "♴", "." => "♵", "!" => "♶", "!" => "♷", "?" => "♸", "?" => "♹", "、" => "♺", "¡" => "⚀", "¿" => "⚁", "„" => "⚂", "“" => "⚃", "[" => "⚄", "]" => "⚅", "\"" => "☇", "#" => "☈", "$" => "☉", "%" => "☊", "&" => "☋", "(" => "☌", ")" => "☍", "*" => "☠", "+" => "☢", "," => "☣", ":" => "☤", ";" => "☥", "<" => "☦", "=" => "☧", ">" => "☀", "@" => "☁", "^" => "☂", "_" => "☃", "`" => "☄", "'" => "☮", "{" => "♔", "|" => "♕", "}" => "♖", "~" => "♗", "-" => "♘", "«" => "♙", "»" => "♚", "”" => "⚘", "‘" => "⚭" }.freeze
|
5
|
+
ABBREVIATIONS = Set.new([]).freeze
|
6
|
+
STOP_WORDS = Set.new([]).freeze
|
7
|
+
CONTRACTIONS = {}.freeze
|
16
8
|
|
17
9
|
class SingleQuotes
|
18
10
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
11
|
+
ALNUM_QUOTE = /(\w|\D)'(?!')(?=\W|$)/
|
12
|
+
QUOTE_WORD = /(\W|^)'(?=\w)/
|
13
|
+
QUOTE_NOT_TWAS1 = /(\W|^)'(?!twas)/i
|
14
|
+
QUOTE_NOT_TWAS2 = /(\W|^)‘(?!twas)/i
|
23
15
|
|
16
|
+
# This 'special treatment' is actually relevant for many other tests. Alter core regular expressions!
|
24
17
|
def handle_single_quotes(text)
|
25
|
-
#
|
26
|
-
|
27
|
-
text.gsub!(
|
28
|
-
text.gsub!(REGEXP_LEFT_QUOTES3, ' ' << replacement)
|
29
|
-
text.gsub!(REGEXP_RIGHT_SIDE_QUOTES, "\\1 #{replacement} ")
|
30
|
-
|
31
|
-
replacement = PragmaticTokenizer::Languages::Common::PUNCTUATION_MAP["‘".freeze]
|
32
|
-
text.gsub!(REGEXP_LEFT_QUOTES2, "\\1 #{replacement} ")
|
18
|
+
# special treatment for "'twas"
|
19
|
+
text.gsub!(QUOTE_NOT_TWAS1, '\1 ' << PUNCTUATION_MAP["'".freeze] << ' ')
|
20
|
+
text.gsub!(QUOTE_NOT_TWAS2, '\1 ' << PUNCTUATION_MAP["‘".freeze] << ' ')
|
33
21
|
|
22
|
+
text.gsub!(QUOTE_WORD, ' ' << PUNCTUATION_MAP["'".freeze])
|
23
|
+
text.gsub!(ALNUM_QUOTE, '\1 ' << PUNCTUATION_MAP["'".freeze] << ' ')
|
34
24
|
text
|
35
25
|
end
|
36
26
|
|
@@ -3,8 +3,8 @@ module PragmaticTokenizer
|
|
3
3
|
module Czech
|
4
4
|
include Languages::Common
|
5
5
|
ABBREVIATIONS = Set.new([]).freeze
|
6
|
-
STOP_WORDS
|
7
|
-
CONTRACTIONS
|
6
|
+
STOP_WORDS = Set.new(%w[ačkoli ahoj ale anebo ano asi aspoň během bez beze blízko bohužel brzo bude budeme budeš budete budou budu byl byla byli bylo byly bys čau chce chceme chceš chcete chci chtějí chtít chut' chuti co čtrnáct čtyři dál dále daleko děkovat děkujeme děkuji den deset devatenáct devět do dobrý docela dva dvacet dvanáct dvě hodně já jak jde je jeden jedenáct jedna jedno jednou jedou jeho její jejich jemu jen jenom ještě jestli jestliže jí jich jím jimi jinak jsem jsi jsme jsou jste kam kde kdo kdy když ke kolik kromě která které kteří který kvůli má mají málo mám máme máš máte mé mě mezi mí mít mně mnou moc mohl mohou moje moji možná můj musí může my na nad nade nám námi naproti nás náš naše naši ne ně nebo nebyl nebyla nebyli nebyly něco nedělá nedělají nedělám neděláme neděláš neděláte nějak nejsi někde někdo nemají nemáme nemáte neměl němu není nestačí nevadí než nic nich ním nimi nula od ode on ona oni ono ony osm osmnáct pak patnáct pět po pořád potom pozdě před přes přese pro proč prosím prostě proti protože rovně se sedm sedmnáct šest šestnáct skoro smějí smí snad spolu sta sté sto ta tady tak takhle taky tam tamhle tamhleto tamto tě tebe tebou ted' tedy ten ti tisíc tisíce to tobě tohle toto třeba tři třináct trošku tvá tvé tvoje tvůj ty určitě už vám vámi vás váš vaše vaši ve večer vedle vlastně všechno všichni vůbec vy vždy za zač zatímco ze že aby aj ani az budem budes by byt ci clanek clanku clanky coz cz dalsi design dnes email ho jako jej jeji jeste ji jine jiz jses kdyz ktera ktere kteri kterou ktery ma mate mi mit muj muze nam napiste nas nasi nejsou neni nez nove novy pod podle pokud pouze prave pred pres pri proc proto protoze prvni pta re si strana sve svych svym svymi take takze tato tema tento teto tim timto tipy toho tohoto tom tomto tomuto tu tuto tyto uz vam vas vase vice vsak zda zde zpet zpravy a aniž až být což či článek článku články další i jenž jiné již jseš jšte k každý kteři ku me ná napište nechť ní nové nový o práve první přede při s sice své svůj svých svým svými také takže te těma této tím tímto u v více však všechen z zpět zprávy]).freeze
|
7
|
+
CONTRACTIONS = {}.freeze
|
8
8
|
end
|
9
9
|
end
|
10
10
|
end
|
@@ -3,8 +3,8 @@ module PragmaticTokenizer
|
|
3
3
|
module Danish
|
4
4
|
include Languages::Common
|
5
5
|
ABBREVIATIONS = Set.new([]).freeze
|
6
|
-
STOP_WORDS
|
7
|
-
CONTRACTIONS
|
6
|
+
STOP_WORDS = Set.new(%w[De I af aldrig alle altid bagved de der du efter eller en endnu et fjernt for foran fra få gennem god han her hos hovfor hun hurtig hvad hvem hvonår hvor hvordan hvorhen imod ja jeg langsom lidt mange med meget mellem mere mindre måske nede nej nok nu når og oppe på rask sammen temmelig til uden udenfor under ved vi]).freeze
|
7
|
+
CONTRACTIONS = {}.freeze
|
8
8
|
end
|
9
9
|
end
|
10
10
|
end
|
@@ -2,99 +2,9 @@ module PragmaticTokenizer
|
|
2
2
|
module Languages
|
3
3
|
module Deutsch
|
4
4
|
include Languages::Common
|
5
|
-
ABBREVIATIONS = Set.new([
|
6
|
-
|
7
|
-
|
8
|
-
'ca', 'co', 'd', 'd.d', 'd.h', 'd.r', 'dergl', 'dez', 'dgl', 'dr', 'dr ',
|
9
|
-
'dt', 'dzt', 'e', 'e.l', 'e.u', 'e.v', 'ehem', 'eig', 'etc', 'etc.p.p',
|
10
|
-
'eu', 'europ', 'ev', 'ev ', 'evtl', 'f', 'f.d', 'feat', 'feb', 'ff',
|
11
|
-
'fr', 'frz', 'ft', 'g', 'gg', 'ggf', 'ggü', 'griech', 'h', 'h.c', 'h.p',
|
12
|
-
'hon', 'hosp', 'hr', 'i', 'i.a', 'i.d', 'i.d.r', 'i.f', 'i.p', 'i.z',
|
13
|
-
'ii', 'iii', 'inkl', 'int', 'iv', 'ix', 'j', 'jan', 'jul', 'jun', 'k',
|
14
|
-
'k.a', 'k.i.z', 'k.o', 'k.u.k', 'kath ', 'l', 'l.a', 'lfd', 'lt', 'ltd',
|
15
|
-
'm', 'm.e', 'm.w', 'mag', 'max', 'me', 'med', 'mind', 'mio', 'mme', 'mr',
|
16
|
-
'mrd', 'mrs', 'ms', 'mwst', 'mär', 'n', 'nov', 'nr', 'o', 'o.k', 'o.ä',
|
17
|
-
'oct', 'okt', 'omg', 'oö', 'p', 'p.a', 'p.m', 'p.s', 'p.t', 'pol', 'pp',
|
18
|
-
'prof', 'präs', 'q', 'r', 'r.i.p', 'r.r', 'ranz', 'rd', 'rep', 'rt',
|
19
|
-
'russ', 's', 's.g', 'sen', 'sep', 'sog', 'st', 'std', 'str', 't', 'türk',
|
20
|
-
'u', 'u.a', 'u.a ', 'u.a.m', 'u.a.v', 'u.k', 'u.s', 'u.s.w', 'u.u',
|
21
|
-
'u.v.a', 'u.v.m', 'u.ä', 'ungar', 'usf', 'usw', 'uvm', 'v', 'v.a', 'v.d',
|
22
|
-
'v.m', 'vgl', 'vi', 'vii', 'viii', 'vs', 'w', 'wg', 'wr', 'x', 'xi',
|
23
|
-
'xii', 'xiii', 'xiv', 'xix', 'xv', 'xvi', 'xvii', 'xviii', 'xx', 'y',
|
24
|
-
'z', 'z.b', 'z.t', 'z.z', 'z.zt', 'zb', 'zt', 'zw', 'zzt', 'ä', 'ö',
|
25
|
-
'öffentl', 'öst', 'österr', 'ü']).freeze
|
26
|
-
STOP_WORDS = Set.new([
|
27
|
-
"a", "ab", "aber", "ach", "acht", "achte", "achten", "achter", "achtes",
|
28
|
-
"ag", "alle", "allein", "allem", "allen", "aller", "allerdings", "alles",
|
29
|
-
"allgemeinen", "als", "also", "am", "an", "andere", "anderen", "andern",
|
30
|
-
"anders", "au", "auch", "auf", "aus", "ausser", "ausserdem", "außer",
|
31
|
-
"außerdem", "b", "bald", "bei", "beide", "beiden", "beim", "beispiel",
|
32
|
-
"bekannt", "bereits", "besonders", "besser", "besten", "bin", "bis",
|
33
|
-
"bisher", "bist", "c", "d", "d.h", "da", "dabei", "dadurch", "dafür",
|
34
|
-
"dagegen", "daher", "dahin", "dahinter", "damals", "damit", "danach",
|
35
|
-
"daneben", "dank", "dann", "daran", "darauf", "daraus", "darf", "darfst",
|
36
|
-
"darin", "darum", "darunter", "darüber", "das", "dasein", "daselbst", "dass",
|
37
|
-
"dasselbe", "davon", "davor", "dazu", "dazwischen", "daß", "dein", "deine",
|
38
|
-
"deinem", "deiner", "dem", "dementsprechend", "demgegenüber", "demgemäss",
|
39
|
-
"demgemäß", "demselben", "demzufolge", "den", "denen", "denn", "denselben",
|
40
|
-
"der", "deren", "derjenige", "derjenigen", "dermassen", "dermaßen", "derselbe",
|
41
|
-
"derselben", "des", "deshalb", "desselben", "dessen", "deswegen", "dich", "die",
|
42
|
-
"diejenige", "diejenigen", "dies", "diese", "dieselbe", "dieselben", "diesem",
|
43
|
-
"diesen", "dieser", "dieses", "dir", "doch", "dort", "drei", "drin", "dritte",
|
44
|
-
"dritten", "dritter", "drittes", "du", "durch", "durchaus", "durfte", "durften",
|
45
|
-
"dürfen", "dürft", "e", "eben", "ebenso", "ehrlich", "ei", "ei,", "eigen",
|
46
|
-
"eigene", "eigenen", "eigener", "eigenes", "ein", "einander", "eine", "einem",
|
47
|
-
"einen", "einer", "eines", "einige", "einigen", "einiger", "einiges", "einmal",
|
48
|
-
"eins", "elf", "en", "ende", "endlich", "entweder", "er", "erst", "erste",
|
49
|
-
"ersten", "erster", "erstes", "es", "etwa", "etwas", "euch", "euer", "eure", "f",
|
50
|
-
"früher", "fünf", "fünfte", "fünften", "fünfter", "fünftes", "für", "g", "gab",
|
51
|
-
"ganz", "ganze", "ganzen", "ganzer", "ganzes", "gar", "gedurft", "gegen",
|
52
|
-
"gegenüber", "gehabt", "gehen", "geht", "gekannt", "gekonnt", "gemacht",
|
53
|
-
"gemocht", "gemusst", "genug", "gerade", "gern", "gesagt", "geschweige",
|
54
|
-
"gewesen", "gewollt", "geworden", "gibt", "ging", "gleich", "gott", "gross",
|
55
|
-
"grosse", "grossen", "grosser", "grosses", "groß", "große", "großen", "großer",
|
56
|
-
"großes", "gut", "gute", "guter", "gutes", "h", "habe", "haben", "habt", "hast",
|
57
|
-
"hat", "hatte", "hatten", "hattest", "hattet", "heisst", "her", "heute", "hier",
|
58
|
-
"hin", "hinter", "hoch", "hätte", "hätten", "i", "ich", "ihm", "ihn", "ihnen",
|
59
|
-
"ihr", "ihre", "ihrem", "ihren", "ihrer", "ihres", "im", "immer", "in", "indem",
|
60
|
-
"infolgedessen", "ins", "irgend", "ist", "j", "ja", "jahr", "jahre", "jahren",
|
61
|
-
"je", "jede", "jedem", "jeden", "jeder", "jedermann", "jedermanns", "jedes",
|
62
|
-
"jedoch", "jemand", "jemandem", "jemanden", "jene", "jenem", "jenen", "jener",
|
63
|
-
"jenes", "jetzt", "k", "kam", "kann", "kannst", "kaum", "kein", "keine", "keinem",
|
64
|
-
"keinen", "keiner", "kleine", "kleinen", "kleiner", "kleines", "km", "kommen",
|
65
|
-
"kommt", "konnte", "konnten", "kurz", "können", "könnt", "könnte", "l", "lang",
|
66
|
-
"lange", "leicht", "leide", "lieber", "los", "m", "machen", "macht", "machte",
|
67
|
-
"mag", "magst", "mahn", "man", "manche", "manchem", "manchen", "mancher", "manches",
|
68
|
-
"mann", "mehr", "mein", "meine", "meinem", "meinen", "meiner", "meines", "mensch",
|
69
|
-
"menschen", "mich", "mir", "mit", "mittel", "mochte", "mochten", "morgen", "muss",
|
70
|
-
"musst", "musste", "mussten", "muß", "mußt", "möchte", "mögen", "möglich", "mögt",
|
71
|
-
"müssen", "müsst", "müßt", "n", "na", "nach", "nachdem", "nahm", "natürlich",
|
72
|
-
"neben", "nein", "neue", "neuen", "neun", "neunte", "neunten", "neunter", "neuntes",
|
73
|
-
"nicht", "nichts", "nie", "niemand", "niemandem", "niemanden", "noch", "nun", "nur",
|
74
|
-
"o", "ob", "oben", "oder", "offen", "oft", "ohne", "p", "q", "r", "recht", "rechte",
|
75
|
-
"rechten", "rechter", "rechtes", "richtig", "rund", "s", "sa", "sache", "sagt",
|
76
|
-
"sagte", "sah", "satt", "schlecht", "schon", "sechs", "sechste", "sechsten",
|
77
|
-
"sechster", "sechstes", "sehr", "sei", "seid", "seien", "sein", "seine", "seinem",
|
78
|
-
"seinen", "seiner", "seines", "seit", "seitdem", "selbst", "sich", "sie", "sieben",
|
79
|
-
"siebente", "siebenten", "siebenter", "siebentes", "sind", "so", "solang", "solche",
|
80
|
-
"solchem", "solchen", "solcher", "solches", "soll", "sollen", "sollst", "sollt",
|
81
|
-
"sollte", "sollten", "sondern", "sonst", "soweit", "sowie", "später", "statt", "t",
|
82
|
-
"tag", "tage", "tagen", "tat", "teil", "tel", "tritt", "trotzdem", "tun", "u",
|
83
|
-
"uhr", "um", "und", "und?", "uns", "unser", "unsere", "unserer", "unter", "v",
|
84
|
-
"vergangenen", "viel", "viele", "vielem", "vielen", "vielleicht", "vier", "vierte",
|
85
|
-
"vierten", "vierter", "viertes", "vom", "von", "vor", "w", "wahr?", "wann", "war",
|
86
|
-
"waren", "wart", "warum", "was", "wegen", "weil", "weit", "weiter", "weitere",
|
87
|
-
"weiteren", "weiteres", "welche", "welchem", "welchen", "welcher", "welches", "wem",
|
88
|
-
"wen", "wenig", "wenige", "weniger", "weniges", "wenigstens", "wenn", "wer", "werde",
|
89
|
-
"werden", "werdet", "weshalb", "wessen", "wie", "wieder", "wieso", "will", "willst",
|
90
|
-
"wir", "wird", "wirklich", "wirst", "wo", "woher", "wohin", "wohl", "wollen", "wollt",
|
91
|
-
"wollte", "wollten", "worden", "wurde", "wurden", "während", "währenddem",
|
92
|
-
"währenddessen", "wäre", "würde", "würden", "x", "y", "z", "z.b", "zehn", "zehnte",
|
93
|
-
"zehnten", "zehnter", "zehntes", "zeit", "zu", "zuerst", "zugleich", "zum",
|
94
|
-
"zunächst", "zur", "zurück", "zusammen", "zwanzig", "zwar", "zwei", "zweite",
|
95
|
-
"zweiten", "zweiter", "zweites", "zwischen", "zwölf", "über", "überhaupt",
|
96
|
-
"übrigens"]).freeze
|
97
|
-
CONTRACTIONS = {
|
5
|
+
ABBREVIATIONS = Set.new(%w[a a.d a.k.a a.s.a.p abg alt apr art aug b b.a b.s best bgm bldg btw buchst bzgl bzw c ca co d d.d d.h d.r dergl dez dgl dr dr dt dzt e e.l e.u e.v ehem eig etc etc.p.p eu europ ev ev evtl f f.d feat feb ff fr frz ft g gg ggf ggü griech h h.c h.p hon hosp hr i i.a i.d i.d.r i.f i.p i.z ii iii inkl int iv ix j jan jul jun k k.a k.i.z k.o k.u.k kath l l.a lfd lt ltd m m.e m.w mag max me med mind mio mme mr mrd mrs ms mwst mär n nov nr o o.k o.ä oct okt omg oö p p.a p.m p.s p.t pol pp prof präs q r r.i.p r.r ranz rd rep rt russ s s.g sen sep sog st std str t türk u u.a u.a u.a.m u.a.v u.k u.s u.s.w u.u u.v.a u.v.m u.ä ungar usf usw uvm v v.a v.d v.m vgl vi vii viii vs w wg wr x xi xii xiii xiv xix xv xvi xvii xviii xx y z z.b z.t z.z z.zt zb zt zw zzt ä ö öffentl öst österr ü]).freeze
|
6
|
+
STOP_WORDS = Set.new(%w[a ab aber ach acht achte achten achter achtes ag alle allein allem allen aller allerdings alles allgemeinen als also am an andere anderen andern anders au auch auf aus ausser ausserdem außer außerdem b bald bei beide beiden beim beispiel bekannt bereits besonders besser besten bin bis bisher bist c d d.h da dabei dadurch dafür dagegen daher dahin dahinter damals damit danach daneben dank dann daran darauf daraus darf darfst darin darum darunter darüber das dasein daselbst dass dasselbe davon davor dazu dazwischen daß dein deine deinem deiner dem dementsprechend demgegenüber demgemäss demgemäß demselben demzufolge den denen denn denselben der deren derjenige derjenigen dermassen dermaßen derselbe derselben des deshalb desselben dessen deswegen dich die diejenige diejenigen dies diese dieselbe dieselben diesem diesen dieser dieses dir doch dort drei drin dritte dritten dritter drittes du durch durchaus durfte durften dürfen dürft e eben ebenso ehrlich ei ei eigen eigene eigenen eigener eigenes ein einander eine einem einen einer eines einige einigen einiger einiges einmal eins elf en ende endlich entweder er erst erste ersten erster erstes es etwa etwas euch euer eure f früher fünf fünfte fünften fünfter fünftes für g gab ganz ganze ganzen ganzer ganzes gar gedurft gegen gegenüber gehabt gehen geht gekannt gekonnt gemacht gemocht gemusst genug gerade gern gesagt geschweige gewesen gewollt geworden gibt ging gleich gott gross grosse grossen grosser grosses groß große großen großer großes gut gute guter gutes h habe haben habt hast hat hatte hatten hattest hattet heisst her heute hier hin hinter hoch hätte hätten i ich ihm ihn ihnen ihr ihre ihrem ihren ihrer ihres im immer in indem infolgedessen ins irgend ist j ja jahr jahre jahren je jede jedem jeden jeder jedermann jedermanns jedes jedoch jemand jemandem jemanden jene jenem jenen jener jenes jetzt k kam kann kannst kaum kein keine keinem keinen keiner kleine kleinen kleiner kleines km kommen kommt konnte konnten kurz können könnt könnte l lang lange leicht leide lieber los m machen macht machte mag magst mahn man manche manchem manchen mancher manches mann mehr mein meine meinem meinen meiner meines mensch menschen mich mir mit mittel mochte mochten morgen muss musst musste mussten muß mußt möchte mögen möglich mögt müssen müsst müßt n na nach nachdem nahm natürlich neben nein neue neuen neun neunte neunten neunter neuntes nicht nichts nie niemand niemandem niemanden noch nun nur o ob oben oder offen oft ohne p q r recht rechte rechten rechter rechtes richtig rund s sa sache sagt sagte sah satt schlecht schon sechs sechste sechsten sechster sechstes sehr sei seid seien sein seine seinem seinen seiner seines seit seitdem selbst sich sie sieben siebente siebenten siebenter siebentes sind so solang solche solchem solchen solcher solches soll sollen sollst sollt sollte sollten sondern sonst soweit sowie später statt t tag tage tagen tat teil tel tritt trotzdem tun u uhr um und und? uns unser unsere unserer unter v vergangenen viel viele vielem vielen vielleicht vier vierte vierten vierter viertes vom von vor w wahr? wann war waren wart warum was wegen weil weit weiter weitere weiteren weiteres welche welchem welchen welcher welches wem wen wenig wenige weniger weniges wenigstens wenn wer werde werden werdet weshalb wessen wie wieder wieso will willst wir wird wirklich wirst wo woher wohin wohl wollen wollt wollte wollten worden wurde wurden während währenddem währenddessen wäre würde würden x y z z.b zehn zehnte zehnten zehnter zehntes zeit zu zuerst zugleich zum zunächst zur zurück zusammen zwanzig zwar zwei zweite zweiten zweiter zweites zwischen zwölf über überhaupt übrigens]).freeze
|
7
|
+
CONTRACTIONS = {
|
98
8
|
"auf's" => "auf das",
|
99
9
|
"can't" => "cannot",
|
100
10
|
"don't" => "do not",
|
@@ -3,8 +3,8 @@ module PragmaticTokenizer
|
|
3
3
|
module Dutch
|
4
4
|
include Languages::Common
|
5
5
|
ABBREVIATIONS = Set.new([]).freeze
|
6
|
-
STOP_WORDS
|
7
|
-
CONTRACTIONS
|
6
|
+
STOP_WORDS = Set.new(%w[aan af al als bij dan dat die dit een en er had heb hem het hij hoe hun ik in is je kan me men met mij nog nu of ons ook te tot uit van was wat we wel wij zal ze zei zij zo zou aan aangaande aangezien achter achterna afgelopen aldaar aldus alhoewel alias alle allebei alleen alsnog altijd altoos ander andere anders anderszins behalve behoudens beide beiden ben beneden bent bepaald betreffende binnen binnenin boven bovenal bovendien bovengenoemd bovenstaand bovenvermeld buiten daar daarheen daarin daarna daarnet daarom daarop daarvanlangs de dikwijls door doorgaand dus echter eer eerdat eerder eerlang eerst elk elke enig enigszins enkel erdoor even eveneens evenwel gauw gedurende geen gehad gekund geleden gelijk gemoeten gemogen geweest gewoon gewoonweg haar hadden hare hebben hebt heeft hen hierbeneden hierboven hoewel hunne ikzelf inmiddels inzake jezelf jij jijzelf jou jouw jouwe juist jullie klaar kon konden krachtens kunnen kunt later liever maar mag meer mezelf mijn mijnent mijner mijzelf misschien mocht mochten moest moesten moet moeten mogen na naar nadat net niet noch nogal ofschoon om omdat omhoog omlaag omstreeks omtrent omver onder ondertussen ongeveer onszelf onze op opnieuw opzij over overeind overigens pas precies reeds rond rondom sedert sinds sindsdien slechts sommige spoedig steeds tamelijk tenzij terwijl thans tijdens toch toen toenmaals toenmalig totdat tussen uitgezonderd vaakwat vandaan vanuit vanwege veeleer verder vervolgens vol volgens voor vooraf vooral vooralsnog voorbij voordat voordezen voordien voorheen voorop vooruit vrij vroeg waar waarom wanneer want waren weer weg wegens weldra welk welke wie wiens wier wijzelf zelfs zichzelf zijn zijne zodra zonder zouden zowat zulke zullen zult worden wordt deze]).freeze
|
7
|
+
CONTRACTIONS = {}.freeze
|
8
8
|
end
|
9
9
|
end
|
10
10
|
end
|
@@ -2,8 +2,8 @@ module PragmaticTokenizer
|
|
2
2
|
module Languages
|
3
3
|
module English
|
4
4
|
include Languages::Common
|
5
|
-
ABBREVIATIONS = Set.new([
|
6
|
-
STOP_WORDS
|
5
|
+
ABBREVIATIONS = Set.new(%w[adj adm adv al ala alta apr arc ariz ark art assn asst attys aug ave bart bld bldg blvd brig bros btw cal calif capt cl cmdr co col colo comdr con conn corp cpl cres ct d.phil dak dec del dept det dist dr dr.phil dr.philos drs e.g ens esp esq etc exp expy ext feb fed fla ft fwy fy ga gen gov hon hosp hr hway hwy i.e i.b.m ia id ida ill inc ind ing insp jan jr jul jun kan kans ken ky la lt ltd maj man mar mass may md me med messrs mex mfg mich min minn miss mlle mm mme mo mont mr mrs ms msgr mssrs mt mtn neb nebr nev no nos nov nr oct ok okla ont op ord ore p pa pd pde penn penna pfc ph ph.d pl plz pp prof pvt que rd ref rep reps res rev rt sask sec sen sens sep sept sfc sgt sr st supt surg tce tenn tex u.s u.s.a univ usafa ut v va ver vs vt wash wis wisc wy wyo yuk]).freeze
|
6
|
+
STOP_WORDS = Set.new(%w[i.e. e.g. &#;f 'll 've +// -/+ </li> </p> </td> <br <br/> <br/><br/> <li> <p> <sup></sup> <sup></sup></li> <td <td> a a's able about above abroad abst accordance according accordingly across act actually added adj adopted affected affecting affects after afterwards again against ago ah ahead ain't all allow allows almost alone along alongside already also although always am amid amidst among amongst amoungst amount an and announce another any anybody anyhow anymore anyone anything anyway anyways anywhere apart apparently appear appreciate appropriate approximately are aren aren't arent arise around as aside ask asking associated at auth available away awfully b back backward backwards be became because become becomes becoming been before beforehand begin beginning beginnings begins behind being believe below beside besides best better between beyond bill biol both bottom brief briefly but by c c'mon c's ca call came can can't cannot cant caption cause causes certain certainly changes class= clearly co co. com come comes computer con concerning consequently consider considering contain containing contains corresponding could couldn't couldnt course cry currently d dare daren't date de definitely describe described despite detail did didn't different directly do does doesn't doing don't done down downwards due during e each ed edu effect eg eight eighty either eleven else elsewhere empty end ending enough entirely especially et et-al etc even ever evermore every everybody everyone everything everywhere ex exactly example except f fairly far farther few fewer ff fifteen fifth fify fill find fire first five fix followed following follows for forever former formerly forth forty forward found four from front full further furthermore g gave get gets getting give given gives giving go goes going gone got gotten greetings h had hadn't half happens hardly has hasn't hasnt have haven't having he he'd he'll he's hed hello help hence her here here's hereafter hereby herein heres hereupon hers herself hes hi hid him himself his hither home hopefully how how's howbeit however http https hundred i i'd i'll i'm i've id ie if ignored im immediate immediately importance important in inasmuch inc inc. indeed index indicate indicated indicates information ing inner inside insofar instead interest into invention inward is isn't it it'd it'll it's itd its itself j just k keep keeps kept keys kg km know known knows l largely last lately later latter latterly least less lest let let's lets like liked likely likewise line little look looking looks low lower ltd m made mainly make makes many may maybe mayn't me mean means meantime meanwhile merely mg might mightn't mill million mine minus miss ml more moreover most mostly move mr mrs much mug must mustn't my myself n na name namely nay nd near nearly necessarily necessary need needn't needs neither never neverf neverless nevertheless new next nine ninety no no-one nobody non none nonetheless noone nor normally nos not noted nothing notwithstanding novel now nowhere o obtain obtained obviously of off often oh ok okay old omitted on once one one's ones only onto opposite or ord other others otherwise ought oughtn't our ours ours ourselves out outside over overall owing own p page pages part particular particularly past per perhaps placed please plus poorly possible possibly potentially pp predominantly present presumably previously primarily probably promptly proud provided provides put q que quickly quite qv r ran rather rd re readily really reasonably recent recently ref refs regarding regardless regards related relatively research respectively resulted resulting results right round run s said same saw say saying says sec second secondly section see seeing seem seemed seeming seems seen self selves sensible sent serious seriously seven several shall shan't she she'd she'll she's shed shes should shouldn't show showed shown showns shows side significant significantly similar similarly since sincere six sixty slightly so some somebody someday somehow someone somethan something sometime sometimes somewhat somewhere soon sorry specifically specified specify specifying state states still stop strongly sub substantially successfully such sufficiently suggest sup sure system t t's take taken taking tell ten tends th than thank thanks thanx that that'll that's that've thats the their theirs them themselves then thence there there'd there'll there're there's there've thereafter thereby thered therefore therein thereof therere theres thereto thereupon these they they'd they'll they're they've theyd theyre thick thin thing things think third thirty this thorough thoroughly those thou though thoughh thousand three throug through throughout thru thus til till tip to together too took top toward towards tried tries truly try trying ts twelve twenty twice two u un under underneath undoing unfortunately unless unlike unlikely until unto up upon ups upwards us use used useful usefully usefulness uses using usually uucp v value various versus very via viz vol vols vs w want wants was wasn't way we we'd we'll we're we've wed welcome well went were weren't what what'll what's what're what've whatever whats when when's whence whenever where where's whereafter whereas whereby wherein wheres whereupon wherever whether which whichever while whilst whim whither who who'd who'll who's whod whoever whole whom whomever whos whose why why's widely will willing wish with within without won't wonder word words world would wouldn't www x y yes yet you you'd you'll you're you've youd your youre yours yourself yourselves z zero]).freeze
|
7
7
|
# N.B. Some English contractions are ambigous (i.e. "she's" can mean "she has" or "she is").
|
8
8
|
# Pragmatic Tokenizer will return the most frequently appearing expanded contraction. Regardless, this should
|
9
9
|
# be rather insignificant as in most cases one is probably removing stop words.
|
@@ -98,21 +98,18 @@ module PragmaticTokenizer
|
|
98
98
|
|
99
99
|
class SingleQuotes
|
100
100
|
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
101
|
+
ALNUM_QUOTE = /(\w|\D)'(?!')(?=\W|$)/
|
102
|
+
QUOTE_WORD = /(\W|^)'(?=\w)/
|
103
|
+
QUOTE_NOT_TWAS1 = /(\W|^)'(?!twas)/i
|
104
|
+
QUOTE_NOT_TWAS2 = /(\W|^)‘(?!twas)/i
|
105
105
|
|
106
106
|
def handle_single_quotes(text)
|
107
|
-
#
|
108
|
-
|
109
|
-
text.gsub!(
|
110
|
-
text.gsub!(REGEXP_LEFT_QUOTES3, ' ' << replacement)
|
111
|
-
text.gsub!(REGEXP_RIGHT_SIDE_QUOTES, "\\1 #{replacement} ")
|
112
|
-
|
113
|
-
replacement = PragmaticTokenizer::Languages::Common::PUNCTUATION_MAP["‘".freeze]
|
114
|
-
text.gsub!(REGEXP_LEFT_QUOTES2, "\\1 #{replacement} ")
|
107
|
+
# special treatment for "'twas"
|
108
|
+
text.gsub!(QUOTE_NOT_TWAS1, '\1 ' << PragmaticTokenizer::Languages::Common::PUNCTUATION_MAP["'".freeze] << ' ')
|
109
|
+
text.gsub!(QUOTE_NOT_TWAS2, '\1 ' << PragmaticTokenizer::Languages::Common::PUNCTUATION_MAP["‘".freeze] << ' ')
|
115
110
|
|
111
|
+
text.gsub!(QUOTE_WORD, ' ' << PragmaticTokenizer::Languages::Common::PUNCTUATION_MAP["'".freeze])
|
112
|
+
text.gsub!(ALNUM_QUOTE, '\1 ' << PragmaticTokenizer::Languages::Common::PUNCTUATION_MAP["'".freeze] << ' ')
|
116
113
|
text
|
117
114
|
end
|
118
115
|
|
@@ -3,8 +3,8 @@ module PragmaticTokenizer
|
|
3
3
|
module Finnish
|
4
4
|
include Languages::Common
|
5
5
|
ABBREVIATIONS = Set.new([]).freeze
|
6
|
-
STOP_WORDS
|
7
|
-
CONTRACTIONS
|
6
|
+
STOP_WORDS = Set.new(%w[aiemmin aika aikaa aikaan aikaisemmin aikaisin aikajen aikana aikoina aikoo aikovat aina ainakaan ainakin ainoa ainoat aiomme aion aiotte aist aivan ajan älä alas alemmas älköön alkuisin alkuun alla alle aloitamme aloitan aloitat aloitatte aloitattivat aloitettava aloitettevaksi aloitettu aloitimme aloitin aloitit aloititte aloittaa aloittamatta aloitti aloittivat alta aluksi alussa alusta annettavaksi annetteva annettu antaa antamatta antoi aoua apu asia asiaa asian asiasta asiat asioiden asioihin asioita asti avuksi avulla avun avutta edellä edelle edelleen edeltä edemmäs edes edessä edestä ehkä ei eikä eilen eivät eli ellei elleivät ellemme ellen ellet ellette emme en enää enemmän eniten ennen ensi ensimmäinen ensimmäiseksi ensimmäisen ensimmäisenä ensimmäiset ensimmäisiä ensimmäisiksi ensimmäisinä ensimmäistä ensin entinen entisen entisiä entistä entisten eräät eräiden eräs eri erittäin erityisesti esi esiin esillä esimerkiksi et eteen etenkin että ette ettei halua haluaa haluamatta haluamme haluan haluat haluatte haluavat halunnut halusi halusimme halusin halusit halusitte halusivat halutessa haluton hän häneen hänellä hänelle häneltä hänen hänessä hänestä hänet he hei heidän heihin heille heiltä heissä heistä heitä helposti heti hetkellä hieman huolimatta huomenna hyvä hyvää hyvät hyviä hyvien hyviin hyviksi hyville hyviltä hyvin hyvinä hyvissä hyvistä ihan ilman ilmeisesti itse itseään itsensä ja jää jälkeen jälleen jo johon joiden joihin joiksi joilla joille joilta joissa joista joita joka jokainen jokin joko joku jolla jolle jolloin jolta jompikumpi jonka jonkin jonne joo jopa jos joskus jossa josta jota jotain joten jotenkin jotenkuten jotka jotta jouduimme jouduin jouduit jouduitte joudumme joudun joudutte joukkoon joukossa joukosta joutua joutui joutuivat joutumaan joutuu joutuvat juuri kahdeksan kahdeksannen kahdella kahdelle kahdelta kahden kahdessa kahdesta kahta kahteen kai kaiken kaikille kaikilta kaikkea kaikki kaikkia kaikkiaan kaikkialla kaikkialle kaikkialta kaikkien kaikkin kaksi kannalta kannattaa kanssa kanssaan kanssamme kanssani kanssanne kanssasi kauan kauemmas kautta kehen keiden keihin keiksi keillä keille keiltä keinä keissä keistä keitä keittä keitten keneen keneksi kenellä kenelle keneltä kenen kenenä kenessä kenestä kenet kenettä kennessästä kerran kerta kertaa kesken keskimäärin ketä ketkä kiitos kohti koko kokonaan kolmas kolme kolmen kolmesti koska koskaan kovin kuin kuinka kuitenkaan kuitenkin kuka kukaan kukin kumpainen kumpainenkaan kumpi kumpikaan kumpikin kun kuten kuuden kuusi kuutta kyllä kymmenen kyse lähekkäin lähellä lähelle läheltä lähemmäs lähes lähinnä lähtien läpi liian liki lisää lisäksi luo mahdollisimman mahdollista me meidän meillä meille melkein melko menee meneet menemme menen menet menette menevät meni menimme menin menit menivät mennessä mennyt menossa mihin mikä mikään mikäli mikin miksi milloin minä minne minun minut missä mistä mitä mitään miten moi molemmat mones monesti monet moni moniaalla moniaalle moniaalta monta muassa muiden muita muka mukaan mukaansa mukana mutta muu muualla muualle muualta muuanne muulloin muun muut muuta muutama muutaman muuten myöhemmin myös myöskään myöskin myötä näiden näin näissä näissähin näissälle näissältä näissästä näitä nämä ne neljä neljää neljän niiden niin niistä niitä noin nopeammin nopeasti nopeiten nro nuo nyt ohi oikein ole olemme olen olet olette oleva olevan olevat oli olimme olin olisi olisimme olisin olisit olisitte olisivat olit olitte olivat olla olleet olli ollut oma omaa omaan omaksi omalle omalta oman omassa omat omia omien omiin omiksi omille omilta omissa omista on onkin onko ovat päälle paikoittain paitsi pakosti paljon paremmin parempi parhaillaan parhaiten peräti perusteella pian pieneen pieneksi pienellä pienelle pieneltä pienempi pienestä pieni pienin puolesta puolestaan runsaasti saakka sadam sama samaa samaan samalla samallalta samallassa samallasta saman samat samoin sata sataa satojen se seitsemän sekä sen seuraavat siellä sieltä siihen siinä siis siitä sijaan siksi sillä silloin silti sinä sinne sinua sinulle sinulta sinun sinussa sinusta sinut sisäkkäin sisällä sitä siten sitten suoraan suuntaan suuren suuret suuri suuria suurin suurten taa täällä täältä taas taemmas tähän tahansa tai takaa takaisin takana takia tällä tällöin tämä tämän tänä tänään tänne tapauksessa tässä tästä tätä täten tavalla tavoitteena täysin täytyvät täytyy te tietysti todella toinen toisaalla toisaalle toisaalta toiseen toiseksi toisella toiselle toiselta toisemme toisen toisensa toisessa toisesta toista toistaiseksi toki tosin tuhannen tuhat tule tulee tulemme tulen tulet tulette tulevat tulimme tulin tulisi tulisimme tulisin tulisit tulisitte tulisivat tulit tulitte tulivat tulla tulleet tullut tuntuu tuo tuolla tuolloin tuolta tuonne tuskin tykö usea useasti useimmiten usein useita uudeksi uudelleen uuden uudet uusi uusia uusien uusinta uuteen uutta vaan vähän vähemmän vähintään vähiten vai vaiheessa vaikea vaikean vaikeat vaikeilla vaikeille vaikeilta vaikeissa vaikeista vaikka vain välillä varmasti varsin varsinkin varten vasta vastaan vastakkain verran vielä vierekkäin vieri viiden viime viimeinen viimeisen viimeksi viisi voi voidaan voimme voin voisi voit voitte voivat vuoden vuoksi vuosi vuosien vuosina vuotta yhä yhdeksän yhden yhdessä yhtä yhtäällä yhtäälle yhtäältä yhtään yhteen yhteensä yhteydessä yhteyteen yksi yksin yksittäin yleensä ylemmäs yli ylös ympäri]).freeze
|
7
|
+
CONTRACTIONS = {}.freeze
|
8
8
|
end
|
9
9
|
end
|
10
10
|
end
|
@@ -2,21 +2,48 @@ module PragmaticTokenizer
|
|
2
2
|
module Languages
|
3
3
|
module French
|
4
4
|
include Languages::Common
|
5
|
-
ABBREVIATIONS = Set.new([
|
6
|
-
STOP_WORDS
|
7
|
-
CONTRACTIONS
|
5
|
+
ABBREVIATIONS = Set.new(%w[a.c.n a.m al ann apr art auj av b.p boul c.-à-d c.n c.n.s c.p.i c.q.f.d c.s ca cf ch.-l chap co contr dir e.g e.v env etc ex fasc fig fr fém hab i.e ibid id inf l.d lib ll.aa ll.aa.ii ll.aa.rr ll.aa.ss ll.ee ll.mm ll.mm.ii.rr loc.cit ltd masc mm ms n.b n.d n.d.a n.d.l.r n.d.t n.p.a.i n.s n/réf nn.ss p.c.c p.ex p.j p.s pl pp r.-v r.a.s r.i.p r.p s.a s.a.i s.a.r s.a.s s.e s.m s.m.i.r s.s sec sect sing sq sqq ss suiv sup suppl t.s.v.p tél vb vol vs x.o z.i éd]).freeze
|
6
|
+
STOP_WORDS = Set.new(%w[a à â abord afin ah ai aie ainsi allaient allo allô allons après assez attendu au aucun aucune aujourd aujourd'hui auquel aura auront aussi autre autres aux auxquelles auxquels avaient avais avait avant avec avoir ayant b bah beaucoup bien bigre boum bravo brrr c ça car ce ceci cela celle celle-ci celle-là celles celles-ci celles-là celui celui-ci celui-là cent cependant certain certaine certaines certains certes ces cet cette ceux ceux-ci ceux-là chacun chaque cher chère chères chers chez chiche chut ci cinq cinquantaine cinquante cinquantième cinquième clac clic combien comme comment compris concernant contre couic crac d da dans de debout dedans dehors delà depuis derrière des dès désormais desquelles desquels dessous dessus deux deuxième deuxièmement devant devers devra différent différente différentes différents dire divers diverse diverses dix dix-huit dixième dix-neuf dix-sept doit doivent donc dont douze douzième dring du duquel durant e effet eh elle elle-même elles elles-mêmes en encore entre envers environ es ès est et etant étaient étais était étant etc été etre être eu euh eux eux-mêmes excepté f façon fais faisaient faisant fait feront fi flac floc font g gens h ha hé hein hélas hem hep hi ho holà hop hormis hors hou houp hue hui huit huitième hum hurrah i il ils importe j je jusqu jusque k l la là laquelle las le lequel les lès lesquelles lesquels leur leurs longtemps lorsque lui lui-même m ma maint mais malgré me même mêmes merci mes mien mienne miennes miens mille mince moi moi-même moins mon moyennant n na ne néanmoins neuf neuvième ni nombreuses nombreux non nos notre nôtre nôtres nous nous-mêmes nul o o| ô oh ohé olé ollé on ont onze onzième ore ou où ouf ouias oust ouste outre p paf pan par parmi partant particulier particulière particulièrement pas passé pendant personne peu peut peuvent peux pff pfft pfut pif plein plouf plus plusieurs plutôt pouah pour pourquoi premier première premièrement près proche psitt puisque q qu quand quant quanta quant-à-soi quarante quatorze quatre quatre-vingt quatrième quatrièmement que quel quelconque quelle quelles quelque quelques quelqu'un quels qui quiconque quinze quoi quoique r revoici revoilà rien s sa sacrebleu sans sapristi sauf se seize selon sept septième sera seront ses si sien sienne siennes siens sinon six sixième soi soi-même soit soixante son sont sous stop suis suivant sur surtout t ta tac tant te té tel telle tellement telles tels tenant tes tic tien tienne tiennes tiens toc toi toi-même ton touchant toujours tous tout toute toutes treize trente très trois troisième troisièmement trop tsoin tsouin tu u un une unes uns v va vais vas vé vers via vif vifs vingt vivat vive vives vlan voici voilà vont vos votre vôtre vôtres vous vous-mêmes vu w x y z zut alors aucuns bon devrait dos droite début essai faites fois force haut ici juste maintenant mine mot nommés nouveaux parce parole personnes pièce plupart seulement soyez sujet tandis valeur voie voient état étions d'un d'une]).freeze
|
7
|
+
CONTRACTIONS = {}.freeze
|
8
8
|
|
9
9
|
class SingleQuotes
|
10
10
|
|
11
|
-
|
12
|
-
|
11
|
+
# why can't we directly reference constants from Languages::Common?
|
12
|
+
ALNUM_QUOTE = PragmaticTokenizer::Languages::Common::SingleQuotes::ALNUM_QUOTE
|
13
|
+
QUOTE_WORD = PragmaticTokenizer::Languages::Common::SingleQuotes::QUOTE_WORD
|
14
|
+
C_APOSTROPHE = /c'/i
|
15
|
+
J_APOSTROPHE = /j'/i
|
16
|
+
L_APOSTROPHE = /l'/i
|
17
|
+
D_APOSTROPHE = /d'/i
|
18
|
+
QU_APOSTROPHE = /qu'/i
|
19
|
+
N_APOSTROPHE = /n'/i
|
20
|
+
T_APOSTROPHE = /t'/i
|
21
|
+
M_APOSTROPHE = /m'/i
|
22
|
+
S_APOSTROPHE = /s'/i
|
23
|
+
QUELQU_APOSTROPHE = /quelqu'/i
|
24
|
+
JUSQU_APOSTROPHE = /jusqu'/i
|
25
|
+
LORSQU_APOSTROPHE = /lorsqu'/i
|
26
|
+
PUISQU_APOSTROPHE = /puisqu'/i
|
27
|
+
QUOIQU_APOSTROPHE = /quoiqu'/i
|
13
28
|
|
14
29
|
def handle_single_quotes(text)
|
15
30
|
replacement = PragmaticTokenizer::Languages::Common::PUNCTUATION_MAP["'".freeze]
|
16
|
-
text.gsub!(
|
17
|
-
text.gsub!(
|
18
|
-
text.gsub!(
|
19
|
-
text.gsub!(
|
31
|
+
text.gsub!(C_APOSTROPHE, '\1 c' << replacement << ' ')
|
32
|
+
text.gsub!(J_APOSTROPHE, '\1 j' << replacement << ' ')
|
33
|
+
text.gsub!(L_APOSTROPHE, '\1 l' << replacement << ' ')
|
34
|
+
text.gsub!(D_APOSTROPHE, '\1 d' << replacement << ' ')
|
35
|
+
text.gsub!(QU_APOSTROPHE, '\1 qu' << replacement << ' ')
|
36
|
+
text.gsub!(N_APOSTROPHE, '\1 n' << replacement << ' ')
|
37
|
+
text.gsub!(T_APOSTROPHE, '\1 t' << replacement << ' ')
|
38
|
+
text.gsub!(M_APOSTROPHE, '\1 m' << replacement << ' ')
|
39
|
+
text.gsub!(S_APOSTROPHE, '\1 s' << replacement << ' ')
|
40
|
+
text.gsub!(QUELQU_APOSTROPHE, '\1 quelqu' << replacement << ' ')
|
41
|
+
text.gsub!(JUSQU_APOSTROPHE, '\1 jusqu' << replacement << ' ')
|
42
|
+
text.gsub!(LORSQU_APOSTROPHE, '\1 lorsqu' << replacement << ' ')
|
43
|
+
text.gsub!(PUISQU_APOSTROPHE, '\1 puisqu' << replacement << ' ')
|
44
|
+
text.gsub!(QUOIQU_APOSTROPHE, '\1 quoiqu' << replacement << ' ')
|
45
|
+
text.gsub!(ALNUM_QUOTE, '\1 ' << replacement << ' ')
|
46
|
+
text.gsub!(QUOTE_WORD, ' ' << replacement)
|
20
47
|
text
|
21
48
|
end
|
22
49
|
end
|
@@ -3,8 +3,8 @@ module PragmaticTokenizer
|
|
3
3
|
module Greek
|
4
4
|
include Languages::Common
|
5
5
|
ABBREVIATIONS = Set.new([]).freeze
|
6
|
-
STOP_WORDS
|
7
|
-
CONTRACTIONS
|
6
|
+
STOP_WORDS = Set.new(%w[μή ἑαυτοῦ ἄν ἀλλ’ ἀλλά ἄλλοσ ἀπό ἄρα αὐτόσ δ’ δέ δή διά δαί δαίσ ἔτι ἐγώ ἐκ ἐμόσ ἐν ἐπί εἰ εἰμί εἴμι εἰσ γάρ γε γα^ ἡ ἤ καί κατά μέν μετά μή ὁ ὅδε ὅσ ὅστισ ὅτι οὕτωσ οὗτοσ οὔτε οὖν οὐδείσ οἱ οὐ οὐδέ οὐκ περί πρόσ σύ σύν τά τε τήν τῆσ τῇ τι τί τισ τίσ τό τοί τοιοῦτοσ τόν τούσ τοῦ τῶν τῷ ὑμόσ ὑπέρ ὑπό ὡσ ὦ ὥστε ἐάν παρά σόσ ο η το οι τα του τησ των τον την και κι κ ειμαι εισαι ειναι ειμαστε ειστε στο στον στη στην μα αλλα απο για προσ με σε ωσ παρα αντι κατα μετα θα να δε δεν μη μην επι ενω εαν αν τοτε που πωσ ποιοσ ποια ποιο ποιοι ποιεσ ποιων ποιουσ αυτοσ αυτη αυτο αυτοι αυτων αυτουσ αυτεσ αυτα εκεινοσ εκεινη εκεινο εκεινοι εκεινεσ εκεινα εκεινων εκεινουσ οπωσ ομωσ ισωσ οσο οτι]).freeze
|
7
|
+
CONTRACTIONS = {}.freeze
|
8
8
|
end
|
9
9
|
end
|
10
10
|
end
|
@@ -3,8 +3,8 @@ module PragmaticTokenizer
|
|
3
3
|
module Indonesian
|
4
4
|
include Languages::Common
|
5
5
|
ABBREVIATIONS = Set.new([]).freeze
|
6
|
-
STOP_WORDS
|
7
|
-
CONTRACTIONS
|
6
|
+
STOP_WORDS = Set.new(%w[ada adanya adalah adapun agak agaknya agar akan akankah akhirnya aku akulah amat amatlah anda andalah antar diantaranya antara antaranya diantara apa apaan mengapa apabila apakah apalagi apatah atau ataukah ataupun bagai bagaikan sebagai sebagainya bagaimana bagaimanapun sebagaimana bagaimanakah bagi bahkan bahwa bahwasanya sebaliknya banyak sebanyak beberapa seberapa begini beginian beginikah beginilah sebegini begitu begitukah begitulah begitupun sebegitu belum belumlah sebelum sebelumnya sebenarnya berapa berapakah berapalah berapapun betulkah sebetulnya biasa biasanya bila bilakah bisa bisakah sebisanya boleh bolehkah bolehlah buat bukan bukankah bukanlah bukannya cuma percuma dahulu dalam dan dapat dari daripada dekat demi demikian demikianlah sedemikian dengan depan di dia dialah dini diri dirinya terdiri dong dulu enggak enggaknya entah entahlah terhadap terhadapnya hal hampir hanya hanyalah harus haruslah harusnya seharusnya hendak hendaklah hendaknya hingga sehingga ia ialah ibarat ingin inginkah inginkan ini inikah inilah itu itukah itulah jangan jangankan janganlah jika jikalau juga justru kala kalau kalaulah kalaupun kalian kami kamilah kamu kamulah kan kapan kapankah kapanpun dikarenakan karena karenanya ke kecil kemudian kenapa kepada kepadanya ketika seketika khususnya kini kinilah kiranya sekiranya kita kitalah kok lagi lagian selagi lah lain lainnya melainkan selaku lalu melalui terlalu lama lamanya selama selamanya lebih terlebih bermacam macam semacam maka makanya makin malah malahan mampu mampukah mana manakala manalagi masih masihkah semasih masing mau maupun semaunya memang mereka merekalah meski meskipun semula mungkin mungkinkah nah namun nanti nantinya nyaris oleh olehnya seorang seseorang pada padanya padahal paling sepanjang pantas sepantasnya sepantasnyalah para pasti pastilah per pernah pula pun merupakan rupanya serupa saat saatnya sesaat saja sajalah saling bersama sama sesama sambil sampai sana sangat sangatlah saya sayalah se sebab sebabnya sebuah tersebut tersebutlah sedang sedangkan sedikit sedikitnya segala segalanya segera sesegera sejak sejenak sekali sekalian sekalipun sesekali sekaligus sekarang sekitar sekitarnya sela selain selalu seluruh seluruhnya semakin sementara sempat semua semuanya sendiri sendirinya seolah seperti sepertinya sering seringnya serta siapa siapakah siapapun disini disinilah sini sinilah sesuatu sesuatunya suatu sesudah sesudahnya sudah sudahkah sudahlah supaya tadi tadinya tak tanpa setelah telah tentang tentu tentulah tentunya tertentu seterusnya tapi tetapi setiap tiap setidaknya tidak tidakkah tidaklah toh waduh wah wahai sewaktu walau walaupun wong yaitu yakni yang]).freeze
|
7
|
+
CONTRACTIONS = {}.freeze
|
8
8
|
end
|
9
9
|
end
|
10
10
|
end
|
@@ -3,7 +3,7 @@ module PragmaticTokenizer
|
|
3
3
|
module Italian
|
4
4
|
include Languages::Common
|
5
5
|
ABBREVIATIONS = Set.new(['1°', 'a.c', 'a.c/a', 'a.cam', 'a.civ', 'a.cor', 'a.d.r', 'a.gov', 'a.mil', 'a.mon', 'a.smv', 'a.v', 'a/a', 'a/c', 'a/i', 'aa', 'aaaa', 'aaal', 'aacst', 'aamct', 'aams', 'aar', 'aato', 'ab', 'abbigl', 'abbrev', 'abc', 'abi', 'abl', 'abm', 'abr', 'abs', 'absp', 'ac', 'acam', 'acb', 'acbi', 'acc', 'accorc', 'accr', 'acd', 'ace', 'acec', 'acep', 'aci', 'acli', 'acp', 'acro', 'acsit', 'actl', 'ad', 'ad.mil', 'ada', 'adap', 'adatt', 'adc', 'add', 'adei', 'adeion', 'adhd', 'adi', 'adisco', 'adj', 'adm', 'adp', 'adr', 'ads', 'adsi', 'adsl', 'adv', 'ae.b', 'aefi', 'aer', 'aerodin', 'aeron', 'afa', 'afc', 'afci', 'affl', 'afi', 'afic', 'afm', 'afp', 'ag', 'agcm', 'agcom', 'age', 'agecs', 'agesci', 'agg', 'agip', 'agis', 'agm', 'ago', 'agr', 'agric', 'agt', 'ai', 'aia', 'aiab', 'aiac', 'aiace', 'aiap', 'aias', 'aiat', 'aib', 'aic', 'aica', 'aicel', 'aici', 'aics', 'aid', 'aida', 'aidaa', 'aidac', 'aidama', 'aidda', 'aidim', 'aido', 'aids', 'aies', 'aif', 'aih', 'aiip', 'aimi', 'aip', 'aipsc', 'airi', 'ais', 'aisa', 'aism', 'aiss', 'aissca', 'aitc', 'aiti', 'aitr', 'aits', 'aka', 'al', 'alai', 'alch', 'alg', 'ali', 'alim', 'all', 'allev', 'allus', 'alp', 'alq', 'alt', 'am', 'ama', 'amaci', 'amag', 'amami', 'amc', 'ammec', 'amn', 'ampas', 'amps', 'an', 'ana', 'anaai', 'anac', 'anaci', 'anad', 'anai', 'anaoo', 'anart', 'anat', 'anat. comp', 'ancci', 'anci', 'ancip', 'ancsa', 'andit', 'anec', 'anee', 'anem', 'anes', 'anffas', 'ani', 'ania', 'anica', 'anie', 'animi', 'anis', 'anisc', 'anm', 'anmfit', 'anmig', 'anmil', 'anmli', 'anms', 'anpa', 'anpas', 'anpci', 'anpe', 'anpi', 'ansi', 'ansv', 'ant', 'anta', 'antifr', 'antlo', 'anton', 'antrop', 'anusca', 'anvi', 'anx', 'ao', 'ap', 'apa', 'apd', 'apea', 'apec', 'apet', 'api', 'apos', 'app', 'app.sc', 'apr', 'aps', 'apt', 'aq', 'ar', 'ar.ind', 'ar.rep', 'arald', 'arame', 'arc', 'arch', 'archeol', 'arci', 'ardsu', 'are', 'arg', 'aritm', 'arpa', 'arpat', 'arred', 'arrt', 'arsia', 'art', 'arti min', 'artig', 'artigl', 'artt', 'as', 'asa', 'asae', 'asc', 'asci', 'ascii', 'ascom', 'ascop', 'asd', 'ase', 'asf', 'asfer', 'asg', 'asic', 'asifa', 'asl', 'asmdc', 'asmi', 'asp', 'aspic', 'aspp', 'assi', 'assic', 'assol', 'asst', 'aster', 'astr', 'astrol', 'astron', 'at', 'ata', 'atb', 'atic', 'atm', 'ats', 'att', 'attrav', 'atv', 'au', 'auc', 'aus', 'auser', 'aut', 'autom', 'av', 'avi', 'avis', 'avo', 'avv', 'avvers', 'awb', 'awdp', 'az', 'azh', 'b.a', 'b2b', 'b2c', 'ba', 'bafta', 'bal', 'ball', 'ban', 'banc', 'bar', 'bart', 'bas', 'bat', 'batt', 'bban', 'bbc', 'bbl', 'bbs', 'bbtc', 'bcc', 'bce', 'bcf', 'bdf', 'bei', 'bep', 'bers', 'bg', 'bi', 'bibl', 'bic', 'bioch', 'biol', 'bl', 'bld', 'bldg', 'blpc', 'bm', 'bmps', 'bmw', 'bn', 'bna', 'bncf', 'bncrm', 'bni', 'bnl', 'bo', 'bot', 'bpl', 'bpm', 'bpn', 'bpr', 'br', 'brd', 'bre', 'bric', 'brig', 'brig.ca', 'brig.gen', 'bros', 'bs', 'bsc', 'bsp', 'bsu', 'bt', 'btc', 'btg', 'btg.l', 'btr', 'bts', 'bu', 'bur', 'bz', 'c.a', 'c.a.p', 'c.c.p', 'c.cost', 'c.d a', 'c.d', 'c.le', 'c.m', 'c.opv', 'c.p', 'c.s', 'c.v', 'c.v.d', 'c/a', 'c/c', 'c/pag', 'ca', 'ca.rep', 'ca.sm', 'ca.sz', 'ca.uf', 'caaf', 'cab', 'cad', 'cae', 'cai', 'cal', 'cam', 'cap', 'capol', 'capt', 'car', 'car.sc', 'carat', 'card', 'cas', 'casaca', 'casd', 'cass.civ', 'cat', 'caus', 'cav', 'cavg', 'cb', 'cbd', 'cbr', 'cbs', 'cc', 'cca', 'ccap', 'ccda', 'ccdp', 'ccee', 'cciaa', 'ccie', 'ccip', 'cciss', 'ccna', 'ccnl', 'ccnp', 'ccpb', 'ccs', 'ccsp', 'cctld', 'cctv', 'ccv', 'cd', 'cda', 'cdma', 'cdo', 'cdpd', 'cdr', 'cds', 'cdw', 'ce', 'ced', 'cee', 'cei', 'cemat', 'cenelec', 'centr', 'cepis', 'ceps', 'cept', 'cerit', 'cese', 'cesis', 'cesvot', 'cet', 'cf', 'cfa', 'cfr', 'cg', 'cgi', 'cgil', 'cgs', 'ch', 'chf', 'chim', 'chim. ind', 'chir', 'ci', 'ci-europa', 'ciber', 'cicae', 'cid', 'cie', 'cif', 'cifej', 'cig', 'cigs', 'cii', 'cilea', 'cilo', 'cim', 'cime', 'cin', 'cinit', 'cio', 'cipe', 'cirm', 'cisal', 'ciscs', 'cisd', 'cisl', 'cism', 'citol', 'cl', 'class', 'cli', 'cm', 'cmdr', 'cme', 'cmo', 'cmr', 'cms', 'cmyk', 'cm²', 'cm³', 'cn', 'cna', 'cnb', 'cnc', 'cnel', 'cngei', 'cni', 'cnipa', 'cnit', 'cnn', 'cnr', 'cns', 'cnt', 'cnvvf', 'co', 'co.ing', 'co.sa', 'cobas', 'coc', 'cod', 'cod. civ', 'cod. deont. not', 'cod. pen', 'cod. proc. civ', 'cod. proc. pen', 'codec', 'coi', 'col', 'colf', 'coll', 'com', 'comdr', 'comm', 'comp', 'compar', 'compl', 'con', 'conai', 'conc', 'concl', 'condiz', 'confetra', 'confitarma', 'confr', 'cong', 'congeav', 'congiunt', 'coni', 'coniug', 'consec', 'consob', 'contab', 'contr', 'coreco', 'corp', 'corr', 'correl', 'corrisp', 'cosap', 'cospe', 'cost', 'costr', 'cpc', 'cpdel', 'cpe', 'cpi', 'cpl', 'cpt', 'cpu', 'cr', 'cral', 'credem', 'crf', 'cri', 'cric', 'cristall', 'crm', 'cro', 'cron', 'crsm', 'crt', 'cs', 'csa', 'csai', 'csc', 'csm', 'csn', 'css', 'ct', 'ctc', 'cti', 'ctr', 'ctsis', 'cuc', 'cud', 'cun', 'cup', 'cusi', 'cvb', 'cvbs', 'cwt', 'cz', 'd', 'd.c', 'd.i.a', 'dab', 'dac', 'dam', 'dams', 'dat', 'dau', 'db', 'dbms', 'dc', 'dca', 'dccc', 'dda', 'ddp', 'ddr', 'ddt', 'dea', 'decoraz', 'dect', 'dek', 'denom', 'deriv', 'derm', 'determ', 'df', 'dfp', 'dg', 'dga', 'dhcp', 'di', 'dia', 'dial', 'dic', 'dicomac', 'dif', 'difett', 'dig. iv', 'digos', 'dimin', 'dimostr', 'din', 'dipart', 'diplom', 'dir', 'dir. amm', 'dir. can', 'dir. civ', 'dir. d. lav', 'dir. giur', 'dir. internaz', 'dir. it', 'dir. pen', 'dir. priv', 'dir. proces', 'dir. pub', 'dir. rom', 'disus', 'diy', 'dl', 'dlf', 'dm', 'dme', 'dmf', 'dmo', 'dmoz', 'dm²', 'dm³', 'dnr', 'dns', 'doa', 'doc', 'docg', 'dom', 'dop', 'dos', 'dott', 'dpa', 'dpi', 'dpl', 'dpof', 'dps', 'dpt', 'dr', 'dra', 'drm', 'drs', 'dry pt', 'ds', 'dslam', 'dspn', 'dss', 'dtc', 'dtmf', 'dtp', 'dts', 'dv', 'dvb', 'dvb-t', 'dvd', 'dvi', 'dwdm', 'e.g', 'e.p.c', 'ead', 'eafrd', 'ean', 'eap', 'easw', 'eb', 'eban', 'ebr', 'ebri', 'ebtn', 'ecc', 'eccl', 'ecdl', 'ecfa', 'ecff', 'ecg', 'ecm', 'econ', 'econ. az', 'econ. dom', 'econ. pol', 'ecpnm', 'ed', 'ed agg', 'edge', 'edi', 'edil', 'edit', 'ef', 'efa', 'efcb', 'efp', 'efsa', 'efta', 'eg', 'egiz', 'egl', 'egr', 'ei', 'eisa', 'elab', 'elettr', 'elettron', 'ellitt', 'emap', 'emas', 'embr', 'emdr', 'emi', 'emr', 'en', 'enaip', 'enal', 'enaoli', 'enapi', 'encat', 'enclic', 'enea', 'enel', 'eni', 'enigm', 'enit', 'enol', 'enpa', 'enpaf', 'enpals', 'enpi', 'enpmf', 'ens', 'entom', 'epd', 'epigr', 'epirbs', 'epl', 'epo', 'ept', 'erc', 'ercom', 'ermes', 'erp', 'es', 'esa', 'escl', 'esist', 'eso', 'esp', 'estens', 'estr. min', 'etacs', 'etf', 'eti', 'etim', 'etn', 'etol', 'eu', 'eufem', 'eufic', 'eula', 'eva®', 'f.a', 'f.b', 'f.m', 'f.p', 'fa', 'fabi', 'fac', 'facl', 'facs', 'fad', 'fai', 'faile', 'failp', 'failpa', 'faisa', 'falcri', 'fam', 'famar', 'fans', 'fao', 'fapav', 'faq', 'farm', 'fasi', 'fasib', 'fatt', 'fbe', 'fbi', 'fc', 'fco', 'fcp', 'fcr', 'fcu', 'fdi', 'fe', 'feaog', 'feaosc', 'feb', 'fedic', 'fema', 'feoga', 'ferr', 'fesco', 'fesr', 'fess', 'fg', 'fi', 'fiaf', 'fiaip', 'fiais', 'fialtel', 'fiap', 'fiapf', 'fiat', 'fiavet', 'fic', 'ficc', 'fice', 'fidal', 'fidam', 'fidapa', 'fieg', 'fifa', 'fifo', 'fig', 'figc', 'figs', 'filat', 'filcams', 'file', 'filol', 'filos', 'fim', 'fima', 'fimmg', 'fin', 'finco', 'fio', 'fioto', 'fipe', 'fipresci', 'fis', 'fisar', 'fisc', 'fisg', 'fisiol', 'fisiopatol', 'fistel', 'fit', 'fita', 'fitav', 'fits', 'fiv', 'fivet', 'fivl', 'flo', 'flpd', 'fluid pt', 'fm', 'fmcg', 'fmi', 'fmth', 'fnas', 'fnomceo', 'fnsi', 'fob', 'fod', 'folcl', 'fon', 'fop', 'fotogr', 'fp', 'fpc', 'fpld', 'fr', 'fra', 'fs', 'fsc', 'fse', 'fsf', 'fsfi', 'fsh', 'ft', 'ftase', 'ftbcc', 'fte', 'ftp', 'fts', 'ft²', 'ft³', 'fuaav', 'fut', 'fv', 'fvg', 'g.fv', 'g.u', 'g.u.el', 'gal', 'gats', 'gatt', 'gb', 'gc', 'gccc', 'gco', 'gcost', 'gd', 'gdd', 'gdf', 'gdi', 'gdo', 'gdp', 'ge', 'gea', 'gel', 'gen', 'geneal', 'geod', 'geofis', 'geogr', 'geogr. antr', 'geogr. fis', 'geol', 'geom', 'gep', 'germ', 'gescal', 'gg', 'ggv', 'gi', 'gia', 'gides', 'gift', 'gio', 'giorn', 'gis', 'gisma', 'gismo', 'giu', 'gm', 'gmdss', 'gme', 'gmo', 'go', 'gov', 'gp', 'gpl', 'gprs', 'gps', 'gr', 'gr.sel.spec', 'gr.sel.tr', 'gr.sqd', 'gra', 'gram', 'grano', 'grd', 'grtn', 'grv', 'gsa', 'gsm', 'gsm-r', 'gsr', 'gtld', 'gu', 'guce', 'gui', 'gus', 'ha', 'haart', 'haccp', 'hba', 'hcg', 'hcrp', 'hd-dvd', 'hdcp', 'hdi', 'hdml', 'hdtv', 'hepa', 'hfpa', 'hg', 'hifi', 'hiperlan', 'hiv', 'hm', 'hmld', 'hon', 'hosp', 'hpv', 'hr', 'hrh', 'hrm', 'hrt', 'html', 'http', 'hvac', 'hz', 'i.e', 'i.g.m', 'iana', 'iasb', 'iasc', 'iass', 'iat', 'iata', 'iatse', 'iau', 'iban', 'ibid', 'ibm', 'icann', 'icao', 'icbi', 'iccu', 'ice', 'icf', 'ici', 'icm', 'icom', 'icon', 'ics', 'icsi', 'icstis', 'ict', 'icta', 'id', 'iden', 'idl', 'idraul', 'iec', 'iedm', 'ieee', 'ietf', 'ifat', 'ifel', 'ifla', 'ifrs', 'ifto', 'ifts', 'ig', 'igm', 'igmp', 'igp', 'iims', 'iipp', 'ilm', 'ilo', 'ilor', 'ils', 'im', 'imaie', 'imap', 'imc', 'imdb', 'imei', 'imi', 'imms', 'imo', 'imp', 'imper', 'imperf', 'impers', 'imq', 'ims', 'imsi', 'in', 'inail', 'inca', 'incb', 'inci', 'ind', 'ind. agr', 'ind. alim', 'ind. cart', 'ind. chim', 'ind. cuoio', 'ind. estratt', 'ind. graf', 'ind. mecc', 'ind. tess', 'indecl', 'indef', 'indeterm', 'indire', 'inea', 'inf', 'infea', 'infm', 'inform', 'ing', 'ingl', 'inmarsat', 'inpdai', 'inpdap', 'inpgi', 'inps', 'inr', 'inran', 'ins', 'insp', 'int', 'inter', 'intr', 'invar', 'invim', 'in²', 'in³', 'ioma', 'iosco', 'ip', 'ipab', 'ipasvi', 'ipi', 'ippc', 'ips', 'iptv', 'iq', 'ira', 'irap', 'ircc', 'ircs', 'irda', 'iref', 'ires', 'iron', 'irpef', 'irpeg', 'irpet', 'irreg', 'is', 'isae', 'isbd', 'isbn', 'isc', 'isdn', 'isee', 'isef', 'isfol', 'isg', 'isi', 'isia', 'ism', 'ismea', 'isnart', 'iso', 'isp', 'ispearmi', 'ispel', 'ispescuole', 'ispesl', 'ispo', 'ispro', 'iss', 'issn', 'istat', 'istol', 'isvap', 'it', 'iti', 'itt', 'ittiol', 'itu', 'iud', 'iugr', 'iulm', 'iva', 'iveco', 'ivg', 'ivr', 'ivs', 'iyhp', 'j', 'jal', 'jit', 'jr', 'jv', 'k', 'kb', 'kee', 'kg', 'kkk', 'klm', 'km', 'km/h', 'kmph', 'kmq', 'km²', 'kr', 'kw', 'kwh', 'l', 'l\'ing', 'l.n', 'l\'avv', 'la', 'lag', 'lan', 'lanc', 'larn', 'laser', 'lat', 'lav', 'lav. femm', 'lav. pubbl', 'laz', 'lb', 'lc', 'lcca', 'lcd', 'le', 'led', 'lett', 'lh', 'li', 'liaf', 'lib', 'lic', 'lic.ord', 'lic.strd', 'licd', 'lice', 'lida', 'lidci', 'liff', 'lifo', 'lig', 'liit', 'lila', 'lilt', 'linfa', 'ling', 'lipu', 'lis', 'lisaac', 'lism', 'lit', 'litab', 'lnp', 'lo', 'loc', 'loc. div', 'lolo', 'lom', 'long', 'lp', 'lrm', 'lrms', 'lsi', 'lsu', 'lt', 'ltd', 'lu', 'lug', 'luiss', 'lun', 'lwt', 'lww', 'm.a', 'm.b', 'm.o', 'm/s', 'ma', 'mac', 'macch', 'mag', 'magg.(maj)', 'magg.gen.(maj.gen.)', 'mai', 'maj', 'mar', 'mar.a', 'mar.ca', 'mar.ord', 'marc', 'mat', 'mater', 'max', 'mb', 'mbac', 'mc', 'mcl', 'mcpc', 'mcs', 'md', 'mdf', 'mdp', 'me', 'mec', 'mecc', 'med', 'mediev', 'mef', 'mer', 'merc', 'merid', 'mesa', 'messrs', 'metall', 'meteor', 'metr', 'metrol', 'mg', 'mgc', 'mgm', 'mi', 'mibac', 'mica', 'microb', 'mifed', 'miglio nautico', 'miglio nautico per ora', 'miglio nautico²', 'miglio²', 'mil', 'mile', 'miles/h', 'milesph', 'min', 'miner', 'mips', 'miptv', 'mit', 'mitol', 'miur', 'ml', 'mlle', 'mls', 'mm', 'mme', 'mms', 'mm²', 'mn', 'mnp', 'mo', 'mod', 'mol', 'mons', 'morf', 'mos', 'mpaa', 'mpd', 'mpeg', 'mpi', 'mps', 'mq', 'mr', 'mrs', 'ms', 'msgr', 'mss', 'mt', 'mto', 'murst', 'mus', 'mvds', 'mws', 'm²', 'm³', 'n.a', 'n.b', 'na', 'naa', 'nafta', 'napt', 'nars', 'nasa', 'nat', 'natas', 'nato', 'nb', 'nba', 'nbc', 'ncts', 'nd', 'nda', 'nde', 'ndr', 'ndt', 'ne', 'ned', 'neg', 'neol', 'netpac', 'neur', 'news!', 'ngcc', 'nhmf', 'nlcc', 'nmr', 'no', 'nodo', 'nom', 'nos', 'nov', 'novissdi', 'npi', 'nr', 'nt', 'nta', 'nts', 'ntsc', 'nu', 'nuct', 'numism', 'nwt', 'nyc', 'nz', 'o.m.i', 'oai-pmh', 'oav', 'oc', 'occ', 'occult', 'oci', 'ocr', 'ocse', 'oculist', 'od', 'odg', 'odp', 'oecd', 'oem', 'ofdm', 'oft', 'og', 'ogg', 'ogi', 'ogm', 'ohim', 'oic', 'oics', 'olaf', 'oland', 'ole', 'oled', 'omi', 'oms', 'on', 'ong', 'onig', 'onlus', 'onomat', 'onpi', 'onu', 'op', 'opac', 'opec', 'opord', 'opsosa', 'or', 'ord', 'ord. scol', 'ore', 'oref', 'orient', 'ornit', 'orogr', 'orp', 'ort', 'os', 'osa', 'osas', 'osd', 'ot', 'ote', 'ott', 'oz', 'p', 'p.a', 'p.c', 'p.c.c', 'p.es', 'p.f', 'p.m', 'p.r', 'p.s', 'p.t', 'p.v', 'pa', 'pac', 'pag./p', 'pagg./pp', 'pai', 'pal', 'paleobot', 'paleogr', 'paleont', 'paleozool', 'paletn', 'pamr', 'pan', 'papir', 'par', 'parapsicol', 'part', 'partic', 'pass', 'pat', 'patol', 'pb', 'pc', 'pci', 'pcm', 'pcmcia', 'pcs', 'pcss', 'pct', 'pd', 'pda', 'pdf', 'pdl', 'pds', 'pe', 'pec', 'ped', 'pedag', 'peg', 'pegg', 'per.ind', 'pers', 'pert', 'pesq', 'pet', 'petr', 'petrogr', 'pfc', 'pg', 'pga', 'pgp', 'pgut', 'ph', 'php', 'pi', 'pics', 'pie', 'pif', 'pii', 'pil', 'pime', 'pin', 'pine', 'pip', 'pir', 'pit', 'pitt', 'piuss', 'pkcs', 'pki', 'pko', 'pl', 'pli', 'plr', 'pm', 'pma', 'pmi', 'pmr', 'pn', 'pnf', 'pnl', 'po', 'poet', 'pof', 'pol', 'pop', 'popitt', 'popol', 'port', 'pos', 'poss', 'post', 'pots', 'pp', 'ppa', 'ppc', 'ppga', 'ppp', 'pps', 'pptt', 'ppv', 'pr', 'pra', 'praa', 'pref', 'preist', 'prep', 'pres', 'pret', 'prg', 'pri', 'priv', 'pro.civ', 'prof', 'pron', 'pronom', 'propr', 'prov', 'prs', 'prtl', 'prusst', 'ps', 'pse', 'psi', 'psicoan', 'psicol', 'pso', 'psp', 'pstn', 'pt', 'ptc', 'pti', 'ptsd', 'ptt', 'pu', 'pug', 'puk', 'put', 'pv', 'pvb', 'pvc', 'pvt', 'pz', 'qb', 'qcs', 'qfd', 'qg', 'qi', 'qlco', 'qlcu', 'qos', 'qualif', 'r-lan', 'r.s', 'ra', 'racc', 'radar', 'radc', 'radiotecn', 'raee', 'raf', 'rag', 'raid', 'ram', 'rar', 'ras', 'rass. avv. stato', 'rc', 'rca', 'rcdp', 'rcs', 'rdc', 'rdco', 'rdf', 'rdi', 'rdp', 'rds', 'rdt', 're', 'rea', 'recipr', 'recl', 'reg', 'region', 'rel', 'rem', 'rep', 'reps', 'res', 'retor', 'rev', 'rfi', 'rfid', 'rg', 'rgb', 'rgc', 'rge', 'rgi', 'rgi bdp', 'rgpt', 'rgt', 'ri', 'riaa', 'riaj', 'riba', 'ric', 'rid', 'rif', 'rifl', 'rina', 'rip', 'ris', 'rit', 'ritts', 'rm', 'rmn', 'rn', 'ro', 'roa', 'roc', 'roi', 'rom', 'roro', 'rov', 'rp', 'rpm', 'rr', 'rrf', 'rs', 'rsc', 'rspp', 'rss', 'rsu', 'rsvp', 'rt', 'rtdpc', 'rtg', 'rtn', 'rtp', 'rttt', 'rvm', 's-dab', 's.a', 's.b.f', 's.n.c', 's.p.a', 's.p.m', 's.r.l', 's.ten', 's.v', 's/m', 'sa', 'sab', 'saca', 'sace', 'sact', 'sad', 'sag', 'sahm', 'sai', 'saisa', 'sam', 'san', 'sanas', 'sape', 'sar', 'sars', 'sart', 'sas', 'sbaf', 'sbas', 'sbn', 'sc', 'sca.sm', 'scherz', 'scien', 'scn', 'scsi', 'scuba', 'scult', 'scut', 'sdds', 'sdiaf', 'sds', 'sdsl', 'se', 'seat', 'sebc', 'sec', 'seca', 'secam', 'secc', 'see', 'seg', 'segg', 'segredifesa', 'sem', 'sempo', 'sen', 'sens', 'seo', 'serg', 'serg.magg.(sgm)', 'serg.magg.ca', 'set', 'sfc', 'sfis', 'sfx', 'sg', 'sga', 'sgc', 'sgg', 'sgml', 'sgt', 'si', 'si@lt', 'sia', 'siae', 'siaic', 'siap', 'sias', 'sic', 'sicav', 'sid', 'sido', 'sie', 'sif', 'sig', 'sig.na', 'sig.ra', 'sige', 'sigg', 'sigill', 'sigo', 'siia', 'simb', 'simbdea', 'simg', 'simo', 'sin', 'sinalv', 'sing', 'sins', 'sinu', 'siocmf', 'siog', 'sioi', 'siommms', 'siot', 'sip', 'sipem', 'sips', 'sirf', 'sirm', 'sis', 'sisde', 'sismi', 'sissa', 'sit', 'siulp', 'siusa', 'sla', 'sldn', 'slm', 'slr', 'sm', 'sma', 'smau', 'smd', 'sme', 'smes', 'smm', 'smpt', 'sms', 'sn', 'snad', 'snai', 'snc', 'sncci', 'sncf', 'sngci', 'snit', 'so', 'soc', 'sociol', 'sogg', 'soho', 'soi', 'sol', 'somipar', 'somm', 'sonar', 'sp', 'spa', 'spe', 'spett', 'spi', 'spm', 'spot', 'spp', 'spreg', 'sq', 'sqd', 'sr', 'srd', 'srl', 'srr', 'ss', 'ssi', 'ssn', 'ssr', 'sss', 'st', 'st. d. arte', 'st. d. dir', 'st. d. filos', 'st. d. rel', 'stat', 'stg', 'stp', 'stw', 'su', 'suap', 'suem', 'suff', 'sup', 'superl', 'supt', 'surg', 'surl', 'susm', 'sut', 'suv', 'sv', 'svga', 'swics', 'swift', 'swot', 'sxga', 'sz', 't-dab', 't.sg', 'ta', 'taa', 'tac', 'tacan', 'tacs', 'taeg', 'tai', 'tan', 'tar', 'targa', 'tav', 'tb', 'tbt', 'tci', 'tcp', 'tcp/ip', 'tcsm', 'tdm', 'tdma', 'te', 'tecn', 'tecnol', 'ted', 'tel', 'telecom', 'temp', 'ten.(lt)', 'ten.col.(ltc)', 'ten.gen', 'teol', 'term', 'tesa', 'tese', 'tesol', 'tess', 'tet', 'tetra', 'tfr', 'tft', 'tfts', 'tgv', 'thx', 'tim', 'tipogr', 'tir', 'tit', 'tld', 'tm', 'tmc', 'tn', 'to', 'toefl', 'ton', 'top', 'topog', 'tos', 'tosap', 'tosc', 'tp', 'tpl', 'tr', 'trad', 'tramat', 'trasp', 'ts', 'tso', 'tuir', 'tuld', 'tv', 'twa', 'twain', 'u.ad', 'u.s', 'ucai', 'ucca', 'ucei', 'ucina', 'uclaf', 'ucoi', 'ucoii', 'ucsi', 'ud', 'udc', 'udi', 'udp', 'ue', 'uefa', 'uemri', 'ufo', 'ugc', 'uhci', 'uhf', 'uht', 'uibm', 'uic', 'uicc', 'uiga', 'uil', 'uilps', 'uisp', 'uits', 'uk', 'ul', 'ull', 'uma', 'umb', 'ummc', 'umss', 'umts', 'unac', 'unar', 'unasp', 'uncem', 'unctad', 'undp', 'unefa', 'unep', 'unesco', 'ungh', 'unhcr', 'uni', 'unicef', 'unitec', 'unpredep', 'unsa', 'upa', 'upc', 'urar', 'urban', 'url', 'urp', 'urss', 'usa', 'usb', 'usfi', 'usga', 'usl', 'usp', 'uspi', 'ussr', 'utap', 'v', 'v.brig', 'v.cte', 'v.m', 'v.p', 'v.r', 'v.s', 'va', 'vab', 'vaio', 'val', 'vas', 'vb', 'vbr', 'vc', 'vcc', 'vcr', 'vda', 've', 'ven', 'ves', 'vesa', 'veter', 'vezz', 'vfb', 'vfp', 'vfx', 'vga', 'vhf', 'vhs', 'vi', 'via', 'vip', 'vis', 'vn', 'vo', 'voc', 'voip', 'vol', 'volg', 'voll', 'vor', 'vpdn', 'vpn', 'vr', 'vs', 'vsp', 'vt', 'vtc', 'vts', 'vtt', 'vv', 'vvf', 'wai', 'wais', 'wan', 'wap', 'wasp', 'wc', 'wcdma', 'wcm', 'wga', 'wi-fi', 'wipo', 'wisp', 'wll', 'wml', 'wms', 'worm', 'wp', 'wpan', 'wssn', 'wto', 'wwan', 'wwf', 'www', 'wygiwys', 'xl', 'xml', 'xs', 'xxl', 'xxs', 'yaf', 'yb', 'yci', 'yd', 'yd²', 'yd³', 'ymca', 'zat', 'zb', 'zcs', 'zdf', 'zdg', 'zift', 'zool', 'zoot', 'ztc', 'ztl', '°c', '°f', '°n', '°ra', '°ré', 'µg']).freeze
|
6
|
-
STOP_WORDS = Set.new([
|
6
|
+
STOP_WORDS = Set.new(%w[a adesso ai al alla allo allora altre altri altro anche ancora avere aveva avevano ben buono che chi cinque comprare con consecutivi consecutivo cosa cui da del della dello dentro deve devo di doppio due e ecco fare fine fino fra gente giu ha hai hanno ho il indietro invece io la lavoro le lei lo loro lui lungo ma me meglio molta molti molto nei nella no noi nome nostro nove nuovi nuovo o oltre ora otto peggio pero persone piu poco primo promesso qua quarto quasi quattro quello questo qui quindi quinto rispetto sara secondo sei sembra sembrava senza sette sia siamo siete solo sono sopra soprattutto sotto stati stato stesso su subito sul sulla tanto te tempo terzo tra tre triplo ultimo un una uno va vai voi volte vostro a abbastanza accidenti ad affinche agli ahime ahimè alcuna alcuni alcuno all alle altrimenti altrui anni anno ansa assai attesa avanti avendo avente aver avete avuta avute avuti avuto basta bene benissimo berlusconi brava bravo c casa caso cento certa certe certi certo chicchessia chiunque ci ciascuna ciascuno cima cio ciò cioe cioè circa citta città codesta codesti codesto cogli coi col colei coll coloro colui come concernente consiglio contro cortesia cos cosi così d dagli dai dal dall dalla dalle dallo davanti degli dei dell delle detto dice dietro dire dirimpetto dopo dove dovra dovrà dunque durante è ed egli ella eppure era erano esse essendo esser essere essi ex fa fatto favore fin finalmente finche forse fuori gia già giacche giorni giorno gli gliela gliele glieli glielo gliene governo grande grazie gruppo i ieri improvviso in infatti insieme intanto intorno l là li lontano macche magari mai male malgrado malissimo medesimo mediante meno mentre mesi mezzo mi mia mie miei mila miliardi milioni ministro mio moltissimo mondo nazionale ne negli nel nell nelle nello nemmeno neppure nessuna nessuno niente non nondimeno nostra nostre nostri nulla od oggi ogni ognuna ognuno oppure ore osi ossia paese parecchi parecchie parecchio parte partendo peccato per perche perchè percio perciò perfino però piedi pieno piglia più po pochissimo poi poiche press prima proprio puo può pure purtroppo qualche qualcuna qualcuno quale quali qualunque quando quanta quante quanti quanto quantunque quel quella quelli quest questa queste questi riecco salvo sarà sarebbe scopo scorso se seguente sempre si solito sta staranno stata state sua successivo sue sugli sui sull sulle sullo suo suoi tale talvolta ti torino tranne troppo tu tua tue tuo tuoi tutta tuttavia tutte tutti tutto uguali uomo vale varia varie vario verso vi via vicino visto vita volta vostra vostre vostri]).freeze
|
7
7
|
CONTRACTIONS = {}.freeze
|
8
8
|
end
|
9
9
|
end
|
@@ -3,8 +3,8 @@ module PragmaticTokenizer
|
|
3
3
|
module Norwegian
|
4
4
|
include Languages::Common
|
5
5
|
ABBREVIATIONS = Set.new([]).freeze
|
6
|
-
STOP_WORDS
|
7
|
-
CONTRACTIONS
|
6
|
+
STOP_WORDS = Set.new(%w[alle andre arbeid av bare begge bli bort bra bruk bruke da deg denne der deres det dette din disse du eller en ene eneste enhver enn er et folk for fordi forsûke fra få før fûr fûrst gjorde gjûre god gå ha hadde han hans har hennes her hun hva hvem hver hvilken hvis hvor hvordan hvorfor i ikke inn innen jeg kan kunne lage lang lik like makt mange med meg meget men mens mer mest min mot mye må måte navn nei noen ny nå når og også om opp oss over part punkt på rett riktig samme sant seg sett si siden sist skulle slik slutt som start stille så tid til tilbake tilstand under ut uten var ved verdi vi vil ville vite vår vöre vört å]).freeze
|
7
|
+
CONTRACTIONS = {}.freeze
|
8
8
|
end
|
9
9
|
end
|
10
10
|
end
|