forked from kubapok/lalka-lm
Panda3
This commit is contained in:
parent
3ff980254a
commit
10c7156f46
776
dev-0/out.tsv
776
dev-0/out.tsv
@ -1,471 +1,471 @@
|
||||
od
|
||||
dawna
|
||||
pokoju
|
||||
)
|
||||
;
|
||||
lecz
|
||||
nie
|
||||
?
|
||||
.
|
||||
po
|
||||
do
|
||||
niego
|
||||
i
|
||||
jeszcze
|
||||
,
|
||||
czy
|
||||
na
|
||||
niej
|
||||
;
|
||||
co
|
||||
on
|
||||
od
|
||||
.
|
||||
na
|
||||
co
|
||||
do
|
||||
głowy
|
||||
na
|
||||
jego
|
||||
i
|
||||
do
|
||||
panny
|
||||
do
|
||||
niego
|
||||
:
|
||||
po
|
||||
chwili
|
||||
o
|
||||
co
|
||||
?
|
||||
)
|
||||
:
|
||||
nie
|
||||
było
|
||||
mnie
|
||||
:
|
||||
nie
|
||||
ma
|
||||
do
|
||||
czasu
|
||||
i
|
||||
nie
|
||||
można
|
||||
do
|
||||
głowy
|
||||
do
|
||||
głowy
|
||||
i
|
||||
ja
|
||||
?
|
||||
.
|
||||
na
|
||||
drugi
|
||||
mnie
|
||||
nie
|
||||
był
|
||||
o
|
||||
,
|
||||
jak
|
||||
by
|
||||
od
|
||||
niej
|
||||
i
|
||||
o
|
||||
,
|
||||
jak
|
||||
nie
|
||||
można
|
||||
od
|
||||
niej
|
||||
,
|
||||
nie
|
||||
ma
|
||||
pan
|
||||
nie
|
||||
było
|
||||
i
|
||||
ja
|
||||
,
|
||||
co
|
||||
on
|
||||
jest
|
||||
na
|
||||
jego
|
||||
;
|
||||
ale
|
||||
co
|
||||
panna
|
||||
florentyna
|
||||
do
|
||||
głowy
|
||||
do
|
||||
domu
|
||||
?
|
||||
)
|
||||
?
|
||||
!
|
||||
a
|
||||
jeżeli
|
||||
ja
|
||||
go
|
||||
o
|
||||
do
|
||||
niej
|
||||
;
|
||||
ale
|
||||
nie
|
||||
mogłem
|
||||
i
|
||||
na
|
||||
co
|
||||
?
|
||||
na
|
||||
niego
|
||||
nie
|
||||
ma
|
||||
.
|
||||
potem
|
||||
.
|
||||
ale
|
||||
co
|
||||
,
|
||||
i
|
||||
ja
|
||||
go
|
||||
do
|
||||
mnie
|
||||
który
|
||||
na
|
||||
prawo
|
||||
.
|
||||
pan
|
||||
,
|
||||
o
|
||||
jego
|
||||
na
|
||||
nim
|
||||
?
|
||||
dzień
|
||||
;
|
||||
do
|
||||
panny
|
||||
;
|
||||
ale
|
||||
,
|
||||
co
|
||||
,
|
||||
ale
|
||||
co
|
||||
mi
|
||||
o
|
||||
pani
|
||||
nie
|
||||
był
|
||||
i
|
||||
nie
|
||||
można
|
||||
;
|
||||
bo
|
||||
pan
|
||||
i
|
||||
od
|
||||
mnie
|
||||
:
|
||||
potem
|
||||
nie
|
||||
było
|
||||
do
|
||||
nich
|
||||
:
|
||||
od
|
||||
mnie
|
||||
;
|
||||
o
|
||||
nim
|
||||
;
|
||||
co
|
||||
panny
|
||||
?
|
||||
,
|
||||
ażeby
|
||||
nie
|
||||
ma
|
||||
mu
|
||||
,
|
||||
a
|
||||
potem
|
||||
od
|
||||
on
|
||||
,
|
||||
co
|
||||
mnie
|
||||
ażeby
|
||||
nie
|
||||
jest
|
||||
nie
|
||||
.
|
||||
ale
|
||||
ja
|
||||
.
|
||||
pan
|
||||
ignacy
|
||||
?
|
||||
po
|
||||
chwili
|
||||
go
|
||||
?
|
||||
na
|
||||
jego
|
||||
dzień
|
||||
?
|
||||
)
|
||||
i
|
||||
nie
|
||||
.
|
||||
ale
|
||||
może
|
||||
do
|
||||
domu
|
||||
,
|
||||
nie
|
||||
jestem
|
||||
na
|
||||
prawo
|
||||
od
|
||||
.
|
||||
a
|
||||
i
|
||||
co
|
||||
ja
|
||||
?
|
||||
do
|
||||
niego
|
||||
)
|
||||
i
|
||||
nie
|
||||
będzie
|
||||
do
|
||||
głowy
|
||||
;
|
||||
i
|
||||
ja
|
||||
go
|
||||
od
|
||||
.
|
||||
,
|
||||
na
|
||||
drugi
|
||||
i
|
||||
do
|
||||
mnie
|
||||
,
|
||||
który
|
||||
do
|
||||
niej
|
||||
nie
|
||||
może
|
||||
być
|
||||
do
|
||||
końca
|
||||
?
|
||||
)
|
||||
,
|
||||
ażeby
|
||||
nie
|
||||
było
|
||||
do
|
||||
pani
|
||||
krzeszowskiej
|
||||
)
|
||||
?
|
||||
a
|
||||
może
|
||||
nie
|
||||
mam
|
||||
na
|
||||
myśl
|
||||
;
|
||||
ale
|
||||
ja
|
||||
,
|
||||
który
|
||||
?
|
||||
nie
|
||||
mam
|
||||
nie
|
||||
ma
|
||||
do
|
||||
niego
|
||||
i
|
||||
na
|
||||
niego
|
||||
;
|
||||
nawet
|
||||
i
|
||||
do
|
||||
mego
|
||||
do
|
||||
paryża
|
||||
i
|
||||
nawet
|
||||
od
|
||||
i
|
||||
nie
|
||||
,
|
||||
ale
|
||||
co
|
||||
,
|
||||
co
|
||||
do
|
||||
domu
|
||||
;
|
||||
może
|
||||
być
|
||||
do
|
||||
paryża
|
||||
:
|
||||
po
|
||||
obiedzie
|
||||
;
|
||||
czy
|
||||
może
|
||||
.
|
||||
nie
|
||||
?
|
||||
i
|
||||
ja
|
||||
,
|
||||
ale
|
||||
,
|
||||
ale
|
||||
co
|
||||
,
|
||||
.
|
||||
panna
|
||||
.
|
||||
a
|
||||
może
|
||||
?
|
||||
)
|
||||
na
|
||||
myśl
|
||||
nie
|
||||
było
|
||||
o
|
||||
?
|
||||
czy
|
||||
na
|
||||
myśl
|
||||
:
|
||||
a
|
||||
może
|
||||
?
|
||||
i
|
||||
o
|
||||
co
|
||||
do
|
||||
niego
|
||||
i
|
||||
jeszcze
|
||||
.
|
||||
nie
|
||||
jestem
|
||||
na
|
||||
niego
|
||||
nie
|
||||
do
|
||||
nas
|
||||
od
|
||||
niego
|
||||
nie
|
||||
ma
|
||||
;
|
||||
ale
|
||||
co
|
||||
,
|
||||
który
|
||||
,
|
||||
który
|
||||
mi
|
||||
,
|
||||
a
|
||||
jeżeli
|
||||
ja
|
||||
?
|
||||
o
|
||||
mnie
|
||||
.
|
||||
pan
|
||||
?
|
||||
nie
|
||||
chce
|
||||
na
|
||||
będzie
|
||||
mnie
|
||||
:
|
||||
na
|
||||
drugim
|
||||
od
|
||||
powietrza
|
||||
do
|
||||
głowy
|
||||
;
|
||||
potem
|
||||
,
|
||||
nie
|
||||
mogłem
|
||||
nie
|
||||
był
|
||||
od
|
||||
niego
|
||||
nie
|
||||
,
|
||||
ani
|
||||
nie
|
||||
mam
|
||||
na
|
||||
nich
|
||||
i
|
||||
nie
|
||||
jest
|
||||
o
|
||||
nim
|
||||
;
|
||||
ale
|
||||
po
|
||||
,
|
||||
który
|
||||
?
|
||||
do
|
||||
paryża
|
||||
?
|
||||
a
|
||||
potem
|
||||
!
|
||||
po
|
||||
.
|
||||
co
|
||||
nie
|
||||
jestem
|
||||
.
|
||||
i
|
||||
jeszcze
|
||||
do
|
||||
mnie
|
||||
?
|
||||
i
|
||||
na
|
||||
myśl
|
||||
do
|
||||
końca
|
||||
?
|
||||
i
|
||||
na
|
||||
myśl
|
||||
:
|
||||
po
|
||||
,
|
||||
jak
|
||||
nie
|
||||
było
|
||||
i
|
||||
jestem
|
||||
nie
|
||||
można
|
||||
?
|
||||
a
|
||||
nie
|
||||
ma
|
||||
na
|
||||
mnie
|
||||
na
|
||||
nich
|
||||
?
|
||||
i
|
||||
o
|
||||
ile
|
||||
.
|
||||
panna
|
||||
na
|
||||
co
|
||||
,
|
||||
nie
|
||||
było
|
||||
;
|
||||
a
|
||||
on
|
||||
na
|
||||
nich
|
||||
.
|
||||
na
|
||||
co
|
||||
.
|
||||
po
|
||||
francusku
|
||||
:
|
||||
ale
|
||||
co
|
||||
on
|
||||
ma
|
||||
być
|
||||
)
|
||||
?
|
||||
nie
|
||||
był
|
||||
,
|
||||
może
|
||||
do
|
||||
czasu
|
||||
:
|
||||
nie
|
||||
jest
|
||||
i
|
||||
po
|
||||
obiedzie
|
||||
o
|
||||
bardzo
|
||||
,
|
||||
co
|
||||
na
|
||||
niej
|
||||
od
|
||||
czasu
|
||||
,
|
||||
i
|
||||
ja
|
||||
o
|
||||
nim
|
||||
ani
|
||||
,
|
||||
a
|
||||
on
|
||||
na
|
||||
kilka
|
||||
nie
|
||||
będzie
|
||||
do
|
||||
niej
|
||||
ma
|
||||
być
|
||||
i
|
||||
ja
|
||||
?
|
||||
nie
|
||||
było
|
||||
na
|
||||
nich
|
||||
,
|
||||
który
|
||||
o
|
||||
mnie
|
||||
na
|
||||
mnie
|
||||
,
|
||||
na
|
||||
co
|
||||
od
|
||||
niej
|
||||
;
|
||||
do
|
||||
panny
|
||||
do
|
||||
nich
|
||||
.
|
||||
a
|
||||
;
|
||||
na
|
||||
mnie
|
||||
nie
|
||||
ma
|
||||
od
|
||||
mam
|
||||
na
|
||||
mnie
|
||||
,
|
||||
i
|
||||
nie
|
||||
na
|
||||
nią
|
||||
.
|
||||
panna
|
||||
na
|
||||
kilka
|
||||
dni
|
||||
na
|
||||
myśl
|
||||
i
|
||||
o
|
||||
ile
|
||||
do
|
||||
nich
|
||||
:
|
||||
nie
|
||||
o
|
||||
do
|
||||
niego
|
||||
;
|
||||
głowy
|
||||
:
|
||||
a
|
||||
nie
|
||||
było
|
||||
i
|
||||
nie
|
||||
będzie
|
||||
i
|
||||
pan
|
||||
od
|
||||
dawna
|
||||
?
|
||||
może
|
||||
na
|
||||
nią
|
||||
:
|
||||
na
|
||||
mnie
|
||||
.
|
||||
po
|
||||
chwili
|
||||
!
|
||||
nawet
|
||||
mnie
|
||||
.
|
||||
i
|
||||
jeszcze
|
||||
mi
|
||||
nie
|
||||
na
|
||||
nim
|
||||
,
|
||||
który
|
||||
o
|
||||
co
|
||||
do
|
||||
niej
|
||||
i
|
||||
jeszcze
|
||||
od
|
||||
do
|
||||
nich
|
||||
.
|
||||
i
|
||||
o
|
||||
nim
|
||||
:
|
||||
i
|
||||
po
|
||||
do
|
||||
domu
|
||||
do
|
||||
niej
|
||||
od
|
||||
.
|
||||
ale
|
||||
i
|
||||
ja
|
||||
mu
|
||||
,
|
||||
jak
|
||||
on
|
||||
nie
|
||||
może
|
||||
być
|
||||
)
|
||||
do
|
||||
niego
|
||||
na
|
||||
nim
|
||||
od
|
||||
.
|
||||
ja
|
||||
i
|
||||
na
|
||||
mnie
|
||||
:
|
||||
potem
|
||||
,
|
||||
ażeby
|
||||
o
|
||||
jego
|
||||
,
|
||||
a
|
||||
nawet
|
||||
o
|
||||
nim
|
||||
i
|
||||
ale
|
||||
może
|
||||
?
|
||||
nie
|
||||
ma
|
||||
od
|
||||
.
|
||||
pan
|
||||
do
|
||||
nich
|
||||
i
|
||||
na
|
||||
jego
|
||||
jego
|
||||
nie
|
||||
było
|
||||
do
|
||||
nas
|
||||
?
|
||||
ale
|
||||
ja
|
||||
,
|
||||
co
|
||||
i
|
||||
co
|
||||
nie
|
||||
będzie
|
||||
,
|
||||
co
|
||||
on
|
||||
,
|
||||
bo
|
||||
jest
|
||||
nie
|
||||
,
|
||||
co
|
||||
jest
|
||||
o
|
||||
,
|
||||
i
|
||||
nawet
|
||||
?
|
||||
nie
|
||||
,
|
||||
i
|
||||
co
|
||||
,
|
||||
nie
|
||||
mógł
|
||||
o
|
||||
nich
|
||||
nie
|
||||
,
|
||||
nie
|
||||
ma
|
||||
i
|
||||
nie
|
||||
mam
|
||||
,
|
||||
ale
|
||||
o
|
||||
nim
|
||||
nie
|
||||
będzie
|
||||
.
|
||||
a
|
||||
co
|
||||
nie
|
||||
będzie
|
||||
do
|
||||
niej
|
||||
.
|
||||
ale
|
||||
nie
|
||||
może
|
||||
do
|
||||
nas
|
||||
:
|
||||
po
|
||||
angielsku
|
||||
?
|
||||
po
|
||||
.
|
||||
po
|
||||
nie
|
||||
mam
|
||||
.
|
||||
po
|
||||
nie
|
||||
mam
|
||||
nic
|
||||
:
|
||||
co
|
||||
.
|
||||
po
|
||||
co
|
||||
.
|
||||
na
|
||||
co
|
||||
nie
|
||||
?
|
||||
)
|
||||
nie
|
||||
,
|
||||
który
|
||||
?
|
||||
do
|
||||
domu
|
||||
na
|
||||
co
|
||||
dzień
|
||||
nie
|
||||
było
|
||||
o
|
||||
co
|
||||
dzień
|
||||
,
|
||||
który
|
||||
na
|
||||
nich
|
||||
.
|
||||
do
|
||||
niego
|
||||
)
|
||||
?
|
||||
do
|
||||
domu
|
||||
na
|
||||
kilka
|
||||
lat
|
||||
na
|
||||
niego
|
||||
)
|
||||
;
|
||||
nie
|
||||
może
|
||||
być
|
||||
od
|
||||
innych
|
||||
.
|
||||
pan
|
||||
jest
|
||||
.
|
||||
panna
|
||||
na
|
||||
chwilę
|
||||
na
|
||||
co
|
||||
na
|
||||
niego
|
||||
;
|
||||
na
|
||||
co
|
||||
,
|
||||
ażeby
|
||||
i
|
||||
na
|
||||
chwilę
|
||||
;
|
||||
ale
|
||||
może
|
||||
być
|
||||
?
|
||||
|
|
142
main.py
142
main.py
@ -1,38 +1,41 @@
|
||||
import numpy as np
|
||||
import torch
|
||||
from tqdm.notebook import tqdm
|
||||
from sklearn.model_selection import train_test_split
|
||||
import nltk
|
||||
import torch
|
||||
import numpy as np
|
||||
from tqdm.notebook import tqdm
|
||||
from nltk.tokenize import word_tokenize
|
||||
from sklearn.model_selection import train_test_split
|
||||
|
||||
nltk.download('punkt')
|
||||
|
||||
NGRAMS = 5
|
||||
BATCH_SIZE = 128
|
||||
EPOCHS = 15
|
||||
|
||||
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
|
||||
|
||||
with open("train/train.tsv", "r") as lalka_path:
|
||||
with open("train/train.tsv", "r", encoding="utf8") as lalka_path:
|
||||
lines = lalka_path.readlines()
|
||||
|
||||
train, test = train_test_split(lines, test_size = 0.2)
|
||||
train, test = train_test_split(lines, test_size=0.2)
|
||||
|
||||
with open("train/train_train.tsv", "w") as out_train_file:
|
||||
with open("train/train_train.tsv", "w", encoding="utf8") as out_train_file:
|
||||
for i in train:
|
||||
out_train_file.write(i)
|
||||
|
||||
with open("train/train_test.tsv", "w") as out_test_file:
|
||||
with open("train/train_test.tsv", "w", encoding="utf8") as out_test_file:
|
||||
for i in test:
|
||||
out_test_file.write(i)
|
||||
|
||||
lalka_path_train= 'train/train_train.tsv'
|
||||
lalka_path_valid= 'train/train_test.tsv'
|
||||
|
||||
corpora_train = open(lalka_path_train).read()
|
||||
lalka_path_train = 'train/train_train.tsv'
|
||||
lalka_path_valid = 'train/train_test.tsv'
|
||||
|
||||
corpora_train = open(lalka_path_train, encoding="utf8").read()
|
||||
corpora_train_tokenized = list(word_tokenize(corpora_train))
|
||||
corpora_train_tokenized = [token.lower() for token in corpora_train_tokenized]
|
||||
|
||||
vocab_itos = sorted(set(corpora_train_tokenized))
|
||||
|
||||
vocab_itos = vocab_itos[:15005]
|
||||
|
||||
vocab_itos[15001] = "<UNK>"
|
||||
vocab_itos[15002] = "<BOS>"
|
||||
vocab_itos[15003] = "<EOS>"
|
||||
@ -43,104 +46,92 @@ vocab_stoi = dict()
|
||||
for i, token in enumerate(vocab_itos):
|
||||
vocab_stoi[token] = i
|
||||
|
||||
NGRAMS = 5
|
||||
|
||||
def get_token_id(dataset):
|
||||
token_ids = [vocab_stoi['<PAD>']] * (NGRAMS-1) + [vocab_stoi['<BOS>']]
|
||||
token_ids = [vocab_stoi['<PAD>']] * (NGRAMS - 1) + [vocab_stoi['<BOS>']]
|
||||
for token in dataset:
|
||||
try:
|
||||
token_ids.append(vocab_stoi[token])
|
||||
except KeyError:
|
||||
token_ids.append(vocab_stoi['<UNK>'])
|
||||
token_ids.append(vocab_stoi['<EOS>'])
|
||||
|
||||
return token_ids
|
||||
|
||||
train_ids = get_token_id(corpora_train_tokenized)
|
||||
|
||||
def get_samples(dataset):
|
||||
samples = []
|
||||
for i in range(len(dataset)-NGRAMS):
|
||||
samples.append(dataset[i:i+NGRAMS])
|
||||
|
||||
for i in range(len(dataset) - NGRAMS):
|
||||
samples.append(dataset[i:i + NGRAMS])
|
||||
return samples
|
||||
|
||||
|
||||
train_ids = get_token_id(corpora_train_tokenized)
|
||||
|
||||
train_ids = get_samples(train_ids)
|
||||
|
||||
train_ids = torch.tensor(train_ids, device = device)
|
||||
train_ids = torch.tensor(train_ids, device=device)
|
||||
|
||||
corpora_valid = open(lalka_path_valid).read()
|
||||
corpora_valid = open(lalka_path_valid, encoding="utf8").read()
|
||||
|
||||
corpora_valid_tokenized = list(word_tokenize(corpora_valid))
|
||||
corpora_valid_tokenized = [token.lower() for token in corpora_valid_tokenized]
|
||||
|
||||
valid_ids = get_token_id(corpora_valid_tokenized)
|
||||
|
||||
valid_ids = torch.tensor(get_samples(valid_ids), dtype = torch.long, device = device)
|
||||
valid_ids = torch.tensor(get_samples(valid_ids), dtype=torch.long, device=device)
|
||||
|
||||
|
||||
class GRU(torch.nn.Module):
|
||||
|
||||
def __init__(self):
|
||||
super(GRU, self).__init__()
|
||||
self.emb = torch.nn.Embedding(len(vocab_itos),100)
|
||||
self.rec = torch.nn.GRU(100, 256, 1, batch_first = True)
|
||||
self.fc1 = torch.nn.Linear( 256 ,len(vocab_itos))
|
||||
#self.dropout = torch.nn.Dropout(0.5)
|
||||
self.emb = torch.nn.Embedding(len(vocab_itos), 100)
|
||||
self.rec = torch.nn.GRU(100, 256, 1, batch_first=True)
|
||||
self.fc1 = torch.nn.Linear(256, len(vocab_itos))
|
||||
|
||||
def forward(self, x):
|
||||
emb = self.emb(x)
|
||||
#emb = self.dropout(emb)
|
||||
output, h_n = self.rec(emb)
|
||||
hidden = h_n.squeeze(0)
|
||||
out = self.fc1(hidden)
|
||||
#out = self.dropout(out)
|
||||
return out
|
||||
|
||||
|
||||
lm = GRU().to(device)
|
||||
|
||||
criterion = torch.nn.CrossEntropyLoss()
|
||||
optimizer = torch.optim.Adam(lm.parameters(), lr=0.0001)
|
||||
|
||||
optimizer = torch.optim.Adam(lm.parameters(),lr=0.0001)
|
||||
|
||||
BATCH_SIZE = 128
|
||||
EPOCHS = 15
|
||||
|
||||
def get_ppl(dataset_ids):
|
||||
|
||||
lm.eval()
|
||||
|
||||
batches = 0
|
||||
loss_sum = 0
|
||||
acc_score = 0
|
||||
|
||||
for i in range(0, len(dataset_ids) - BATCH_SIZE + 1, BATCH_SIZE):
|
||||
X = dataset_ids[i : i + BATCH_SIZE, :NGRAMS - 1]
|
||||
Y = dataset_ids[i : i + BATCH_SIZE, NGRAMS - 1]
|
||||
X = dataset_ids[i:i + BATCH_SIZE, :NGRAMS - 1]
|
||||
Y = dataset_ids[i:i + BATCH_SIZE, NGRAMS - 1]
|
||||
|
||||
predictions = lm(X)
|
||||
|
||||
loss = criterion(predictions,Y)
|
||||
loss = criterion(predictions, Y)
|
||||
loss_sum += loss.item()
|
||||
batches += 1
|
||||
|
||||
return np.exp(loss_sum / batches)
|
||||
|
||||
history_ppl_train = []
|
||||
history_ppl_valid = []
|
||||
history_ppl_train = []
|
||||
history_ppl_valid = []
|
||||
|
||||
for epoch in range(EPOCHS):
|
||||
|
||||
batches = 0
|
||||
loss_sum = 0
|
||||
acc_score = 0
|
||||
lm.train()
|
||||
total = len(train_ids) - BATCH_SIZE + 1
|
||||
for i in range(0, total, BATCH_SIZE):
|
||||
print('batches: ' + str(batches))
|
||||
|
||||
for i in tqdm(range(0, len(train_ids)-BATCH_SIZE + 1, BATCH_SIZE)):
|
||||
X = train_ids[i : i + BATCH_SIZE, :NGRAMS - 1]
|
||||
Y = train_ids[i : i + BATCH_SIZE, NGRAMS - 1]
|
||||
X = train_ids[i: i + BATCH_SIZE, :NGRAMS - 1]
|
||||
Y = train_ids[i: i + BATCH_SIZE, NGRAMS - 1]
|
||||
|
||||
predictions = lm(X)
|
||||
loss = criterion(predictions,Y)
|
||||
loss = criterion(predictions, Y)
|
||||
|
||||
optimizer.zero_grad()
|
||||
loss.backward()
|
||||
@ -164,7 +155,6 @@ tokenized = list(word_tokenize('Gości innych nie widział oprócz spółleśnik
|
||||
tokenized = [token.lower() for token in tokenized]
|
||||
|
||||
ids = []
|
||||
|
||||
for word in tokenized:
|
||||
if word in vocab_stoi:
|
||||
ids.append(vocab_stoi[word])
|
||||
@ -173,10 +163,8 @@ for word in tokenized:
|
||||
|
||||
lm.eval()
|
||||
|
||||
ids = torch.tensor(ids, dtype = torch.long, device = device)
|
||||
|
||||
preds= lm(ids.unsqueeze(0))
|
||||
|
||||
ids = torch.tensor(ids, dtype=torch.long, device=device)
|
||||
preds = lm(ids.unsqueeze(0))
|
||||
vocab_itos[torch.argmax(torch.softmax(preds, 1), 1).item()]
|
||||
|
||||
tokenized = list(word_tokenize('Lalka'))
|
||||
@ -189,54 +177,48 @@ for word in tokenized:
|
||||
ids.append(vocab_stoi[word])
|
||||
else:
|
||||
ids.append(vocab_stoi['<UNK>'])
|
||||
ids = torch.tensor([ids], dtype = torch.long, device = device)
|
||||
|
||||
ids = torch.tensor([ids], dtype=torch.long, device=device)
|
||||
|
||||
candidates_number = 10
|
||||
|
||||
for i in range(30):
|
||||
preds= lm(ids)
|
||||
|
||||
candidates = torch.topk(torch.softmax(preds,1),candidates_number)[1][0].cpu().numpy()
|
||||
preds = lm(ids)
|
||||
candidates = torch.topk(torch.softmax(preds, 1), candidates_number)[1][0].cpu().numpy()
|
||||
candidate = 15001
|
||||
|
||||
while candidate > 15000:
|
||||
candidate = candidates[np.random.randint(candidates_number)]
|
||||
|
||||
print(vocab_itos[candidate])
|
||||
ids = torch.cat((ids, torch.tensor([[candidate]], device = device)), 1)
|
||||
ids = torch.cat((ids, torch.tensor([[candidate]], device=device)), 1)
|
||||
|
||||
with open("dev-0/in.tsv", "r") as dev_path:
|
||||
print('starting outs...')
|
||||
|
||||
with open("dev-0/in.tsv", "r", encoding="UTF-8") as dev_path:
|
||||
nr_of_dev_lines = len(dev_path.readlines())
|
||||
|
||||
with open("test-A/in.tsv", "r") as test_a_path:
|
||||
with open("test-A/in.tsv", "r", encoding="UTF-8") as test_a_path:
|
||||
nr_of_test_a_lines = len(test_a_path.readlines())
|
||||
|
||||
with open("dev-0/out.tsv", "w") as out_dev_file:
|
||||
with open("dev-0/out.tsv", "w", encoding="UTF-8") as out_dev_file:
|
||||
for i in range(nr_of_dev_lines):
|
||||
preds= lm(ids)
|
||||
|
||||
candidates = torch.topk(torch.softmax(preds,1),candidates_number)[1][0].cpu().numpy()
|
||||
preds = lm(ids)
|
||||
candidates = torch.topk(torch.softmax(preds, 1), candidates_number)[1][0].cpu().numpy()
|
||||
candidate = 15001
|
||||
|
||||
while candidate > 15000:
|
||||
candidate = candidates[np.random.randint(candidates_number)]
|
||||
|
||||
print(vocab_itos[candidate])
|
||||
|
||||
ids = torch.cat((ids, torch.tensor([[candidate]], device = device)), 1)
|
||||
ids = torch.cat((ids, torch.tensor([[candidate]], device=device)), 1)
|
||||
out_dev_file.write(vocab_itos[candidate] + '\n')
|
||||
|
||||
with open("test-A/out.tsv", "w") as out_test_file:
|
||||
with open("test-A/out.tsv", "w", encoding="UTF-8") as out_test_file:
|
||||
for i in range(nr_of_dev_lines):
|
||||
preds= lm(ids)
|
||||
|
||||
candidates = torch.topk(torch.softmax(preds,1),candidates_number)[1][0].cpu().numpy()
|
||||
preds = lm(ids)
|
||||
candidates = torch.topk(torch.softmax(preds, 1), candidates_number)[1][0].cpu().numpy()
|
||||
candidate = 15001
|
||||
|
||||
while candidate > 15000:
|
||||
candidate = candidates[np.random.randint(candidates_number)]
|
||||
|
||||
print(vocab_itos[candidate])
|
||||
|
||||
ids = torch.cat((ids, torch.tensor([[candidate]], device = device)), 1)
|
||||
out_test_file.write(vocab_itos[candidate] + '\n')
|
||||
ids = torch.cat((ids, torch.tensor([[candidate]], device=device)), 1)
|
||||
out_test_file.write(vocab_itos[candidate] + '\n')
|
782
test-A/out.tsv
782
test-A/out.tsv
@ -1,471 +1,471 @@
|
||||
)
|
||||
.
|
||||
do
|
||||
nas
|
||||
po
|
||||
do
|
||||
domu
|
||||
.
|
||||
panna
|
||||
felicja
|
||||
?
|
||||
na
|
||||
nią
|
||||
do
|
||||
mnie
|
||||
,
|
||||
i
|
||||
co
|
||||
i
|
||||
jeszcze
|
||||
i
|
||||
do
|
||||
głowy
|
||||
do
|
||||
niego
|
||||
?
|
||||
ale
|
||||
jeżeli
|
||||
,
|
||||
ale
|
||||
nie
|
||||
mam
|
||||
.
|
||||
ale
|
||||
o
|
||||
on
|
||||
mnie
|
||||
,
|
||||
czy
|
||||
,
|
||||
co
|
||||
on
|
||||
do
|
||||
głowy
|
||||
.
|
||||
na
|
||||
jego
|
||||
.
|
||||
pan
|
||||
i
|
||||
od
|
||||
czasu
|
||||
do
|
||||
domu
|
||||
od
|
||||
dawna
|
||||
;
|
||||
ale
|
||||
co
|
||||
do
|
||||
pani
|
||||
już
|
||||
i
|
||||
do
|
||||
nich
|
||||
nie
|
||||
było
|
||||
do
|
||||
domu
|
||||
;
|
||||
potem
|
||||
mu
|
||||
do
|
||||
głowy
|
||||
?
|
||||
ale
|
||||
o
|
||||
czym
|
||||
;
|
||||
potem
|
||||
ja
|
||||
do
|
||||
niego
|
||||
na
|
||||
głowie
|
||||
.
|
||||
panna
|
||||
felicja
|
||||
i
|
||||
ja
|
||||
.
|
||||
pan
|
||||
i
|
||||
nawet
|
||||
o
|
||||
ma
|
||||
do
|
||||
domu
|
||||
:
|
||||
od
|
||||
niej
|
||||
ale
|
||||
,
|
||||
nie
|
||||
jestem
|
||||
nie
|
||||
mam
|
||||
i
|
||||
nie
|
||||
,
|
||||
na
|
||||
którym
|
||||
na
|
||||
jego
|
||||
pokoju
|
||||
)
|
||||
i
|
||||
bez
|
||||
i
|
||||
do
|
||||
paryża
|
||||
na
|
||||
myśl
|
||||
,
|
||||
gdzie
|
||||
.
|
||||
panna
|
||||
nie
|
||||
na
|
||||
lewo
|
||||
i
|
||||
na
|
||||
mnie
|
||||
nie
|
||||
,
|
||||
który
|
||||
i
|
||||
nawet
|
||||
od
|
||||
czasu
|
||||
od
|
||||
nie
|
||||
będzie
|
||||
;
|
||||
nie
|
||||
było
|
||||
mu
|
||||
do
|
||||
mieszkania
|
||||
do
|
||||
paryża
|
||||
i
|
||||
o
|
||||
czym
|
||||
do
|
||||
niego
|
||||
na
|
||||
niego
|
||||
myśl
|
||||
.
|
||||
panna
|
||||
na
|
||||
kilka
|
||||
i
|
||||
o
|
||||
mnie
|
||||
na
|
||||
co
|
||||
i
|
||||
o
|
||||
co
|
||||
na
|
||||
jego
|
||||
?
|
||||
i
|
||||
do
|
||||
domu
|
||||
końca
|
||||
.
|
||||
i
|
||||
nie
|
||||
mam
|
||||
nie
|
||||
mam
|
||||
nie
|
||||
o
|
||||
,
|
||||
który
|
||||
do
|
||||
końca
|
||||
do
|
||||
czasu
|
||||
:
|
||||
i
|
||||
jeszcze
|
||||
,
|
||||
na
|
||||
niego
|
||||
,
|
||||
nie
|
||||
można
|
||||
:
|
||||
i
|
||||
jeszcze
|
||||
i
|
||||
nawet
|
||||
:
|
||||
ale
|
||||
na
|
||||
nią
|
||||
:
|
||||
czy
|
||||
chwilę
|
||||
i
|
||||
na
|
||||
lewo
|
||||
,
|
||||
a
|
||||
:
|
||||
na
|
||||
niego
|
||||
nie
|
||||
było
|
||||
.
|
||||
?
|
||||
do
|
||||
mnie
|
||||
do
|
||||
mnie
|
||||
i
|
||||
nie
|
||||
mógł
|
||||
o
|
||||
co
|
||||
na
|
||||
nią
|
||||
.
|
||||
na
|
||||
drugim
|
||||
do
|
||||
niej
|
||||
;
|
||||
lecz
|
||||
nawet
|
||||
do
|
||||
mnie
|
||||
;
|
||||
nich
|
||||
i
|
||||
on
|
||||
do
|
||||
mnie
|
||||
i
|
||||
panny
|
||||
,
|
||||
nie
|
||||
mógł
|
||||
o
|
||||
nim
|
||||
i
|
||||
do
|
||||
paryża
|
||||
końca
|
||||
;
|
||||
i
|
||||
ja
|
||||
go
|
||||
pan
|
||||
:
|
||||
od
|
||||
czy
|
||||
,
|
||||
który
|
||||
?
|
||||
)
|
||||
nie
|
||||
jest
|
||||
jestem
|
||||
go
|
||||
i
|
||||
na
|
||||
myśl
|
||||
do
|
||||
paryża
|
||||
,
|
||||
co
|
||||
,
|
||||
bo
|
||||
i
|
||||
jeszcze
|
||||
,
|
||||
ażeby
|
||||
mu
|
||||
do
|
||||
pani
|
||||
:
|
||||
potem
|
||||
:
|
||||
na
|
||||
prawo
|
||||
i
|
||||
;
|
||||
nawet
|
||||
nie
|
||||
można
|
||||
na
|
||||
lewo
|
||||
mnie
|
||||
nie
|
||||
będzie
|
||||
,
|
||||
ażeby
|
||||
co
|
||||
na
|
||||
kilka
|
||||
do
|
||||
niego
|
||||
i
|
||||
o
|
||||
co
|
||||
najmniej
|
||||
nie
|
||||
może
|
||||
;
|
||||
i
|
||||
o
|
||||
czym
|
||||
:
|
||||
czy
|
||||
pan
|
||||
jest
|
||||
od
|
||||
nas
|
||||
od
|
||||
powietrza
|
||||
?
|
||||
i
|
||||
pan
|
||||
co
|
||||
nie
|
||||
,
|
||||
ażeby
|
||||
na
|
||||
nim
|
||||
.
|
||||
a
|
||||
ja
|
||||
go
|
||||
i
|
||||
jeszcze
|
||||
:
|
||||
)
|
||||
:
|
||||
ale
|
||||
o
|
||||
nim
|
||||
,
|
||||
nie
|
||||
można
|
||||
na
|
||||
mnie
|
||||
i
|
||||
do
|
||||
pani
|
||||
baronowa
|
||||
;
|
||||
na
|
||||
co
|
||||
na
|
||||
kilka
|
||||
.
|
||||
po
|
||||
chwili
|
||||
do
|
||||
niego
|
||||
:
|
||||
po
|
||||
,
|
||||
nie
|
||||
ma
|
||||
,
|
||||
ale
|
||||
po
|
||||
do
|
||||
pokoju
|
||||
do
|
||||
mnie
|
||||
;
|
||||
nie
|
||||
na
|
||||
lewo
|
||||
od
|
||||
niego
|
||||
;
|
||||
:
|
||||
na
|
||||
głowie
|
||||
,
|
||||
a
|
||||
po
|
||||
południu
|
||||
i
|
||||
nie
|
||||
jest
|
||||
do
|
||||
niego
|
||||
nie
|
||||
do
|
||||
czasu
|
||||
na
|
||||
myśl
|
||||
,
|
||||
o
|
||||
na
|
||||
mnie
|
||||
?
|
||||
,
|
||||
nie
|
||||
ma
|
||||
i
|
||||
będę
|
||||
nie
|
||||
może
|
||||
o
|
||||
pani
|
||||
dziesiątej
|
||||
.
|
||||
na
|
||||
jego
|
||||
i
|
||||
jeszcze
|
||||
do
|
||||
czasu
|
||||
;
|
||||
a
|
||||
gdy
|
||||
nie
|
||||
będzie
|
||||
?
|
||||
o
|
||||
jej
|
||||
nie
|
||||
było
|
||||
?
|
||||
ale
|
||||
na
|
||||
kilka
|
||||
na
|
||||
kilka
|
||||
.
|
||||
po
|
||||
nie
|
||||
może
|
||||
,
|
||||
nie
|
||||
jest
|
||||
i
|
||||
o
|
||||
co
|
||||
na
|
||||
mnie
|
||||
:
|
||||
czy
|
||||
nie
|
||||
może
|
||||
nie
|
||||
będzie
|
||||
o
|
||||
nim
|
||||
;
|
||||
nawet
|
||||
nie
|
||||
jest
|
||||
o
|
||||
co
|
||||
,
|
||||
bo
|
||||
,
|
||||
a
|
||||
nawet
|
||||
na
|
||||
jego
|
||||
,
|
||||
ażeby
|
||||
,
|
||||
na
|
||||
których
|
||||
i
|
||||
co
|
||||
.
|
||||
po
|
||||
nie
|
||||
będzie
|
||||
mnie
|
||||
:
|
||||
ale
|
||||
o
|
||||
jej
|
||||
nie
|
||||
jest
|
||||
i
|
||||
o
|
||||
:
|
||||
co
|
||||
.
|
||||
)
|
||||
do
|
||||
paryża
|
||||
.
|
||||
ale
|
||||
czy
|
||||
co
|
||||
na
|
||||
nich
|
||||
;
|
||||
a
|
||||
nie
|
||||
będzie
|
||||
.
|
||||
a
|
||||
co
|
||||
nie
|
||||
mam
|
||||
nie
|
||||
mam
|
||||
nie
|
||||
.
|
||||
a
|
||||
co
|
||||
.
|
||||
panna
|
||||
do
|
||||
nas
|
||||
i
|
||||
nie
|
||||
będzie
|
||||
i
|
||||
co
|
||||
nie
|
||||
było
|
||||
.
|
||||
nie
|
||||
na
|
||||
nią
|
||||
i
|
||||
bez
|
||||
panny
|
||||
izabeli
|
||||
i
|
||||
na
|
||||
nią
|
||||
nie
|
||||
,
|
||||
ale
|
||||
jeszcze
|
||||
od
|
||||
nie
|
||||
było
|
||||
można
|
||||
do
|
||||
paryża
|
||||
i
|
||||
o
|
||||
pani
|
||||
głowy
|
||||
?
|
||||
i
|
||||
o
|
||||
mnie
|
||||
,
|
||||
nie
|
||||
mam
|
||||
na
|
||||
mnie
|
||||
,
|
||||
jak
|
||||
pan
|
||||
od
|
||||
mnie
|
||||
na
|
||||
myśl
|
||||
i
|
||||
a
|
||||
nawet
|
||||
:
|
||||
ale
|
||||
na
|
||||
niego
|
||||
na
|
||||
prawo
|
||||
od
|
||||
czasu
|
||||
nie
|
||||
będzie
|
||||
do
|
||||
mnie
|
||||
do
|
||||
nas
|
||||
do
|
||||
panny
|
||||
końca
|
||||
nie
|
||||
.
|
||||
ja
|
||||
po
|
||||
odejściu
|
||||
?
|
||||
,
|
||||
o
|
||||
mnie
|
||||
panna
|
||||
na
|
||||
nią
|
||||
:
|
||||
co
|
||||
nie
|
||||
może
|
||||
być
|
||||
i
|
||||
ja
|
||||
od
|
||||
niej
|
||||
?
|
||||
od
|
||||
nie
|
||||
było
|
||||
na
|
||||
nich
|
||||
i
|
||||
jego
|
||||
do
|
||||
domu
|
||||
nie
|
||||
do
|
||||
pani
|
||||
.
|
||||
na
|
||||
mnie
|
||||
,
|
||||
a
|
||||
on
|
||||
i
|
||||
nie
|
||||
,
|
||||
na
|
||||
nim
|
||||
?
|
||||
a
|
||||
potem
|
||||
i
|
||||
na
|
||||
nim
|
||||
.
|
||||
ja
|
||||
na
|
||||
nią
|
||||
?
|
||||
a
|
||||
,
|
||||
który
|
||||
na
|
||||
mnie
|
||||
niego
|
||||
;
|
||||
potem
|
||||
do
|
||||
mnie
|
||||
i
|
||||
od
|
||||
czasu
|
||||
od
|
||||
niego
|
||||
.
|
||||
a
|
||||
potem
|
||||
o
|
||||
nim
|
||||
do
|
||||
niego
|
||||
i
|
||||
na
|
||||
nim
|
||||
do
|
||||
mnie
|
||||
.
|
||||
a
|
||||
jeżeli
|
||||
pan
|
||||
,
|
||||
czy
|
||||
pan
|
||||
,
|
||||
jej
|
||||
o
|
||||
ile
|
||||
:
|
||||
o
|
||||
nie
|
||||
,
|
||||
nie
|
||||
było
|
||||
dziesiątej
|
||||
.
|
||||
a
|
||||
ja
|
||||
na
|
||||
nią
|
||||
na
|
||||
prawo
|
||||
od
|
||||
mnie
|
||||
:
|
||||
i
|
||||
jeszcze
|
||||
nie
|
||||
do
|
||||
mnie
|
||||
?
|
||||
a
|
||||
on
|
||||
o
|
||||
nim
|
||||
do
|
||||
domu
|
||||
?
|
||||
ale
|
||||
ja
|
||||
mu
|
||||
nie
|
||||
na
|
||||
prawo
|
||||
nie
|
||||
było
|
||||
na
|
||||
jego
|
||||
,
|
||||
i
|
||||
ja
|
||||
go
|
||||
i
|
||||
nie
|
||||
jest
|
||||
,
|
||||
ażeby
|
||||
na
|
||||
niego
|
||||
do
|
||||
pani
|
||||
.
|
||||
ale
|
||||
i
|
||||
cóż
|
||||
?
|
||||
i
|
||||
pan
|
||||
?
|
||||
,
|
||||
czy
|
||||
o
|
||||
mnie
|
||||
:
|
||||
na
|
||||
prawo
|
||||
i
|
||||
jeszcze
|
||||
,
|
||||
co
|
||||
do
|
||||
paryża
|
||||
nie
|
||||
na
|
||||
.
|
||||
nie
|
||||
jest
|
||||
na
|
||||
prawo
|
||||
?
|
||||
pan
|
||||
,
|
||||
i
|
||||
pan
|
||||
na
|
||||
nią
|
||||
.
|
||||
ale
|
||||
po
|
||||
mnie
|
||||
?
|
||||
do
|
||||
domu
|
||||
nie
|
||||
na
|
||||
niego
|
||||
do
|
||||
głowy
|
||||
;
|
||||
ale
|
||||
co
|
||||
mi
|
||||
o
|
||||
mnie
|
||||
.
|
||||
na
|
||||
prawo
|
||||
.
|
||||
a
|
||||
jeżeli
|
||||
go
|
||||
o
|
||||
nie
|
||||
na
|
||||
prawo
|
||||
od
|
||||
dawna
|
||||
do
|
||||
paryża
|
||||
nie
|
||||
.
|
||||
a
|
||||
nawet
|
||||
mnie
|
||||
?
|
||||
na
|
||||
prawo
|
||||
?
|
||||
na
|
||||
nią
|
||||
:
|
||||
na
|
||||
nim
|
||||
,
|
||||
co
|
||||
na
|
||||
jego
|
||||
nie
|
||||
ma
|
||||
;
|
||||
i
|
||||
ja
|
||||
na
|
||||
kilka
|
||||
minut
|
||||
?
|
||||
ale
|
||||
czy
|
||||
ja
|
||||
.
|
||||
ale
|
||||
ja
|
||||
do
|
||||
niej
|
||||
do
|
||||
końca
|
||||
i
|
||||
po
|
||||
do
|
||||
panny
|
||||
,
|
||||
nie
|
||||
można
|
||||
na
|
||||
niego
|
||||
|
|
3572
train/train_test.tsv
3572
train/train_test.tsv
File diff suppressed because it is too large
Load Diff
14290
train/train_train.tsv
14290
train/train_train.tsv
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user