Пример #1
0
model_path = "polish_roberta_large_no_finetune"
loaded = hub_utils.from_pretrained(model_name_or_path=model_path,
                                   data_name_or_path=model_path,
                                   bpe="sentencepiece",
                                   sentencepiece_vocab=os.path.join(
                                       model_path, "sentencepiece.bpe.model"),
                                   load_checkpoint_heads=True,
                                   archive_map=RobertaModel.hub_models(),
                                   cpu=False)
roberta = RobertaHubInterface(loaded['args'], loaded['task'],
                              loaded['models'][0])

roberta.eval()
roberta.cuda()

preds = roberta.fill_mask('Ala <mask>, kota', topk=3)
#import pdb; pdb.set_trace()


def predict(f_in_path, f_out_path):
    f_in = open(f_in_path, 'r', newline='\n')
    f_out = open(f_out_path, 'w', newline='\n')

    for line in tqdm(f_in, total=19986):
        _, _, before, after = line.split('\t')
        before = ' '.join(
            before.split(' ')[-40:]
        )  # tu można poprawić, żeby  śmigał na tokenal spm a nie zakładał że jest jak ze spacjami
        after = ' '.join(after.split(' ')[:40])
        input = before + ' <mask> ' + after
        #import pdb; pdb.set_trace()
Пример #2
0
    'Wikipedia powstała jako projekt uzupełniający dla <mask>, darmowej encyklopedii internetowej',  #Nupedii
    'W Olsztynie pracował Mikołaj Kopernik, ten który <mask> ziemię a wstrzymał słońce.',
    'Krzysztof <mask> do sklepu i zrobił zakupy na śniadanie.',
    'Anna <mask> do sklepu i zrobiła zakupy na śniadanie.',
    'Idąć do szkoły, <mask> potrącony przez rowerzystę.',
    'Nie lubił zupy <mask>, ale musiał ją zjeść ',
    'Nagle pojawili się jego <mask>, z którymi nie rozmawiał już od dłuższego czasu',
    'Na śniadanie zjadł kanapkę z <mask> i sałatą',
    '<mask> linie lotnicze wstrzymały loty do Rosji',
    'Nic nie powiedział, wstał i <mask> wyszedł z domu '
    

]

for s in sentences:
    topk_tokens = roberta.fill_mask(s, topk=5)
    print_mask(s, topk_tokens)


# %%
from transformers import *
model = BertForMaskedLM.from_pretrained("dkleczek/bert-base-polish-uncased-v1")
tokenizer = BertTokenizer.from_pretrained("dkleczek/bert-base-polish-uncased-v1")
nlp = pipeline('fill-mask', model=model, tokenizer=tokenizer)

#%%

for pred in nlp(f"Adam Mickiewicz wielkim polskim {nlp.tokenizer.mask_token} był."):
  print(pred)

for s in sentences: