Compare commits

...

4 Commits

Author SHA1 Message Date
Aleksy Wroblewski
4dffa4ee0a Merge two scripts into one 2021-04-17 14:29:51 +02:00
Aleksy Wroblewski
9728e579d4 Improve the results to 0.8ish 2021-04-17 14:23:23 +02:00
Aleksy Wroblewski
83e6d37f53 Improve the result by around 0.1 geval score by removing polish stopwords 2021-04-15 18:29:53 +02:00
Aleksy Wroblewski
31a45be3f8 Add first solution 2021-04-15 18:16:41 +02:00
6 changed files with 1229 additions and 0 deletions

87
dev-0/out.tsv Normal file
View File

@ -0,0 +1,87 @@
18
11
10
12
22
5
19
8
23
1
8
5
11
16
9
9
13
22
7
16
10
0
6
15
8
0
14
6
24
11
19
2
2
21
9
2
11
18
14
12
23
3
2
17
3
4
2
11
14
2
8
10
2
0
3
15
11
11
19
21
2
11
2
4
5
21
2
3
10
2
22
7
3
19
11
23
8
3
17
20
1
8
1
16
2
21
22
1 18
2 11
3 10
4 12
5 22
6 5
7 19
8 8
9 23
10 1
11 8
12 5
13 11
14 16
15 9
16 9
17 13
18 22
19 7
20 16
21 10
22 0
23 6
24 15
25 8
26 0
27 14
28 6
29 24
30 11
31 19
32 2
33 2
34 21
35 9
36 2
37 11
38 18
39 14
40 12
41 23
42 3
43 2
44 17
45 3
46 4
47 2
48 11
49 14
50 2
51 8
52 10
53 2
54 0
55 3
56 15
57 11
58 11
59 19
60 21
61 2
62 11
63 2
64 4
65 5
66 21
67 2
68 3
69 10
70 2
71 22
72 7
73 3
74 19
75 11
76 23
77 8
78 3
79 17
80 20
81 1
82 8
83 1
84 16
85 2
86 21
87 22

32
solution-dev0.py Normal file
View File

@ -0,0 +1,32 @@
from sklearn.feature_extraction.text import TfidfVectorizer
import numpy as np
import sklearn.metrics
from sklearn.cluster import KMeans
def preprocess(document, stopwords):
return " ".join([word for word in document.split() if word not in stopwords])
def main():
with open('stopwords.txt') as stopwords_file:
stopwords = [stopword.strip()
for stopword in stopwords_file.readlines()]
with open("dev-0/in.tsv") as in_file:
documents = [preprocess(document, stopwords)
for document in in_file.readlines()]
vectorizer = TfidfVectorizer()
document_vectors = vectorizer.fit_transform(documents)
predictions = KMeans(
n_clusters=25, max_iter=1000).fit_predict(document_vectors)
with open("dev-0/out.tsv", "w") as out_file:
for prediction in predictions:
out_file.write(str(prediction) + '\n')
if __name__ == '__main__':
main()

32
solution-testA.py Normal file
View File

@ -0,0 +1,32 @@
from sklearn.feature_extraction.text import TfidfVectorizer
import numpy as np
import sklearn.metrics
from sklearn.cluster import KMeans
def preprocess(document, stopwords):
return " ".join([word for word in document.split() if word not in stopwords])
def main():
with open('stopwords.txt') as stopwords_file:
stopwords = [stopword.strip()
for stopword in stopwords_file.readlines()]
with open("test-A/in.tsv") as in_file:
documents = [preprocess(document, stopwords)
for document in in_file.readlines()]
vectorizer = TfidfVectorizer()
document_vectors = vectorizer.fit_transform(documents)
predictions = KMeans(
n_clusters=25, max_iter=1000).fit_predict(document_vectors)
with open("test-A/out.tsv", "w") as out_file:
for prediction in predictions:
out_file.write(str(prediction) + '\n')
if __name__ == '__main__':
main()

37
solution.py Normal file
View File

@ -0,0 +1,37 @@
from sklearn.feature_extraction.text import TfidfVectorizer
import numpy as np
import sklearn.metrics
from sklearn.cluster import KMeans
def preprocess(document, stopwords):
return " ".join([word for word in document.split() if word not in stopwords])
def predict(in_file, out_file, stopwords):
with open(in_file) as in_file:
documents = [preprocess(document, stopwords)
for document in in_file.readlines()]
vectorizer = TfidfVectorizer()
document_vectors = vectorizer.fit_transform(documents)
predictions = KMeans(
n_clusters=25, max_iter=1000).fit_predict(document_vectors)
with open(out_file, "w") as out_file:
for prediction in predictions:
out_file.write(str(prediction) + '\n')
def main():
with open('stopwords.txt') as stopwords_file:
stopwords = [stopword.strip()
for stopword in stopwords_file.readlines()]
predict("dev-0/in.tsv", "dev-0/out.tsv", stopwords)
predict("test-A/in.tsv", "test-A/out.tsv", stopwords)
if __name__ == '__main__':
main()

