Språkmodeller og n-gram
En språkmodell (language model) gir hver ordsekvens en sannsynlighet. Den kan avgjøre at «trikken går i dag» er mer sannsynlig enn «dag i går trikken», og den kan foreslå neste ord. Modellen lærer av et korpus (corpus), en samling tekst.
Den enkleste modellen er en sekk med ord (bag of words), som bare teller hvilke ord som forekommer. Den ser ingen forskjell på «Kari ringer Ola» og «Ola ringer Kari». Til å sortere tekst etter emne holder det ofte, men ikke til å forutsi neste ord.
Kjederegelen fra sannsynlighetsregningen skriver sannsynligheten for en setning som et produkt der hvert ord er betinget av alle ordene foran. Så lange historier går nesten aldri igjen i et korpus, så de kan ikke telles. Markov-antagelsen (Markov assumption) kutter historien: neste ord avhenger bare av de siste ordene. Det gir en n-gram-modell (n-gram model) og ƒkjederegelen med n-gram-tilnærming:
For en bigrammodell () estimeres hvert ledd med tellinger, ƒbigramsannsynlighet fra tellinger:
Dette er maksimum-likelihood-estimatet (MLE). Vanligvis får hver setning et startsymbol <s> foran og et sluttsymbol </s> bak. Da blir også første ord betinget på <s>, og modellen må forutsi at setningen slutter. Nevneren er antall ganger står foran et annet token, </s> medregnet.
Korpuset i figuren har fire setninger om vær og trikk i en tenkt by. Spørresetningen står ikke i korpuset, men alle ordparene i den gjør det.
Prøv: trykk deg gjennom leddene og se at hver bigramtelling deles på tellingen av ordet foran, og at sluttleddet P(</s> | dag) også er med i produktet.
RegneeksempelEt rutekorpus har setningene «linje to går til torget», «linje fem går til stasjonen» og «bussen går til torget». Regn ut sannsynligheten for «linje fem går til torget» med start- og sluttsymbol og uten glatting.Vis løsningSkjul løsning
Steg 1. Tell kontekstene. <s> står foran 3 ord, «linje» 2 ganger, «fem» 1, «går» 3, «til» 3 og «torget» 2.
Steg 2. Del bigramtellingene. , , , , og .
Steg 3. Multipliser. . Setningen står ikke i korpuset, men får en sannsynlighet fordi alle de seks ordparene er sett.
En trigrammodell skal gi sannsynligheten for ordet «regner» i setningen «meldingen sier at det regner». Hvilket ledd bruker modellen for dette ordet?
En bigrammodell trenes på korpuset under. Hver setning får foran og bak, og sannsynlighetene er MLE uten glatting. Hva er ?
kald vind fra nord
kald regn i dag
mild vind fra sør
kald vind i kveld
sterk vind i dagEn bigrammodell trenes på korpuset under. Hver setning får foran og bak, og det brukes ingen glatting (MLE). Regn ut sannsynligheten for setningen «sola skinner i byen», regnet som sola skinner i byen . Svar med tre desimaler.
sola skinner i parken
regnet faller i byen
sola skinner over byen
vinden blåser i parken