import csv from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.linear_model import LinearRegression from stop_words import get_stop_words import os import pandas as pd def read_train_file(inDirectory): colnames = ['start_date', 'end_date', 'title', 'sort_title', 'data'] df_train = pd.read_csv(inDirectory, sep="\t", names=colnames) return df_train def read_evaluate_file(inDirectory): colnames = ['data'] df_evaluate = pd.read_csv(inDirectory, sep="\t", names=colnames, quoting=csv.QUOTE_NONE, error_bad_lines=False) return df_evaluate def train_date_mean(df): date_mean = (df['start_date'] + df['end_date']) / 2 return date_mean def linearRegresionTrain(): df = read_train_file('train/train.tsv') date_mean_df = train_date_mean(df) train_vectorized_corpus = vectorizer.fit_transform(df['data']) reg.fit(train_vectorized_corpus, date_mean_df) def linearRegresionEvaluate(inDirectory, outDirectory): df_evaluate = read_evaluate_file(inDirectory) evaluate_vectorized_corpus = vectorizer.transform(df_evaluate['data']) evaluate = reg.predict(evaluate_vectorized_corpus) with open(outDirectory, 'w') as file: for e in evaluate: file.write("%f\n" % e) vectorizer = TfidfVectorizer(stop_words=get_stop_words('polish')) reg = LinearRegression() linearRegresionTrain() linearRegresionEvaluate('dev-0/in.tsv', 'dev-0/out.tsv') linearRegresionEvaluate('dev-1/in.tsv', 'dev-1/out.tsv') linearRegresionEvaluate('test-A/in.tsv', 'test-A/out.tsv') os.system("./geval -t dev-0") os.system("./geval -t dev-1")