diff --git a/mian_wieksze copy.py b/mian_wieksze copy.py deleted file mode 100644 index bb5c339..0000000 --- a/mian_wieksze copy.py +++ /dev/null @@ -1,150 +0,0 @@ -import nltk -import pandas as pd -from sklearn.neural_network import MLPClassifier -from nltk.tokenize import word_tokenize -from gensim.models import Word2Vec -import numpy as np -nltk.download('punkt') - -# w pliku train.tsv w kolumnach 25706, 58881, 73761 trzeba zamienic w tekscie tabulator na 4 spacje -train = pd.read_csv('train/train.tsv', sep='\t', names=['y', 'x'], header=None) -print(train["y"][0], train["x"][0]) - -# https://www.geeksforgeeks.org/python-word-embedding-using-word2vec/ -slowa_train = [] -for tekst in train["x"]: - pom = [] - for slowo in word_tokenize(tekst): - pom.append(slowo.lower()) - slowa_train.append(pom) -print(slowa_train[0]) - -# https://radimrehurek.com/gensim/models/word2vec.html -model = Word2Vec(sentences=slowa_train, vector_size=100, window=5, min_count=1, workers=4) -model.save("word2vec.model") - -wektor = model.wv['przyjmujący'] -print(wektor) - -podobne = model.wv.most_similar('przyjmujący', topn=5) -print(podobne) - -teksty = [] -for tekst in train["x"]: - pom = None - for slowo in word_tokenize(tekst): - wektor = model.wv[slowo.lower()] - if pom is None: - pom = wektor - else: - pom = np.concatenate((pom,wektor)) - teksty.append(pom) -print(teksty[0].shape) -#print(teksty[0]) - -liczba_wejscia = 1000#0 - -poprawione_teksty = [] -for wektor in teksty: - if len(wektor)>liczba_wejscia: - poprawione_teksty.append(wektor[:liczba_wejscia]) - else: - poprawione_teksty.append(np.pad(wektor,(0,liczba_wejscia-len(wektor)), mode='constant', constant_values=0)) -print(poprawione_teksty[0].shape) -#print(poprawione_teksty[0]) - -print(train["y"].to_numpy()) - -X = poprawione_teksty -y = train["y"].to_numpy() - -clf = MLPClassifier() # activation="tanh" -clf.fit(X, y) - -# w pliku in.tsv w kolumnach 1983, 5199 trzeba zamienic w tekscie tabulator na 4 spacje -dev_in = pd.read_csv('dev-0/in.tsv', sep='\t', names=['x'], header=None) -print(dev_in["x"][0]) - -dev_expected = pd.read_csv('dev-0/expected.tsv', sep='\t', names=['y'], header=None) -print(dev_expected["y"][0]) - -teksty_dev= [] -for tekst in dev_in["x"]: - pom = None - for slowo in word_tokenize(tekst): - wektor = None - try: - wektor = model.wv[slowo.lower()] - except KeyError: - pass - if wektor is not None: - if pom is None: - pom = wektor - else: - pom = np.concatenate((pom,wektor)) - teksty_dev.append(pom) -print(teksty_dev[0].shape) -#print(teksty_dev[0]) - -poprawione_teksty_dev = [] -for wektor in teksty_dev: - if len(wektor)>liczba_wejscia: - poprawione_teksty_dev.append(wektor[:liczba_wejscia]) - else: - poprawione_teksty_dev.append(np.pad(wektor,(0,liczba_wejscia-len(wektor)), mode='constant', constant_values=0)) -print(poprawione_teksty_dev[0].shape) -#print(poprawione_teksty_dev[0]) - -przewidywania_dev = clf.predict(poprawione_teksty_dev) -print(przewidywania_dev) - -with open("dev-0/out.tsv", "w", encoding="utf-8") as uwu: - for p in przewidywania_dev: - uwu.write(str(p)+"\n") - -mianownik = 0 -licznik=0 -for e,o in zip(dev_expected["y"].to_list(),przewidywania_dev): - mianownik +=1 - if e==o: - licznik +=1 -print(licznik,"/",mianownik,licznik/mianownik) - - -# w pliku in.tsv w kolumnach 1983, 5199 trzeba zamienic w tekscie tabulator na 4 spacje -test = pd.read_csv('test-A/in.tsv', sep='\t', names=['x'], header=None) -print(test["x"][0]) - -teksty_test = [] -for tekst in test["x"]: - pom = None - for slowo in word_tokenize(tekst): - wektor = None - try: - wektor = model.wv[slowo.lower()] - except KeyError: - pass - if wektor is not None: - if pom is None: - pom = wektor - else: - pom = np.concatenate((pom,wektor)) - teksty_test.append(pom) -print(teksty_test[0].shape) -#print(teksty_test[0]) - -poprawione_teksty_test = [] -for wektor in teksty_test: - if len(wektor)>liczba_wejscia: - poprawione_teksty_test.append(wektor[:liczba_wejscia]) - else: - poprawione_teksty_test.append(np.pad(wektor,(0,liczba_wejscia-len(wektor)), mode='constant', constant_values=0)) -print(poprawione_teksty_test[0].shape) -print(poprawione_teksty_test[0]) - -przewidywania = clf.predict(poprawione_teksty_test) -print(przewidywania) - -with open("test-A/out.tsv", "w", encoding="utf-8") as uwu: - for p in przewidywania: - uwu.write(str(p)+"\n")