NF1820: Ordklassetagging NF1820: Ordklassetagging Arne Skjærholt 6. mars NF1820: Ordklassetagging Arne Skjærholt 6. mars
NF1820: Ordklassetagging Ordklassetagging Never gonna give you up Never gonna let you down Problemet: Gitt en inputsekvens av ord, hva er den riktige sekvensen tagger for ordene? RB: adverb; MD+TO: modal with infinitival to; VB: verb base form; PRP: personal pronoun; RP: particle Never gonna give you up Never gonna let you down
NF1820: Ordklassetagging Ordklassetagging Never/RB gonna/md+to give/vb you/prp up/rp Never/RB gonna/md+to let/vb you/prp down/rp Problemet: Gitt en inputsekvens av ord, hva er den riktige sekvensen tagger for ordene? RB: adverb; MD+TO: modal with infinitival to; VB: verb base form; PRP: personal pronoun; RP: particle Never/RB gonna/md+to give/vb you/prp up/rp Never/RB gonna/md+to let/vb you/prp down/rp
NF1820: Ordklassetagging Ordklassetagging Flertydighet De fleste ord er entydige: 11,5% av ordtyper er flertydige. Men 40% av tokens er flertydige. Det vil si: ord som forekommer ofte er oftere flertydige enn mindre vanlige ord. Men ikke alle betydninger er like vanlige, og vanlige i denne sammenhengen tilsvarer sannsynlighet. Dette kommer vi til å benytte oss av. Flertydighet
NF1820: Ordklassetagging Ordklassetagging Ordklassekriterier Litt repetisjon: Ordklasseinndelingen organiserer alle ord, slik at et ord tilhører nøyaktig én ordklasse (det er en taksonomi) styrt av visse kriterier. Morfologisk: hare/haren vs. redd/*redd-en Syntaktisk: en redd hare/redd for ilden vs. *en redd/*hare for ilden Semantisk: hare: dyr, levende vesen; redd: egenskap Ordklassekriterier
2014-03-05 NF1820: Ordklassetagging Ordklassetagging Ordklassekriterier Formelle/morfologiske Funksjonelle/syntaktiske Betydningsmessige/semantiske Litt repetisjon: Ordklasseinndelingen organiserer alle ord, slik at et ord tilhører nøyaktig én ordklasse (det er en taksonomi) styrt av visse kriterier. Morfologisk: hare/haren vs. redd/*redd-en Syntaktisk: en redd hare/redd for ilden vs. *en redd/*hare for ilden Semantisk: hare: dyr, levende vesen; redd: egenskap Ordklassekriterier Formelle/morfologiske Funksjonelle/syntaktiske Betydningsmessige/semantiske
2014-03-05 NF1820: Ordklassetagging Utfallsrom Ω, mengden av mulige utfall En delmengde E Ω kalles en hendelse P tilordner sannsynlighet [0,1] til hendelser Snakke litt om eksemplene fra forrige gang. Utfallsrom Ω, mengden av mulige utfall En delmengde E Ω kalles en hendelse P tilordner sannsynlighet [0,1] til hendelser
NF1820: Ordklassetagging Betinget sannsynlighet P (A B) P (A B) = P (B) P (A B) = P (A)P (B A) P (A B) = P (A B)P (B) P (A)P (B A) = P (A B)P (B) Betinget sannsynlighet P (A B) = P (A B) P (B) P (A B) = P (A)P (B A) P (A B) = P (A B)P (B) P (A)P (B A) = P (A B)P (B)
NF1820: Ordklassetagging Bayes teorem Eksempelet: En skole har 40% jenter og 60% gutter. Alle guttene går i bukser, halvparten av jentene bruker skjørt, resten bukser. Hva er sannsynligheten for at en i bukser er en jente? Bayes teorem
NF1820: Ordklassetagging Bayes teorem P (B A)P (A) P (A B) = P (B) Eksempelet: En skole har 40% jenter og 60% gutter. Alle guttene går i bukser, halvparten av jentene bruker skjørt, resten bukser. Hva er sannsynligheten for at en i bukser er en jente? Bayes teorem P (A B) = P (B A)P (A) P (B)
2014-03-05 NF1820: Ordklassetagging Argmax: Den x som gir størst f (x) x 0 = argmax x X f (x) betyr at f (x) f (x 0) for alle x X Argmax: Den x som gir størst f (x) x0 = argmax x X f (x) betyr at f (x) f (x 0 ) for alle x X
2014-03-05 NF1820: Ordklassetagging Argmax: Den x som gir størst f (x) x 0 = argmax x X f (x) betyr at f (x) f (x 0) for alle x X def argmax(f, xs): max_f = f(x[0]) max_x = x[0] for x in xs[1:]: new_f = f(x) if new_f > max_f: max_f = new_f max_x = x return (max_x, max_f) Argmax: Den x som gir størst f (x) x0 = argmax x X f (x) betyr at f (x) f (x 0 ) for alle x X def argmax(f, xs): max_f = f(x[0]) max_x = x[0] for x in xs[1:]: new_f = f(x) if new_f > max_f: max_f = new_f max_x = x return (max_x, max_f)
NF1820: Ordklassetagging Tagging Utfallsrommet er alle taggsekvenser n, gitt den observerte setningen w1 n, og vil finne den taggsekvensen som er mest sannsynlig (har høyest sannsynlighet) gitt ordsekvensen: ˆt 1 n = argmax x P (tn 1 wn 1 ). Tagging
NF1820: Ordklassetagging ˆt 1 n = argmax P ( n wn 1 ) n Men denne sannsynligheten er faktisk ganske vanskelig å regne på, så vi bruker Bayes teorem og omformer uttrykket. Sannsynligheten til ordsekvensen kan strykes, siden den sannsynligheten er konstant for en gitt inputstreng. ˆt 1 n = argmax P ( n wn 1 ) n
NF1820: Ordklassetagging ˆt 1 n = argmax P ( n wn 1 ) n P (w1 n = argmax tn 1 )P (tn 1 ) n P (w1 n) Men denne sannsynligheten er faktisk ganske vanskelig å regne på, så vi bruker Bayes teorem og omformer uttrykket. Sannsynligheten til ordsekvensen kan strykes, siden den sannsynligheten er konstant for en gitt inputstreng. ˆt 1 n = argmax P ( n wn 1 ) n = argmax t n 1 P (w n 1 tn 1 )P (tn 1 ) P (w n 1 )
NF1820: Ordklassetagging ˆt 1 n = argmax P ( n wn 1 ) n P (w1 n = argmax tn 1 )P (tn 1 ) n P (w1 n) = argmaxp (w1 n tn 1 )P (tn 1 ) n Men denne sannsynligheten er faktisk ganske vanskelig å regne på, så vi bruker Bayes teorem og omformer uttrykket. Sannsynligheten til ordsekvensen kan strykes, siden den sannsynligheten er konstant for en gitt inputstreng. ˆt 1 n = argmax P ( n wn 1 ) n = argmax t n 1 P (w n 1 tn 1 )P (tn 1 ) P (w n 1 ) = argmaxp (w1 n tn 1 )P (tn 1 ) n
NF1820: Ordklassetagging n P ( n ) = P (t i t i 1) i n P (w1 n tn 1 ) = P (w i t i) 1 Men vi er ikke helt i mål enda. Først gjør vi den samme antagelsen for P ( n ) som vi gjorde for språkmodeller: neste tagg avhenger kun av foregående tagg. Dette kalles for Markovantagelsen. En lignende antagelse gjør vi for ordsekvensen gitt taggsekvensen: hvert ord avhenger kun av taggen på det ordet. Dette siste uttrykket er heller ikke åpenbart bedre, men med en lur algoritme (Viterbi-algoritmen) går det bra. Viterbi er pensum i NF4820. n P ( n ) = P (t i t i 1 ) n P (w1 n tn 1 ) = P (w i t i ) i 1
NF1820: Ordklassetagging n P ( n ) = P (t i t i 1) i n P (w1 n tn 1 ) = P (w i t i) 1 n ˆt 1 n = argmax P (t i t i 1)P (w i t i) n i=1 Men vi er ikke helt i mål enda. Først gjør vi den samme antagelsen for P ( n ) som vi gjorde for språkmodeller: neste tagg avhenger kun av foregående tagg. Dette kalles for Markovantagelsen. En lignende antagelse gjør vi for ordsekvensen gitt taggsekvensen: hvert ord avhenger kun av taggen på det ordet. Dette siste uttrykket er heller ikke åpenbart bedre, men med en lur algoritme (Viterbi-algoritmen) går det bra. Viterbi er pensum i NF4820. n P ( n ) = P (t i t i 1 ) n P (w1 n tn 1 ) = P (w i t i ) ˆt n 1 = argmax t n 1 i 1 n P (t i t i 1 )P (w i t i ) i=1
NF1820: Ordklassetagging ˆP (t t ) = c(t,t) c(t ) ˆP (w t) = c(w,t) c(t) Sannsynlighetene estimerer vi akkurat som i språkmodellene (med MLE). Sannsynligheten P (t t ) kalles ofte for transisjonssannsynligheten, og P (w t) for emisjonssannsynligheten. ˆP (t t ) = c(t,t) c(t ) ˆP (w t) = c(w,t) c(t)
2014-03-05 NF1820: Ordklassetagging Q tilstander V vokabular t : Q Q P e : Q V P Q,V,t,e En annen måte å se HMMer på er som en probabilistisk FSA, noe som forklarer bruken av transisjon. Når maskinen kommer inn i en tilstand genererer den et ord (emisjonen) som er det vi ser. Dette er også grunnen til at vi snakker om hidden: den faktiske tilstandssekvensen er ukjent for oss (skjult). t: transisjonsfunksjonen, e emisjonsfunksjonen, q s starttilstand, q f sluttilstand. Q tilstander V vokabular t : Q Q P e : Q V P Q,V,t,e
NF1820: Ordklassetagging