TDDD02 Språkteknologi för informationssökning / Ordpredicering. Marco Kuhlmann Institutionen för datavetenskap

Relevanta dokument
TDDD02 Språkteknologi för informationssökning (2016) Ordpredicering. Marco Kuhlmann Institutionen för datavetenskap

ORDKLASSTAGGNING. Marco Kuhlmann Institutionen för datavetenskap

Skrivstöd. Joakim Nivre. Introduktion till språkteknologi. Skrivstöd. Inledning. Orsaker till stavfel. Detektering av icke-ord

Tentamen Marco Kuhlmann

Skrivstöd. Varför bry sig om stavning? Hur används stavningskontroll? Christian Hardmeier

TDDD02 Språkteknologi för informationssökning (2016) Ordklasstaggning. Marco Kuhlmann Institutionen för datavetenskap

Tentamen Del A. Marco Kuhlmann

Grundläggande textanalys. Joakim Nivre

(Grundkurs i medier och kommunikation vid Tammerfors Universitet, Finland) 1.1 Kommunikation

TDDD02 Språkteknologi för informationssökning / Textsammanfattning. Marco Kuhlmann Institutionen för datavetenskap

Marco Kuhlmann, Institutionen för datavetenskap, Linköpings universitet 17 mars 2014

Probabilistisk logik 1

TDDD02 Föreläsning 4 HT Klassificering av ord och dokument Lars Ahrenberg

TDDD02 Språkteknologi för informationssökning (2016) Textklassificering. Marco Kuhlmann Institutionen för datavetenskap

Grundläggande programmering med matematikdidaktisk inriktning för lärare som undervisar i gy eller komvux gy nivå, 7,5 hp

TDDD02 Språkteknologi för informationssökning / Textklassificering. Marco Kuhlmann Institutionen för datavetenskap

729G09 Språkvetenskaplig databehandling (2018) Kursintroduktion. Marco Kuhlmann Institutionen för datavetenskap

Institutionen för lingvistik och filologi VT 2014 (Marco Kuhlmann 2013, tillägg och redaktion Mats Dahllöf 2014).

DAB760: Språk och logik

TDDD02 Språkteknologi för informationssökning (2016) Introduktion. Marco Kuhlmann Institutionen för datavetenskap

Shannon-Fano-Elias-kodning

poäng i del B Lycka till!

Fil: /home/lah/undervisning/sprakteknologi/ohbilder/oh1_kv.odp. Tjänster

Lathund för SpellRight

TDDD02 Föreläsning 7 HT-2013

Klassificering av homonymer Inlämningsuppgift språkteknologi

Sannolikhetslära. 1 Enkel sannolikhet. Grunder i matematik och logik (2015) 1.1 Sannolikhet och relativ frekvens. Marco Kuhlmann

Taltaggning. Rapport av Daniel Hasselrot , 13 oktober 2003

Maskinöversättning. Johan Boye, KTH

IntoWords elevdata.se

CS - Computer science. Datateknik Informationsbehandling Datalogi Datavetenskap (ÅA 2008)

Inlämningsuppgift : Finn. 2D1418 Språkteknologi. Christoffer Sabel E-post: csabel@kth.se 1

729G17 Språkteknologi / Introduktion. Marco Kuhlmann Institutionen för datavetenskap

Lösningsförslag till tentamen i Språkteknologi 2D1418,

Probabilistisk logik 2

ASR3 Språkmodeller Taligenk änningsgrammatiker

Krafts olikhet. En momentant avkodbar kod (prefixkod) med kodordslängderna l 1,...,l N existerar om och endast om. 2 l i. 1 i=1

ASR3 Språkmodeller Talgrammatiker

Kursintroduktion. Marco Kuhlmann Institutionen för datavetenskap. 729G49 Språk och datorer (2019)

Matematisk Modellering

729G09 Språkvetenskaplig databehandling

Taligenkänning. Sanna Aronsson sanar429 Artificiell Intelligens, HKGBB0

Språkteknologi och Open Source

b) NY KURS (Ange kursnamn, årskurs, önskad läsperiod, schemablocksplacering. Bifoga utkast till kursplan.)

Problem: BOW Bowling. Regler för Bowling. swedish. BOI 2015, dag 1. Tillgängligt minne: 256 MB