350
stopwords.txt Normal file
View File

@ -0,0 +1,350 @@
a
aby
ach
acz
aczkolwiek
aj
albo
ale
alez
ależ
ani
az
bardziej
bardzo
beda
bedzie
bez
deda
będą
bede
będę
będzie
bo
bowiem
by
byc
być
byl
byla
byli
bylo
byly
był
była
było
były
bynajmniej
cala
cali
caly
cała
cały
ci
cie
ciebie
cię
co
cokolwiek
cos
coś
czasami
czasem
czemu
czy
czyli
daleko
dla
dlaczego
dlatego
do
dobrze
dokad
dokąd
dosc
dość
duzo
dużo
dwa
dwaj
dwie
dwoje
dzis
dzisiaj
dziś
gdy
gdyby
gdyz
gdyż
gdzie
gdziekolwiek
gdzies
gdzieś
go
i
ich
ile
im
inna
inne
inny
innych
iz
ja
jak
jakas
jakaś
jakby
jaki
jakichs
jakichś
jakie
jakis
jakiś
jakiz
jakiż
jakkolwiek
jako
jakos
jakoś
je
jeden
jedna
jednak
jednakze
jednakże
jedno
jego
jej
jemu
jesli
jest
jestem
jeszcze
jeśli
jezeli
jeżeli
juz
już
kazdy
każdy
kiedy
kilka
kims
kimś
kto
ktokolwiek
ktora
ktore
ktorego
ktorej
ktory
ktorych
ktorym
ktorzy
ktos
ktoś
która
które
którego
której
który
których
którym
którzy
ku
lat
lecz
lub
ma
mają
mało
mam
mi
miedzy
między
mimo
mna
mną
mnie
moga
mogą
moi
moim
moj
moja
moje
moze
mozliwe
mozna
może
możliwe
można
mój
mu
musi
my
na
nad
nam
nami
nas
nasi
nasz
nasza
nasze
naszego
naszych
natomiast
natychmiast
nawet
nia
nią
nic
nich
nie
niech
niego
niej
niemu
nigdy
nim
nimi
niz
niż
no
o
obok
od
około
on
ona
one
oni
ono
oraz
oto
owszem
pan
pana
pani
po
pod
podczas
pomimo
ponad
poniewaz
ponieważ
powinien
powinna
powinni
powinno
poza
prawie
przeciez
przecież
przed
przede
przedtem
przez
przy
roku
rowniez
również
sam
sama
sie
się
skad
skąd
soba
sobą
sobie
sposob
sposób
swoje
ta
tak
taka
taki
takie
takze
także
tam
te
tego
tej
ten
teraz
też
to
toba
tobą
tobie
totez
toteż
totobą
trzeba
tu
tutaj
twoi
twoim
twoj
twoja
twoje
twój
twym
ty
tych
tylko
tym
u
w
wam
wami
was
wasz
wasza
wasze
we
według
wiele
wielu
więc
więcej
wlasnie
właśnie
wszyscy
wszystkich
wszystkie
wszystkim
wszystko
wtedy
wy
z
za
zaden
zadna
zadne
zadnych
zapewne
zawsze
ze
zeby
zeznowu
znow
znowu
znów
zostal
został
żaden
żadna
żadne
żadnych
że
żeby

691
test-A/out.tsv Normal file
View File

