TDDD02 Föreläsning 4 HT-2013 Klassificering av ord och dokument Lars Ahrenberg
Översikt Ø Avslutning om ngram-modeller Dokumentrepresentation Ø Klassificering med Naive Bayes ett typexempel generell metod Ø Andra exempel Textkategorisering Betydelsebestämning av ord
Unigrammodeller för dokument p Den röda kurvan representerar termernas unigramsannolikheter i databasen. Spikarna representerar relativa frekvenser i ett enskilt dokument. termer
Unigrammodeller för dokument Varje dokument tilldelas en modell, M D, som interpolerar hela databasens modell med MLE-modellen för dokumentet. Rangordningsprincip: Givet en sökfråga Q = q 1, q 2,..., q n, välj det dokument vars modell ger sökfrågan högst sannolikhet. D* = argmax p(q M D ) = p(q i M D ) n D i=1
Klassificeringsproblem (Automatisk) klassificering innebär att tilldela varje objekt, d, i en given mängd D, en kategori från en given taxonomi, C. Det kan ses som en funktion, D C, Det enklaste prestandamåttet är korrekthet (eng. accuracy), som bygger på jämförelse med ett facit för en given testmängd. Det anges ofta i procent: k = 100 x [antal rätt] / [antal objekt]
Klassificering och klustring Klassificering använder sig av fördefinierade klasser. Klustring för ihop dokument (eller andra objekt ) i grupper ( kluster ) utifrån antaganden om vad som gör dem lika. Exempel: - dokument representerade som termvektorer kan klustras baserat på närhet i vektorrummet.
Klassificering och sökning Ett vanligt fall av klassificering är att vi har en kategori som är särskilt intressant, t.ex. namn vs. ord som inte är namn spam vs. mejl som inte är spam I dessa fall är det ofta rimligt att se problemet som ett sökproblem och använda både precision och recall som kvalitetsmått. det är t.ex. (oftast) ett allvarligare fel att klassa ett riktigt mejl som spam än att släppa igenom ett spammejl.
Klassificeringsproblem Automatisk textkategorisering innebär att klassificera texter utifrån sitt innehåll ( orden i texten ). Det kan innebära att klassificera utifrån ämne genre språk attityd/perspektiv... Några speciella tillämpningar mejlklassificering vidarekoppling av samtal i kundtjänster författarbestämning av texter...
Klassificeringsproblem Betydelsebestämning av ord för en större eller mindre mängd av flertydiga ord bestämma vilken av de möjliga betydelserna som en viss förekomst har, Ordklasstaggning att bestämma ordklass för alla ord i en text Namnkategorisering att bestämma om ett ord är eller ingår i ett namn, att bestämma vilken slags entitet (person, plats, organisation,...) ett givet namn refererar till
Ett typproblem Namnigenkänning: klassificera ord i en text som (del av) namn eller icke-namn. En lösning: reguljära uttryck kan fånga ord som börjar på stor bokstav, men alla ord som börjar på stor bokstav är inte namn, omvänt kan delar av namn ibland skrivas med liten bokstav Speciellt: första ordet i en mening
En text Avspänningen mellan stormaktsblocken och nedrustningssträvanden i Europa har inte mycket motsvarighet i Mellanöstern. Gamla testamentet kan fortfarande ge en anvisning om bitterheten i konflikterna i området - och om tidsperspektivet. Don Kerr, en av de politiska tänkarna på det ansedda analysinstitutet IISS, är inte påfallande optimistisk när han talar om saken. Särskilt smygrustningen vad gäller missiler oroar. Hur är det då i Mellanöstern? - Jag kan tänka mig att en massa bedömare - och politiska aktörer - i regionen iakttar vad som händer på andra håll i världen med stort intresse, säger Don Kerr. Sedan konstaterar de förmodligen att det sker - just på andra håll i världen... Kerr skrattar lite åt den avfärdande formuleringen och fördjupar resonemanget. Den avgörande skillnaden mellan konflikter i exempelvis Europa och de som bygger under spänningarna i Mellanöstern är tidsfaktorn, påpekar han. Spänningarna mellan araber och perser och mellan araber och judar har gamla anor. Don Kerr talar om " den fruktansvärda kontinuiteten " som präglar områdets historia. Han berättar anekdoten som FN-medlaren Brian Urquhart myntat : - Han tillfrågades någon gång av en novis om var de bästa historiska källorna fanns att tillgå. Han hänvisade utan att blinka till Gamla testamentet.
Problemet Avgör för det första ordet i varje mening om det är (en del av) ett namn, eller inte. Kategorier: Namn ( första ordet är del av ett namn ) ~Namn ( första ordet är inte del av ett namn )
Resultat med enkla metoder Välj alltid vanligaste kategorin, dvs ej namn: Korrekthet: 10/14 = 0,78, men Recall av Namn = 0 Kategorisera ord som namn om de överallt i texten har stor bokstav: Precision = 3/9 = 0,33 Recall = 3/4 = 0,75 Korrekthet: 7/14 = 0,50
En lösning baserad på sannolikheter identifiera egenskaper som skiljer namn från ord som inte är namn, uppskatta för varje egenskap hur sannolikt det är att ett namn har den egenskapen, p(egenskap Namn) och, som jämförelse, att icke-namn har egenskapen, p(egenskap ~Namn). kombinera dessa sannolikheter i en beräkning, Naive Bayes: anta att de egenskaper och sannolikheter vi valt ut är oberoende
Några potentiellt intressanta egenskaper F1: återfinns någon annanstans i texten inuti i en mening och börjar med stor bokstav. F2: återfinns någon annanstans i texten inuti i en mening och börjar med liten bokstav. F3: följs av ett ord som också börjar med stor bokstav
Ord som uppfyller F1, F2, F3 Avspänningen mellan stormaktsblocken och nedrustningssträvanden i Europa har inte mycket motsvarighet i Mellanöstern. Gamla testamentet kan fortfarande ge en anvisning om bitterheten i konflikterna i området - och om tidsperspektivet. Don Kerr, en av de politiska tänkarna på det ansedda analysinstitutet IISS, är inte påfallande optimistisk när han talar om saken. Särskilt smygrustningen vad gäller missiler oroar. Hur är det då i Mellanöstern? - Jag kan tänka mig att en massa bedömare - och politiska aktörer - i regionen iakttar vad som händer på andra håll i världen med stort intresse, säger Don Kerr. Sedan konstaterar de förmodligen att det sker - just på andra håll i världen... Kerr skrattar lite åt den avfärdande formuleringen och fördjupar resonemanget. Den avgörande skillnaden mellan konflikter i exempelvis Europa och de som bygger under spänningarna i Mellanöstern är tidsfaktorn, påpekar han. Spänningarna mellan araber och perser och mellan araber och judar har gamla anor. Don Kerr talar om " den fruktansvärda kontinuiteten " som präglar områdets historia. Han berättar anekdoten som FN-medlaren Brian Urquhart myntat : - Han tillfrågades någon gång av en novis om var de bästa historiska källorna fanns att tillgå. Han hänvisade utan att blinka till Gamla testamentet.
Klassificering med Naive Bayes Ansätt ett antal egenskaper eller indikatorer ( features ) som för en given förekomst antingen är uppfylld (1) eller inte uppfylld (0). Indikatorerna ska ha olika sannolikheter för Namn och ~Namn Här har tre egenskaper valts <F1, F2, F3> Varje ord som ska klassificeras tilldelas en observation, O, i form av en kontextvektor, t.ex. <0,0,0>, <1,0,0>,... Beräkna sannolikheterna p 1 = p(namn O) p 0 = p(~namn O). Välj Namn om p 1 > p 0 dvs om p 1 / p 0 > 1
Kontextvektorer mening 1: Avspänningen, <0,0,0> mening 2: Gamla, <1,1,0> mening 3: Don, <1,0,1> mening 4: Särskilt: <0,0,0>... mening 8: Kerr, mening 12: Han,...
Klassificering med Naive Bayes Beräkning med Bayes regel: p 1 = p(namn O) = p(o Namn)p(Namn)/p(O) p 0 = p(~namn O) = p(o ~Namn) p(~namn)/p(o) Bildar vi kvoten p 1 /p 0 elimineras p(o) Oberoendeantagandet för indikatorerna ger p(o Namn) = p(<f 1 f 2 f 3 > Namn) = def = def p(f 1 Namn)p(f 2 Namn)p(f 3 Namn) På samma sätt: p(o ~Namn) = p(f 1 ~Namn)p(f 2 ~Namn)p(f 3 ~Namn)
Klassificering med Naive Bayes Beslutsregel: Välj Namn omm p(namn)p(f 1 Namn)p(f 2 Namn)p(f 3 Namn) p(~namn)p(f 1 ~Namn)p(f 2 ~Namn)p(f 3 ~Namn) > 1
Var kommer sannolikheterna ifrån? Alla sannolikheter kan uppskattas utifrån en träningskorpus av relevanta texter. Relativa frekvenser, och (vid behov) utjämning Observera p(namn) + p(~namn) = 1 p(f 1 =1 Namn) + p(f 1 =0 Namn) = 1
Räkneexempel: sannolikheter p(namn) 0,12 (apriori-sannolikhet) p(~namn) 0,88 p(stor bokstav Namn) 0,5 p(f1=1 Namn) p(ej stor bokstav Namn) 0,5 p(f1=0 Namn) p(liten bokstav Namn) 0,1 p(ej liten bokstav Namn) 0,9 p(namn efter Namn) 0,2 p(f3=1 Namn) p(ej namn efter Namn) 0,8 p(f3=0 Namn) p(stor bokstav ~Namn) 0,05 p(f1=1 ~Namn) p(ej stor bokstav ~Namn) 0,95 p(f1=0 ~Namn) p(liten bokstav ~Namn) 0,9 p(ej liten bokstav ~Namn) 0,1 p(namn efter ~Namn) 0,15 p(ej namn efter ~Namn) 0,85
Räkneexempel Givet dessa sannolikheter, vad blir beslutet Anställningar? Don? Gamla?...
Principer för klassificering med Naive Bayes Klassificeringen grundar sig på apriori-sannolikheter och ett större eller mindre antal indikatorer ("features"). Valet av dessa är viktigt och är avgörande för hur bra det blir. En indikator kan vara binär (uppfylld eller icke-uppfylld), men kan också ha flera värden. Varje värde förknippas med en sannolikhet att förekomma ihop med varje möjlig kategori, p(f=f C=c). Vid språktillämpningar uppskattas sannolikheterna från korpusdata. Utjämning tillämpas för att balansera för data med låg frekvens. Alla indikatorer betraktas som oberoende. Därför vägs de ihop som en produkt av sannolikheter.
Principer för Naive Bayes Naive Bayes är ett exempel på övervakad (eng. supervised) automatisk inlärning. Det krävs alltså en mängd träningsdata där enheter är klassificerade. Den teoretiska härledningen är baserad på sannolikheter, men i praktiken används ofta en logaritmisk skalförskjutning så att bästa kategori är den med lägst kostnad. sannolikheten p ger kostnaden -log(p) 0 < p < 1 ger - < log(p) < 0 log(pq) = log(p) + log(q)
Uppgift Textklassificering utifrån ämne modellera p(ämne dokument) Antalet ämnen kan vara stort, ekonomi, sport, inrikespolitik, utrikespolitik, hälsa,... Kategoriseringen kan vara envärd eller flervärd, Vid envärd klassificering väljs det ämne som har högst sannolikhet, Vid flervärd klassificering väljs alla kategorier som t.ex. överstiger ett givet tröskelvärde, baserat på ett antal binära klassificerare.
Textklassificering utifrån ämne Givet tillräckligt med klassificerade texter, kan valet av indikatorer göras automatiskt med användning av termer T = { t i } med störst diskriminerande förmåga. F i = förekomst av t i i dokumentet, C* = argmax p(c) p(t i C) Alternativt kan vi använda vektorrumsmodell, N C i = 1 D = <F 1,..., F N > jämförs med <p(t 1 C), p(t N C)> även fraser (bigram och trigram) kan användas,
Betydelsebestämning Betydelsebestämning innebär att bestämma en ordförekomsts betydelse i en given kontext. Exempel: Vilken betydelse av ordet 'stryka' används i följande mening: Du stryker dig från sändlistan genom ett tomt mail till: leavedagens@nyheter.skolporten.com
Ord och betydelser Vad är en ordbetydelse? Teoretiska svar ges av lingvister, språkfilosofer m.fl. Praktiskt svar: det som i ett (stort) lexikon är definierat som en betydelse, t.ex. Nationalencyklopedins ordbok, Wordnet,
Ett lexikonutdrag (källa: Svensk Ordbok) stryka, v. 1 föra handflatan längs med någonting (a) med användning av andra kroppsdelar, (b) i syfte att avlägsna ngt (c) i syfte att föra samman något 2 belägga en yta med färg eller annat mjukt ämne 3 släta ut tyg med hett strykjärn 4 dra streck med penna i anslutning till ngt skrivet (a) som markering, (b) för att ta bort ngt (c) bildligt utesluta, ta bort 5 hala ned flagga 6 förflytta sig smygande eller dold
Semantiska relationer mellan lexem synonymi strikt synonymi (utbytbarhet i alla kontexter) extensionellt överlapp (WordNet: synsets) pojke, kille, grabb, kis, gosse,... flertydighet homonymi/homografi (samma form, helt olika betydelse) kurs; fil;... polysemi (samma form, olika betydelse) fot; grön; stryka;...
Betydelsebestämning med korpusdata ett stort antal förekomster av ett ord märks upp med avseende på sin betydelse i olika meningskontexter. Dessa delas upp i träningsdata och testdata. Uppgiften är att utforma ett ordbetydelsesystem som presterar så bra som möjligt på testdata Exempel: <s id= 36 sense= stryka-6 >Det visade sig alltså att det inte bara är en utan minst två, kanske tre vargar som stryker omkring bland villorna här på området</s>
Betydelsebestämning med definitionsdata från stora lexikon eller ordnät ord i kontexten av en given förekomst jämförs med ord från definitionerna, ev. utvidgat med definitioner av ord som den första definitionen Exempel: gubben strök väggen med blå färg stryka-2: belägga en yta med färg eller annat mjukt ämne
Hur stor kontext behövs? stryks då stryks fyra, då stryks fyra nollor Rumänien, då stryks fyra nollor från i Rumänien, då stryks fyra nollor från sedlarna fönster
Betydelsebestämning med Naive Bayes Identifiera ett antal kontextindikatorer för ordet som ska betydelsebestämmas, t.ex. ord eller lemma före/efter, ord eller lemma två positioner bort, förekomst av en viss klass av ord i ett fönster runt ordet Låt dessa svara mot elementen i en vektor O = <f 1,, f n >; Uppskatta från träningsdata för varje betydelse s, p(f i s); Utjämnning är nödvändig för att uppskatta sannolikheter för indikatorer som ej setts i träningsdata.
Bästa gissning = mest sannolika betydelse Givet en förekomst av ordet vars kontext svarar mot vektorn O, välj den betydelse s* som är mest sannolik i kontexten, dvs s* = argmax p(s O) = (enligt Bayes regel) s argmax p(s)p(o s) / p(o) = argmax p(s)p(o s) s s
Naive Bayes - antagandet p(s) uppskattas med den relativa frekvensen i träningsdata, p(o s) uppskattas med produkten Π p(fi s) 1 i n Detta innebär som förut att vi räknar som om indikatorerna är oberoende.