Objektorienterad programmering Föreläsning 8. Copyright Mahmud Al Hakim Agenda (halvdag)

Använda Stava Rex i Word 2010

Kombinatorik och sannolikhetslära

Föreläsning 12. Söndra och härska

729G43 Artificiell intelligens (2016) Maskininlärning 3. Marco Kuhlmann Institutionen för datavetenskap

Föreläsning 12. Söndra och härska

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

PCP-satsen på kombinatoriskt manér

Hur bestämmer man vilka fonem ett språk har? Fonologi. Kommutationstest. Hur bestämmer man vilka fonem ett språk har?

Tommy Färnqvist, IDA, Linköpings universitet

Lathund för Stava Rex

Grundläggande Textanalys VT Språkgranskning (1) Eva Pettersson

Xenotag Probabilistisk uppmärkning av xenoglosser baserat på tecken-n-gram

ARTIFICIELLA NEURALA NÄT. MARCO KUHLMANN Institutionen för datavetenskap

Statistisk maskinöversättning

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson 2

TTIT33 Scenario för Tema 3 i Termin 3

Dagens föreläsning Programmering i Lisp Fö 5

Använda SpellRight 2 i Word 2010

Tillvägaghångssätt för skattning av körkortsmodell

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

Men först: Några funktioner ur preluden. Introduktion till programmering. Uppgiften. Variationer av uppgiften. Föreläsning 4

Föreläsning 13 Innehåll

Programmering II (ID1019)

Projektförslag. Datalingvistisk projektkurs VT mars 2007

Tentamen, Algoritmer och datastrukturer

Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret Lektion 4

Föreläsning 5: Kardinalitet. Funktioners tillväxt

Vektorgeometri för gymnasister

Metriska rum, R och p-adiska tal

DN1212/numpm Numeriska metoder och grundläggande programmering Laboration 1 Introduktion

Så här fungerar Stava Rex

Matematik för språkteknologer

Johan Karlsson Johka490. Statistical machine translation JOHAN KARLSSON

Optimala koder. Övre gräns för optimala koder. Gränser. Övre gräns för optimala koder, forts.

Optimala koder. Det existerar förstås flera koder som har samma kodordsmedellängd. Enklaste fallet är att bara byta 0:or mot 1:or.

Föreläsning 4. NDAB01 Statistik; teori och tillämpning i biologi

Magnus Nielsen, IDA, Linköpings universitet

Anna: Bertil: Cecilia:

Fonologi. Kommutationstest. Minimala par. Hur bestämmer man vilka fonem ett språk har?

Föreläsning 13 Testning och strängar

Block 2 Algebra och Diskret Matematik A. Följder, strängar och tal. Referenser. Inledning. 1. Följder

TDP Regler

Aritmetisk kodning. F (0) = 0 Exempel: A = {1, 2, 3} k=1. Källkodning fö 5 p.1/12

Uppgift 1 (grundläggande konstruktioner)

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

Datorlaboration 0, Programmering i C++ (EDA623)

Automatisk textsammanfattning

Kommunikation och Interaktion

Lektionsanteckningar 11-12: Normalfördelningen

First Class uppgift 2

Fortsättningskurs i programmering F 2. Algoritmer i Programutveckling Hugo Quisbert Problemexempel 1

MÅL ATT UPPNÅ (FRÅN SKOLVERKET)

Identifiering av ordvitsar med Granska

Språkteknologi (SV2122) Föreläsning 3: Programmering i Python

Transkript:

TDDD02 Språkteknologi för informationssökning / 2015 Ordpredicering Marco Kuhlmann Institutionen för datavetenskap

Ordpredicering Ordpredicering innebär att föreslå eller välja ord i en given kontext.

Tillämpningar av ordpredicering föreslå ytterligare aller alternativa söktermer höja effektiviteten vid textinmatning uppmärksamma och korrigera stavfel ge stöd till funktionshindrade

Översikt över dagens föreläsning n-gram-modeller för att föreslå det nästa ordet utifrån de föregående orden redigeringsavstånd för att föreslå alternativa stavningar

N-gram-modeller

Ordpredicering Ordpredicering innebär att föreslå eller välja ord i en given kontext.

