Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
b827b500a6 |
20000
dev-0/out.tsv
Normal file
20000
dev-0/out.tsv
Normal file
File diff suppressed because it is too large
Load Diff
11563
dev-1/out.tsv
Normal file
11563
dev-1/out.tsv
Normal file
File diff suppressed because it is too large
Load Diff
56
run.py
Normal file
56
run.py
Normal file
@ -0,0 +1,56 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import os
|
||||
import math
|
||||
import pandas as pd
|
||||
from sklearn.metrics import mean_squared_error
|
||||
from sklearn.feature_extraction.text import TfidfVectorizer
|
||||
from sklearn.linear_model import LinearRegression
|
||||
from sklearn.pipeline import make_pipeline
|
||||
from stop_words import get_stop_words
|
||||
|
||||
|
||||
def rmse(y_expected, y_predicted):
|
||||
return math.sqrt(mean_squared_error(y_expected, y_predicted))
|
||||
|
||||
|
||||
def read_tsv(path, filename, col_names, cutoff=None):
|
||||
i = 0
|
||||
data = []
|
||||
with open(os.path.join(path, filename), 'r', encoding='utf-8') as file:
|
||||
for line in file:
|
||||
if cutoff and i >= cutoff:
|
||||
break
|
||||
data.append(line.strip().split('\t'))
|
||||
i += 1
|
||||
|
||||
df = pd.DataFrame(data, columns=col_names)
|
||||
return df
|
||||
|
||||
|
||||
def evaluate_and_save(path, file, model):
|
||||
df = read_tsv(path, file, ['y'])['y'].values
|
||||
y_predicted = model.predict(df)
|
||||
# y_expected = read_tsv(path, 'expected.tsv', ['y'])['y'].values
|
||||
# print('score: ', rmse(y_expected, y_predicted))
|
||||
with open(os.path.join(path, 'out.tsv'), 'w') as f:
|
||||
for value in y_predicted:
|
||||
f.write(f'{value}\n')
|
||||
|
||||
|
||||
def main():
|
||||
train_data = read_tsv('train', 'train.tsv', ['date_start', 'date_end', 'x1', 'x2', 'text'], 50000)
|
||||
train_data['date'] = (train_data['date_start'].astype(float) + train_data['date_end'].astype(float)) / 2
|
||||
train_x = train_data['text'].values
|
||||
train_y = train_data['date'].values
|
||||
vectorizer = TfidfVectorizer(stop_words=get_stop_words('polish'))
|
||||
model = LinearRegression()
|
||||
pipe = make_pipeline(vectorizer, model)
|
||||
pipe.fit(train_x, train_y)
|
||||
# print('training done')
|
||||
for path, file in [('dev-0', 'in.tsv'), ('dev-1', 'in.tsv'), ('test-A', 'in.tsv')]:
|
||||
evaluate_and_save(path, file, pipe)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
14220
test-A/out.tsv
Normal file
14220
test-A/out.tsv
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user