From b1d0d3c9eef8162d9e460f70fa585ca89cc16dfe Mon Sep 17 00:00:00 2001 From: Hubert Tylkowski Date: Mon, 26 Apr 2021 15:39:52 +0200 Subject: [PATCH] task done --- dev-0/out.tsv | 87 +++++++ solution.py | 42 +++ stopwords.txt | 350 +++++++++++++++++++++++++ test-A/out.tsv | 691 +++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 1170 insertions(+) create mode 100644 dev-0/out.tsv create mode 100644 solution.py create mode 100644 stopwords.txt create mode 100644 test-A/out.tsv diff --git a/dev-0/out.tsv b/dev-0/out.tsv new file mode 100644 index 0000000..64c3acc --- /dev/null +++ b/dev-0/out.tsv @@ -0,0 +1,87 @@ +18 +3 +0 +17 +19 +13 +7 +11 +13 +9 +11 +13 +3 +1 +5 +8 +5 +19 +14 +3 +0 +6 +15 +12 +11 +6 +2 +15 +1 +3 +7 +8 +8 +19 +5 +8 +6 +18 +2 +17 +13 +16 +8 +17 +18 +3 +8 +3 +4 +4 +11 +0 +8 +6 +10 +12 +3 +3 +7 +6 +8 +18 +8 +8 +13 +6 +8 +18 +0 +8 +19 +14 +18 +7 +3 +3 +11 +10 +17 +3 +9 +11 +9 +19 +8 +6 +3 diff --git a/solution.py b/solution.py new file mode 100644 index 0000000..430b566 --- /dev/null +++ b/solution.py @@ -0,0 +1,42 @@ +from sklearn.feature_extraction.text import TfidfVectorizer +from sklearn.cluster import KMeans + + +def calcDevZero(tfidfVectorizer, stopwords): + with open("dev-0/in.tsv", encoding='utf-8') as input_file: + docs = [" ".join([sword for sword in document.split() if sword not in stopwords]) for document in + input_file.readlines()] + vectors = tfidfVectorizer.fit_transform(docs) + predictions = KMeans(n_clusters=20, max_iter=1000).fit_predict(vectors) + with open("dev-0/out.tsv", "w", encoding='utf-8') as output_file: + for prediction in predictions: + output_file.write(str(prediction) + '\n') + + +def calcTestA(tfidfVectorizer, stopwords): + with open("test-A/in.tsv", encoding='utf-8') as input_file: + docs = [" ".join([sword for sword in document.split() if sword not in stopwords]) for document in + input_file.readlines()] + vectors = tfidfVectorizer.fit_transform(docs) + predictions = KMeans(n_clusters=20, max_iter=1000).fit_predict(vectors) + with open("test-A/out.tsv", "w", encoding='utf-8') as output_file: + for prediction in predictions: + output_file.write(str(prediction) + '\n') + + +def setStopWords(filename): + stopwords = [] + with open(filename, encoding='utf-8') as stopwords_file: + stopwords = [sWord.strip() for sWord in stopwords_file.readlines()] + return stopwords + + +def main(): + tfidfVectorizer = TfidfVectorizer() + stopwords = setStopWords('stopwords.txt') + calcDevZero(tfidfVectorizer, stopwords) + calcTestA(tfidfVectorizer, stopwords) + + +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..0e235e9 --- /dev/null +++ b/test-A/out.tsv @@ -0,0 +1,691 @@ +12 +13 +2 +18 +14 +10 +12 +19 +19 +13 +6 +8 +9 +3 +0 +11 +11 +5 +11 +0 +12 +9 +10 +15 +5 +3 +12 +3 +0 +3 +3 +9 +10 +2 +16 +0 +8 +4 +2 +19 +18 +4 +11 +9 +12 +17 +12 +1 +2 +14 +2 +14 +4 +15 +17 +4 +0 +2 +0 +3 +14 +11 +19 +14 +3 +2 +15 +10 +19 +13 +17 +16 +11 +14 +3 +12 +17 +3 +18 +3 +6 +16 +7 +19 +14 +8 +4 +3 +13 +18 +15 +17 +16 +14 +11 +13 +12 +12 +6 +6 +3 +9 +11 +1 +3 +4 +3 +4 +10 +13 +9 +2 +0 +2 +5 +14 +13 +0 +3 +18 +1 +19 +1 +13 +12 +2 +14 +4 +9 +14 +3 +16 +18 +4 +6 +16 +10 +3 +7 +19 +12 +6 +1 +12 +3 +6 +14 +12 +14 +4 +11 +11 +13 +10 +15 +8 +11 +11 +14 +9 +15 +1 +4 +1 +17 +14 +7 +15 +16 +16 +0 +10 +15 +3 +11 +7 +3 +0 +4 +6 +16 +1 +3 +6 +5 +3 +19 +7 +19 +17 +12 +3 +8 +4 +0 +11 +12 +2 +10 +12 +18 +5 +12 +4 +11 +11 +2 +1 +13 +12 +10 +1 +13 +10 +1 +8 +19 +10 +0 +1 +14 +4 +17 +6 +7 +16 +15 +12 +7 +8 +17 +14 +4 +1 +10 +3 +16 +15 +5 +1 +12 +4 +2 +19 +3 +0 +18 +17 +6 +1 +4 +0 +16 +9 +5 +7 +9 +10 +4 +1 +4 +9 +10 +0 +10 +19 +6 +13 +5 +10 +6 +0 +17 +14 +10 +11 +10 +9 +1 +14 +3 +17 +10 +12 +9 +12 +18 +2 +11 +10 +3 +15 +3 +3 +0 +17 +13 +12 +11 +14 +1 +17 +0 +17 +4 +0 +10 +17 +13 +17 +13 +17 +11 +14 +7 +13 +17 +3 +1 +3 +18 +7 +9 +13 +14 +18 +13 +12 +3 +13 +10 +19 +4 +4 +4 +2 +10 +11 +5 +0 +6 +14 +9 +0 +15 +1 +19 +8 +14 +3 +3 +10 +17 +19 +11 +5 +17 +0 +12 +11 +19 +10 +3 +10 +17 +3 +2 +9 +1 +15 +13 +4 +8 +11 +19 +4 +4 +11 +15 +3 +15 +15 +6 +3 +12 +9 +5 +8 +11 +10 +3 +2 +14 +2 +10 +11 +12 +14 +11 +18 +6 +10 +4 +10 +15 +3 +12 +19 +14 +9 +18 +12 +19 +3 +4 +17 +1 +17 +3 +3 +3 +3 +4 +10 +14 +5 +2 +14 +6 +17 +5 +15 +1 +17 +16 +14 +4 +9 +15 +10 +0 +2 +18 +10 +11 +0 +14 +16 +19 +0 +11 +6 +1 +11 +15 +4 +8 +1 +18 +18 +3 +17 +15 +13 +19 +11 +2 +18 +10 +18 +18 +12 +18 +12 +14 +18 +5 +10 +11 +0 +15 +7 +5 +11 +3 +6 +3 +17 +5 +13 +17 +2 +1 +4 +9 +5 +9 +12 +13 +1 +6 +2 +13 +3 +19 +11 +9 +11 +9 +11 +10 +15 +10 +13 +5 +8 +6 +11 +17 +1 +9 +3 +10 +12 +13 +13 +17 +7 +0 +9 +16 +14 +18 +2 +3 +9 +6 +0 +17 +1 +2 +12 +14 +1 +10 +10 +10 +9 +17 +9 +14 +18 +5 +13 +16 +16 +12 +12 +16 +2 +10 +2 +0 +19 +14 +6 +4 +11 +19 +16 +2 +2 +17 +13 +18 +8 +9 +3 +8 +0 +4 +19 +3 +10 +5 +14 +16 +4 +14 +17 +13 +5 +3 +5 +9 +10 +12 +14 +14 +12 +2 +0 +17 +10 +4 +5 +6 +1 +15 +3 +8 +9 +12 +1 +8 +3 +1 +1 +13 +13 +6 +9 +14 +2 +10 +7 +6 +6 +11 +6 +8 +1 +11 +14 +5 +12 +7 +15 +0 +3 +0 +12 +3 +4 +19 +15 +10 +15 +10 +0 +17 +17 +16 +8 +0 +4 +11 +5 +8 +4 +6 +10 +5 +14 +13 +9 +0 +17 +13 +3 +9 +11 +0 +6 +12 +7 +11 +0 +3 +10 +0 +16 +10 +15 +9 +2 +0 +3 +12 +6 +15