Shannons spel Shannons spel liknar Hänga gubbe förutom att det är inte roligt man får bara gissa ett tecken i taget Claude Shannon (1916 2001)

Shannons spel, nu med ord Olika ord har olika stora sannolikheter att dyka upp som nästa ord, givet de föregående orden. P(en är) > P(göra är) För att predicera nästa ord kan vi välja det ord som har den största sannolikheten bland alla möjliga ord w: predicerat ord = argmax w P(w föregående orden)

Betingade sannolikheter exempel: ord 20 = en P(hypotes evidens) exempel: ord 19 = är

Markov-antagande Sannolikheten för varje ord är endast beroende av det närmast föregående ordet. Sannolikheten för en hel mening ges av produkten av alla dessa sannolikheter: P(w 1, w 2, w 3 ) P(w 2 w 1 )P(w 3 w 2 ) Hur börjar en mening? Hur slutar en mening? beginning-of-sentence, end-of-sentence Андрéй Мáрков (1856 1922)

Markov-modell med BOS och EOS beginning-of-sentence P(w 1, w 2, w 3 ) P(w 1 BOS)P(w 2 w 1 )P(w 3 w 2 )P(EOS w 3 ) end-of-sentence

Språkmodeller En språkmodell är en sannolikhetsmodell för meningar. Sannolikheterna i en språkmodell uppskattas utifrån data om existerande meningar. Texter som samlats in för språkvetenskapliga eller språkteknologiska syften kallas korpusar.

N-gram-modeller Ett n-gram är en sekvens av n ord. unigram, bigram, trigram En n-gram-modell är en språkmodell där sannolikheten för varje ord är endast beroende av de n 1 föregående orden. Markov-antagandet = bigram-modell

Slumpa fram meningar i en bigram-modell Välj ett ord w 1 med sannolikhet P(w 1 BOS). Välj ett ord w 2 med sannolikhet P(w 2 w 1 ). Välj ett ord w 3 med sannolikhet P(w 3 w 2 ). Och så vidare, tills du väljer EOS.

Skattning av n-gram-modeller

Relevanta sannolikheter P(w 1 ) P(w 2 w 1 ) P(w 3 w 1 w 2 ) unigram-modell bigram-modell trigram-modell

ML-skattning av bigramsannolikheter f(w 1 w 2 ) antalet förekomster av bigrammet w 1 w 2 f(w 1 ) antalet förekomster av unigrammet w 1

Övningsuppgift I en korpus som omfattar 100000 ord hittar vi ordet det 1500 gånger, ordet är 1800 gånger, sekvensen det är 250 gånger, ordet sägs 10 gånger, och sekvensen det sägs 0 gånger. Skatta följande sannolikheter med ML-metoden: unigramsannolikheten P(det) bigramsannolikheten P(är det) bigramsannolikheten P(sägs det)

Problem med ML-skattning Shakespeares verk innehåller ca. 31000 olika ord. Det finns 961 miljoner olika bigram med dessa ord. I hans texter hittar vi bara 300000 olika bigram. Detta betyder att 99,97% av alla teoretiskt möjliga bigram har frekvens 0. I en bigram-modell kommer varje mening som innehåller ett sådant bigram få sannolikhet 0.

ML-skattning med Add One-utjämning f(w 1 w 2 ) antalet förekomster av bigrammet w 1 w 2 f(w 1 ) antalet förekomster av unigrammet w 1

Interpolering och backoff Interpolering kombinera sannolikheter från flera n-gram-modeller: λ 3 P(w 3 w 1, w 2 ) + λ 2 P(w 3 w 2 ) + λ 1 P(w 3 ) Backoff använd trigram-modellen om tillräckligt mycket data finns, annars bigram-modellen, sist unigram-modellen

Utvärdering av språkmodeller

Två sorters utvärderingar Extrinsisk utvärdering (in vivo) mäta hur bra modellen är på att hjälpa oss lösa den uppgift som vi är intresserade i, t.ex. stavningkorrektur mest relevant utvärdering, men dyrt Intrinsisk utvärdering (in vitro) mäta kvalitén hos modellen med hjälp av något mått som approximerar den extrinsiska utvärderingen billigt, men mindre relevant utvärdering