@ -0,0 +1,691 @@
4
4
24
14
3
22
14
5
4
3
12
23
7
19
11
9
23
10
23
11
23
7
22
18
6
0
6
4
7
5
14
7
22
24
2
10
23
21
24
4
10
17
23
7
12
19
16
8
24
11
24
3
16
18
13
21
11
24
4
4
6
9
9
3
11
24
18
22
16
19
13
2
9
23
4
23
4
23
6
4
19
20
1
10
3
6
23
5
6
4
18
13
2
3
9
9
4
12
4
10
12
7
23
8
4
14
0
4
0
6
7
1
11
24
23
3
9
10
21
21
8
5
6
16
6
24
23
21
5
21
13
2
21
21
4
2
15
4
1
15
4
10
8
15
0
16
6
15
5
21
9
9
4
11
18
5
23
3
9
7
17
1
14
8
13
3
4
17
2
2
10
19
18
23
9
1
3
19
21
10
20
10
21
21
0
4
5
4
5
13
4
0
23
14
5
3
14
24
10
4
6
4
4
19
9
9
24
8
1
4
7
4
11
6
4
16
5
22
11
12
23
16
13
6
11
2
17
0
4
10
16
4
21
5
22
12
2
18
0
21
4
11
24
18
4
4
13
13
6
8
16
10
20
7
4
11
7
12
17
8
21
7
23
11
15
5
14
6
4
10
21
4
13
4
22
23
19
7
8
17
11
13
19
5
7
4
21
24
9
22
4
16
0
6
10
13
23
4
9
6
18
0
11
13
14
19
10
6
6
4
9
4
1
23
17
10
13
4
4
4
6
1
7
6
18
19
6
4
21
19
23
4
10
21
14
24
10
1
11
4
11
21
7
11
18
8
3
23
16
16
4
0
13
7
23
19
13
3
4
9
4
4
9
11
13
12
24
7
8
17
23
10
23
19
5
6
21
9
17
11
11
19
4
12
4
7
12
23
19
22
9
24
4
24
23
11
4
3
23
21
19
14
21
5
18
11
4
5
13
7
12
4
5
16
21
13
8
13
15
6
4
5
21
22
17
4
24
3
10
11
4
18
8
4
20
6
23
5
18
22
11
24
21
17
23
10
23
20
7
19
4
10
4
5
19
21
4
8
6
13
19
16
4
6
4
9
24
21
8
4
10
4
4
4
6
19
6
19
2
11
17
11
9
16
4
12
14
13
5
6
4
24
8
4
7
12
7
15
3
8
12
24
6
21
14
1
7
4
7
12
22
17
4
6
6
10
10
23
4
8
7
21
17
4
3
23
5
10
4
7
20
4
6
24
0
7
23
11
13
16
4
15
3
8
7
22
4
7
19
7
1
3
4
23
2
20
4
4
2
24
22
24
4
5
9
4
21
4
5
2
24
24
13
10
21
23
7
4
23
6
21
12
4
22
4
4
20
21
3
13
10
4
5
0
7
6
4
13
4
4
24
11
13
11
21
4
12
4
19
19
23
7
4
8
23
0
8
8
6
6
19
7
13
24
13
9
12
19
9
19
23
8
4
5
19
4
4
18
11
3
11
4
4
21
5
17
0
18
12
10
13
12
20
23
11
16
23
5
23
4
5
22
0
6
4
7
5
4
0
0
7
23
14
17
4
4
6
3
21
22
6
2
22
17
5
24
11
4
4
18
17
1 4
2 4
3 24
4 14
5 3
6 22
7 14
8 5
9 4
10 3
11 12
12 23
13 7
14 19
15 11
16 9
17 23
18 10
19 23
20 11
21 23
22 7
23 22
24 18
25 6
26 0
27 6
28 4
29 7
30 5
31 14
32 7
33 22
34 24
35 2
36 10
37 23
38 21
39 24
40 4
41 10
42 17
43 23
44 7
45 12
46 19
47 16
48 8
49 24
50 11
51 24
52 3
53 16
54 18
55 13
56 21
57 11
58 24
59 4
60 4
61 6
62 9
63 9
64 3
65 11
66 24
67 18
68 22
69 16
70 19
71 13
72 2
73 9
74 23
75 4
76 23
77 4
78 23
79 6
80 4
81 19
82 20
83 1
84 10
85 3
86 6
87 23
88 5
89 6
90 4
91 18
92 13
93 2
94 3
95 9
96 9
97 4
98 12
99 4
100 10
101 12
102 7
103 23
104 8
105 4
106 14
107 0
108 4
109 0
110 6
111 7
112 1
113 11
114 24
115 23
116 3
117 9
118 10
119 21
120 21
121 8
122 5
123 6
124 16
125 6
126 24
127 23
128 21
129 5
130 21
131 13
132 2
133 21
134 21
135 4
136 2
137 15
138 4
139 1
140 15
141 4
142 10
143 8
144 15
145 0
146 16
147 6
148 15
149 5
150 21
151 9
152 9
153 4
154 11
155 18
156 5
157 23
158 3
159 9
160 7
161 17
162 1
163 14
164 8
165 13
166 3
167 4
168 17
169 2
170 2
171 10
172 19
173 18
174 23
175 9
176 1
177 3
178 19
179 21
180 10
181 20
182 10
183 21
184 21
185 0
186 4
187 5
188 4
189 5
190 13
191 4
192 0
193 23
194 14
195 5
196 3
197 14
198 24
199 10
200 4
201 6
202 4
203 4
204 19
205 9
206 9
207 24
208 8
209 1
210 4
211 7
212 4
213 11
214 6
215 4
216 16
217 5
218 22
219 11
220 12
221 23
222 16
223 13
224 6
225 11
226 2
227 17
228 0
229 4
230 10
231 16
232 4
233 21
234 5
235 22
236 12
237 2
238 18
239 0
240 21
241 4
242 11
243 24
244 18
245 4
246 4
247 13
248 13
249 6
250 8
251 16
252 10
253 20
254 7
255 4
256 11
257 7
258 12
259 17
260 8
261 21
262 7
263 23
264 11
265 15
266 5
267 14
268 6
269 4
270 10
271 21
272 4
273 13
274 4
275 22
276 23
277 19
278 7
279 8
280 17
281 11
282 13
283 19
284 5
285 7
286 4
287 21
288 24
289 9
290 22
291 4
292 16
293 0
294 6
295 10
296 13
297 23
298 4
299 9
300 6
301 18
302 0
303 11
304 13
305 14
306 19
307 10
308 6
309 6
310 4
311 9
312 4
313 1
314 23
315 17
316 10
317 13
318 4
319 4
320 4
321 6
322 1
323 7
324 6
325 18
326 19
327 6
328 4
329 21
330 19
331 23
332 4
333 10
334 21
335 14
336 24
337 10
338 1
339 11
340 4
341 11
342 21
343 7
344 11
345 18
346 8
347 3
348 23
349 16
350 16
351 4
352 0
353 13
354 7
355 23
356 19
357 13
358 3
359 4
360 9
361 4
362 4
363 9
364 11
365 13
366 12
367 24
368 7
369 8
370 17
371 23
372 10
373 23
374 19
375 5
376 6
377 21
378 9
379 17
380 11
381 11
382 19
383 4
384 12
385 4
386 7
387 12
388 23
389 19
390 22
391 9
392 24
393 4
394 24
395 23
396 11
397 4
398 3
399 23
400 21
401 19
402 14
403 21
404 5
405 18
406 11
407 4
408 5
409 13
410 7
411 12
412 4
413 5
414 16
415 21
416 13
417 8
418 13
419 15
420 6
421 4
422 5
423 21
424 22
425 17
426 4
427 24
428 3
429 10
430 11
431 4
432 18
433 8
434 4
435 20
436 6
437 23
438 5
439 18
440 22
441 11
442 24
443 21
444 17
445 23
446 10
447 23
448 20
449 7
450 19
451 4
452 10
453 4
454 5
455 19
456 21
457 4
458 8
459 6
460 13
461 19
462 16
463 4
464 6
465 4
466 9
467 24
468 21
469 8
470 4
471 10
472 4
473 4
474 4
475 6
476 19
477 6
478 19
479 2
480 11
481 17
482 11
483 9
484 16
485 4
486 12
487 14
488 13
489 5
490 6
491 4
492 24
493 8
494 4
495 7
496 12
497 7
498 15
499 3
500 8
501 12
502 24
503 6
504 21
505 14
506 1
507 7
508 4
509 7
510 12
511 22
512 17
513 4
514 6
515 6
516 10
517 10
518 23
519 4
520 8
521 7
522 21
523 17
524 4
525 3
526 23
527 5
528 10
529 4
530 7
531 20
532 4
533 6
534 24
535 0
536 7
537 23
538 11
539 13
540 16
541 4
542 15
543 3
544 8
545 7
546 22
547 4
548 7
549 19
550 7
551 1
552 3
553 4
554 23
555 2
556 20
557 4
558 4
559 2
560 24
561 22
562 24
563 4
564 5
565 9
566 4
567 21
568 4
569 5
570 2
571 24
572 24
573 13
574 10
575 21
576 23
577 7
578 4
579 23
580 6
581 21
582 12
583 4
584 22
585 4
586 4
587 20
588 21
589 3
590 13
591 10
592 4
593 5
594 0
595 7
596 6
597 4
598 13
599 4
600 4
601 24
602 11
603 13
604 11
605 21
606 4
607 12
608 4
609 19
610 19
611 23
612 7
613 4
614 8
615 23
616 0
617 8
618 8
619 6
620 6
621 19
622 7
623 13
624 24
625 13
626 9
627 12
628 19
629 9
630 19
631 23
632 8
633 4
634 5
635 19
636 4
637 4
638 18
639 11
640 3
641 11
642 4
643 4
644 21
645 5
646 17
647 0
648 18
649 12
650 10
651 13
652 12
653 20
654 23
655 11
656 16
657 23
658 5
659 23
660 4
661 5
662 22
663 0
664 6
665 4
666 7
667 5
668 4
669 0
670 0
671 7
672 23
673 14
674 17
675 4
676 4
677 6
678 3
679 21
680 22
681 6
682 2
683 22
684 17
685 5
686 24
687 11
688 4
689 4
690 18
691 17