diff --git a/dev-0/out.tsv b/dev-0/out.tsv index 765b967..7881845 100644 --- a/dev-0/out.tsv +++ b/dev-0/out.tsv @@ -1,87 +1,87 @@ -31 -33 -30 -12 -32 -19 -41 -15 -1 -11 -15 -19 -7 -9 5 -42 -20 -36 -4 -24 -21 -40 -2 -0 -25 -23 -10 -2 -24 -44 -6 -43 -26 -9 -5 -3 -35 -22 -10 -12 -1 -27 -41 29 -8 -28 -3 -7 -15 -6 -13 -30 -6 -23 +35 +32 18 -0 -7 -7 -6 -17 +20 3 -34 -15 -37 -19 +42 +4 +1 +17 +20 16 +44 +13 +13 +41 +36 +10 +0 +27 +28 +8 14 +25 +19 +2 8 38 -3 +40 +34 +34 +15 +24 +13 +9 +39 +5 +2 32 4 -8 -14 -7 +33 +15 +21 +30 +37 +9 +11 +26 15 25 -18 -29 -39 -11 -15 -11 -24 +35 +34 +19 +6 14 +16 +16 +34 +7 +15 +12 +34 +31 +20 +7 +34 +30 +35 +9 +18 +10 +30 +3 +43 +42 +25 +6 +21 22 -24 +1 +17 +1 +0 +15 +7 +23 diff --git a/solution-dev0.py b/solution-dev0.py index 2dedafe..d611c26 100644 --- a/solution-dev0.py +++ b/solution-dev0.py @@ -4,15 +4,25 @@ 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 = in_file.readlines() + documents = [preprocess(document, stopwords) + for document in in_file.readlines()] vectorizer = TfidfVectorizer(ngram_range=(1, 3), use_idf=False) vectorizer = TfidfVectorizer() document_vectors = vectorizer.fit_transform(documents) - predictions = KMeans(n_clusters=45).fit_predict(document_vectors) + predictions = KMeans( + n_clusters=45, max_iter=1000).fit_predict(document_vectors) with open("dev-0/out.tsv", "w") as out_file: for prediction in predictions: diff --git a/solution-testA.py b/solution-testA.py index e1e321a..05ac567 100644 --- a/solution-testA.py +++ b/solution-testA.py @@ -4,15 +4,25 @@ 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 = in_file.readlines() + documents = [preprocess(document, stopwords) + for document in in_file.readlines()] vectorizer = TfidfVectorizer(ngram_range=(1, 3), use_idf=False) vectorizer = TfidfVectorizer() document_vectors = vectorizer.fit_transform(documents) - predictions = KMeans(n_clusters=45).fit_predict(document_vectors) + predictions = KMeans( + n_clusters=45, max_iter=1000).fit_predict(document_vectors) with open("test-A/out.tsv", "w") as out_file: for prediction in predictions: diff --git a/stopwords.txt b/stopwords.txt new file mode 100644 index 0000000..2e72387 --- /dev/null +++ b/stopwords.txt @@ -0,0 +1,350 @@ +a +aby +ach +acz +aczkolwiek +aj +albo +ale +alez +ależ +ani +az +aż +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 +iż +ja +jak +jakas +jakaś +jakby +jaki +jakichs +jakichś +jakie +jakis +jakiś +jakiz +jakiż +jakkolwiek +jako +jakos +jakoś +ją +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 +są +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 +zł +znow +znowu +znów +zostal +został +żaden +żadna +żadne +żadnych +że +żeby diff --git a/test-A/out.tsv b/test-A/out.tsv index 8834240..15a02f7 100644 --- a/test-A/out.tsv +++ b/test-A/out.tsv @@ -1,691 +1,691 @@ -8 -9 -13 39 -7 -24 -39 -32 -37 -20 -38 17 -1 -15 -32 -35 -7 -23 -7 -2 -5 -21 -24 -16 -28 -30 -2 -36 -32 -30 -23 -1 -24 -23 -10 -9 -17 -23 -13 -34 -23 -39 -7 -1 -44 -15 -5 -43 -13 -31 -13 -23 -30 -16 -31 -12 -23 -13 -23 -6 -23 -7 -2 -23 -30 -18 -16 -24 -2 -30 -5 -10 -7 -7 -23 -23 -16 -30 -16 -30 -29 -25 -42 -2 -7 -17 -23 -16 -20 -23 -30 -5 -10 -7 -7 -7 -8 -15 -23 -39 -6 -1 -41 -26 -30 -12 -30 -23 -23 -2 -1 11 -30 -13 -3 -35 -2 -9 -30 -23 -6 -19 -39 -39 -31 -13 -7 -12 -1 -2 -5 -10 -31 -12 -2 -10 27 -30 -42 -27 -26 -29 -6 -27 -24 -23 -2 -27 -5 -12 -7 41 -5 -23 -16 -17 -7 -6 -35 -21 -4 -23 2 -43 -5 -41 -42 -4 -10 -10 -9 -16 -34 39 -7 -42 -5 -38 12 -2 -25 -6 -6 -2 -10 -32 -19 -42 -32 -31 -8 -24 -17 -12 -22 -10 -2 -13 -5 -8 -30 -3 -8 -38 -7 -7 -13 -43 -20 -8 -37 -43 -23 -7 -43 -17 -1 -24 -22 37 31 +38 +34 12 -5 -29 -14 -10 -4 -23 42 23 -23 -33 -12 -43 -24 30 -10 -16 -33 -5 -39 -30 -18 +14 36 -30 +14 +23 +3 +43 +2 +19 22 -5 -5 -36 -43 -30 -2 -25 -1 -3 -14 -1 -39 -23 -6 -12 -1 -7 -2 -27 -33 -16 -2 -3 -9 -29 -31 -5 -6 -24 -7 -15 -1 -6 -35 -2 -5 -31 -30 -1 -28 -6 -13 -41 -24 -23 -34 -30 -30 -9 -31 -7 -28 -41 -36 -38 -23 -2 -31 -31 -38 -2 -23 -20 -32 -39 -31 -35 -23 -42 -9 -5 -6 -43 -23 -2 -42 21 +38 +5 +12 +16 +25 +12 +2 +11 32 +4 34 -3 -20 +13 +11 +9 +37 44 -30 -15 -23 -23 -2 +27 12 +22 +42 +40 +7 +11 23 +11 +44 +16 +19 +44 13 -30 -35 -32 -26 -23 -2 -1 -23 +16 +11 16 6 -23 -17 -23 -23 -30 -23 -5 -32 -7 -23 -31 -30 -26 -7 -2 -2 -30 -17 -31 -30 -13 1 -43 -4 -20 -33 -17 -36 -32 -23 -12 -7 -16 -23 +27 10 -30 -29 -30 -8 -1 -21 -17 -26 +41 +6 24 +19 2 +27 18 -23 -13 -23 -9 -8 -32 -7 -5 -15 -2 -12 -40 -12 -23 -23 -1 -5 -1 -39 -28 -32 -30 -12 -5 -43 -31 -30 -43 -37 -2 -2 -24 -4 -23 -13 -7 -29 -2 -23 -16 -43 -39 -25 -2 -39 -1 -16 -24 -22 -13 -16 -40 -7 -9 -35 25 32 -15 -30 -39 -31 -33 -43 -23 -30 -43 -30 -31 -32 -31 -31 -2 -34 -7 -13 -30 -39 -34 -34 -34 -37 -23 -2 -15 -3 -23 -10 -22 -4 14 +44 +26 +39 +40 +6 37 +6 +22 +8 +33 +16 +41 +34 +13 +1 +38 37 0 -15 -23 -31 -3 -20 -31 -13 -43 -30 -1 -23 -1 +25 +32 +41 +27 27 -7 -6 -32 -13 -23 -23 -23 -35 -21 -35 -1 -38 -24 -4 -24 -9 -3 -17 -2 -7 -9 -43 -1 -32 -4 -23 -30 39 -23 -42 -2 -34 -25 -23 -23 -13 -23 -21 -29 -23 -31 -23 -11 -27 -7 -11 -40 -24 22 -1 -37 -1 -35 -16 -3 +38 +42 +14 +43 +14 +44 +31 +40 +4 +5 36 -10 -25 -30 -8 -10 -18 -24 -13 -44 -32 -30 -30 +38 12 -23 -32 -10 -13 -13 -30 -9 -35 -17 -1 +11 +6 +11 26 -17 -23 -12 -6 -23 -24 -23 -23 +41 +41 +38 25 +40 +3 12 -6 -31 -9 -6 -30 -24 -21 -9 -8 +44 +40 +39 +11 +14 +13 +12 +38 +25 +32 +1 +13 5 -2 -26 -13 -23 -31 -23 -12 -44 -23 -23 -43 -15 -17 -1 -8 -26 -17 -31 -6 -43 -9 +32 +20 +4 +33 +20 +44 +42 +3 20 -6 21 +42 +38 +20 +1 +13 +14 +17 +27 +23 +19 +10 +14 +12 +31 +43 +19 +15 +13 +7 +25 +41 +33 +0 +32 +32 +38 +4 +26 +44 +14 +33 +2 +42 +13 +15 +8 +3 +3 +35 +21 +21 +12 +28 +12 +4 +18 +21 +10 +13 +12 +32 +40 +11 +25 +39 +37 +17 +39 +40 +14 +27 +11 +7 +34 +39 +12 +34 +23 +38 +7 +34 +12 +2 +23 +6 +23 +13 +25 +35 +28 +32 +0 +36 +33 +10 +16 5 13 +7 +2 +25 +32 +19 +34 +40 +18 +6 +24 5 +38 +41 +4 +4 +42 +7 +40 +2 +8 +12 +17 +28 +9 +42 +0 +3 +13 +12 +14 +1 +20 +25 +40 +38 +17 +12 +42 +23 +25 +3 +44 +31 +42 +12 +3 +31 +43 +25 +26 +3 +12 +9 +3 +11 14 2 -15 -41 -22 -17 -43 -23 -7 -34 -30 -42 -16 -22 -30 -23 -8 -6 -12 -32 -4 -23 -16 36 -9 -31 -5 -25 -17 -30 -12 -7 -3 -17 -12 -44 -24 -23 -2 -2 -1 40 -39 -24 -23 -1 -7 -32 -4 +36 +38 34 -42 -23 -39 -30 -24 -22 -10 -30 4 +27 +9 +27 +5 +7 +36 +44 +4 +17 +42 +1 +17 +14 +38 +31 +4 +31 +9 +33 +16 +25 +44 +18 +21 +17 +33 +43 +16 +17 +37 +38 +26 +25 +42 +16 +33 1 13 +17 +11 +38 +31 23 -26 -8 -32 +38 +38 +1 +43 +23 +19 +3 +14 +34 +13 +27 +19 +7 +25 +12 +14 +36 4 +14 +44 +30 +23 +32 +10 +23 +4 +38 +11 +9 +7 +0 +38 +37 +10 +5 +12 +12 +13 +31 +19 +36 +21 +22 +6 +22 +39 +12 +22 +10 +29 +2 +21 +24 +1 +11 +23 +31 +39 +41 +14 +4 +16 +32 +13 +12 +19 +23 +29 +12 +1 +12 +37 +9 +12 +40 +13 +25 +7 +4 +1 +21 +33 +36 +6 +2 +0 +17 +11 +41 +34 +23 +32 +19 +7 +44 +8 +1 +44 +12 +19 +2 +16 +11 +37 +13 +14 +15 +30 +8 +12 +42 +13 +44 +7 +12 +29 +13 +3 +7 +13 +4 +25 +40 +44 +15 +9 +14 +11 +40 +44 +37 +37 +39 +37 +39 +38 +42 +17 +6 +27 +23 +0 +28 +17 +38 +22 +35 +40 +4 +17 +38 +44 +11 +7 +40 +12 +16 +12 +20 +41 +3 +16 +11 +38 +25 +2 +30 +43 +14 +12 +22 +2 +19 +2 +38 +17 +9 +15 +14 +38 +7 +12 +44 +0 +36 +16 +44 +1 +33 +12 +12 +8 +36 +37 +11 +21 +43 +44 +23 +4 +40 +11 +20 +41 +29 +12 +2 +22 +12 +6 +12 +30 +37 +17 +5 +32 +8 +39 +18 +32 +24 +2 +11 +26 +12 +3 +30 +13 +44 +12 +32 +11 +11 +25 +15 +37 +34 +12 +1 +34 +16 +13 +3 +36 +2 +39 +36 +8 +13 +3 +4 +15 +26 +38 +21 +43 +38 +18 +1 +1 +44 +11 +23 +4 +23 +13 +26 +2 +7 +29 +42 +10 +12 +39 +44 +34 +21 +3 +7 +16 +38 +35 +43 +4 +11 +1 +28 +35 +35 +14 +35 +34 +7 +32 +16 +34 +39 +33 +19 +23 +43 +23 +18 +3 +13 +12 +0 +36 +19 +5 +4 +4 +42 +8 +34 +6 +13 +27 +17 +34 +44 +26 +2 +36 +38 +16 +12 +12 +44 +14 +21 +12 +14 +39 +19 +39 +33 +13 +4 +25 +2 +38 +32 +2 +0 +12 +11 +23 +6 +39 +44 +0