Utvärdering av språkmodeller Intuition: En bra språkmodell är en språkmodell som föredrar bra meningar framför dåliga meningar. Korrekta, ofta förekommande meningar borde få en högre sannolikhet än inkorrekta, sällan förekommande meningar.

Utvärderingsmetodologi Vi skapar en språkmodell utifrån en mängd träningsdata. riksdagsanföranden 2012/13 Vi utvärderar språkmodellen på en mängd testdata. riksdagsanföranden 2013/14

Utvärderingsmått Vi söker ett mått för att utvärdera en n-gram-modell. Idé: Använd modellen för att räkna ut sannolikheten för en mängd testmeningar. En bra modell borde ge hög sannolikhet. Problem: Sannolikheten blir mindre ju längre texterna blir, vilket gör det svårt att jämföra modeller med det. Idé: Normalisera måttet med avseende med texternas längd.

Entropi Entropi mäter oförutsägbarheten hos en text. Med vår språkmodell som utgångspunkt, hur överraskade är vi (i genomsnitt per ord) när vi läser texten?

Negativa logaritmer som kostnader 5 3,75 log p 2,5 1,25 0 0 0,25 0,5 0,75 1 p

Entropi i en bigram-modell Entropi mäter oförutsägbarheten hos en text. I en bigram-modell kan vi approximera en texts oförutsägbarhet genom att summera över alla bigram-oförutsägbarheter. ( 1,..., ) = 1 log 2 ( 1 ) =1

Entropi på språkliga data bra språkmodell = testtext får hög sannolikhet = låg entropi Wall Street Journal, trigram-modell: 6,77 dålig språkmodell = testtext får låg sannolikhet = hög entropi Wall Street Journal, unigram-modell: 9,91

Redigeringsavstånd

Ordpredicering Ordpredicering innebär att föreslå eller välja ord i en given kontext.

Stavningskorrektur Många felstavade ord är ganska lika de rättstavade orden; det är bara enskilda tecken som har bytt plats. lingvisterma, word prefiction Givet ett möjligtvis felstavat ord vill vi kunna föreslå ett eller flera liknande ord och föreslå de mest sannolika av dessa.

Redigeringsavstånd Vi kan mäta likheten mellan två ord genom att räkna antalet operationer som krävs för att överföra det ena till det andra. Här antar vi följande redigeringsoperationer: insertion deletion substitution lägga till in ett tecken ta bort ett tecken ersätt ett tecken med ett annat

Exempel Hur många operationer krävs för att göra om intention till execution? intention ta bort i ersätt n med e ersätt t med x lägg till c ersätt n med u ntention etention exention execntion execution

Probabilistisk stavningskorrigering P(R F) = P(F R) P(R) P(R F) kan användas för att ranka olika hypoteser om vilket rättstavat ord R som kan ha varit avsett givet ett felstavat ord F. P(R) är apriorisannolikheten för det rättstavade ordet; den kan ges av en språkmodell (unigram, bigram, trigram, ). P(F R) betecknar sannolikheten för att R har förvanskats till F; den kan baseras på redigeringsoperationer.

Levenshtein-avstånd För varje redigeringsoperation definieras en kostnad: Kostnaden för insertion och deletion är 1. Kostnaden för substitution är 0 om den nya bokstaven är samma som den gamla, och 2 i alla andra fall. Levenshtein-avståndet mellan två ord är den lägsta möjliga kostnaden för att föra över det ena ordet till det andra.

Beräkna redigeringsavståndet Vi söker efter en sekvens av operationer som transformerar det ena ordet till det andra och har lägsta möjliga kostnad. Problem: Det kan finnas ett stort antal olika sekvenser med olika kostnader; sökrymden för detta problem är mycket stor. Men vi vill ju bara ha sekvenser med lägsta möjliga kostnad! Dynamisk programmering: Lösa komplexa problem genom att kombinera lösningar till delproblem.

Delproblem för Levenshtein-avståndet Givet ett ord source med m tecken och ett ord target med n tecken, definiera L(i, j) som Levenshtein-avståndet mellan de första i tecken i source och de första j tecken i target. Levenshtein-avståndet mellan source och target är alltså L(m, n). L(i, j)-värdena kan beräknas genom att fylla en tabell för allt större värden av i och j.

