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)

Podobne dokumenty