import csv import pickle from sklearn.decomposition import TruncatedSVD from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.feature_extraction.text import CountVectorizer import sklearn import pandas as pd import math import re from sklearn.linear_model import LinearRegression def train(): created_dictionary=pd.read_csv("train/in.tsv", delimiter="\t", header=None, names=["txt"], quoting=csv.QUOTE_NONE) #Pandas - służy do analizy danych (wszystko to co umożliwia SQL, Excel itd.) #delimiter - alternatywny argument do separacji, header - numer wiersza, który ma być traktowany jako nazwa #names - określenie nazw kolumn jak ich nie ma dajemy None #quoting - służy do interpretacji pól #chunksize - służy by ładować duże ilości danych created_dictionary = created_dictionary["txt"][:20000] expected_dictionary=pd.read_csv("train/expected.tsv", header=None) expected_dictionary = expected_dictionary[:20000] #tfidf = TfidfVectorizer(min_df=1,stop_words='english') tfidf = TfidfVectorizer(stop_words='english', ngram_range=(1,1)) #Konwertuje tekst w dokumencie do macierzy tfidf , ngram_range - lb słów w sekwencji x = tfidf.fit_transform(created_dictionary) #PCA - principal component analysis pca = TruncatedSVD(n_components=100) # Liniowa redukcja wymiarów , n_components - Pożądana wymiarowość danych wyjściowych x_pca = pca.fit_transform(x) l_regression = LinearRegression() l_regression.fit(x_pca,expected_dictionary) with open('l_regression.pkl','wb') as f: pickle.dump(l_regression,f) with open('tfidf_model.pkl', 'wb') as f: pickle.dump(tfidf,f) train()