Variator Automatisk synonymvariering av text

Relevanta dokument
Gränssnitt för FakeGranska. Lars Mattsson

Installationsbeskrivning för CAB Service Platform med CABInstall

INSTALLATION AV KLIENT

Handbok RSIbreak. Tom Albers Bram Schoenmakers Översättare: Stefan Asserhäll

INSTALLATION AV KLIENT

Produktionsstöd har erhållits från Specialpedagogiska skolmyndigheten

Inlämningsuppgift: Pronomenidentifierare

Utveckling av simulator för ärendehanteringssystem

OOP Tentamen

Taltaggning. Rapport av Daniel Hasselrot , 13 oktober 2003

Klustring av svenska tidningsartiklar

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

Lathund - Konfiguration av PLC och dator

Utveckling av ett grafiskt användargränssnitt

För att kunna använda konsulentuppsättningarna, skall på varje enskild dator göras följande inställningar.

Laboration: Whitebox- och blackboxtesting

Introduktion till programmering SMD180. Föreläsning 9: Tupler

FÖRETAGETS GRAFISKA PROFIL

INSTALLATION AV KLIENT

Kristoffer Eriksson Christer Oscarsson Andreas Dahlberg Martin Bengtsson

Word- sense disambiguation

Guide för behörighetssystemet i Matilda

Programmering II (ID1019) :00-11:00

ARX på Windows Vista, Windows 7 eller Windows 2008 server

Översikt. Experimentell metodik. Mer exakt. Människan är en svart låda. Exempel. Vill visa orsakssamband. Sidan 1

Utveckling av webbapplikationer med.net, DVA213 (1 av 5)

Tekniker för storskalig parsning

Windows 10 systemverktyg

Konfidensintervall i populationsbaserade studier varför behövs de? Therese Andersson Sandra Eloranta

INSTALLATION AV KLIENT

Användarhandledning för RSV:s Elektroniska brevlåda

Datastrukturer och Algoritmer D0041D

Logging Module into the PRIME Core

BRIDGE MASTER 2000 SCANDINAVIA av Fred Gitelman

Övningen vill visa på vikten av valet av datastruktur, trots att de ofta erbjuder samma funktionalitet genom sina gränssnitt.

TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng

RIGMOR SANDER SPALTER Sid 1 (6)

Introduktion. Skriv in användarnamn och lösenord

INSTALLATION...3 ATT KOMMA IGÅNG...3 PROGRAMMETS DESIGN...4 LÄGGA TILL TABELL...4 EDITERA TABELL...4 EDITERA RELATION...5 SPARA OCH AVSLUTA...

Digitalt lärande och programmering i klassrummet

Manual - 3D-skrivare ZYYX

TUTORIAL: SAMLING & KONSOLL

Statistiska undersökningar - ett litet dokument

Handbok KWatchGnuPG. Marc Mutz Utvecklare: Steffen Hansen Utvecklare: David Faure Översättare: Stefan Asserhäll

Bruksanvisning för SeSAm GENETICA : Mendels Lagar

Språkteknologi och Open Source

Kravspecifikation. Sammanfattning. Fyra i rad Javaprojekt inom TDDC32. Version 2.0. Datum Dokumentnummer

n-abler STYRKULA Handbok Underhåll Avfallshantering Förbrukad produkt ska hanteras som elektronikavfall

Datorn har utvecklats till vårt viktigaste. Datorn som språkgranskare SPRÅKTEKNOLOGI OLA KNUTSSON

Innehåll. Grammatikkontroll i Granska. Problemställning. Datorstöd för skrivande. Vilka metoder finns? Granskas uppbyggnad

Hjälper dig att kontrollera din text efter felstavningar och lättförväxlade ord. Manual

Introduktion till programmering D0009E. Föreläsning 5: Fruktbara funktioner

Kommentarer till bedömningsmatris för Tala Kurs B

Hjälpdokument för övergång till K3 i Hogia Audit/Bokslut

Utförande: I exemplet så kommer vi att utgå från att man gör laborationen i en Virtuell miljö (Virtualbox).

JavaScript del 5 Funktioner

Användarhantering Windows 7 I denna laboration kommer vi att skapa nya användare och grupper och titta på hur man hantera dessa.

