diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..9ab665a --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,12 @@ + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..d1e22ec --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..36e0379 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/polish-urban-legends-public.iml b/.idea/polish-urban-legends-public.iml new file mode 100644 index 0000000..d0876a7 --- /dev/null +++ b/.idea/polish-urban-legends-public.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/dev-0/out.tsv b/dev-0/out.tsv new file mode 100644 index 0000000..6f25f8e --- /dev/null +++ b/dev-0/out.tsv @@ -0,0 +1,87 @@ +12 +3 +15 +14 +3 +9 +18 +13 +9 +2 +13 +9 +3 +8 +11 +11 +11 +6 +5 +3 +15 +6 +4 +17 +13 +6 +10 +4 +1 +3 +0 +0 +0 +6 +11 +19 +8 +8 +10 +14 +9 +16 +18 +7 +8 +12 +19 +3 +0 +0 +13 +15 +0 +6 +8 +17 +3 +3 +0 +6 +19 +14 +18 +12 +9 +6 +0 +8 +15 +19 +4 +5 +8 +18 +3 +13 +3 +8 +7 +3 +2 +13 +2 +3 +0 +6 +3 diff --git a/geval b/geval new file mode 100644 index 0000000..b68b316 Binary files /dev/null and b/geval differ diff --git a/script.py b/script.py new file mode 100644 index 0000000..8b57857 --- /dev/null +++ b/script.py @@ -0,0 +1,32 @@ +from sklearn.feature_extraction.text import TfidfVectorizer +from sklearn.cluster import KMeans + + +def openFileWithStopwords(filename): + stopwords = [] + with open(filename, encoding='utf-8') as file: + stopwords = [stopWord.strip() for stopWord in file.readlines()] + return stopwords + + +def calculate(clusters, maxiter, tfidfVectorizer, stopwords, fileIn, fileOut): + with open(fileIn, encoding='utf-8') as infile: + documents = [" ".join([stopword for stopword in document.split() if stopword not in stopwords]) for document in + infile.readlines()] + results = KMeans(n_clusters=clusters, max_iter=maxiter).fit_predict(tfidfVectorizer.fit_transform(documents)) + with open(fileOut, "w", encoding='utf-8') as output: + for result in results: + output.write(str(result) + '\n') + + +def main(): + vectorizer = TfidfVectorizer() + clusters = 20 + maxiter = 1000 + stopwords = openFileWithStopwords('stopwords.txt') + calculate(clusters, maxiter, vectorizer, stopwords, "dev-0/in.tsv", "dev-0/out.tsv") + calculate(clusters, maxiter, vectorizer, stopwords, "test-A/in.tsv", "test-A/out.tsv") + + +if __name__ == '__main__': + main() diff --git a/stopwords.txt b/stopwords.txt new file mode 100644 index 0000000..eee0b22 --- /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 \ No newline at end of file diff --git a/test-A/out.tsv b/test-A/out.tsv new file mode 100644 index 0000000..0d7650a --- /dev/null +++ b/test-A/out.tsv @@ -0,0 +1,691 @@ +15 +19 +3 +2 +12 +11 +15 +4 +0 +5 +1 +0 +4 +17 +1 +12 +19 +2 +19 +16 +15 +4 +11 +6 +6 +0 +2 +12 +4 +19 +2 +4 +11 +3 +7 +1 +5 +2 +3 +4 +8 +6 +19 +4 +8 +17 +2 +9 +3 +2 +3 +2 +2 +6 +14 +6 +2 +3 +2 +11 +16 +19 +2 +17 +8 +10 +6 +11 +2 +19 +14 +7 +19 +2 +2 +19 +2 +0 +8 +14 +11 +13 +18 +14 +5 +1 +2 +16 +19 +8 +6 +14 +7 +12 +19 +5 +15 +1 +16 +1 +15 +4 +19 +2 +12 +2 +0 +2 +6 +19 +4 +3 +1 +3 +16 +12 +19 +1 +2 +2 +9 +4 +2 +8 +12 +3 +2 +6 +4 +2 +14 +7 +6 +16 +2 +7 +7 +17 +18 +4 +15 +2 +9 +4 +2 +2 +16 +4 +16 +6 +12 +19 +19 +1 +6 +17 +19 +4 +12 +4 +6 +2 +2 +9 +14 +5 +18 +6 +7 +7 +1 +2 +2 +2 +19 +18 +2 +1 +2 +1 +13 +9 +0 +19 +2 +2 +4 +18 +4 +14 +15 +2 +0 +0 +2 +2 +2 +3 +2 +15 +8 +8 +15 +17 +5 +19 +3 +9 +19 +15 +4 +15 +1 +2 +16 +0 +4 +11 +1 +1 +19 +17 +14 +17 +18 +7 +6 +15 +18 +5 +2 +2 +6 +2 +11 +2 +7 +6 +19 +2 +15 +16 +10 +2 +0 +2 +14 +14 +8 +9 +2 +2 +13 +4 +8 +18 +4 +16 +6 +9 +6 +4 +19 +1 +7 +2 +2 +19 +8 +1 +2 +16 +14 +0 +16 +2 +17 +4 +9 +12 +2 +14 +0 +2 +4 +15 +0 +3 +8 +11 +1 +2 +16 +1 +15 +14 +19 +15 +19 +16 +1 +2 +1 +14 +2 +1 +2 +12 +19 +2 +19 +14 +12 +4 +18 +2 +14 +2 +19 +2 +8 +18 +4 +19 +6 +8 +19 +17 +2 +17 +2 +1 +16 +6 +2 +3 +2 +12 +1 +2 +1 +16 +4 +1 +6 +9 +2 +5 +2 +2 +2 +2 +14 +4 +5 +1 +14 +5 +15 +19 +2 +1 +0 +0 +14 +2 +3 +4 +9 +1 +19 +8 +5 +17 +4 +2 +6 +12 +6 +6 +0 +16 +1 +1 +15 +4 +8 +5 +2 +11 +1 +10 +6 +3 +0 +12 +15 +12 +19 +8 +17 +2 +6 +4 +6 +2 +2 +4 +16 +4 +8 +15 +4 +2 +6 +14 +9 +14 +16 +2 +2 +2 +2 +11 +6 +5 +3 +16 +15 +16 +2 +6 +9 +8 +13 +16 +8 +4 +6 +11 +1 +3 +8 +4 +19 +2 +12 +13 +4 +17 +16 +2 +15 +4 +9 +2 +15 +9 +8 +14 +2 +16 +5 +1 +4 +19 +3 +2 +11 +8 +8 +15 +8 +16 +12 +17 +8 +2 +7 +1 +6 +18 +8 +2 +0 +17 +2 +14 +8 +19 +15 +3 +9 +2 +4 +1 +4 +4 +5 +9 +16 +3 +1 +2 +2 +12 +4 +12 +4 +8 +11 +6 +11 +1 +2 +15 +1 +12 +16 +9 +4 +2 +0 +2 +19 +19 +1 +18 +2 +4 +13 +15 +8 +3 +11 +4 +16 +2 +14 +2 +3 +15 +12 +9 +4 +11 +0 +4 +17 +4 +12 +6 +8 +12 +7 +13 +15 +15 +7 +10 +11 +3 +2 +4 +2 +15 +6 +2 +4 +7 +3 +3 +14 +1 +8 +5 +4 +16 +5 +17 +6 +8 +15 +11 +2 +1 +13 +6 +2 +14 +2 +0 +0 +11 +4 +11 +15 +16 +16 +15 +3 +15 +14 +6 +6 +2 +6 +2 +9 +17 +5 +4 +15 +2 +5 +2 +9 +9 +2 +19 +17 +4 +14 +3 +1 +18 +17 +17 +19 +17 +5 +9 +2 +12 +8 +15 +18 +6 +1 +16 +15 +15 +2 +6 +4 +6 +11 +6 +2 +1 +14 +19 +13 +5 +1 +8 +19 +8 +5 +6 +0 +11 +6 +1 +2 +4 +4 +16 +7 +11 +4 +19 +17 +6 +15 +18 +2 +2 +2 +11 +1 +7 +11 +6 +4 +3 +1 +0 +15 +19 +6