Usuwanie niejednoznaczności oznaczeń słów
Transkrypt
Usuwanie niejednoznaczności oznaczeń słów
Usuwanie niejednoznaczności oznaczeń słów Can I can the can? Can MD 0.995509 NN 0.00417068 VBP 0.000320821 I NP 1 can MD 0.995509 NN 0.00417068 VBP 0.000320821 the DT 1 can MD 0.995509 NN 0.00417068 VBP 0.000320821 ? Fit 1 Can/MD I/NP can/VBP the/DT can/NN ?/Fit Jan Daciuk, KISI, ETI, PG Przetwarzanie języka naturalnego 9. Tagging: systemy regułowe, HMMs (223 / 247) Usuwanie niejednoznaczności oznaczeń słów Ang. part-of-speech tagging (w skrócie POS tagging) oznacza oznaczanie słów, ale ponieważ analiza morfologiczna dostarcza oznaczeń (nie muszą to być tylko części mowy), w tej fazie następuje tylko ich ujednoznacznienie. • Algorytmy analizy składniowej są kosztowne czasowo (O(n3 )). • W języku występuje naturalna niejednoznaczność (np. struga). • Jedno zdanie może mieć tysiące różnych rozbiorów składniowych. • Usuwanie niejednoznaczności jest znacznie tańsze niż analiza składniowa i pozwala wyeliminować znaczną część (niepoprawnych) rozbiorów składniowych. • W niektórych zastosowaniach może zastąpić analizę składniową. Jan Daciuk, KISI, ETI, PG Przetwarzanie języka naturalnego 9. Tagging: systemy regułowe, HMMs (224 / 247) POS tagging – rodzaje algorytmów Budowane ręcznie i z wbudowanym mechanizmem uczenia się. Pierwsze bardzo pracochłonne, drugie dużo powszechniejsze i pozwalające na łatwe dostosowanie do innych języków. Oparte o stosunkowo łatwe w interpretacji reguły i statystyczne. Do pierwszej kategorii zalicza się wszystkie systemy budowane ręcznie, ale też te oparte o transformacje, które uczone są na podstawie zbioru tekstów. Do drugiej – programy wykorzystujące niejawne modele Markowa (HMMs) itp. Jan Daciuk, KISI, ETI, PG Przetwarzanie języka naturalnego 9. Tagging: systemy regułowe, HMMs (225 / 247) Reguły Spójrzmy jeszcze raz na przykładowe zdanie: Can I can the can? Can MD NN VBP I NP can MD NN VBP the DT can MD NN VBP ? Fit Jaka część mowy może wystapić po rodzajniku the? Jakie słowa mogą występować na początku zdania przed zaimkiem osobowym w mianowniku? Co może wystapić po nich, a przed the? Jan Daciuk, KISI, ETI, PG Przetwarzanie języka naturalnego 9. Tagging: systemy regułowe, HMMs (226 / 247) ENGTWOL ENGTWOL jest przykładem programu do rozstrzygania niejednoznaczności, który wykorzystuje ręcznie opracowane reguły. Reguły tworzą gramatykę ograniczeń – służą do usuwania niepoprawnych znaczników. Przykład reguły (dla języka angielskiego): Mając na wejściu słowo „that”: Jeżeli następne słowo jest przymiotnikiem, przysłówkiem lub kwantyfikatorem, a po nim następuje granica zdania, zaś poprzednie słowo nie jest czasownikiem dopuszczającym przymiotniki jako dopełnienie, to usuń znaczniki inne niż przysłówkowe, w przeciwnym wypadku usuń znaczniki przysłówkowe. Jan Daciuk, KISI, ETI, PG Przetwarzanie języka naturalnego 9. Tagging: systemy regułowe, HMMs (227 / 247) Algorytm Erica Brilla – szablony reguł Algorytm Erica Brilla wykorzystuje szablony reguł, np.: Szablon A B PREVTAG C A B PREV1OR2OR3TAG C A B PREV1OR2TAG C A B NEXT1OR2TAG C A B NEXTTAG C A B SURROUNDTAG C D A B NEXTBIGRAM C D A B PREVBIGRAM C D Znaczenie: zamień A na B jeśli poprzedni znacznik to C wśród poprz. 3 znaczników jest C wśród poprz. 2 znaczników jest C wśród nast. 2 znaczników jest C następny znacznik to C otaczające znaczniki to C i D następna para znaczników to C i D poprzednia para znaczników to C i D Szablony mogą też odwoływać się bezpośrednio do słów. Jan Daciuk, KISI, ETI, PG Przetwarzanie języka naturalnego 9. Tagging: systemy regułowe, HMMs (228 / 247) Algorytm Erica Brilla – uczenie R11 (C0 ) arg maxt P(t|w) C. C0 R11 R21 R31 R21 (C0 ) R31 (C0 ) RN 1 ręcznie .. . RN 1 (C0 ) ⇓ T Jan Daciuk, KISI, ETI, PG max≈ Przetwarzanie języka naturalnego 9. Tagging: systemy regułowe, HMMs (229 / 247) Algorytm Erica Brilla – uczenie arg maxt P(t|w) C. C0 R1 C1 ręcznie T Jan Daciuk, KISI, ETI, PG Przetwarzanie języka naturalnego 9. Tagging: systemy regułowe, HMMs (230 / 247) Algorytm Erica Brilla – uczenie R12 (C1 ) arg maxt P(t|w) C. C0 R1 C1 R12 R22 R32 R22 (C1 ) R32 (C1 ) RN 2 .. . RN 2 (C0 ) ręcznie ⇓ max≈ T Jan Daciuk, KISI, ETI, PG Przetwarzanie języka naturalnego 9. Tagging: systemy regułowe, HMMs (231 / 247) Algorytm Erica Brilla – uczenie Dla danego zbioru tekstów C uzyskujemy (np. ręcznie) poprawne oznaczenia słów T. Zbiór C oznaczamy np. wybierając najbardziej prawdopodobny znacznik dla każdego słowa, uzyskując C0 . Następnie wypróbowujemy wszystkie możliwe dopasowania szablonów reguł, wybierając to (R1 ), które zastosowane do C0 najbardziej zbliży nas do T. Po zastosowaniu R1 do C0 otrzymujemy C1 . Następnie dla C1 szukamy reguły R2 będącej dopasowaniem któregoś z szablonów, która najbardziej zbliży nas do T. Stosując R2 do C1 dostajemy C2 . I tak dalej – dopóki jeszcze się uczymy. Jan Daciuk, KISI, ETI, PG Przetwarzanie języka naturalnego 9. Tagging: systemy regułowe, HMMs (232 / 247) Szablony – ukonkretnianie w uczeniu T: C0 : Can/MD Can/MD I/NP I/NP can/VBP can/MD the/DT the/DT can/NN can/MD ?/Fit ?/Fit A B PREVTAG C: MD VBP PREVTAG NP, MD NN PREVTAG DT A B NEXTTAG C: MD VBP NEXTTAG DT, MD NN NEXTTAG Fit A B SURROUNDTAG C D: MD VBP SURROUNDTAG NP DT, MD NN SURROUNDTAG DT Fit Jan Daciuk, KISI, ETI, PG Przetwarzanie języka naturalnego 9. Tagging: systemy regułowe, HMMs (233 / 247) Szablony – ukonkretnianie w uczeniu T: C0 : Can/MD Can/MD I/NP I/NP can/VBP can/MD the/DT the/DT can/NN can/MD ?/Fit ?/Fit A B PREVTAG C: MD VBP PREVTAG NP, MD NN PREVTAG DT A B NEXTTAG C: MD VBP NEXTTAG DT, MD NN NEXTTAG Fit A B SURROUNDTAG C D: MD VBP SURROUNDTAG NP DT, MD NN SURROUNDTAG DT Fit Jan Daciuk, KISI, ETI, PG Przetwarzanie języka naturalnego 9. Tagging: systemy regułowe, HMMs (234 / 247) Szablony – ukonkretnianie w uczeniu T: C0 : Can/MD Can/MD I/NP I/NP can/VBP can/MD the/DT the/DT can/NN can/MD ?/Fit ?/Fit A B PREVTAG C: MD VBP PREVTAG NP, MD NN PREVTAG DT A B NEXTTAG C: MD VBP NEXTTAG DT, MD NN NEXTTAG Fit A B SURROUNDTAG C D: MD VBP SURROUNDTAG NP DT, MD NN SURROUNDTAG DT Fit Jan Daciuk, KISI, ETI, PG Przetwarzanie języka naturalnego 9. Tagging: systemy regułowe, HMMs (235 / 247) Szablony – ukonkretnianie w uczeniu T: C0 : Can/MD Can/MD I/NP I/NP can/VBP can/MD the/DT the/DT can/NN can/MD ?/Fit ?/Fit A B PREVTAG C: MD VBP PREVTAG NP, MD NN PREVTAG DT A B NEXTTAG C: MD VBP NEXTTAG DT, MD NN NEXTTAG Fit A B SURROUNDTAG C D: MD VBP SURROUNDTAG NP DT, MD NN SURROUNDTAG DT Fit Jan Daciuk, KISI, ETI, PG Przetwarzanie języka naturalnego 9. Tagging: systemy regułowe, HMMs (236 / 247) Szablony – ukonkretnianie w uczeniu T: C0 : Can/MD Can/MD I/NP I/NP can/VBP can/MD the/DT the/DT can/NN can/MD ?/Fit ?/Fit A B PREVTAG C: MD VBP PREVTAG NP, MD NN PREVTAG DT A B NEXTTAG C: MD VBP NEXTTAG DT, MD NN NEXTTAG Fit A B SURROUNDTAG C D: MD VBP SURROUNDTAG NP DT, MD NN SURROUNDTAG DT Fit Jan Daciuk, KISI, ETI, PG Przetwarzanie języka naturalnego 9. Tagging: systemy regułowe, HMMs (237 / 247) Szablony – ukonkretnianie w uczeniu T: C0 : Can/MD Can/MD I/NP I/NP can/VBP can/MD the/DT the/DT can/NN can/MD ?/Fit ?/Fit A B PREVTAG C: MD VBP PREVTAG NP, MD NN PREVTAG DT A B NEXTTAG C: MD VBP NEXTTAG DT, MD NN NEXTTAG Fit A B SURROUNDTAG C D: MD VBP SURROUNDTAG NP DT, MD NN SURROUNDTAG DT Fit Jan Daciuk, KISI, ETI, PG Przetwarzanie języka naturalnego 9. Tagging: systemy regułowe, HMMs (238 / 247) Algorytm Erica Brilla – wygładzanie Uczymy na całym zbiorze ⇒ przeuczenie. Rozwiązanie: wygładzanie ze zbioru uczącego zabieramy np. 10%, uczymy na pozostałych 90%, stosujemy reguły na wyodrębnionym zbiorze odrzucając te, które powodują pogorszenie wyników. Jan Daciuk, KISI, ETI, PG Przetwarzanie języka naturalnego 9. Tagging: systemy regułowe, HMMs (239 / 247) Algorytm Erica Brilla – stosowanie Mając nieoznaczone teksty, stosujemy nauczone reguły R1 , . . . , Rn po kolei. Kolejne reguły mogą wielokrotnie zmieniać te same znaczniki. Możliwe jest znaczne przyspieszenie algorytmu przez realizację reguł w postaci (niedeterministycznych) automatów Mealy’ego, zastosowania złożenia, miejscowego rozszerzenia (szczególny przypadek determinizacji) i minimalizacji. Otrzymany automat Mealy’ego jest rzędy wielkości szybszy niż naiwne stosowanie zbioru reguł; jest też szybszy niż oznaczanie statystyczne i potrzebuje mało pamięci. Jan Daciuk, KISI, ETI, PG Przetwarzanie języka naturalnego 9. Tagging: systemy regułowe, HMMs (240 / 247) Niejawne modele Markowa 0.3 0.7 . Mar 0.6 0.1 Mar Roz ng 0.2 0.1 prz 0.7 0.3 Jan Daciuk, KISI, ETI, PG Roz 0.4 0.9 bdb 0.1 0.6 Przetwarzanie języka naturalnego 9. Tagging: systemy regułowe, HMMs (241 / 247) HMM POS Tagging wi ti wi,i+m ti,i+m wl tj C(wl ) C(tj ) C(tj , tk ) C(wl : tj ) T W n słowo na pozycji i w zbiorze tekstów znacznik (kategoria) słowa wi słowa na pozycjach od i do i + m znaczniki słów wi · · · wi+m l-te słowo w słowniku j-ty znacznik w zbiorze znaczników liczba wystąpień wl w zbiorze tekstów liczba wystąpień tj w zbiorze tekstów liczba wystąpień tk bezpośrednio po tj liczba wystąpień wl oznaczonych jako tj liczba znaczników w zbiorze znaczników liczba słów w słowniku długość zdania Jan Daciuk, KISI, ETI, PG Przetwarzanie języka naturalnego 9. Tagging: systemy regułowe, HMMs (242 / 247) HMM POS Tagging Uczenie nadzorowane Znamy stany Stany to oznaczenia słów Uczenie z użyciem oznaczonych zbiorów tekstów Uczenie bez nadzoru Używamy nieoznaczonych zbiorów tekstów Dokładność znacznie spada Jan Daciuk, KISI, ETI, PG Przetwarzanie języka naturalnego 9. Tagging: systemy regułowe, HMMs (243 / 247) HMM POS Tagging P(tk |tj ) = C(tj , tk ) C(tj ) P(wl |tj ) = C(wl , tj ) C(tj ) Szukamy: P(w |t )P(t ) 1,n 1,n 1,n arg maxt1,n P(t1,n |w1,n ) = arg maxt1,n P(w1,n ) = arg maxt1,n P(w1,n |t1,n )P(t1,n ) Przyjmujemy, że słowa są niezależne, a tożsamość słowa zależy tylko od jego oznaczenia: ∏n P(w1,n |t1,n )P(t1,n )= i=1 P(wi |t1,n )· ·P(tn |t1,n−1 ) · P(tn−1 |t1,n−2 ) · · · · · P(t2 |t1 ) ∏ n = i=1 P(wi |ti )· ·P(tn |tn−1 ) · P(tn−1 |tn−2 ) · · · · · P(t2 |t1 ) ∏ n = i=1 [P(wi |ti ) · P(ti |ti−1 )] Jan Daciuk, KISI, ETI, PG Przetwarzanie języka naturalnego 9. Tagging: systemy regułowe, HMMs (244 / 247) Algorytm Viterbiego Inicjalizacja (zdania są ograniczone kropkami, więc dokładamy kropkę na początku zdania): { 1.0 t = KROPKA δ1 (t) = 0.0 t ̸= KROPKA Indukcja (tutaj ajk = P(tk |tj ) i bjkwl = P(wl |tj )): δi+1 (tj ) = max [δi (tk ) · P(wi+1 |tj ) · P(tj |tk )], 1 ≤ j ≤ T 1≤k≤T ψi+1 (tj ) = arg max[δi (tk ) · P(wi+1 |tj ) · P(tj |tk )], 1 ≤ j ≤ T 1≤k≤T Zakończenie i odczytanie ścieżki: Xn = arg max δn (tj ) 1≤j≤T Xi = ψi+1 (Xi+1 ), 1 ≤ i ≤ n − 1 P(X1 , . . . , Xn ) = max δn+1 (tj ) 1≤j≤T Jan Daciuk, KISI, ETI, PG Przetwarzanie języka naturalnego 9. Tagging: systemy regułowe, HMMs (245 / 247) Wygładzanie Często okazuje się, że potrzebujemy prawdopodobieństwa wystąpienia kombinacji słów i ich oznaczeń, które nie wystąpiły w zbiorze uczącym. Nie oznacza to, że nigdy nie wystąpią. P(tj |tj+1 ) = (1 − ϵ) P(tj |wl ) = C(tj−1 , tj ) +ϵ C(tj−1 ) C(tj , wl ) + 1 C(wl ) + Kl gdzie Kl to liczba możliwych oznaczeń wl . Jan Daciuk, KISI, ETI, PG Przetwarzanie języka naturalnego 9. Tagging: systemy regułowe, HMMs (246 / 247) Więcej informacji nt. oznaczania słów . Emmanuel Roche, Yves Schabès, Deterministic Part-of-Speech Tagging with Finite-State Transducers, Computational Linguistics 21(2), pp. 227-253, czerwiec 1995. Dostępny pod: http://acl.ldc.upenn.edu/J/J95/J95-2004.pdf 2. Walter Daelemans, Jakub Zavrel, Peter Berck, Steven Gillis, MBT: 1 Memory-Based Part of Speech Tagger Generator, in Proceedings of the Fourth Workshop on Very Large Corpora, Copenhagen, Dania, str. 14–27, 1996. Dostępny pod: http://cwis.kub.nl/~fdl/general/people/daelem/papers/ wvlc96.ps Jan Daciuk, KISI, ETI, PG Przetwarzanie języka naturalnego 9. Tagging: systemy regułowe, HMMs (247 / 247)