Syntaktyczne modelowanie języka Bartosz Ziółko Wykorzystano materiały Dawida Skurzoka, MIT i Wikipedii 304
Gramatyka/ modelowanie syntaktyczne Parsery Analizatory morfologiczne / POS tagery n-grams Wygładzanie modeli Filtry Blooma 305
Nadmiarowość w językach Konieczna z tego samego powodu co w kodach transmisyjnych Prawdopodobnie stopień nadmiarowości zależy od warunków geograficznych Demo z Mathematica (RedundancyInWrittenLanguage) 306
Powody modelowania syntaktycznego Niektóre zdania mogą brzmieć bardzo podobnie: I helped Apple wreck a nice beach. I helped Apple recognise speech. W języku polskim nawet identycznie: może / morze 307
Noam Chomsky Gramatyka formalna składa się z: skończonego zbioru symboli końcowych skończonego zbioru symboli niekońcowych skończonego zbioru reguł produkcji na lewo i prawo składających się z sekwencji tych symboli symbol startowy 308
Hierarchia Chomskiego 309
MIT Regina Barzilay Michael Collins N = noun, V = verb, D = determiner 310
311
312
313
Disambiguity in parsing 314
Analizator morfologiczny / POS tager Proces zaznaczania słów w tekście jako odpowiadających szczególnym częściom mowy, oparty zarówno na ich definicjach, jak i ich kontekstach. 315
Sekwencje słów są przewidywalne Mathematica demo: Nonsense sentence generator 316
1-gramy słów (wybrane korpusy) 1) się 1 780 825 (2,6%) 2) i 1 632 596 (2,4%) 3) w 1 569 027 (2,3%) 4) nie 1 445 832 (2,1%) 5) na 1 283 268 (1,9%) 6) z 1 116 819 (1,6 %) 7) do 816 874 (1,2 %) 8) to 801 472 (1,2 %) 9) że 760 078 10) a 479 713 11) o 396 011 12) jak 368 386 13) ale 343 482 14) po 330 381 15) co 329 270 16) jest 302 011 17) tak 279 877 18) za 263 700 19) od 225 843 20) jego 219 587 21) go 217 036 22) już 201 735 23) tym 199 894 24) czy 196 565 317
2-gramy słów (wybrane korpusy) 1) się w 116 446 (0,17%) 2) się na 93 751 (0,14%) 3) się z 83 610 (0,12%) 4) się do 83 524 (0,12%) 5) się że 57 126 (0,08%) 6) że nie 50 222 (0,07%) 7) w tym 48 035 (0,07%) 8) nie ma 43 633 (0,06%) 9) o tym 42 041 (0,06%) 10) to nie 39 087 11) się i 38 772 12) się nie 38 622 13) i nie 38 177 14) ale nie 35 241 15) na to 34 259 16) że to 34 171 17) mi się 33 441 19) nie jest 31 615 20) a potem 31 196 21) nigdy nie 31 082 22) mu się 27 209 23) po prostu 26 047 24) w tej 25 461 25) to co 24 661 26) w końcu 23 863 18) nie było 3168227) co się 23 762 318
3-gramy słów (wybrane korpusy) 1) w ten sposób 10 119 (0,015%) 2) na to że 8 619 (0,012%) 3) w tej chwili 8 121 (0,012%) 4) w każdym razie 7 587 (0,011%) 5) po raz pierwszy 7 266 (0,010%) 6) mi się że 6 395 (0,009%) 7) sobie sprawę że 5 514 (0,008%) 8) mam nadzieję że 5 499 (0,008%) 9) w takim razie 5 462 (0,008%) 10) zwrócił się do 5 349 11) wydaje mi się 4 855 12) od czasu do 4 742 13) się z nim 4 609 14) to nie jest 4 538 15) czasu do czasu 4 470 16) w tym momencie 4 455 17) po drugiej stronie 4 445 18) w ogóle nie 4 309 319
Naprawianie n-gram 320
Zastosowanie n-gramów N-gramy są najpopularniejszym sposobem modelowania języka w rozpoznawaniu mowy: Z powodów obliczeniowych, zależność jest ograniczana do n słów wstecz. Prawdopodobnie najpopularniejszym jest model trigramowy ponieważ zależność od dwóch poprzednich słów jest bardzo silna, podczas gdy komplikacja modelu jest dość mała a zapotrzebowanie na statystyki realizowalne. 321
Siatka słów prezydent wejście strefy rezydent aportuje dwieście to do o trafi szelkę prezydium aprobuje nieście stepy szogun operuje dom schengen 322
Siatka słów z zaznaczonym prawidłowym zdaniem prezydent wejście strefy rezydent prezydium aportuje aprobuje dwieście nieście to do o trafi stepy szelkę szogun operuje dom schengen 323
Podkreślmy szczególnie prawdopodobne 1- i 2-gramy prezydent wejście strefy rezydent aportuje dwieście to trafi szelkę prezydium aprobuje nieście do o stepy szogun operuje dom schengen 324
Ponownie nałóżmy poprawne zdanie prezydent wejście strefy rezydent aportuje dwieście to o trafi szelkę prezydium aprobuje nieście do stepy szogun operuje dom schengen 325
Usuńmy mało prawdopodobne 2-gramy prezydent wejście strefy rezydent prezydium aportuje aprobuje dwieście nieście do to o trafi stepy szelkę szogun schengen operuje dom 326
i nałóżmy zdanie prezydent wejście strefy rezydent prezydium aportuje aprobuje dwieście nieście do to o trafi stepy szelkę szogun operuje dom schengen 327
Zbiory tekstów języka polskiego Źródło MBajty Mil. słów Różnych słów Różnych dwójek Różnych trójek Rzeczpospolita 879 104 856 349 18 115 373 43 414 592 Wikipedia 754 97 2 623 358 31 139 080 61 865 543 Literatura 490 68 1 151 043 23 830 490 50 794 854 Transkrypcje 325 32 381 166 6 848 729 16 283 781 Literatura 2 6500 949 6 162 530 153 152 158 441 284 743 Literatura 3 285 181 1 229 331 36 297 382 93 751 340 W Literatura 2 : Słowa występujące więcej niż 10 razy to 951 844 Dwójki słów występujące więcej niż 10 razy to 6 426 198 Trójki słów występujące więcej niż 10 razy to 5 166 537 328
Problemy z n-gramami - Różne pisowanie (np. u - ó), - błędne formaty, - sprawdzanie ze słownikiem, np. myspell?,
Histogram n-gramów 330
Przykład wyliczeń modelu n-gramowego 331
Przykład wyliczeń modelu n-gramowego \begin{equation} E(s,h)=\frac{N(s,h)}{N(h)} \;, \end{equation} 332
Przykład wyliczeń modelu n-gramowego 333
Przykład wyliczeń modelu n-gramowego 334
Algorytm Dijkstry 335
Przykład wyliczeń modelu n-gramowego Licząc ścieżkę nie sumujemy dystansów tak jak w telekomunikacji, a mnożymy prawdopodobieństwa (ze względu na regułę Bayesa) lub sumujemy logarytmy! 336
Wyszukiwanie najlepszych ścieżek z użyciem 3-gramów. Ala ale ma ładnego kota. Złamała łapie keta Ala ma ładnego kota
Klasyczny algorytm Dijkstry (bigramy) koszt = 0.1 koszt = 1. Ala 0.1 ale 1 Złamała 1 ma 0.2 ładnego 0.3 łapie 1.2 kota 0.4 keta 1.3. 0.5
Zipf Law Demo Mathematica 339
Back-off 340 0 ), ( ) ( ) ( 0 ), ( ) ( ) ( w h N if h w h w h N if h w h w p N liczba zliczeń słowa z danych statystycznych β bardziej ogólna dystrybucja niż α - czynnik normalizacyjny zapewniający spełnianie przez p(w h) aksjomatu sumowania do jedności, określony jednoznacznie przez α i β: 0 ), ( : 0 ), ( : ˆ) ( ) ( 1 ) ( w h w N w h w N h w h w h jest 3-gramem a jest 2-gramem
Metoda Floor ( w h) N( w, h) ( w N h) N liczba słów w danych statystycznych - parametr, często równy liczbie słów w słowniku Metoda przeszacowuje prawdopodobieństwa wydarzeń z małą liczbą zliczeń. 341
Przykład ciemny zielony materiał 3-gram C = 0 ciemny zielony 2-gram C > 0 zielony materiał 2-gram C > 0 => wygładzony model ciemny zielony materiał P > 0 ufortyfikowany zamek nierdzewny 3-gram C = 0 ufortyfikowany zamek 2-gram C > 0 zamek nierdzewny 2-gram C > 0 => wygładzony model ufortyfikowany zamek nierdzewny P > 0 342
Wygładzanie modeli statystycznych Statystyki wyliczone ze zbiorów danych, opisują ściśle, rzecz biorąc te zbiory a nie rzeczywistość, jak na przykład język jako całokształt. Z tego powodu model n-gramowy można wygładzić w celu uzyskania większej efektywności poprzez zmniejszenie zależności od specyfiki wykorzystanych zbiorów. 343
Przykład wygładzania modelu n- gramowego Add-one 344
Przykład wygładzania modelu n- gramowego Add-one 345
Model interpretacji liniowej z parametrem interpolacyjnym Zdefiniujmy parametr N gdzie 0 1, Wówczas otrzymujemy równanie interpolacyjne Jelinka N( w, h) ( w h) (1 ) ( w hˆ) N Małe zliczenia nie są aż tak bardzo podbijane dzięki interpolacji. 346
Wygładzanie Katz a Katz wprowadził ogólną funkcję dyskontującą d : w d( w) i zależną od niej dyskontowaną masę prawdopodobieństwa Q[ d] 1 N W w1 d( w) Równanie wygładzające wygląda N( w, h) d( w) ( w h) Q[ d] ( w h) N 347
Rozkład brzegowy n i = P(X = i). n i = P(X = i,y = j). j Rozkład brzegowy podzbioru zmiennych losowych jest rozkładem prawdopodobieństw zmiennych zawartych w tym podzbiorze. 348
Przykład wyliczania rozkładu brzegowego Prawdopodobieństwo bycia potrąconym pod warunkiem określonego światła p(w S), gdzie W oznacza wypadek, a S oznacza typ światła na sygnalizatorze. 349
Przykład wyliczania rozkładu brzegowego 350
Wygładzanie Kneser-Ney z rozkładem brzegowym jako ograniczeniem W metodzie Katza, całkowita zniżka powoduje, że N( w, h) d( w) ( w h) gdzie 0 d 1 N Zdefiniujmy Maximum Likelihood Estimation (MLE) dla rozkładu brzegowego N( w, hˆ) N( hˆ, g) p( w hˆ) i p( g hˆ) N N gdzie połączona liczba wystąpień N ( hˆ, g) jest równa N(g) jeśli hˆ gˆ i 0 w przeciwnym przypadku. Wówczas ( w hˆ) v N( w, hˆ) [ N( hˆ, v) g: gˆ hˆ, N ( g, w) 0 [ N( g, w) d] g: gˆ hˆ, N ( g, v) 0 [ N( g, v) d]] 351
Leaving-one-out (również Kneser-Ney) Przygotowujemy model korzystając z danych, tak jakby nie zawierały konkretnego zdarzenia, które wystąpiło tylko raz. W przypadku n-gramów, wyliczamy model, pomijając na przykład jeden trigram, który wystąpił w zbiorach tekstów tylko raz. Następnie wykorzystujemy model, aby estymować prawdopodobieństwo usuniętego zdarzenia. Procedurę powtarzamy wielokrotnie używając rożnych trigramów. Suma logarytmów wszystkich wyliczonych w ten sposób prawdopodobieństw daje nam logarytm podobieństwa leaving-one-out, który następnie służy jak kryterium optymalizacji F ( g, v): N ( g, v) 1 ln[ ( g) ( v gˆ)] const({ ( v gˆ)}). 352
Trigramy z Dijkstry Koszt dotarcia do poprzedniego węzła z punku widzenia wyróżnionego węzła Ala 0.1 ale 1 ma ładnego łapie Koszt dotarcia do danego węzła w zależności od następnego węzła następny koszt ładnego 0.2 łapie 1.1
Wyróżnione trigramy. Ala ma Ala ma ładnego ma ładnego kota koszt = 0.1 ładnego kota.. Ala ma ładnego kota. koszt = 0.4
Wyszukiwanie najlepszych ścieżek. Ala ładnego ma 3-gram koszt. Ala ma 0.1. Ala ładnego 1 następny poprzedni koszt ładnego. 1 ma. 0.1
Wyszukiwanie najlepszych ścieżek 3-gram koszt. ale ma. ale ma 1 następny poprzedni ma. 1 koszt
Wyszukiwanie najlepszych ścieżek Ala 0.1 ale 1 ma ładnego łapie 3-gram koszt Ala ma ładnego 0.1 ale ma ładnego 0.1 Ala ma łapie 1 ale ma łapie 1 następny poprzedni koszt ładnego łapie Ala 0.1+0.1 = 0.2 ale 1 + 0.1 = 1.1 Ala 0.1 + 1 = 1.1 ale 1 + 1 = 2
Wyszukiwanie najlepszych ścieżek Ala ma 1 0.2 Złamała 1 kota ładnego keta następny poprzedni koszt Ala 1 + 1 = 2 kota ma 0.2 + 0.1 = 0.3 Złamała 1 + 1 = 2 Ala 1 + 1 = 2 keta ma 1 + 1 = 2 Złamała 1 + 1 = 2 3-gram koszt Ala ładnego kota 1 Ala ładnego keta 1 ma ładnego kota 0.1 ma ładnego keta 1 Złamała ładnego kota 1 Złamałą ładnego keta 1
Wyszukiwanie najlepszych ścieżek ładnego łapie 0.3 2 kota. 3-gram koszt ładnego kota. 0.1 łapie kota. 1 następny poprzedni koszt ładnego 0.3 + 0.1 = 0.4. łapie 2 + 1 = 3 dodajemy koszt bigramów dla kropki
Wyszukiwanie najlepszych ścieżek. Ala ale ma ładnego kota. Złamała łapie keta 10 węzłów 17 krawędzi 26 możliwych 3-gramów
Rzeczywisty przypadek
Funkcja haszująca Funkcja haszująca jest każdą, dobrze definiowaną procedurą lub funkcją matematyczną, która zamienia dużą ilość danych, które mogą mieć niestałą długość, na małą reprezentację, często w postaci jednego integera, który może służyć na przykład za indeks. 362
Filtr Blooma 363
Podsumowanie Hierarchia Chomskyego Parser Tagger N-gram model Stosowanie n-gramów Algorytm Dijkstry Właściwości n-gramów (Zipf, histogram, konieczność wygładzania) Filtr Blooma 364