5.1 KiB
5.1 KiB
Ekstrakcja informacji
5. Statystyczny model językowy część 2 [ćwiczenia]
NR_INDEKSU = 375985
class Model():
def __init__(self, vocab_size, UNK_token= '<UNK>'):
pass
def train(corpus:list) -> None:
pass
def predict(text: list, probs: str) -> float:
pass
def get_ppl(text: list) -> float:
pass
text = 'Pani Ala ma kota oraz ładnego pieska i 3 chomiki'
text_splitted = text.split(' ')
text_splitted
['Pani', 'Ala', 'ma', 'kota', 'oraz', 'ładnego', 'pieska', 'i', '3', 'chomiki']
text_masked = text_splitted[:4] + ['<MASK>'] + text_splitted[5:]
text_masked
['Pani', 'Ala', 'ma', 'kota', '<MASK>', 'ładnego', 'pieska', 'i', '3', 'chomiki']
trigram_model działa na ['ma', 'kota', <'MASK>']
trigram_model.predict(['ma', 'kota']) → 'i:0.55 oraz:0.25 czarnego:0.1 :0.1'
ZADANIE:
ZADANIE
Proszę za pomocą modelu statystycznego ($n$-gramowego) stworzyć rozwiązanie dla https://gonito.csi.wmi.amu.edu.pl/challenge/challenging-america-word-gap-prediction i umieścić je na platformie Gonito
Warunki zaliczenia:
- wynik widoczny na platformie zarówno dla dev i dla test
- wynik dla dev i test lepszy (niższy) od 1024.00
- deadline do końca dnia 24.04.2024
- commitując rozwiązanie proszę również umieścić rozwiązanie w pliku /run.py (czyli na szczycie katalogu). Można przekonwertować jupyter do pliku python przez File → Download as → Python. Rozwiązanie nie musi być w pythonie, może być w innym języku.
- zadania wykonujemy samodzielnie
- w nazwie commita podaj nr indeksu
- w tagach podaj "n-grams" (należy zatwierdzić przecinkiem po wybraniu tagu)!
Uwagi:
- warto wymyślić jakąś metodę wygładazania, bez tego może być bardzo kiepski wynik
- nie trzeba korzystać z całego zbioru trenującego
- roziwązanie zadania to 70 punktów,
- dodatkowo: za najlepsze rozwiązanie w grupie przyznaję 40 punktów, za drugie miejsce: 20 punktów, a za trzecie miejsce: 10 punktów
- warto monitorować RAM, próbować z różnym vocab_size, można skorzystać z pythonowego Counter
- warto sobie zrobić dodatkowo model unigramowy w ramach ćwiczenia