Lösningsförslag till tentamen i Språkteknologi 2D1418, 2004-10-18 1. Stavningskontroll utan ordlista (10 poäng) a) Med 29 bokstäver i alfabetet och en specialbokstav för ordbörjan/ordslut så finns det 30^4 möjliga bokstavsfyrgram, vilket är ungefär 800000 stycken. Reservera en bit per fyrgram och låt denna bit vara 1 om fyrgrammet förekommer i svenska och 0 annars. Hela tabellen blir då 100 kbyte och uppslagning i den går mycket fort. Cirka 6 % av de möjliga bokstavsfyrgrammen förekommer i svenska. När Stava ska kontrollera om ett rättelseförslag är ett riktigt ord så slår programmet upp alla ordets bokstavsfyrgram i fyrgramstabellen och underkänner ordet om något av fyrgrammen inte finns i svenska. b) Gå igenom en stor korpus (till exempel hela SUC) och räkna hur många gånger varje bokstavsfyrgram förekommer. I den tredje ordningens markovmodellen har vi ett tillstånd för varje bokstavstrigram (som förekommer). Sannolikheten för en övergång från tillstånd abcd till tillstånd bcde är C(bcde)/C(bcd)=C(bcde)/(sum C(bcdx)) där x löper över alla 30 bokstäver och C() är korpusfrekvensen. Startsannolikhetsfördelningen ges av frekvenserna för bokstavstrigram som förekommer för i ord dividerat med antalet ord i korpusen. För varje ord får vi då en totalsannolikhet som är en produkt av startsannolikheten och övergångssannolikheterna. Vi behöver nu sätta en tröskel för vad ett ords totalsannolikhet ska vara för att det ska räknas som korrekt. Det blir en tröskel för varje ordlängd, och trösklarna ska sättas så att nästan inga riktiga ord hamnar under tröskeln. När man kontrollerar ett ord måste man alltså slå upp sannolikheterna, beräkna produkten, jämföra med rätt tröskel och underkänna ordet om produkten är mindre än tröskeln.
2. Syntax (2 poäng) Frasstrukturträd: S VP NP NP DT JJ NN VB DT NN Den gamla gumman åt en smörgås Dependensträd: Root main: åt subj: obj: den det: gumman attr: gamla en det: smörgås subj=subjekt obj=objekt det=determinerare attr=attribut
3. Maskininlärning (8 poäng) Samla in en korpus från de domäner som är intressanta, t.ex. nyhetstexter. För att få bra resultat vill vi ha supervised learning, d.v.s. vi vill ha ett annoterat träningsdata. Gå igenom texterna och märk upp kvinnor respektive män. Dela detta data i träningsdata (större delen, mer träningsdata ger bättre resultat), testdata och eventuellt optimeringsdata. Träna en maskininlärningsalgoritm, låt säga beslutsträd, på träningsdatat. Som särdrag matar vi in t.ex. ord i närheten, sista bokstaven i ordet självt och närmsta efterföljande pronomen. För att undvika att slumpmässiga snedfördelningar mellan kvinnor och män i träningsdatat lärs in (överinlärning) testar vi då och då vårt beslutsträd på optimeringsdatat. När ett djupare träd (tränat mer på träningsdatat) börjar ge sämre resultat på exemplen i optimeringsdatat avbryter vi träningen. För att få bra resultat utvidgar vi vårt beslutsträd med stora ordlistor på t.ex. kvinnonamn m.m. Slutligen testar vi hur bra resultatet blir på vårt testdata (som vi inte har använt tidigare), så vi får en uppfattning om hur bra systemet kommer fungera på nya texter. 4. Automatisk språkgranskning och datorstödd språkinlärning (5 poäng) De risker med automatisk språkgranskning som hör ihop med dragkampen mellan täckning och precision är främst missade fel och falska alarm. Om ett program har låg täckning innebär det att många fel kommer att missas, men programmet genererar få falska alarm. För att hitta fler fel måste man ofta sänka precisionen, vilket gör att fler falska alarm kommer att genereras. För skribenterna innebär det t.ex. att de fokuserar på de områden i texten där språkgranskningsprogrammet har pekat ut många fel, medan textavsnitt utan felmarkeringar, men med missade fel i, inte ägnas någon manuell granskningsenergi. En ovan skribent kan därmed få en känsla av att texten är färdiggranskad när alla felmarkeringar är borta i texten. Falska alarm å andra sidan gör många språkinlärare osäkra, och man följer kanske programmets råd trots att programmet är fel ute. Även vana skribenter kan tjatas ner av upprepade falska alarm, eller att man följer programmets råd av bara farten. Många falska alarm kan också medföra att bra alarm inte syns bland alla falska. 5. Maskinöversättning (3 poäng) En metod är s.k. transferbaserad maskinöversättning. I transferbaserade system arbetar man med språkpar, t.ex. svenska och engelska. Transfermetoder bygger på kunskap om språkliga skillnader mellan de språk som bildar språkparet. Tre huvudsteg är analys, transfer, och generering. Analys innebär grammatisk analys med ett eller flera parseträd som resultat. Transfersteget innebär att man transformerar om parseträd från källspråket till motsvarande parseträd i målspråket. När det väl finns ett parseträd för målspråket översätts och genereras orden. I många fall måste även lexikal transfer ske, ett exempel är att hantera transfer av sammansatta ord i svenska och särskrivna ord i engelska.
En uppenbar nackdel är man arbetar med just språkpar, vilket innebär stora kostnader när nya system för nya språkpar skall byggas. Det har man dock i vissa fall löst genom att alltid gå via engelska. Det vill säga man bygger ett transferbaserad system för språket X och engelska, och dessutom ett transfersystem för språket Y och engelska. När man sedan vill översätta mellan språken X och Y, översätter man först från språket X till engelska, och därefter mellan engelska till språket Y. Givetvis kan översättningen förvanskas på vägen. 6. Informationssökning (6 poäng) a) Värdet ska modellera hur viktig term i är för att beskriva innehållet i text j. b) Trunkering - att bestämma att bara ta med ett på förhand bestämt antal tecken av varje term Stemming - affixstrippning (ger "nästan grundform") Lemmatisering - att genom morfologisk analys ta fram ordets grundform Liknande ord kommer att betraktas som samma. Söker man på tvättbrädor får man även träff på tvättbräda. c) Att normalisera dokumentens vektorer, d.v.s. skala dem till enhetslängd. Det är inte värdet för varje enskild term som är viktig för textrepresentationen utan förhållandet mellan värdena. Två texter med samma proportioner mellan de ingående termerna antas väldigt lika till innehåll. 7. Klustring (6 poäng) a) Resultatet från en hierarkisk algoritm är ett kluster som i sin tur består av mindre kluster osv ända ned till enskilda dokument; en klusterhierarki. Partitionerande algoritmer delar en mängd texter i ett antal delar (kluster) som inte ingår i en hierarki, en platt uppdelning. b) Ett av följande * eller någon annan algoritm. * K-Means 1) Välj slumpmässigt ut k texter som utgångscentroider. 2) Bilda ett kluster för varje centroid bestående av alla texter som är mest lika dem. 3) Beräkna nya centroider för alla kluster. 4) Uppreppa 2 och 3 tills ett stoppkriterium nåtts. Exempel på kriterier: a) tills inga texter byter kluster b) 10 iterationer c) tills ett förutbestämt värde på klusterkvalite nåtts * Agglomerativ 1) Bilda ett kluster av varje text. 2) Slå samman de två kluster som är mest lika varandra. 3) Upprepa 2 tills ett stoppkriterium nåtts.
Exempel på kriterier: a) tills det bara finns 1 kluster b) tills det finns k kluster c) tills ett förutbestämt värde på klusterkvalité nåtts 8. Utvärdering (5 poäng) Hur bra eller dåligt ett resultat av en utvärdering är beror dels på vad man försöker mäta men också på vad det man försöker mäta svarar mot. Om människor kan utföra en uppgift med 78 % säkerhet verkar det orimligt att datorn med sina begränsade möjligheter skall kunna utföra den mycket bättre (snabbare kanske). Om människor då utför en uppgift med (i snitt) 78 % säkerhet och en annan med (åter i snitt) 99 %, så kan det vara så att ett maskinellt resultat på den förra på 76 % är bättre än ett maskinellt resultat på 92 % på den senare. Förutom att försöka uppskatta en möjlig övre nivå för förväntade resultat försöker man också oftast att uppskatta en förväntad lägsta nivå, s.k. baseline, som tas fram med någon naiv eller simplistisk metod. Denna svarar mot en slags lägsta acceptabla resultat. 9. Textsammanfattning och diskurs (5 poäng) Rethorical Structure Theory, eller RST, är en metod för diskursanalys som går ut på att man försöker identifiera centrala meningar i en diskurs (s.k. nukleärer eller kärnor) för att sedan koppla mindre centrala meningar (s.k. satelliter) till dem med olika relationer. Dessa relationer kan t.ex. vara av typen elaboration, kontrast, villkor eller resultat. Inom automatisk textextraktion skulle man t.ex. kunna använda RST för att välja ut främst kärnmeningar och även sådana satelliter som villkor eller resultat, men undvika att extrahera t.ex. elaborativa meningar. Inom automatisk textabstraktion skulle man å andra sidan kunna använda RST för att verifiera att man har lyckats generera en sammanhängande välbyggd text.