Kan datorn lära sig ordkunskap automatiskt? Arbetsseminarium 23/11-2004 Leif Grönqvist GSLT, MSI@VxU & ling@gu Vad? Hur? Varför? min avhandling skall handla om att få fram användbara semantiska vektormodeller En möjlig utvärderingsmetod: låt modellerna skriva högskoleprovet! Ordkunskapsdelen består av frågor på formen: ansats (huvudord) A. sammanfattning B. syfte C. fortsättning D. försök E. granskning En modell som klarar det bättre än slumpen kan vara användbar för exempelvis information retrieval 2 En semantisk vektormodell En semantisk vektormodell Räknas fram statistiskt utifrån en stor träningskorpus Varje ord eller dokument svarar mot en vektor Träningen bygger på antagandet att: Dokument (eller sektioner eller ordfönster) har ett semantiskt innehåll Orden i dokumentet har med detta innehåll att göra (och således med varandra) Ordvektorerna i ett dokument summeras till dokumentvektorn Redundans gör resultatet användbart gris gård äpple päron skär gul 3 4 Fråga modellen: vilka ord är närmast? > associate -m models -c bt10m ekonomi (kort/lång kontext) ekonomi 1.00 ekonomi 1.00 utvecklingen 0.82 ekonomisk 0.82 ekonomin 0.75 ekonomiska 0.76 framtiden 0.72 ekonomin 0.74 avtalskrav 0.70 behålla 0.72 fördelar 0.70 utgifterna 0.71 > associate -m models -c bring ekonomi ekonomi 1.00 ekonom 0.96 vård 0.94 renhållning 0.94 ekonomist 0.93 omvårdnad 0.93 En traditionell vektormodell En dimension för varje indexterm Ett dokument är en vektor i ett högdimensionellt rum Likhet mellan dokument beräknas genom att mäta cosinus för vinkeln mellan vektorerna (ett tal mellan -1 och +1) Motsvarar ren nyckelordssökning Problem Svårt att välja indextermer Dokument som handlar om samma sak kan använda olika termer -> de ses som helt olika i modellen 5 6 1
Latent semantic indexing För att undvika problemen på förra sliden görs en projicering till färre dimensioner (Singular Value Decomposition) Varje ny dimension är en blandning av flera av de ursprungliga och har ingen egentlig mening Vinklar mellan vektorer bevaras så bra som möjligt Alltså: vi kan beräkna likhet mellan vektorer bättre än förut Användbara egenskaper Ger ett avståndsmått mellan ord/dokument Kan ge relevanta dokument givet ett (eller flera) ord även om det inte finns i dokumenten Kan ge dokument som handlar om ungefär samma sak som ett exempeldokument Kan ge en lista på relevanta ord för ett dokument Kan ge listor på ord som liknar exempelord 7 8 Brister i modellen 1. Klarar inte av att hantera fraser Enheterna i modellerna är ord och dokument 2. Flertydiga ord ställer till det Borde egentligen svara mot olika vektorer i det semantiska vektorrummet Kommer att svara mot ett medelvärde av dem Lägger till brus till modellen Observera att namn är väldigt flertydiga! Mina försök att lösa 1. ger upphov till flera alternativa vektormodeller 2. fås delvis på köpet Utvärderingsmetoder ORD-delen på högskoleprovet Frågor Alternativ Facit Traditionell information retrieval Dokumentsamling Sökfrågor Relevansbedömningar Nyckelordsextraktion Dokument Manuellt utvalda nyckelord Samtliga innehåller subjektiva bedömningar 9 10 Träningsdata Vad jag har: Tidningstext: GP, HD, mm 1993-2003 Upp till 500 miljoner tokens, 3 miljoner typer Bring Tesaurus från 1930 1000 huvudord 150 000 tokens, 60 000 typer Lexin Modern ordbok för invandrare 20 000 lemman, 22 000 lexem Parole: tidningstext och romaner 21 miljoner tokens, 600 000 typer Testdata: ORD200 Ordkunskapsdelen från fem högskoleprov Totalt 200 frågor med fem alternativ för varje En hel del ovanliga och/eller gammaldags ord Fraser förekommer ofta: psykoprofylax A. återspegling av känslolivet i t.ex. gester och kroppshållning B. förmåga att med tankekraft sätta föremål i rörelse C. förmåga att se in i framtiden D. metod för att förhindra oro och smärta vid t.ex. förlossning E. mätning av mentala prestationer, förmågor och personlighetsdrag 11 12 2
Ett evalueringsexperiment Jag har Olika träningsdata Olika sätt att ta fram modellen Eventuellt flera sätt att slå upp svaren för att hantera fraser 1. Beräkna vektorerna för huvudordet O och alternativen A-E 2. Om O finns i modellen väljs alternativet vars vektor ligger närmast huvudordsvektorn 3. Annars väljs ett alternativ slumpmässigt Problem Tyvärr fungerar inte programmet jag använt för att beräkna modellerna helt perfekt Tills vidare får jag inga vektorer utan bara listor på de ord som ligger närmast i modellen Experimentet modifieras tillfälligt: Tag fram de 2000 ord som ligger närmast huvudordet O Leta från början av listan efter det första ordet som förekommer i svarsalternativen Välj det alternativ som innehåller alternativet Om inget av orden hittades: välj alternativ slumpmässigt 13 14 Problem 2 ORD200 innehåller som sagt många ovanliga ord Av 214 förekommande typer bland huvudorden: 10 av dem finns inte i någon av träningskorpusarna (åsiktsmässig, porslinsmålning, humus, igångsättning, fröställning, ) 30 andra har frekvens 1-4 Träningen av modellerna bygger på redundans Liknande studier Engelska modeller har utvärderats med Toefl ett ordkunskapsprov för invandrare Toefl är mycket lättare än ORD200 Enklare ord eftersom målgruppen har lägre språknivå Inga fraser, dvs. det handlar om att hitta synonymord Datorprogram har uppnått 90% korrekta svar 15 16 Mina experiment: modellerna Jag utför testerna för några olika modeller enligt experimentspecen: 10M 10 miljoner ord tidningstext 150M 150 miljoner ord tidningstext bring Bring lb Lexin + Bring b10m Bring + 10M Dessa görs i två varianter: Titta på kort kontext (±15 ord) Titta på lång kontext (±500 ord) Bring görs dessutom i två extraversioner som svarar mot att fraser slagits isär i ord Nu har vi alltså: bring _long, bring _short, bring _long_spl, bring _short_spl, 10M _short, 10M _long, 150M _short, 150M _long, lb _short, lb _long, b10m _long, b10m _short Vi lägger till modellen slump som bara gissar Inledande resultat 1 bring gissar syfte på ansats (113) I bringmodellen dyker syfte upp på 113:e plats: 1. ansats 1.00 2. ingivelse 0.94 3. uvertyr 0.94 4. destination 0.94 5. snilleblixt 0.93 112. inspiration 0.86 113. syfte 0.86 114. observation 0.86 1998. roddarmadam 0.65 1999. överbringare 0.65 2000. palankinbärare 0.65 17 18 3
Inledande resultat 2 bring _long_spl gissar liten kärleksgud på amorin (25) rätt! Det funkar (ibland)! 1. älskarinna 1.00 2. älsklingsidé 1.00 3. älskogshandel 1.00 24. humanitetssjäl 1.00 25. kärleksgud 1.00 26. kärleksmåltid 1.00 1995. marschall 0.37 Hur ofta? Inledande resultat 3 Ibland är flera modeller överens: 150M _short gissar uttrycksfull på pregnant (908) rätt! bring _short gissar uttrycksfull på pregnant (334) rätt! bring _long gissar uttrycksfull på pregnant (475)rätt! bring _long_spl gissar uttrycksfull på pregnant (796) rätt! bring _short_spl gissar uttrycksfull på pregnant (586) rätt! lb _short gissar uttrycksfull på pregnant (334) rätt! lb _long gissar uttrycksfull på pregnant (475) rätt! Ibland vet ingen modell: När ingen modell vet så tar slumpen över: bt10m _short gissar blomknopp på stickling (slump) 19 20 Inledande resultat 4 Intressant när modellerna tror olika: 10M _short gissar litet lusthus på burspråk (slump) 150M _short gissar träpanel på innervägg på burspråk (241) 150M _long gissar litet lusthus på burspråk (slump) bring _short gissar trappa till vind på burspråk (723) bring _short_spl gissar fönsterförsedd utbyggnad på burspråk (725) rätt! bring _long gissar trappa till vind på burspråk (454) bring _long_spl gissar fönsterförsedd utbyggnad på burspråk (495) rätt! lb _short gissar trappa till vind på burspråk (723) lb _long gissar fönsterförsedd utbyggnad på burspråk (725) rätt! Dags att titta på en resultattabell! Körning #1: Gissa bara för sedda ord rätt! vet ej bring _long_spl 78 (39) 75 (38) 47 (24) bring _long 75 (38) 82 (41) 43 (22) lb _long 75 (38) 82 (41) 43 (22) lb _short 66 (33) 90 (45) 44 (22) bring _short 66 (33) 90 (45) 44 (22) bring _short_spl 59 (30) 95 (48) 46 (23) slump 40 (20) 0 (0) 160 (80) 150M _short 12 (6) 163 (82) 25 (12) 10M _short 1 (0) 192 (96) 7 (4) 10M _long 1 (0) 186 (93) 13 (6) 21 22 Körning #2: Gissa även på osedda ord rätt! vet ej bring _long_spl 94 (47) 0 (0) 106 (53) lb _long 91 (46) 0 (0) 109 (54) bring _long 91 (46) 0 (0) 109 (54) bring _short 82 (41) 0 (0) 118 (59) lb _short 82 (41) 0 (0) 118 (59) bring _short_spl 80 (40) 0 (0) 120 (60) bt150m 46 (23) 0 (0) 154 (77) slump 40 (20) 0 (0) 160 (80) 10M _short 38 (19) 0 (0) 162 (81) 10M _long 39 (20) 0 (0) 161 (80) Rätt och fel för olika exempel Vi tar en lite djupare titt på bring _long_spl Ordet som avgör valet hittas på plats 1-2000 i en lista på relevanta ord: 2 övertalning bevekelsegrund 2 rätt! känslig sensibel 2 rätt! tillägna sig anamma 2 rätt! tolerans fördragsamhet 2 rätt! valspråk motto 3 rätt! lärosats dogm 3 rätt! tvärtom vice versa 4 rätt! inrotad vana slentrian 4 rätt! snobb dandy 4 rätt! stark sinnesrörelse affekt 23 24 4
Längre ner ser det sämre ut 199 fröskida stickling 200 rätt! ruinera utarma 202 gemensamt uttalande dementi 204 rätt! minspel mimik 208 rätt! avvikelse anomali 223 stor längtan vurm 242 begränsad giltighet legitimitet 250 rätt! kuva kväsa 258 rätt! motsättning antagonism 268 genast omsider 275 skrin konvolut 288 rätt! tö dagsmeja 307 föra bakom ljuset ringakta 25 Och på slutet ännu sämre 1351 träna sig stålsätta sig 1374 vara utvald vara i ropet 1504 rätt! okuvlig obändig 1546 vara sent ute vara på upphällningen 1567 förnya moderera 1576 skriftväxling bibliografi 1688 smal pelare galon 1693 omöjligt hugget som stucket 1703 löfte appell 1781 rätt! anstränga sig vinnlägga sig 1826 flytta husera 1869 rätt! motsägelsefull paradoxal 26 Diskussionspunkter Fraser i ORD200 verkar ställa till bekymmer Gäller nog även för traditionell IR och i ännu högre grad för nyckelordsextraktion Hur ska man pressa in fraser i en vektormodell utan att förstöra den? Tuppler Shallow parsing Andra utvärderingsmetoder med lättåtkomliga guldstandarder? Kan jag utvärdera objektivt? Är LSI lingvistiskt sunt? 27 5