n o i t n e t n i # # e x e c u t i o n Vi vill överföra intention till execution.

n o i t n e t n i # 0 # e x e c u t i o n Det kostar ingenting att överföra en sekvens av noll tecken till en sekvens av noll tecken.

n 9 o 8 i 7 t 6 n 5 e 4 t 3 n 2 i 1 # 0 # e x e c u t i o n Vi kan överföra intention till den tomma sekvensen genom att ta bort alla tecken, ett efter ett.

n 9 o 8 i 7 t 6 n 5 e 4 t 3 n 2 i 1 # 0 1 2 3 4 5 6 7 8 9 # e x e c u t i o n Vi kan överföra den tomma sekvensen till execution genom att infoga alla tecken, ett efter ett.

n 9 8 o 8 7 i 7 6 t 6 5 n 5 4 e 4 3 t 3 4 5 n 2 3 4 i 1 2 3 # 0 1 2 3 4 5 6 7 8 9 # e x e c u t i o n I det allmänna fallet finns tre möjliga operationer. Vi vill välja den som har lägst kostnad.

n 9 8 o 8 7 i 7 6 t 6 5 n 5 4 e 4 3 4 t 3 4 5 n 2 3 4 i 1 2 3 # 0 1 2 3 4 5 6 7 8 9 # e x e c u t i o n Hur kan vi överföra inte till ex? Möjlighet 1: Överför inte till e och foga in x, inte e ex

n 9 8 o 8 7 i 7 6 t 6 5 n 5 4 e 4 3 6 t 3 4 5 n 2 3 4 i 1 2 3 # 0 1 2 3 4 5 6 7 8 9 # e x e c u t i o n Hur kan vi överföra inte till ex? Möjlighet 2: Ta bort e och överför int till ex, inte int ex

n 9 8 o 8 7 i 7 6 t 6 5 n 5 4 e 4 3 6 t 3 4 5 n 2 3 4 i 1 2 3 # 0 1 2 3 4 5 6 7 8 9 # e x e c u t i o n Hur kan vi överföra inte till ex? Möjlighet 3: Ersätt e med x och överför int till e, inte intx ex

n 9 8 o 8 7 i 7 6 t 6 5 n 5 4 e 4 3 4 t 3 4 5 n 2 3 4 i 1 2 3 # 0 1 2 3 4 5 6 7 8 9 # e x e c u t i o n Insertion är billigast i det här fallet.

n 9 8 9 10 11 12 11 10 9 8 o 8 7 8 9 10 11 10 9 8 9 i 7 6 7 8 9 10 9 8 9 10 t 6 5 6 7 8 9 8 9 10 11 n 5 4 5 6 7 8 9 10 11 10 e 4 3 4 5 6 7 8 9 10 9 t 3 4 5 6 7 8 7 8 9 8 n 2 3 4 5 6 7 8 7 8 7 i 1 2 3 4 5 6 7 6 7 8 # 0 1 2 3 4 5 6 7 8 9 # e x e c u t i o n Levenshtein-avståndet för det här exemplet är 8.

Mera finkorniga vikter I praktiken används ofta mera finkorniga vikter. s istället för a är vanligare än d istället för a Vi kan fortfarande använda samma algoritm; det enda som vi måste anpassa är kostnadsberäkningen.

Warren Weaver (1894 1978) When I look at an article in Russian, I say: This is really written in English, but it has been coded in some strange symbols. I will now proceed to decode.

Den brusiga kanalen avsändare E R mottagare brus Ryska (R) är förvanskad engelska (E). argmax E P(E R) = argmax E P(R E) P(E)

Den brusiga kanalen rättstavat R F felstavat brus Felstavade ord (F) är förvanskade rättstavade ord (R). argmax R P(R F) = argmax R P(F R) P(R)

Sammanfattning Ordpredicering = föreslå eller välja ord i en given kontext Tillämpningar: föreslå alternativa söktermer, effektivisera inmatningen, uppmärksamma eller korrigera stavfel Centrala begrepp: Markov-antagande, n-gram-modell, unigram, bigram, trigram, entropi, Levenshtein-avstånd