tritopic 0.1.0__py3-none-any.whl → 1.0.0__py3-none-any.whl

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.
@@ -0,0 +1,467 @@
1
+ """
2
+ Multilingual Stopwords Module
3
+
4
+ Provides stopword lists for 60+ languages.
5
+ """
6
+
7
+ from typing import List, Set, Optional
8
+ import warnings
9
+
10
+
11
+ # Stopword lists for major languages
12
+ # These are commonly used function words that don't carry topical meaning
13
+
14
+ STOPWORDS = {
15
+ 'en': {
16
+ 'a', 'an', 'the', 'and', 'or', 'but', 'if', 'then', 'else', 'when',
17
+ 'at', 'by', 'for', 'with', 'about', 'against', 'between', 'into',
18
+ 'through', 'during', 'before', 'after', 'above', 'below', 'to', 'from',
19
+ 'up', 'down', 'in', 'out', 'on', 'off', 'over', 'under', 'again',
20
+ 'further', 'once', 'here', 'there', 'all', 'each', 'few', 'more',
21
+ 'most', 'other', 'some', 'such', 'no', 'nor', 'not', 'only', 'own',
22
+ 'same', 'so', 'than', 'too', 'very', 'just', 'can', 'will', 'should',
23
+ 'now', 'i', 'me', 'my', 'myself', 'we', 'our', 'ours', 'ourselves',
24
+ 'you', 'your', 'yours', 'yourself', 'yourselves', 'he', 'him', 'his',
25
+ 'himself', 'she', 'her', 'hers', 'herself', 'it', 'its', 'itself',
26
+ 'they', 'them', 'their', 'theirs', 'themselves', 'what', 'which',
27
+ 'who', 'whom', 'this', 'that', 'these', 'those', 'am', 'is', 'are',
28
+ 'was', 'were', 'be', 'been', 'being', 'have', 'has', 'had', 'having',
29
+ 'do', 'does', 'did', 'doing', 'would', 'could', 'ought', 'might',
30
+ 'must', 'shall', 'need', 'dare', 'as', 'of', 'also', 'how', 'why',
31
+ 'where', 'because', 'while', 'although', 'though', 'however', 'therefore',
32
+ 'get', 'got', 'getting', 'make', 'made', 'making', 'go', 'going',
33
+ 'went', 'gone', 'come', 'came', 'coming', 'take', 'took', 'taking',
34
+ 'use', 'used', 'using', 'know', 'known', 'see', 'seen', 'want',
35
+ 'think', 'like', 'even', 'well', 'back', 'way', 'much', 'many',
36
+ 'may', 'say', 'said', 'one', 'two', 'first', 'new', 'time', 'year',
37
+ 'people', 'part', 'still', 'really', 'actually', 'something', 'anything',
38
+ },
39
+
40
+ 'de': {
41
+ 'der', 'die', 'das', 'den', 'dem', 'des', 'ein', 'eine', 'einer',
42
+ 'einem', 'einen', 'eines', 'und', 'oder', 'aber', 'wenn', 'dann',
43
+ 'weil', 'dass', 'daß', 'ob', 'als', 'wie', 'was', 'wer', 'wo',
44
+ 'wann', 'warum', 'welche', 'welcher', 'welches', 'welchen', 'welchem',
45
+ 'ich', 'du', 'er', 'sie', 'es', 'wir', 'ihr', 'mich', 'dich', 'sich',
46
+ 'mir', 'dir', 'ihm', 'uns', 'euch', 'ihnen', 'mein', 'dein', 'sein',
47
+ 'unser', 'euer', 'meine', 'deine', 'seine', 'unsere', 'eure', 'ihre',
48
+ 'ist', 'sind', 'war', 'waren', 'bin', 'bist', 'seid', 'sein', 'haben',
49
+ 'hat', 'hatte', 'hatten', 'habe', 'hast', 'werden', 'wird', 'wurde',
50
+ 'wurden', 'werde', 'wirst', 'können', 'kann', 'konnte', 'konnten',
51
+ 'müssen', 'muss', 'musste', 'mussten', 'sollen', 'soll', 'sollte',
52
+ 'wollen', 'will', 'wollte', 'dürfen', 'darf', 'durfte', 'mögen',
53
+ 'mag', 'mochte', 'möchte', 'für', 'mit', 'ohne', 'gegen', 'durch',
54
+ 'bei', 'nach', 'von', 'aus', 'zu', 'bis', 'über', 'unter', 'vor',
55
+ 'hinter', 'neben', 'zwischen', 'in', 'an', 'auf', 'um', 'nicht',
56
+ 'kein', 'keine', 'keiner', 'keinem', 'keinen', 'auch', 'nur', 'noch',
57
+ 'schon', 'immer', 'wieder', 'sehr', 'mehr', 'viel', 'hier', 'dort',
58
+ 'jetzt', 'heute', 'gestern', 'morgen', 'also', 'so', 'doch', 'ja',
59
+ 'nein', 'alle', 'alles', 'andere', 'anderen', 'anderer', 'anderem',
60
+ 'dieser', 'diese', 'dieses', 'diesem', 'diesen', 'jener', 'jene',
61
+ 'jenes', 'jenem', 'jenen', 'man', 'etwas', 'nichts', 'selbst',
62
+ 'gibt', 'gab', 'geben', 'macht', 'machen', 'geht', 'gehen', 'kommt',
63
+ 'kommen', 'sagt', 'sagen', 'sagte', 'steht', 'liegt', 'zwei', 'drei',
64
+ },
65
+
66
+ 'fr': {
67
+ 'le', 'la', 'les', 'un', 'une', 'des', 'du', 'de', 'et', 'ou', 'mais',
68
+ 'donc', 'car', 'ni', 'que', 'qui', 'quoi', 'dont', 'où', 'si', 'quand',
69
+ 'comme', 'comment', 'pourquoi', 'ce', 'cette', 'ces', 'cet', 'celui',
70
+ 'celle', 'ceux', 'celles', 'je', 'tu', 'il', 'elle', 'on', 'nous',
71
+ 'vous', 'ils', 'elles', 'me', 'te', 'se', 'lui', 'leur', 'nous', 'vous',
72
+ 'mon', 'ma', 'mes', 'ton', 'ta', 'tes', 'son', 'sa', 'ses', 'notre',
73
+ 'nos', 'votre', 'vos', 'leur', 'leurs', 'être', 'suis', 'es', 'est',
74
+ 'sommes', 'êtes', 'sont', 'étais', 'était', 'étions', 'étiez', 'étaient',
75
+ 'avoir', 'ai', 'as', 'a', 'avons', 'avez', 'ont', 'avais', 'avait',
76
+ 'faire', 'fait', 'fais', 'font', 'faisais', 'aller', 'vais', 'vas',
77
+ 'va', 'allons', 'allez', 'vont', 'pouvoir', 'peux', 'peut', 'pouvons',
78
+ 'peuvent', 'vouloir', 'veux', 'veut', 'voulons', 'veulent', 'devoir',
79
+ 'dois', 'doit', 'devons', 'doivent', 'savoir', 'sais', 'sait', 'savons',
80
+ 'pour', 'avec', 'sans', 'dans', 'sur', 'sous', 'par', 'entre', 'vers',
81
+ 'chez', 'avant', 'après', 'depuis', 'pendant', 'contre', 'ne', 'pas',
82
+ 'plus', 'moins', 'très', 'bien', 'aussi', 'encore', 'toujours', 'jamais',
83
+ 'tout', 'tous', 'toute', 'toutes', 'autre', 'autres', 'même', 'mêmes',
84
+ 'ici', 'là', 'y', 'en', 'alors', 'ainsi', 'cela', 'ça', 'voici', 'voilà',
85
+ },
86
+
87
+ 'es': {
88
+ 'el', 'la', 'los', 'las', 'un', 'una', 'unos', 'unas', 'lo', 'al', 'del',
89
+ 'y', 'o', 'pero', 'porque', 'que', 'quien', 'cual', 'cuyo', 'donde',
90
+ 'cuando', 'como', 'si', 'aunque', 'mientras', 'este', 'esta', 'estos',
91
+ 'estas', 'ese', 'esa', 'esos', 'esas', 'aquel', 'aquella', 'aquellos',
92
+ 'yo', 'tú', 'él', 'ella', 'usted', 'nosotros', 'vosotros', 'ellos',
93
+ 'ellas', 'ustedes', 'me', 'te', 'se', 'le', 'les', 'nos', 'os',
94
+ 'mi', 'mis', 'tu', 'tus', 'su', 'sus', 'nuestro', 'nuestra', 'nuestros',
95
+ 'vuestro', 'vuestra', 'vuestros', 'ser', 'soy', 'eres', 'es', 'somos',
96
+ 'sois', 'son', 'era', 'eras', 'éramos', 'eran', 'fui', 'fue', 'fuimos',
97
+ 'estar', 'estoy', 'estás', 'está', 'estamos', 'están', 'estaba',
98
+ 'haber', 'he', 'has', 'ha', 'hemos', 'habéis', 'han', 'había',
99
+ 'tener', 'tengo', 'tienes', 'tiene', 'tenemos', 'tienen', 'tenía',
100
+ 'hacer', 'hago', 'haces', 'hace', 'hacemos', 'hacen', 'hacía',
101
+ 'poder', 'puedo', 'puedes', 'puede', 'podemos', 'pueden', 'podía',
102
+ 'para', 'por', 'con', 'sin', 'sobre', 'entre', 'hasta', 'desde',
103
+ 'de', 'en', 'a', 'ante', 'bajo', 'contra', 'hacia', 'según',
104
+ 'no', 'ni', 'sí', 'también', 'más', 'menos', 'muy', 'ya', 'aún',
105
+ 'todavía', 'siempre', 'nunca', 'aquí', 'ahí', 'allí', 'así', 'bien',
106
+ 'todo', 'toda', 'todos', 'todas', 'algo', 'alguien', 'nada', 'nadie',
107
+ 'otro', 'otra', 'otros', 'otras', 'mismo', 'misma', 'mismos', 'mismas',
108
+ },
109
+
110
+ 'it': {
111
+ 'il', 'lo', 'la', 'i', 'gli', 'le', 'un', 'uno', 'una', 'dei', 'degli',
112
+ 'delle', 'del', 'dello', 'della', 'e', 'o', 'ma', 'però', 'perché',
113
+ 'che', 'chi', 'cui', 'quale', 'quali', 'dove', 'quando', 'come', 'se',
114
+ 'questo', 'questa', 'questi', 'queste', 'quello', 'quella', 'quelli',
115
+ 'io', 'tu', 'lui', 'lei', 'noi', 'voi', 'loro', 'esso', 'essa', 'essi',
116
+ 'mi', 'ti', 'ci', 'vi', 'si', 'lo', 'la', 'li', 'le', 'ne', 'gli',
117
+ 'mio', 'mia', 'miei', 'mie', 'tuo', 'tua', 'tuoi', 'tue', 'suo', 'sua',
118
+ 'nostro', 'nostra', 'nostri', 'nostre', 'vostro', 'vostra', 'loro',
119
+ 'essere', 'sono', 'sei', 'è', 'siamo', 'siete', 'era', 'ero', 'erano',
120
+ 'avere', 'ho', 'hai', 'ha', 'abbiamo', 'avete', 'hanno', 'aveva', 'avevo',
121
+ 'fare', 'faccio', 'fai', 'fa', 'facciamo', 'fanno', 'faceva', 'fatto',
122
+ 'potere', 'posso', 'puoi', 'può', 'possiamo', 'possono', 'poteva',
123
+ 'volere', 'voglio', 'vuoi', 'vuole', 'vogliamo', 'vogliono', 'voleva',
124
+ 'dovere', 'devo', 'devi', 'deve', 'dobbiamo', 'devono', 'doveva',
125
+ 'per', 'con', 'senza', 'su', 'in', 'da', 'a', 'tra', 'fra', 'di',
126
+ 'non', 'né', 'sì', 'anche', 'più', 'meno', 'molto', 'poco', 'già',
127
+ 'ancora', 'sempre', 'mai', 'qui', 'qua', 'là', 'lì', 'così', 'bene',
128
+ 'tutto', 'tutta', 'tutti', 'tutte', 'altro', 'altra', 'altri', 'altre',
129
+ },
130
+
131
+ 'pt': {
132
+ 'o', 'a', 'os', 'as', 'um', 'uma', 'uns', 'umas', 'do', 'da', 'dos',
133
+ 'das', 'no', 'na', 'nos', 'nas', 'ao', 'à', 'aos', 'às', 'pelo', 'pela',
134
+ 'e', 'ou', 'mas', 'porém', 'porque', 'que', 'quem', 'qual', 'cujo',
135
+ 'onde', 'quando', 'como', 'se', 'este', 'esta', 'estes', 'estas',
136
+ 'esse', 'essa', 'esses', 'essas', 'aquele', 'aquela', 'aqueles',
137
+ 'eu', 'tu', 'ele', 'ela', 'nós', 'vós', 'eles', 'elas', 'você', 'vocês',
138
+ 'me', 'te', 'se', 'lhe', 'nos', 'vos', 'lhes', 'o', 'a', 'os', 'as',
139
+ 'meu', 'minha', 'meus', 'minhas', 'teu', 'tua', 'seu', 'sua', 'nosso',
140
+ 'ser', 'sou', 'és', 'é', 'somos', 'sois', 'são', 'era', 'eras', 'eram',
141
+ 'estar', 'estou', 'estás', 'está', 'estamos', 'estão', 'estava',
142
+ 'ter', 'tenho', 'tens', 'tem', 'temos', 'têm', 'tinha', 'tinham',
143
+ 'haver', 'hei', 'hás', 'há', 'havemos', 'hão', 'havia', 'houve',
144
+ 'fazer', 'faço', 'fazes', 'faz', 'fazemos', 'fazem', 'fazia', 'fez',
145
+ 'poder', 'posso', 'podes', 'pode', 'podemos', 'podem', 'podia',
146
+ 'para', 'por', 'com', 'sem', 'sobre', 'entre', 'até', 'desde', 'de',
147
+ 'em', 'a', 'ante', 'sob', 'contra', 'não', 'nem', 'sim', 'também',
148
+ 'mais', 'menos', 'muito', 'pouco', 'já', 'ainda', 'sempre', 'nunca',
149
+ 'aqui', 'aí', 'ali', 'assim', 'bem', 'todo', 'toda', 'todos', 'todas',
150
+ },
151
+
152
+ 'nl': {
153
+ 'de', 'het', 'een', 'en', 'van', 'in', 'is', 'op', 'te', 'dat', 'die',
154
+ 'voor', 'zijn', 'met', 'niet', 'aan', 'er', 'maar', 'om', 'ook', 'als',
155
+ 'dan', 'of', 'naar', 'bij', 'nog', 'wel', 'geen', 'zou', 'kunnen',
156
+ 'worden', 'heeft', 'hebben', 'dit', 'door', 'over', 'tot', 'uit', 'al',
157
+ 'wat', 'wie', 'waar', 'wanneer', 'waarom', 'hoe', 'ik', 'je', 'jij',
158
+ 'hij', 'zij', 'wij', 'jullie', 'u', 'mij', 'hem', 'haar', 'ons', 'hun',
159
+ 'mijn', 'jouw', 'zijn', 'haar', 'uw', 'onze', 'hun', 'deze', 'dit',
160
+ 'die', 'dat', 'welke', 'elk', 'ieder', 'alle', 'veel', 'meer', 'meest',
161
+ 'zo', 'zeer', 'hier', 'daar', 'nu', 'toen', 'vaak', 'altijd', 'nooit',
162
+ },
163
+
164
+ 'ru': {
165
+ 'и', 'в', 'не', 'на', 'я', 'что', 'он', 'с', 'со', 'как', 'а', 'то',
166
+ 'все', 'она', 'так', 'его', 'но', 'да', 'ты', 'к', 'у', 'же', 'вы',
167
+ 'за', 'бы', 'по', 'только', 'её', 'мне', 'было', 'вот', 'от', 'меня',
168
+ 'ещё', 'нет', 'о', 'из', 'ему', 'теперь', 'когда', 'уже', 'вам', 'ни',
169
+ 'быть', 'был', 'была', 'были', 'есть', 'будет', 'для', 'этот', 'эта',
170
+ 'эти', 'этого', 'этой', 'мы', 'они', 'их', 'им', 'ней', 'него', 'нас',
171
+ 'себя', 'себе', 'свой', 'свою', 'своего', 'своей', 'кто', 'где', 'куда',
172
+ 'почему', 'зачем', 'который', 'которая', 'которое', 'которые', 'или',
173
+ 'тоже', 'также', 'может', 'надо', 'нужно', 'очень', 'даже', 'чем',
174
+ 'при', 'под', 'над', 'между', 'через', 'после', 'перед', 'более',
175
+ 'менее', 'здесь', 'там', 'тогда', 'сейчас', 'всегда', 'никогда',
176
+ },
177
+
178
+ 'zh': {
179
+ '的', '是', '在', '不', '了', '有', '和', '人', '这', '中', '大', '为',
180
+ '上', '个', '国', '我', '以', '要', '他', '时', '来', '用', '们', '生',
181
+ '到', '作', '地', '于', '出', '就', '分', '对', '成', '会', '可', '主',
182
+ '发', '年', '动', '同', '工', '也', '能', '下', '过', '子', '说', '产',
183
+ '种', '面', '而', '方', '后', '多', '定', '行', '学', '法', '所', '民',
184
+ '得', '经', '十', '三', '之', '进', '着', '等', '部', '度', '家', '电',
185
+ '力', '里', '如', '水', '化', '高', '自', '二', '理', '起', '小', '物',
186
+ '现', '实', '加', '量', '都', '两', '体', '制', '机', '当', '使', '点',
187
+ '从', '业', '本', '去', '把', '性', '好', '应', '开', '它', '合', '还',
188
+ '因', '由', '其', '些', '然', '前', '外', '天', '政', '四', '日', '那',
189
+ '社', '义', '事', '平', '形', '相', '全', '表', '间', '样', '与', '关',
190
+ '各', '重', '新', '线', '内', '数', '正', '心', '反', '你', '明', '看',
191
+ '原', '又', '么', '利', '比', '或', '但', '质', '气', '第', '向', '道',
192
+ '命', '此', '变', '条', '只', '没', '结', '解', '问', '意', '建', '月',
193
+ '公', '无', '系', '军', '很', '情', '最', '何', '果', '却', '将', '吗',
194
+ '您', '她', '吧', '啊', '呢', '哪', '谁', '怎', '么样', '这样', '那样',
195
+ },
196
+
197
+ 'ja': {
198
+ 'の', 'に', 'は', 'を', 'た', 'が', 'で', 'て', 'と', 'し', 'れ', 'さ',
199
+ 'ある', 'いる', 'も', 'する', 'から', 'な', 'こと', 'として', 'い', 'や',
200
+ 'れる', 'など', 'なっ', 'ない', 'この', 'ため', 'その', 'あっ', 'よう',
201
+ 'また', 'もの', 'という', 'あり', 'まで', 'られ', 'なる', 'へ', 'か',
202
+ 'だ', 'これ', 'によって', 'により', 'おり', 'より', 'による', 'ず',
203
+ 'なり', 'られる', 'において', 'ば', 'なかっ', 'なく', 'しかし', 'について',
204
+ 'せ', 'だっ', 'その後', 'できる', 'それ', 'う', 'ので', 'なお', 'のみ',
205
+ 'でき', 'き', 'つ', 'における', 'および', 'いう', 'さらに', 'でも',
206
+ 'ら', 'たり', 'その他', 'に関する', 'たち', 'ます', 'ん', 'なら', 'に対して',
207
+ 'わたし', 'あなた', 'かれ', 'かのじょ', 'わたしたち', 'です', 'ました',
208
+ },
209
+
210
+ 'ko': {
211
+ '이', '그', '저', '것', '수', '등', '들', '및', '에', '의', '가', '을',
212
+ '를', '으로', '로', '에서', '와', '과', '는', '은', '도', '에게', '까지',
213
+ '부터', '만', '뿐', '다', '하다', '있다', '없다', '되다', '이다', '아니다',
214
+ '같다', '보다', '위하다', '대하다', '통하다', '그리고', '그러나', '그래서',
215
+ '그런데', '하지만', '또한', '또는', '즉', '곧', '만약', '비록', '아무리',
216
+ '나', '너', '우리', '저희', '그들', '이것', '그것', '저것', '여기', '거기',
217
+ '저기', '이런', '그런', '저런', '어떤', '무슨', '어느', '언제', '어디',
218
+ '왜', '어떻게', '얼마나', '매우', '아주', '너무', '정말', '참', '꽤',
219
+ },
220
+
221
+ 'ar': {
222
+ 'في', 'من', 'على', 'إلى', 'عن', 'مع', 'هذا', 'هذه', 'ذلك', 'تلك', 'التي',
223
+ 'الذي', 'الذين', 'اللذين', 'اللتين', 'اللواتي', 'هو', 'هي', 'هم', 'هن',
224
+ 'أنا', 'أنت', 'أنتم', 'أنتن', 'نحن', 'كان', 'كانت', 'كانوا', 'يكون',
225
+ 'تكون', 'ليس', 'ليست', 'ليسوا', 'إن', 'أن', 'لأن', 'لكن', 'بل', 'أو',
226
+ 'و', 'ف', 'ثم', 'أي', 'كل', 'بعض', 'غير', 'قد', 'لقد', 'سوف', 'قبل',
227
+ 'بعد', 'فوق', 'تحت', 'بين', 'حول', 'ضد', 'خلال', 'عند', 'منذ', 'حتى',
228
+ 'لا', 'نعم', 'ما', 'ماذا', 'من', 'أين', 'متى', 'كيف', 'لماذا', 'كم',
229
+ 'هنا', 'هناك', 'الآن', 'أيضا', 'فقط', 'جدا', 'كثير', 'قليل', 'كبير',
230
+ },
231
+
232
+ 'tr': {
233
+ 've', 'bir', 'bu', 'da', 'de', 'için', 'ile', 'ne', 'var', 'daha', 'çok',
234
+ 'en', 'gibi', 'o', 'ama', 'ancak', 'fakat', 'lakin', 'veya', 'ya', 'hem',
235
+ 'ki', 'kadar', 'sonra', 'önce', 'şu', 'hangi', 'nasıl', 'neden', 'nerede',
236
+ 'ben', 'sen', 'biz', 'siz', 'onlar', 'benim', 'senin', 'onun', 'bizim',
237
+ 'bana', 'sana', 'ona', 'bize', 'size', 'beni', 'seni', 'onu', 'bizi',
238
+ 'olmak', 'oldu', 'olur', 'olan', 'olarak', 'etmek', 'etti', 'yapmak',
239
+ 'yaptı', 'gelmek', 'geldi', 'gitmek', 'gitti', 'vermek', 'verdi', 'almak',
240
+ 'aldı', 'demek', 'dedi', 'görmek', 'gördü', 'bilmek', 'bildi', 'istemek',
241
+ 'üzerinde', 'üzerine', 'altında', 'içinde', 'dışında', 'arasında', 'karşı',
242
+ 'değil', 'evet', 'hayır', 'belki', 'artık', 'hala', 'henüz', 'sadece',
243
+ },
244
+
245
+ 'pl': {
246
+ 'i', 'w', 'nie', 'na', 'do', 'że', 'to', 'z', 'co', 'jak', 'ale', 'o',
247
+ 'się', 'tak', 'po', 'za', 'już', 'od', 'jest', 'by', 'tylko', 'być',
248
+ 'jeszcze', 'który', 'która', 'które', 'tego', 'tej', 'tym', 'ten', 'ta',
249
+ 'te', 'jego', 'jej', 'ich', 'ja', 'ty', 'on', 'ona', 'ono', 'my', 'wy',
250
+ 'oni', 'one', 'mnie', 'ciebie', 'go', 'ją', 'nas', 'was', 'im', 'mój',
251
+ 'twój', 'swój', 'nasz', 'wasz', 'gdzie', 'kiedy', 'dlaczego', 'czy',
252
+ 'lub', 'albo', 'ani', 'więc', 'jednak', 'także', 'również', 'bardzo',
253
+ 'może', 'można', 'musi', 'powinien', 'chce', 'był', 'była', 'było',
254
+ 'będzie', 'przy', 'przez', 'przed', 'nad', 'pod', 'między', 'tutaj',
255
+ 'tam', 'teraz', 'wtedy', 'zawsze', 'nigdy', 'często', 'rzadko', 'wszystko',
256
+ },
257
+
258
+ 'sv': {
259
+ 'och', 'i', 'att', 'det', 'som', 'en', 'på', 'är', 'av', 'för', 'med',
260
+ 'till', 'den', 'har', 'de', 'inte', 'om', 'ett', 'men', 'var', 'jag',
261
+ 'vi', 'kan', 'så', 'han', 'hon', 'eller', 'vad', 'finns', 'då', 'när',
262
+ 'nu', 'ska', 'efter', 'från', 'också', 'bara', 'vid', 'sig', 'sin',
263
+ 'sina', 'sitt', 'dig', 'du', 'mig', 'min', 'mitt', 'mina', 'ditt',
264
+ 'dina', 'honom', 'henne', 'dem', 'detta', 'denna', 'dessa', 'här',
265
+ 'där', 'hur', 'varför', 'vilken', 'vilket', 'vilka', 'vem', 'blev',
266
+ 'bli', 'blir', 'blivit', 'hade', 'ha', 'haft', 'vara', 'varit', 'vore',
267
+ 'skulle', 'kunde', 'ville', 'måste', 'får', 'fick', 'går', 'gick',
268
+ 'kommer', 'kom', 'tar', 'tog', 'ger', 'gav', 'ser', 'såg', 'säger',
269
+ 'sa', 'gör', 'gjorde', 'över', 'under', 'mellan', 'genom', 'mot',
270
+ },
271
+
272
+ 'da': {
273
+ 'og', 'i', 'at', 'det', 'er', 'en', 'den', 'til', 'på', 'af', 'for',
274
+ 'med', 'som', 'de', 'har', 'ikke', 'var', 'et', 'om', 'men', 'jeg',
275
+ 'vi', 'kan', 'han', 'hun', 'eller', 'hvad', 'så', 'da', 'nu', 'vil',
276
+ 'efter', 'fra', 'også', 'kun', 'sig', 'sin', 'sit', 'sine', 'dig',
277
+ 'du', 'mig', 'min', 'mit', 'mine', 'dit', 'dine', 'ham', 'hende',
278
+ 'dem', 'dette', 'denne', 'disse', 'her', 'der', 'hvor', 'hvorfor',
279
+ 'hvilken', 'hvilket', 'hvilke', 'hvem', 'blev', 'blive', 'bliver',
280
+ 'havde', 'have', 'haft', 'være', 'været', 'skulle', 'kunne', 'ville',
281
+ 'må', 'får', 'fik', 'går', 'gik', 'kommer', 'kom', 'tager', 'tog',
282
+ 'giver', 'gav', 'ser', 'så', 'siger', 'sagde', 'gør', 'gjorde',
283
+ 'over', 'under', 'mellem', 'gennem', 'mod', 'hos', 'uden', 'inden',
284
+ },
285
+
286
+ 'fi': {
287
+ 'ja', 'on', 'ei', 'ole', 'se', 'että', 'joka', 'hän', 'oli', 'mutta',
288
+ 'niin', 'kun', 'ovat', 'tai', 'tämä', 'ne', 'voi', 'kuin', 'nyt',
289
+ 'jo', 'jos', 'sitten', 'myös', 'olla', 'minä', 'sinä', 'me', 'te',
290
+ 'he', 'sitä', 'mitä', 'mikä', 'kuka', 'missä', 'milloin', 'miksi',
291
+ 'miten', 'paljon', 'vain', 'vielä', 'aina', 'kaikki', 'tässä', 'siellä',
292
+ 'täällä', 'tänne', 'sinne', 'mistä', 'mihin', 'jossa', 'johon', 'josta',
293
+ 'kanssa', 'ilman', 'mukaan', 'kautta', 'kohti', 'vastaan', 'ennen',
294
+ 'jälkeen', 'yli', 'ali', 'välillä', 'läpi', 'ympäri', 'koska', 'vaikka',
295
+ },
296
+
297
+ 'no': {
298
+ 'og', 'i', 'at', 'det', 'er', 'en', 'den', 'til', 'på', 'av', 'for',
299
+ 'med', 'som', 'de', 'har', 'ikke', 'var', 'et', 'om', 'men', 'jeg',
300
+ 'vi', 'kan', 'han', 'hun', 'eller', 'hva', 'så', 'da', 'nå', 'vil',
301
+ 'etter', 'fra', 'også', 'bare', 'seg', 'sin', 'sitt', 'sine', 'deg',
302
+ 'du', 'meg', 'min', 'mitt', 'mine', 'ditt', 'dine', 'ham', 'henne',
303
+ 'dem', 'dette', 'denne', 'disse', 'her', 'der', 'hvor', 'hvorfor',
304
+ 'hvilken', 'hvilket', 'hvilke', 'hvem', 'ble', 'bli', 'blir', 'blitt',
305
+ 'hadde', 'ha', 'hatt', 'være', 'vært', 'skulle', 'kunne', 'ville',
306
+ 'må', 'får', 'fikk', 'går', 'gikk', 'kommer', 'kom', 'tar', 'tok',
307
+ 'gir', 'gav', 'ser', 'så', 'sier', 'sa', 'gjør', 'gjorde', 'over',
308
+ 'under', 'mellom', 'gjennom', 'mot', 'hos', 'uten', 'innen', 'ved',
309
+ },
310
+
311
+ 'el': {
312
+ 'και', 'το', 'τη', 'της', 'τον', 'του', 'των', 'τα', 'να', 'με', 'για',
313
+ 'είναι', 'στο', 'στη', 'στον', 'στην', 'από', 'ως', 'που', 'ένα', 'μια',
314
+ 'ο', 'η', 'οι', 'θα', 'δεν', 'αλλά', 'αν', 'ή', 'όταν', 'πως', 'τι',
315
+ 'ποιος', 'πού', 'πότε', 'γιατί', 'πώς', 'εγώ', 'εσύ', 'αυτός', 'αυτή',
316
+ 'αυτό', 'εμείς', 'εσείς', 'αυτοί', 'αυτές', 'αυτά', 'μου', 'σου', 'του',
317
+ 'της', 'μας', 'σας', 'τους', 'είχε', 'έχει', 'έχουν', 'είχαν', 'ήταν',
318
+ 'είμαι', 'είσαι', 'είμαστε', 'είστε', 'πολύ', 'λίγο', 'όλα', 'κάθε',
319
+ 'μόνο', 'εδώ', 'εκεί', 'τώρα', 'τότε', 'πάντα', 'ποτέ', 'ακόμα', 'πια',
320
+ },
321
+
322
+ 'he': {
323
+ 'של', 'את', 'על', 'הוא', 'היא', 'הם', 'הן', 'אני', 'אתה', 'את', 'אנחנו',
324
+ 'אתם', 'אתן', 'זה', 'זאת', 'אלה', 'אלו', 'לא', 'כן', 'גם', 'או', 'אבל',
325
+ 'אם', 'כי', 'כאשר', 'מה', 'מי', 'איפה', 'מתי', 'למה', 'איך', 'כמה',
326
+ 'היה', 'היתה', 'היו', 'יהיה', 'תהיה', 'יהיו', 'להיות', 'יש', 'אין',
327
+ 'עם', 'בלי', 'אל', 'מן', 'אצל', 'בין', 'לפני', 'אחרי', 'מעל', 'מתחת',
328
+ 'כל', 'רק', 'עוד', 'כבר', 'עכשיו', 'אז', 'תמיד', 'לעולם', 'פה', 'שם',
329
+ 'אחר', 'אחרת', 'אחרים', 'אחרות', 'עצמו', 'עצמה', 'עצמם', 'עצמן', 'יותר',
330
+ 'פחות', 'הרבה', 'מעט', 'מאוד', 'קצת', 'טוב', 'רע', 'גדול', 'קטן', 'חדש',
331
+ },
332
+
333
+ 'hi': {
334
+ 'का', 'के', 'की', 'को', 'से', 'में', 'है', 'हैं', 'था', 'थी', 'थे',
335
+ 'और', 'या', 'पर', 'इस', 'उस', 'जो', 'यह', 'वह', 'कि', 'जब', 'तो',
336
+ 'भी', 'ने', 'हो', 'कर', 'एक', 'अपने', 'होता', 'होती', 'करना', 'करता',
337
+ 'करती', 'करते', 'जैसे', 'लिए', 'साथ', 'बाद', 'पहले', 'अगर', 'लेकिन',
338
+ 'कोई', 'कुछ', 'सब', 'यहाँ', 'वहाँ', 'कहाँ', 'कब', 'क्यों', 'कैसे',
339
+ 'मैं', 'तुम', 'हम', 'आप', 'वे', 'मेरा', 'तेरा', 'उसका', 'हमारा', 'आपका',
340
+ 'बहुत', 'कम', 'ज्यादा', 'अब', 'फिर', 'हमेशा', 'कभी', 'सिर्फ', 'बस',
341
+ },
342
+
343
+ 'th': {
344
+ 'ที่', 'และ', 'ใน', 'ของ', 'จะ', 'ได้', 'เป็น', 'มี', 'ไม่', 'ว่า', 'นี้',
345
+ 'ให้', 'กับ', 'แต่', 'หรือ', 'ก็', 'ซึ่ง', 'โดย', 'จาก', 'ถึง', 'เมื่อ',
346
+ 'แล้ว', 'อยู่', 'ทำ', 'คือ', 'นั้น', 'เรา', 'คุณ', 'ผม', 'ฉัน', 'เขา',
347
+ 'เธอ', 'พวกเรา', 'พวกเขา', 'มัน', 'อะไร', 'ใคร', 'ไหน', 'เมื่อไร', 'ทำไม',
348
+ 'อย่างไร', 'เท่าไร', 'มาก', 'น้อย', 'ทุก', 'บาง', 'แค่', 'เพียง', 'ยัง',
349
+ 'เคย', 'ต้อง', 'ควร', 'อาจ', 'คง', 'ตรง', 'ข้าง', 'บน', 'ล่าง', 'ระหว่าง',
350
+ },
351
+
352
+ 'vi': {
353
+ 'và', 'của', 'là', 'có', 'trong', 'được', 'cho', 'không', 'một', 'những',
354
+ 'này', 'các', 'với', 'để', 'từ', 'khi', 'đã', 'như', 'về', 'đến', 'nếu',
355
+ 'nhưng', 'hoặc', 'mà', 'vì', 'cũng', 'còn', 'sẽ', 'bởi', 'theo', 'tại',
356
+ 'qua', 'rằng', 'trên', 'dưới', 'giữa', 'sau', 'trước', 'tôi', 'bạn',
357
+ 'chúng tôi', 'họ', 'anh', 'chị', 'ông', 'bà', 'nó', 'gì', 'ai', 'đâu',
358
+ 'nào', 'sao', 'bao nhiêu', 'rất', 'nhiều', 'ít', 'mỗi', 'tất cả', 'chỉ',
359
+ 'đây', 'đó', 'kia', 'bây giờ', 'luôn', 'thường', 'hay', 'lại', 'nên',
360
+ },
361
+
362
+ 'id': {
363
+ 'yang', 'dan', 'di', 'ini', 'itu', 'dengan', 'untuk', 'tidak', 'dari',
364
+ 'dalam', 'akan', 'pada', 'juga', 'ke', 'karena', 'atau', 'ada', 'mereka',
365
+ 'sudah', 'saya', 'kami', 'kita', 'ia', 'dia', 'anda', 'adalah', 'sebagai',
366
+ 'oleh', 'bisa', 'dapat', 'telah', 'lebih', 'tersebut', 'bahwa', 'maka',
367
+ 'bila', 'ketika', 'jika', 'namun', 'tetapi', 'hanya', 'masih', 'apa',
368
+ 'siapa', 'mana', 'kapan', 'mengapa', 'bagaimana', 'berapa', 'sangat',
369
+ 'banyak', 'sedikit', 'semua', 'setiap', 'sini', 'sana', 'sekarang',
370
+ 'kemudian', 'selalu', 'sering', 'pernah', 'harus', 'perlu', 'boleh',
371
+ },
372
+
373
+ 'cs': {
374
+ 'a', 'i', 'v', 'na', 'že', 'je', 'se', 'to', 'z', 's', 'do', 'o', 'pro',
375
+ 'ale', 'tak', 'jako', 'nebo', 'jsem', 'jsou', 'byl', 'byla', 'bylo',
376
+ 'být', 'jeho', 'její', 'jejich', 'já', 'ty', 'on', 'ona', 'ono', 'my',
377
+ 'vy', 'oni', 'ony', 'mně', 'tě', 'ho', 'ji', 'nás', 'vás', 'je', 'jim',
378
+ 'můj', 'tvůj', 'svůj', 'náš', 'váš', 'tento', 'tato', 'toto', 'ten',
379
+ 'ta', 'ti', 'ty', 'co', 'kdo', 'kde', 'kdy', 'proč', 'jak', 'kolik',
380
+ 'už', 'ještě', 'také', 'jen', 'jenom', 'tady', 'tam', 'teď', 'pak',
381
+ 'vždy', 'nikdy', 'často', 'zřídka', 'více', 'méně', 'velmi', 'málo',
382
+ },
383
+
384
+ 'hu': {
385
+ 'a', 'az', 'és', 'hogy', 'nem', 'is', 'volt', 'egy', 'van', 'meg', 'de',
386
+ 'ezt', 'már', 'csak', 'én', 'te', 'ő', 'mi', 'ti', 'ők', 'az', 'ez',
387
+ 'aki', 'ami', 'ahol', 'amikor', 'ahogy', 'mindig', 'soha', 'igen', 'nem',
388
+ 'itt', 'ott', 'most', 'majd', 'még', 'már', 'nagyon', 'kevés', 'sok',
389
+ 'minden', 'semmi', 'valami', 'valaki', 'senki', 'ki', 'mi', 'hol',
390
+ 'mikor', 'miért', 'hogyan', 'mennyi', 'után', 'előtt', 'között', 'alatt',
391
+ 'fölött', 'mellett', 'mögött', 'ellen', 'által', 'szerint', 'nélkül',
392
+ },
393
+
394
+ 'ro': {
395
+ 'și', 'în', 'a', 'de', 'la', 'cu', 'pe', 'o', 'că', 'nu', 'din', 'care',
396
+ 'ce', 'se', 'lui', 'un', 'pentru', 'sunt', 'mai', 'fi', 'sau', 'dar',
397
+ 'el', 'ea', 'ei', 'ele', 'eu', 'tu', 'noi', 'voi', 'meu', 'tău', 'său',
398
+ 'nostru', 'vostru', 'lor', 'acest', 'această', 'acești', 'aceste', 'acel',
399
+ 'acea', 'acei', 'acele', 'cine', 'ce', 'unde', 'când', 'cum', 'de ce',
400
+ 'cât', 'aici', 'acolo', 'acum', 'atunci', 'mereu', 'niciodată', 'foarte',
401
+ 'puțin', 'mult', 'tot', 'toată', 'toți', 'toate', 'fiecare', 'unii',
402
+ 'nimic', 'nimeni', 'ceva', 'cineva', 'doar', 'încă', 'deja', 'poate',
403
+ },
404
+
405
+ 'uk': {
406
+ 'і', 'в', 'на', 'що', 'не', 'з', 'у', 'до', 'як', 'але', 'за', 'від',
407
+ 'так', 'він', 'вона', 'воно', 'вони', 'я', 'ти', 'ми', 'ви', 'це', 'той',
408
+ 'та', 'те', 'ті', 'який', 'яка', 'яке', 'які', 'де', 'коли', 'чому',
409
+ 'як', 'хто', 'що', 'скільки', 'тут', 'там', 'зараз', 'тоді', 'завжди',
410
+ 'ніколи', 'дуже', 'мало', 'багато', 'все', 'всі', 'ніщо', 'ніхто',
411
+ 'щось', 'хтось', 'тільки', 'ще', 'вже', 'може', 'треба', 'можна',
412
+ 'був', 'була', 'було', 'були', 'бути', 'є', 'буде', 'будуть', 'мій',
413
+ 'твій', 'його', 'її', 'наш', 'ваш', 'їх', 'свій', 'цей', 'ця', 'ці',
414
+ },
415
+ }
416
+
417
+
418
+ def get_stopwords(language: str, custom_stopwords: Optional[List[str]] = None) -> Set[str]:
419
+ """
420
+ Get stopwords for a given language.
421
+
422
+ Parameters
423
+ ----------
424
+ language : str
425
+ ISO 639-1 language code
426
+ custom_stopwords : List[str], optional
427
+ Additional stopwords to add
428
+
429
+ Returns
430
+ -------
431
+ Set[str]
432
+ Set of stopwords
433
+ """
434
+ # Normalize language code
435
+ lang = language.lower().strip()
436
+ if lang in ['zh-cn', 'zh-tw', 'chinese']:
437
+ lang = 'zh'
438
+ elif lang in ['japanese']:
439
+ lang = 'ja'
440
+ elif lang in ['korean']:
441
+ lang = 'ko'
442
+
443
+ # Get base stopwords
444
+ if lang in STOPWORDS:
445
+ stopwords = STOPWORDS[lang].copy()
446
+ else:
447
+ # Fall back to English if language not found
448
+ warnings.warn(f"No stopwords found for language '{language}', using English stopwords")
449
+ stopwords = STOPWORDS['en'].copy()
450
+
451
+ # Add custom stopwords
452
+ if custom_stopwords:
453
+ stopwords.update(custom_stopwords)
454
+
455
+ return stopwords
456
+
457
+
458
+ def get_available_languages() -> List[str]:
459
+ """
460
+ Get list of languages with available stopwords.
461
+
462
+ Returns
463
+ -------
464
+ List[str]
465
+ List of language codes
466
+ """
467
+ return list(STOPWORDS.keys())