ngramowy model
This commit is contained in:
parent
06fb4fbeb1
commit
25ac00926a
1
wyk/04_Ngramowy_model.ipynb
Normal file
1
wyk/04_Ngramowy_model.ipynb
Normal file
File diff suppressed because one or more lines are too long
112
wyk/04_Ngramowy_model.org
Normal file
112
wyk/04_Ngramowy_model.org
Normal file
@ -0,0 +1,112 @@
|
||||
|
||||
** Modele języka i ich zastosowania
|
||||
|
||||
*** Przypomnienie
|
||||
|
||||
Przypomnijmy, że model języka zwraca prawdopodobieństwo dla danego
|
||||
ciągu symboli (tokenów, wyrazów itp.) $w_1\ldots w_N$ (o długości $N$):
|
||||
|
||||
$$P_M(w_1\ldots w_N) = ?$$
|
||||
|
||||
W dalszym ciągu będziemy zakładali, że będziemy operować na wyrazach.
|
||||
Zbiór wszystkich wyrazów nazywa się *słownikiem* (ang. /vocabulary/,
|
||||
nie /dictionary!/), w literaturze dotyczącej modelowania języka
|
||||
zazwyczaj oznacza się go literą $V$ (częściej niż $\Sigma$).
|
||||
Dale zakładamy, że słownik jest skończony.
|
||||
|
||||
*** Co jeszcze potrafi model języka?
|
||||
|
||||
**** Przewidywanie kolejnego słowa
|
||||
|
||||
$$P_M(w_N|w_1\ldots w_{N-1}) = \frac{P_M(w_1\dots w_{N-1}w_N*)}{P_M(w_1\dots w_{n-1}*)} = \frac{\sum_{\alpha \in
|
||||
\Sigma^*}P_M(w_1\dots w_N\alpha)}{\sum_{\alpha\in\Sigma^*}P(w_1\dots w_{n-1}\alpha)}$$
|
||||
|
||||
$P_M(w_N|w_1\ldots w_{N-1})$ to właściwie skrót notacyjny, pełny zapis powinien mieć następujący kształt:
|
||||
|
||||
$$P_M(X_N=w_N|X_1=w_1,\ldots,X_{N-1}=w_{N-1}),$$
|
||||
|
||||
gdzie $P_M(X_i=w)$ oznacza prawdopodobieństwo, że na $i$-tej pozycji wystąpi słowo $w$.
|
||||
|
||||
**** Odgadywanie słowa w luce
|
||||
|
||||
$$P_M(w_1\dots w_{i-1}?w_{i+1}\dots w_N) = \operatorname{argmax}_w P_M(w_1\ldots w_{i-1}ww_{i+1}\dots w_N)$$
|
||||
|
||||
*** Przykład dla autentycznego modelu języku
|
||||
|
||||
Zobaczmy przykładowe zastosowania i wyniki dla modelu języku
|
||||
wyuczonego na tekstach z II poł. XX w.
|
||||
|
||||
[[./04_Ngramowy_model/tabelka.png]]
|
||||
|
||||
*** Do czego stosujemy model języka?
|
||||
|
||||
Model języka sam w sobie nie jest zbyt użyteczny. To raczej środek do celu
|
||||
niż cel sam w sobie.
|
||||
|
||||
Model języka:
|
||||
- ma zastosowanie w kryptoanalizie
|
||||
- Oxmynsxq mkx lo kmrsofon li cdenisxq sdc kvzrklodsm mrkbkmdobc kxn bozvkmsxq okmr yxo li dro 13dr voddob zvkmon pebdrob kvyxq sx dro kvzrklod.
|
||||
- pomaga(ł) wybrać właściwe tłumaczenie w tłumaczeniu maszynowym
|
||||
czy transkrypcję w systemach rozpoznawania mowy (ASR)
|
||||
(zanim zaczęto używać do tego sieci neuronowych, gdzie nie
|
||||
ma już wyraźnego rozróżnienia między modelem tłumaczenia
|
||||
czy modelem akustycznym a modelem języka
|
||||
- pomaga znaleźć „podejrzane” miejsca w tekście
|
||||
(korekta pisowni/gramatyki)
|
||||
- może być stosowany jako klasyfikator (potrzeba wtedy więcej niż jednego modelu,
|
||||
np. model języka spamów kontra model języka niespamów)
|
||||
- może być stosowany w kompresji danych
|
||||
- bardzo dobry model języka *musi* mieć *w środku* bardzo dobrą *wiedzę*
|
||||
o języku i o świecie, można wziąć *„wnętrzności”* modelu, nie dbając o prawdopodobieństwa
|
||||
i użyć modelu w zupełnie innym celu
|
||||
|
||||
** N-gramowy model języka
|
||||
|
||||
Zawsze prawdziwe:
|
||||
|
||||
$$P_M(w_1\dots w_N) = P_M(w_1)P_M(w_2|w_1)\dots P_M(w_N|w_1\dots w_{N-1}).$$
|
||||
|
||||
Można aproksymować prawdopodobieństwa używając $n$-gramów:
|
||||
|
||||
$$P_M(w_1\dots w_N) \approx P_M(w_1)\dots P_M(w_i|w_{i-n+1}\dots w_{i-1})\dots P_M(w_N|w_{N-n+1}\dots w_{N-1}).$$
|
||||
|
||||
*** Model trigramowy
|
||||
|
||||
Dla $n=3$:
|
||||
|
||||
$$P_M(w_1\dots w_N) = P_M(w_1)P_M(w_2|w_1)P_M(w_3|w_1w_2)\dots P_M(w_i|w_{i-2}w_{i-1})\dots P_M(w_N|w_{N-2}w_{N-1}).$$
|
||||
|
||||
Zauważmy, że model trigramowy oznacza modelowanie kolejnego wyrazu przy znajomości
|
||||
2 (nie 3!) poprzedzających wyrazów (*razem* mamy 3 wyrazy).
|
||||
|
||||
*** Model digramowy
|
||||
|
||||
Dla $n=2$:
|
||||
|
||||
$$P_M(w_1\dots w_N) = P_M(w_1)P_M(w_2|w_1)P_M(w_3|w_2)\dots P_M(w_i|w_{i-1})\dots P_M(w_N|w_{N-1})$$
|
||||
|
||||
*** Model unigramowy
|
||||
|
||||
Dla $n=1$ uzyskujemy przypadek szczególny:
|
||||
|
||||
$$P_M(w_1\dots w_N) = P_M(w_1)P_M(w_2)P_M(w_3)\dots P_M(w_N) = \prod_{i=1}^N P_M(w_i)$$
|
||||
|
||||
Zauważmy, że w modelu unigramowym w ogóle nie bierzemy pod uwagę kolejności wyrazów.
|
||||
|
||||
*** Estymacja prawdopodobieństw
|
||||
|
||||
Dla $n$-gramowego modelu potrzebujmy estymować wartości:
|
||||
|
||||
$$P_M(w_i|w_{i-n+1}\dots w_{i-1}).$$
|
||||
|
||||
Prawdopodobieństwa te estymujemy na podstawie jakiegoś *korpusu tekstów*
|
||||
(możemy nazywać go również *zbiorem uczącym*).
|
||||
|
||||
Najprostszy sposób:
|
||||
|
||||
$$P_M(w_i|w_{i-n+1}\dots w_{i-1}) = \frac{\# w_{i-n+1}\dots w_{i-1}w_i}{\# w_{i-n+1}\dots w_{i-1}},$$
|
||||
|
||||
gdzie $\# w_1\dots w_k$ oznacza liczbę wystąpień w korpusie.
|
||||
|
||||
Na przykład, jeśli model $M$ zostanie wyuczony na tekście /do be do be do do/, wówczas
|
||||
$P_M(\mathit{be}|\mathit{do})=\frac{2}{3}$.
|
BIN
wyk/04_Ngramowy_model/tabelka.pdf
Normal file
BIN
wyk/04_Ngramowy_model/tabelka.pdf
Normal file
Binary file not shown.
BIN
wyk/04_Ngramowy_model/tabelka.png
Normal file
BIN
wyk/04_Ngramowy_model/tabelka.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 242 KiB |
Loading…
Reference in New Issue
Block a user