forked from kubapok/retroc2
Add solution for sample data
This commit is contained in:
parent
647c099815
commit
6a796f68ee
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
.idea
|
||||||
|
train.tsv
|
20000
dev-0/out.tsv
Normal file
20000
dev-0/out.tsv
Normal file
File diff suppressed because it is too large
Load Diff
BIN
regressor.sav
Normal file
BIN
regressor.sav
Normal file
Binary file not shown.
64
solution.py
Normal file
64
solution.py
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
from sklearn.feature_extraction.text import TfidfVectorizer
|
||||||
|
from sklearn.linear_model import LinearRegression
|
||||||
|
import pickle
|
||||||
|
|
||||||
|
stopwords = []
|
||||||
|
# stopwords source - https://github.com/bieli/stopwords/blob/master/polish.stopwords.txt
|
||||||
|
with open('stopwords.txt') as f:
|
||||||
|
stopwords = [line.rstrip() for line in f]
|
||||||
|
|
||||||
|
filename = 'regressor.sav'
|
||||||
|
regressor = LinearRegression()
|
||||||
|
# regressor = pickle.load(open(filename, 'rb'))
|
||||||
|
vectorizer = TfidfVectorizer()
|
||||||
|
|
||||||
|
|
||||||
|
def preprocess(doc):
|
||||||
|
doc = doc.lower().split(' ')
|
||||||
|
doc = list(filter(lambda word: (word not in stopwords) and (word != ''), doc))
|
||||||
|
doc = ' '.join(doc)
|
||||||
|
return doc
|
||||||
|
|
||||||
|
|
||||||
|
def train():
|
||||||
|
with open('train/train.tsv') as f:
|
||||||
|
docs = [line.rstrip() for line in f]
|
||||||
|
docs_preprocessed = []
|
||||||
|
y = []
|
||||||
|
for doc in docs[:1000]:
|
||||||
|
row = doc.split('\t')
|
||||||
|
start = row[0]
|
||||||
|
end = row[1]
|
||||||
|
end = end.split(' ')
|
||||||
|
if len(end) > 1:
|
||||||
|
row.insert(4, end[1])
|
||||||
|
end = end[0]
|
||||||
|
rest = row[4:]
|
||||||
|
preprocessed = rest[0]
|
||||||
|
docs_preprocessed.append(preprocessed)
|
||||||
|
docs_preprocessed.append(preprocessed)
|
||||||
|
y.append(start)
|
||||||
|
y.append(end)
|
||||||
|
y = [float(value) for value in y]
|
||||||
|
x = vectorizer.fit_transform(docs_preprocessed)
|
||||||
|
regressor.fit(x, y)
|
||||||
|
pickle.dump(regressor, open(filename, 'wb'))
|
||||||
|
|
||||||
|
|
||||||
|
def classify(path):
|
||||||
|
with open(path + 'in.tsv') as f:
|
||||||
|
docs = [line.rstrip() for line in f]
|
||||||
|
docs_preprocessed = []
|
||||||
|
for doc in docs:
|
||||||
|
docs_preprocessed.append(preprocess(doc))
|
||||||
|
test_x = vectorizer.transform(docs)
|
||||||
|
predictions = regressor.predict(test_x)
|
||||||
|
with open(path + 'out.tsv', 'w') as file:
|
||||||
|
for prediction in predictions:
|
||||||
|
file.write("%f\n" % prediction)
|
||||||
|
|
||||||
|
|
||||||
|
train()
|
||||||
|
classify('dev-0/')
|
||||||
|
# classify('test-A/')
|
||||||
|
|
350
stopwords.txt
Normal file
350
stopwords.txt
Normal file
@ -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
|
Loading…
Reference in New Issue
Block a user