SPRINT-HANDBOK (version 0.4)

Kontrollpaket check_utbtillf_avgift

Manual HSB Webb brf

Installation och setup av Net-controller AXCARD DS-202

Funktionsbeskrivning

RDT Externt Webbtjänst Gränssnitt

Hela UR:s utbud, SLI Plusutbud, SLI fria utbudet kommer i sin helhet att finnas som adaptiv stream.

Kopiering av objekt i Java

Beskrivning av gesällprov RMI Chat Mikael Rydmark

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1

Barn som bråkar. - beteendeproblem i förskolan. Manual för studieledare. ÖREBRO KOMMUN Kommunstyrelseförvaltningen pedagog.orebro.

BRÅDSKANDE SÄKERHETSMEDDELANDE. AQUIOS CL flödescytometrisystem (artikelnr B30166)

Hur man arbetar med OL Laser

SymWriter 2 Komma igång med symboldokument

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

n-abler PRO STYRKULA Handledning

Introduktion till programmering SMD180. Föreläsning 5: Fruktbara funktioner

INNEHÅLLSFÖRTECKNING... 1 INLEDNING ORDBOKEN I VERKTYGSLISTEN ORDBOKEN... 3

EasyCall MANUAL SVENSK MANUAL

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5. Laboration 4 Lådplanering Exempel på grafik, ett avancerat program Frågor

Analytisk Felsökning, AFS

Bootstrapping för substantivtaggning

Vilken version av Dreamweaver använder du?

Funktionsbeskrivning

Repetition av OOP- och Javabegrepp

Konsolfönster i Windows Momentet ingår i kursen PDA DTR1206 Lab 1 DOS Konsolfönstret

Introduktion till After Effects

Taggning av räkneord som årtal eller andra räkneord, Språkteknologi 2D1418, HT 01 Jonas Sjöbergh, , 15 oktober 2001

Inlämning Lämna in uppgifterna på Studentportalen.

TDDC74 Programmering: Abstraktion och modellering Dugga 2, kl 8 10, 5 mars 2015

Statistisk Maskinöversättning eller:

Manual Pausit. Vi på Pausit vill sprida välmående genom en liten insats som ger stor effekt!

Ibruktagande av Statistikcentralens gränssnittstjänster i QGISprogrammet

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

OOP Tentamen

Online modulen är en tilläggsmodul som också ger tillgång till Näsgård Mobile.

Funktionsbeskrivning

Repetition av OOP- och Javabegrepp

Manual Pausit 2.0. Klicka på Träna Nu kommer du direkt till övningsspelaren och ett pass startas.

EasyLog 5.7 release noteringar. April 28, Version 1.0 Swedish

VIKTIGT SÄKERHETSMEDDELANDE

Legorobot. Lär dig programmera en legorobot. Teknikåttan Ola Ringdahl Lena Kallin Westin

Transkript:

Variator Automatisk synonymvariering av text Magnus Rosell 27 mars 2006 Sammanfattning Detta är en rapport om min individuella uppgift i kursen Språkgranskningsverktyg inom GSLT. Den beskriver ett litet program för variering av texter med avseende på synonymer ochen första utvärdering av detta. 1 Introduktion En text som upprepar samma ord ofta kan kännas monoton. Ett sätt att råda bot på detta är att använda synonymer. Med tillgång till en lista synonympar kan detta automatiseras. Variator är ett synonymutbytarprogram. Det utgår från Folkets synonymlexikon 1 (Kann and Rosell, 2005) ochanvänder sig av grammatikgranskningsprogrammet Granska 2 för att kontrollera att texten fortfarande är grammatisk då bytena gjorts. 2 Gränssnitt Variator är implementerat i java ochkörs enligt följande. Usage: java -cp.:src/:lib/xerces.jar:lib/cpdetector.jar Variator [-p varpart] [-t varthreshold] [-a appearleast] [-s synonymlistfile] [-l stoplistfile] [-o outfile] filetovary Default: varpart = 1.0 [0.0, 1.0] varthreshold = 3.0 [3.0, 4.9] appearleast = 0 synonymlistfile = lists/folketssyn.xml stoplistfile = lists/stopplista.txt outfile = System.out 1 http://lexin.nada.kth.se/cgi-bin/synlex 2 http://www.nada.kth.se/theory/projects/granska/

