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

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

Tentamen Del A. Marco Kuhlmann

TDDD02 Språkteknologi för informationssökning (2016) Ordklasstaggning. 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

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

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

Grundläggande textanalys. Joakim Nivre

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

Probabilistisk logik 1

TDDD02 Språkteknologi för informationssökning / Textsammanfattning. 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).

poäng i del B Lycka till!

Statistisk grammatikgranskning

Lektionsanteckningar 11-12: Normalfördelningen

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

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

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

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

Probabilistisk logik 2

F2 Introduktion. Sannolikheter Standardavvikelse Normalapproximation Sammanfattning Minitab. F2 Introduktion

Klassificering av homonymer Inlämningsuppgift språkteknologi

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

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

Kravspecifikation Fredrik Berntsson Version 1.3

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

F8 Skattningar. Måns Thulin. Uppsala universitet Statistik för ingenjörer 14/ /17

Shannon-Fano-Elias-kodning

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

Föreläsning 8, Matematisk statistik 7.5 hp för E, HT-15 Punktskattningar

Språkteknologi och Open Source

Föreläsning 12: Regression

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

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

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

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

Föreläsning 8, Matematisk statistik 7.5 hp för E Punktskattningar

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

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

PROGRAMFÖRKLARING I. Statistik för modellval och prediktion. Ett exempel: vågriktning och våghöjd

LMA201/LMA521: Faktorförsök

TDDD02 Föreläsning 7 HT-2013

För logitmodellen ges G (=F) av den logistiska funktionen: (= exp(z)/(1+ exp(z))

Matematisk statistik 9 hp, HT-16 Föreläsning 10: Punktskattningar

Laboration 2: Styrkefunktion samt Regression

TATM79: Föreläsning 1 Notation, ekvationer, polynom och summor

Kombinatorik och sannolikhetslära

Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata.

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

TDP Regler

1 Mätdata och statistik

SF1901: SANNOLIKHETSTEORI OCH STATISTIKTEORI KONSTEN ATT DRA INTERVALLSKATTNING. STATISTIK SLUTSATSER. Tatjana Pavlenko.

DAB760: Språk och logik

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

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

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

Föreläsning 8: Konfidensintervall

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

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.

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

Prestanda och skalbarhet

Två innebörder av begreppet statistik. Grundläggande tankegångar i statistik. Vad är ett stickprov? Stickprov och urval

FriendlyReader. Språkteknologi för sammanfattningar och ökad läsbarhet. Målgruppsegmentering. Arbetsgång

IntoWords elevdata.se

Inledning till statistikteorin. Skattningar och konfidensintervall för μ och σ

Tommy Färnqvist, IDA, Linköpings universitet

Vektorgeometri för gymnasister

PCP-satsen på kombinatoriskt manér

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

En typisk medianmorot

729G43 Artificiell intelligens / Maskininlärning 2. Marco Kuhlmann

Föreläsning 13. Dynamisk programmering

Tentamen i Matematisk statistik Kurskod S0001M

1. Ekvationer 1.1. Ekvationer och lösningar. En linjär ekvation i n variabler x 1,..., x n är en ekvation på formen. 2x y + z = 3 x + 2y = 0

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

ASR3 Språkmodeller Talgrammatiker

Omtentamen i DV & TDV

Föreläsning 5: Dynamisk programmering

Sannolikhetslära. 1 Grundläggande begrepp. 2 Likformiga sannolikhetsfördelningar. Marco Kuhlmann

ASR3 Språkmodeller Taligenk änningsgrammatiker

Laboration 2. i 5B1512, Grundkurs i matematisk statistik för ekonomer

Målet för D3 är att studenterna ska kunna följande: Dra slumptal från olika sannolikhetsfördelningar med hjälp av SAS

Anna: Bertil: Cecilia:

Word2Vec. Högkvalitativa vektorrepresentationer av ord tränat på stora mängder data. Innehåll LINKÖPINGS UNIVERSITET. 1. Inledning...

Envägs variansanalys (ANOVA) för test av olika väntevärde i flera grupper

Lathund för Stava Rex

729G43 Artificiell intelligens / Maskininlärning 3. Marco Kuhlmann

händelsen som alltid inträffar. Den tomma mängden representerar händelsen som aldrig inträffar.

Extramaterial till Matematik X

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

tal. Mängden av alla trippel av reella tal betecknas med R 3 och x 1 x 2 En sekvens av n reella tal betecknas med (x 1, x 2,, x n ) eller

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

Programmering för språkteknologer II. OH-serie: Sökning och sortering. Algoritm

Asymptotisk analys innebär att... man försöker uppskatta vad som händer för stora indatamängder.

Stora talens lag eller det jämnar ut sig

TVM-Matematik Adam Jonsson

Autokorrelation och Durbin-Watson testet. Patrik Zetterberg. 17 december 2012

Tentamen i Matematisk statistik Kurskod S0001M

Transkript:

TDDD02 Språkteknologi för informationssökning (2016) 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 höja effektiviteten vid textinmatning föreslå ytterligare aller alternativa söktermer uppmärksamma och korrigera stavfel ge stöd till funktionshindrade

Ö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

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(hus ett) > P(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 w: predicerat ord = argmax w P(w föregående orden)

Betingade sannolikheter exempel: aktuellt ord = hus P(hypotes evidens) exempel: föregående ord = ett

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. 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. 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.

N-gram-modeller Ett n-gram är en sekvens av n 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 n 1 föregående orden. Markov-modell = bigram-modell

Ingredienserna i en bigram-modell V P(w c) en mängd möjliga ord; modellens vokabulär en sannolikhet som anger hur troligt det är att observera ordet w efter kontext-unigrammet c en sannolikhet för varje kombination av ett ord w och en kontext c

Ingredienserna i en n-gram-modell n V P(w c) 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 w efter kontext-(n 1)-grammet c i en unigram-modell: P(w 1 ) kontext: ingen i en bigram-modell: P(w 2 w 1 ) kontext: unigram i en trigram-modell: P(w 3 w 1 w 2 ) kontext: bigram

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 man väljer EOS.

Skattning av n-gram-modeller

Vilka sannolikheter behöver skattas? 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 viktigt att förstå varför dessa är lika!

Ö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 addera-ett 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

ML-skattning med addera-k-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

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.

Utvärdering av språkmodeller

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

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

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.

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?

Ett mått på hur överraskade vi är 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 = låg entropi Wall Street Journal, trigram-modell: 6,77 dålig språkmodell = hög entropi Wall Street Journal, unigram-modell: 9,91

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.

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 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.

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

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

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. högre redigeringsavstånd = lägre sannolikhet

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.

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

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

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

Att beräkna Levenshtein-avståndet (extramaterial)

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

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

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

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

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.

L(0, 0) 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(i, 0) 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(0, j) 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(4, 3) 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) 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 Hur kan vi överföra inte till exe? Möjlighet 1: Ta bort e och överför int till exe.

L(4, 3) 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) 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) 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 Substitution är billigast i det här fallet.

L(9, 9) 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.

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.