Informationssökning i pedagogiska databaser - allmän introduktion
Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen...
Transcript of Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen...
![Page 1: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/1.jpg)
Ordpredicering
Marco Kuhlmann Institutionen för datavetenskap
TDDD02 Språkteknologi för informationssökning (2016)
![Page 2: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/2.jpg)
Ordpredicering
Ordpredicering innebär att föreslå eller välja ord i en given kontext.
![Page 3: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/3.jpg)
Tillämpningar av ordpredicering
• höja effektiviteten vid textinmatning
• föreslå ytterligare aller alternativa söktermer
• uppmärksamma och korrigera stavfel
• ge stöd till funktionshindrade
![Page 4: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/4.jpg)
Översikt över momentet
• 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
![Page 5: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/5.jpg)
N-gram-modeller
![Page 6: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/6.jpg)
Ordpredicering
Ordpredicering innebär att föreslå eller välja ord i en given kontext.
![Page 7: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/7.jpg)
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)
![Page 8: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/8.jpg)
Shannons spel, nu med ord
• Olika ord har olika stora sannolikheter att dyka upp som nästa ord, givet de föregående orden. 𝑃(hus | ett) > 𝑃(ett | hus)
• För att predicera nästa ord kan vi välja det ord som har den största sannolikheten bland alla möjliga ord 𝑤:
predicerat ord = argmax𝑤 𝑃(𝑤 | föregående orden)
![Page 9: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/9.jpg)
Betingade sannolikheter
exempel: aktuellt ord = hus
exempel: föregående ord = ett
𝑃(hypotes | evidens)
![Page 10: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/10.jpg)
Markov-modell
• 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. 𝑃(𝑤1, 𝑤2, 𝑤3) ≅ 𝑃(𝑤2|𝑤1)𝑃(𝑤3|𝑤2)
• Hur börjar en mening? Hur slutar en mening? beginning-of-sentence, end-of-sentence
Андрéй Мáрков (1856–1922)
![Page 11: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/11.jpg)
Markov-modell med BOS och EOS
𝑃(𝑤1, 𝑤2, 𝑤3) ≅ 𝑃(𝑤1|BOS)𝑃(𝑤2|𝑤1)𝑃(𝑤3|𝑤2)𝑃(EOS|𝑤3)
beginning-of-sentence
end-of-sentence
![Page 12: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/12.jpg)
Språkmodeller
• En språkmodell är en sannolikhetsmodell för meningar. Den tilldelar en sannolikhet till varje mening (sekvens av ord).
• Sannolikheterna i en språkmodell uppskattas utifrån data i stora textmängder.
• Texter som samlats in för språkvetenskapliga eller språkteknologiska syften kallas korpusar.
![Page 13: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/13.jpg)
N-gram-modeller
• Ett n-gram är en sekvens av 𝑛 ord. unigram, bigram, trigram, kvadrigram
• En n-gram-modell är en språkmodell där sannolikheten för varje ord är endast beroende av de 𝑛 – 1 föregående orden. Markov-modell = bigram-modell
![Page 14: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/14.jpg)
Ingredienserna i en bigram-modell
𝑉 en mängd möjliga ord; modellens vokabulär
𝑃(𝑤 |𝑐) en sannolikhet som anger hur troligt det är att observera ordet 𝑤 efter kontext-unigrammet 𝑐 en sannolikhet för varje kombination av ett ord 𝑤 och en kontext 𝑐
![Page 15: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/15.jpg)
Ingredienserna i en n-gram-modell
𝑛 modellens ordning (1 = unigram, 2 = bigram, …)
𝑉 en mängd möjliga ord; modellens vokabulär
𝑃(𝑤 |𝑐) en sannolikhet som anger hur troligt det är att observera ordet 𝑤 efter kontext-(𝑛−1)-grammet 𝑐 i en unigram-modell: 𝑃(𝑤1) kontext: ingen
i en bigram-modell: 𝑃(𝑤2|𝑤1) kontext: unigram
i en trigram-modell: 𝑃(𝑤3|𝑤1𝑤2) kontext: bigram
![Page 16: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/16.jpg)
Slumpa fram meningar i en bigram-modell
• Välj ett ord 𝑤1 med sannolikhet 𝑃(𝑤1|BOS).
• Välj ett ord 𝑤2 med sannolikhet 𝑃(𝑤2|𝑤1).
• Välj ett ord 𝑤3 med sannolikhet 𝑃(𝑤3|𝑤2).
• …
• Och så vidare, tills man väljer EOS.
![Page 17: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/17.jpg)
Skattning av n-gram-modeller
![Page 18: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/18.jpg)
Vilka sannolikheter behöver skattas?
𝑃(𝑤1) unigram-modell
𝑃(𝑤2|𝑤1) bigram-modell
𝑃(𝑤3|𝑤1𝑤2) trigram-modell
![Page 19: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/19.jpg)
𝑓(𝑤1𝑤2) antalet förekomster av bigrammet 𝑤1𝑤2
𝑓(𝑤1) antalet förekomster av unigrammet 𝑤1
ML-skattning av bigramsannolikheter
viktigt att förstå varför dessa är lika!
![Page 20: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/20.jpg)
Ö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 𝑃(det)
• bigramsannolikheten 𝑃(är |det)
• bigramsannolikheten 𝑃(sägs |det)
![Page 21: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/21.jpg)
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.
![Page 22: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/22.jpg)
ML-skattning med addera-ett—utjämning
𝑓(𝑤1𝑤2) antalet förekomster av bigrammet 𝑤1𝑤2
𝑓(𝑤1) antalet förekomster av unigrammet 𝑤1
![Page 23: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/23.jpg)
ML-skattning med addera-k-utjämning
𝑓(𝑤1𝑤2) antalet förekomster av bigrammet 𝑤1𝑤2
𝑓(𝑤1) antalet förekomster av unigrammet 𝑤1
![Page 24: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/24.jpg)
Interpolering och backoff
• Interpolering
kombinera sannolikheter från flera n-gram-modeller:
𝜆3𝑃(𝑤3|𝑤1, 𝑤2) + 𝜆2𝑃(𝑤3|𝑤2) + 𝜆1𝑃(𝑤3)
• Backoff
använd trigram-modellen om tillräckligt mycket data finns, annars bigram-modellen, sist unigram-modellen
![Page 25: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/25.jpg)
Okända ord
• Förutom nya n-gram kan en ny text även innehålla okända ord.
• En vanlig teknik för att hantera dessa är att under träningen ersätta den första förekomsten av varje ord med låtsasordet UNK. unknown word
• Vid skattning kommer då en del av sannolikhetsmassan reserveras för okända ord.
• När man räknar ut sannolikheten för en ny mening kan man sedan ersätta alla okända ord med ordet UNK.
![Page 26: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/26.jpg)
Utvärdering av språkmodeller
![Page 27: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/27.jpg)
Två sorters utvärderingar
• Extrinsisk utvärdering (in vivo)
mäter 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, dyr
• Intrinsisk utvärdering (in vitro)
mäter kvalitén hos modellen med hjälp av något mått som förhoppningsvis approximerar den extrinsiska utvärderingen billig, mindre relevant utvärdering
![Page 28: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/28.jpg)
Utvärdering av språkmodeller
• Träna en språkmodell på en träningsmängd och använd den för att beräkna sannolikheten för en testmängd.
• Om träningsmängden och testmängden inte är alltför olika bör båda få ungefär lika hög sannolikhet.
• Intuition: Efter att ha sett träningsmängden borde vi inte bli alltför överraskade när vi ser testmängden. mått på överraskning = logaritm av sannolikhet
![Page 29: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/29.jpg)
Varför inte använda sannolikheter direkt?
• Problem
Eftersom sannolikheten för en text är produkten av sannolikheterna för de ingående orden blir den mindre ju längre texten blir. Detta gör det svårt att jämföra texter av olika längd.
• Lösning
Normalisera med avseende med texternas längd. Detta skulle kräva att vi räknar ut det geometriska medelvärdet av de ingående sannolikheterna. Enklare alternativ: entropi.
![Page 30: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/30.jpg)
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?
![Page 31: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/31.jpg)
Ett mått på hur överraskade vi är−
log
p
0
1,25
2,5
3,75
5
p
0 0,25 0,5 0,75 1
![Page 32: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/32.jpg)
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� ���=1 − log2 �(�� |��−1)
![Page 33: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/33.jpg)
Entropi på språkliga data
• bra språkmodell = låg entropi Wall Street Journal, trigram-modell: 6,77
• dålig språkmodell = hög entropi Wall Street Journal, unigram-modell: 9,91
![Page 34: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/34.jpg)
Entropi och utjämning
• När vi använder utjämning gör vi en omfördelning av sannolikhetsmassan till observationer som vi aldrig gjort.
• Detta kommer lämna en mindre del av sannolikhetsmassan kvar till de observationer som vi faktiskt gjort under träningen.
• Om vi utvärderar den tränade modellen på träningsmängden kommer därför dess entropi vara högre än utan utjämning.
![Page 35: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/35.jpg)
Redigeringsavstånd
![Page 36: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/36.jpg)
Ordpredicering
Ordpredicering innebär att föreslå eller välja ord i en given kontext.
![Page 37: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/37.jpg)
Stavningskorrektur
• Många felstavade ord är ganska lika de rättstavade orden; det är bara enskilda tecken som har förändrats. lingvisterma, word prefiction
• Givet ett felstavat ord vill vi kunna föreslå ett eller flera liknande ord och föreslå de mest sannolika av dessa.
![Page 38: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/38.jpg)
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 lägga till in ett tecken
deletion ta bort ett tecken
substitution ersätt ett tecken med ett annat
![Page 39: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/39.jpg)
Exempel
Hur många operationer krävs för att göra om intention till execution?
intention
ta bort i ntention
ersätt n med e etention
ersätt t med x exention
lägg till c execntion
ersätt n med u execution
![Page 40: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/40.jpg)
Bokstavslänkningar
i n t e n * t i o n e x * e c u t i o n
i n t e * n t i o n * e x e c u t i o n
![Page 41: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/41.jpg)
Probabilistisk stavningskorrigering
𝑃(𝑅 |𝐹) = 𝑃(𝐹 |𝑅) 𝑃(𝑅)
• 𝑃(𝑅 |𝐹) kan användas för att ranka olika hypoteser om vilket rättstavat ord 𝑅 som kan ha varit avsett givet ett felstavat ord 𝐹.
• 𝑃(𝑅) är apriorisannolikheten för det rättstavade ordet; den kan ges av en språkmodell (unigram, bigram, trigram, …).
• 𝑃(𝐹 |𝑅) betecknar sannolikheten för att 𝑅 har förvanskats till 𝐹; den kan baseras på redigeringsoperationer. högre redigeringsavstånd = lägre sannolikhet
![Page 42: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/42.jpg)
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 1 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.
![Page 43: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/43.jpg)
Andra avståndsmått
• 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.
• Ett ännu mera realistiskt mått är Damerau–Levenshtein-avstånd. tillåter även att byta ut bokstäver
![Page 44: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/44.jpg)
Beräkna Levenshtein-avståndet
• Vi söker en sekvens av operationer som transformerar det ena ordet till det andra och som 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. Wagner–Fisher-algoritm
![Page 45: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/45.jpg)
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
• Läsanvisningar: JM 3.10–3.11, 4.1–4.7 och 5.9; ej 4.5.2, 4.5.3, 4.7.1
![Page 46: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/46.jpg)
Att beräkna Levenshtein-avståndet (extramaterial)
![Page 47: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/47.jpg)
Levenshtein-avstånd
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 med hjälp av följande redigeringsoperationer:
• insertion lägger till ett tecken till källordet; kostnad: 1 kr
• deletion tar bort ett tecken från källordet; kostnad: 1 kr
• substitution ersätter ett tecken i källordet med ett annat; kostnad: 0 kr om tecknen är lika, annars 1 kr
![Page 48: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/48.jpg)
Exempel
Levenshtein-avståndet mellan intention till execution är högst 5:
intention
ta bort i ntention 1 kr
ersätt n med e etention 1 kr
ersätt t med x exention 1 kr
lägg till c execntion 1 kr
ersätt n med u execution 1 kr
![Page 49: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/49.jpg)
Flera möjligheter
i n t e n * t i o n e x * e c u t i o n
i n t e * n t i o n * e x e c u t i o n
![Page 50: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/50.jpg)
Beräkna Levenshtein-avståndet
• Vi söker en sekvens av operationer som transformerar det ena ordet till det andra och som 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. Wagner–Fischer-algoritm
![Page 51: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/51.jpg)
Delproblem för Levenshtein-avståndet
• Givet ett ord source med 𝑚 tecken och ett ord target med 𝑛 tecken, definiera 𝐿(𝑖, 𝑗) som Levenshtein-avståndet mellan de första 𝑖 tecken i source och de första 𝑗 tecken i target.
• Levenshtein-avståndet mellan source och target är alltså 𝐿(𝑚, 𝑛).
• 𝐿(𝑖, 𝑗)-värdena kan beräknas genom att fylla en tabell för allt större värden av 𝑖 och 𝑗.
![Page 52: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/52.jpg)
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.
![Page 53: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/53.jpg)
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.
L(0, 0)
![Page 54: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/54.jpg)
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.
L(i, 0)
![Page 55: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/55.jpg)
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.
L(0, j)
![Page 56: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/56.jpg)
n 9 8 8
o 8 7 7
i 7 6 6
t 6 5 5
n 5 4 4
e 4 3 4
t 3 3 3 3 4 5 5 6 7 8
n 2 2 2 3 4 5 6 7 7 7
i 1 1 2 3 4 5 6 6 7 8
# 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.
L(4, 3)
![Page 57: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/57.jpg)
Hur kan vi överföra inte till exe? Möjlighet 1: Ta bort e och överför int till exe.
n 9 8 8
o 8 7 7
i 7 6 6
t 6 5 5
n 5 4 4
e 4 3 4 4
t 3 3 3 3 4 5 5 6 7 8
n 2 2 2 3 4 5 6 7 7 7
i 1 1 2 3 4 5 6 6 7 8
# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
L(4, 3)
![Page 58: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/58.jpg)
n 9 8 8
o 8 7 7
i 7 6 6
t 6 5 5
n 5 4 4
e 4 3 4 5
t 3 3 3 3 4 5 5 6 7 8
n 2 2 2 3 4 5 6 7 7 7
i 1 1 2 3 4 5 6 6 7 8
# 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 exe? Möjlighet 2: Överför inte till ex och lägg till e.
L(4, 3)
![Page 59: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/59.jpg)
n 9 8 8
o 8 7 7
i 7 6 6
t 6 5 5
n 5 4 4
e 4 3 4 3
t 3 3 3 3 4 5 5 6 7 8
n 2 2 2 3 4 5 6 7 7 7
i 1 1 2 3 4 5 6 6 7 8
# 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 exe? Möjlighet 3: Ersätt e med e och överför int till ex.
L(4, 3)
![Page 60: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/60.jpg)
Substitution är billigast i det här fallet.
n 9 8 8
o 8 7 7
i 7 6 6
t 6 5 5
n 5 4 4
e 4 3 4 3
t 3 3 3 3 4 5 5 6 7 8
n 2 2 2 3 4 5 6 7 7 7
i 1 1 2 3 4 5 6 6 7 8
# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
L(4, 3)
![Page 61: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/61.jpg)
n 9 8 8 8 8 8 8 7 6 5
o 8 7 7 7 7 7 7 6 5 6
i 7 6 6 6 6 6 6 5 6 7
t 6 5 5 5 5 5 5 6 7 8
n 5 4 4 4 4 5 6 7 7 7
e 4 3 4 3 4 5 6 6 7 8
t 3 3 3 3 4 5 5 6 7 8
n 2 2 2 3 4 5 6 7 7 7
i 1 1 2 3 4 5 6 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 5.
L(9, 9)
![Page 62: Ordpredicering - IDATDDD02/info/TDDD02-2016-F2.pdf · 2016-11-10 · Marco Kuhlmann Institutionen för datavetenskap TDDD02 Språkteknologi för informationssökning (2016) ... annars](https://reader034.fdocuments.net/reader034/viewer/2022050203/5f56caeeac1b37535378ec06/html5/thumbnails/62.jpg)
n 9 8 8 8 8 8 8 7 6 5
o 8 7 7 7 7 7 7 6 5 6
i 7 6 6 6 6 6 6 5 6 7
t 6 5 5 5 5 5 5 6 7 8
n 5 4 4 4 4 5 6 7 7 7
e 4 3 4 3 4 5 6 6 7 8
t 3 3 3 3 4 5 5 6 7 8
n 2 2 2 3 4 5 6 7 7 7
i 1 1 2 3 4 5 6 6 7 8
# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
Genom att följa ”backpointers” kan vi rekonstruera operationerna.