Figur 1: Variator systemöversikt varpart anger sannolikhet för att Variator ska försöka byta ut ett ord som går att byta. Ett ord anses kunna bytas då det har synonymer som verkar passa ochförekommer fler än appearleast gånger i texten. varthreshold är kravet på synonymlikhet vid utbytande. Detta överensstämmer med synonymitet som det definieras i Folkets synonymlexikon. appearleast minsta antalet gånger ett ord måste förekomma i texten för att vara en kandidat att byta ut. synonymlistfile anger sökvägen till en lista med synonymer i rätt format. stoplistfile anger sökvägen till en stopplista med rätt format. Att byta ut väldigt vanliga (konjunktioner, pronomen etc.) ord ger ofta mycket märkliga resultat. 3 Systemöversikt Väldigt kort beskrivet utgår programmet från att texten är grammatiskt korrekt. Sedan varierar det den ochser till att grammatikaliteten är den samma. Figur 1 ger en överblick över programmets funktion. Kombinerad med en kort beskrivning av delarna borde den ge förståelse för hur programmet fungerar. 2

3.1 Övre vänstra delen av figuren Här behandlas ett ord i taget. Lemmatisering, Ordböjare, ochpos-taggning är olika funktioner hos Granska. Ordräknaren räknar lemman (ej stoppord) ochhåller reda på att dessa förekommer tillräckligt många gånger (appearleast). Synonymer ger synonymer som är tillräckligt lika (varthreshold). Ordböjaren ger alla böjningsformer av ordet. De enskilda orden PoS-taggas. Om ett förslag har rätt PoS-tagg (Lika?) går det vidare men varje synonym ger bara med viss sannolikhet (Slump) upphov till en textvariant (varpart). Alla synonymers böjningsformer ges dessutom slumpmässig ordning. Bara synonymer som är kongruenta med ursprungsordet betraktas. Det är för svårt att analysera alla inkongruenser i referenser som kan uppstå annars. 3.2 Nedre högra delen av figuren Här behandlas hela texten, som oftast är ett stycke eller motsvarande. En av alla textvarianter som ordvis har rätt PoS-taggning analyseras som en hel text. Får den inte samma taggning förkastas den (Lika?). En variant med samma taggning som den ursprungliga returneras (ut). I värsta fall returneras ursprungstexten. Varianterna tas fram sekvensiellt, utan att backa. Fel som fortplantar sig bakåt i texten hanteras genom att gå tillbaka till ursprungstexten först för det specifika ordet, sedan från problemet ochframåt, ochsist för hela texten. 4 Reflektioner Några reflektioner: Att dela på sammansättningar skulle tillföra fler möjliga textvarianter. Nu jämförs först pos-taggen på enskilda förslagsord med taggen på motsvarande ord i texten. Bara de ord som klarar detta går vidare till en hel textanalys. Anledningen är Granskas robusthet som är ett problem i detta sammanhang. Ett ord med en märklig böjning taggas ofta med hjälp av omgivningen till något som är rimligt. Här vill vi dock tvinga det nya ordet till samma böjning som ursprungsordet. 3

Nu är ordningen i vilken de olika tillräckligt goda förslagen provas helt slumpmässig. Ett annat sätt vore att välja dem i ordning efter synonymitet. Det skulle dock leda till mindre variation. Istället skulle man kunna välja förslag med sannolikhet baserad på synonymitet. 5 Utvärdering Det är naturligtvis väldigt svårt att utvärdera ett sånt här program. Ett enkelt första försöka är att köra det på ett antal texter ochbedöma om de fortfarande förmedlar samma innehåll. Det blir väldigt subjektivt, men ger ändå någon form av inblick. Jag har provkört på de tre texterna i tabell 1 med standardinställningar enligt avsnitt 2. Det gav resultaten som visas i tabell 2 Som jämförelse körde jag också med följande inställningar: varpart = 0.5 [0.0, 1.0] varthreshold = 4.0 [3.0, 4.9] appearleast = 2 Det gav resultaten som visas i tabell 3. Observera att antalet gjorda (*) byten i tabellerna är en rejäl underskattning. Då det på något sätt backar tillbaka till ursprungstexten delvis eller fullständigt håller inte programmet reda på hur många det bytt. Dessa små försök säger inte så mycket. Resultat är (inte så oväntat) väldigt beroende av kvaliteten på synonymlistan. Det är väldigt svårt att byta ut vanliga ord, som till exempel att ändra tagit bort till gripit bort. Ett annat problem är stilskillnader mellan synonymer, något som inte hanteras alls nu. Ordet häst har tex både de lite mer gammalmodiga och högstämda synonymerna fåle och springare jämte den lustiga ochsynnerligen talspråkliga havremoppe. Text Innehåll Antal ord Häst Annons om ridresa 175 DN Utrikesnyhet om spänningar mellan Kina och USA 239 Abs Sammanfattning av min licentiatavhandling 411 Tabell 1: Texter Byten Text Möjliga Förväntade Gjorda* Bedömning Häst 49 49 41 undermåligt DN 56 56 28 ok Abs 138 138 40 undermåligt Tabell 2: Resultat standardinställningar 4

Byten Text Möjliga Förväntade Gjorda* Bedömning Häst 2 1.0 2 ok DN 7 3.5 7 ok Abs 25 12.5 7 lite sämre 6 Exempel Tabell 3: Resultat alternativ inställning Här presenterar jag i tabellerna 4 och5 några intressanta/roliga exempel från texterna Häst och Abs med de två inställningarna enligt förra avsnittet. Dessa exempel finns också på projektets hemsida: http://www.csc.kth.se/ rosell/courses/sprkgr/sprkgr.html Ursprunglig Det finns hästar för alla, är du nybörjare får du en lugn häst och har du ridit länge finns det många hästar att välja mellan. Standard Det finns havremoppar för alla, är du färsking får du en flegmatisk kuse ochhar du ridit länge finns det många fålar att utse mellan. Variant Det finns hästar för alla, är du nybörjare får du en lugn häst och har du ridit länge finns det många hästar att välja mellan. Tabell 4: Exempel från häst-texten 7 Tack Tack till Martin Hassel för java-gränssnittet mot Granska, alla som jobbat med Granska, samt alla som bidragit till Folkets synonymlexikon. Referenser V. Kann and M. Rosell. 2005. Free construction of a free swedishdictionary of synonyms. In Proc. 15th Nordic Conf. on Comp. Ling. NODALIDA 05. URL http://www.nada.kth.se/theory/projects/infomat/rapporter/kannrosell05.pdf. 5

Ursprunglig Textklustring, åtminstonde som det beskrivs här, utnyttjar sig av den vektorrumsmodell, som används allmänt inom området. I denna modell representeras texter med orden som förekommer i dem ochtexter som har många gemensamma ord betraktas som lika till innehåll. Detta ger lite bättre resultat ochminskar antalet ord i representationen. Det är mycket svårt att utvärdera textklustringsresultat. Det ligger i sakens natur att vad som är en bra uppdelning av en mängd texter är subjektivt. Standard Textklustring, åtminstonde som det skildras här, exploaterar sig av den vektorrumsmodell, som brukas offentligt inom området. I denna forms företrädes skrifter med orden som inträffar i dem ochskrifter som har många kollektiva ord skärskådas som likadant till innanmät. Detta överlämna lite delikat utfall ochavta antalet ord irepresentationen. Det är mycket trassligt att evaluera textklustringsresultat. Det ligger i grejens natur att vad som är en cool fragmenteringars av en hop skrifters är subjektivt. Variant Textklustring, åtminstonde som det beskrivs här, utnyttjar sig av den vektorrumsmodell, som brukas allmänt inom området. I denna modell representeras texter med orden som förekommer i dem ochtexter som har många gemensamma ord betraktas som lika till innehåll. Detta ger lite förtjänstfull resultat ochminskar antalet ord i representationen. Det är mycket svårt att utvärdera textklustringsresultat. Det ligger i sakens natur att vad som är en bra uppdelning av en mängd texter är subjektivt. Tabell 5: Exempel från sammanfattningen 6