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

Relevanta dokument
Grundläggande textanalys, VT2013

ORDKLASSERNA I. Ett sätt att sortera våra ord

Identifiering av ordvitsar med Granska

Grim. Några förslag på hur du kan använda Grim. Version 0.8

Taltaggning. Rapport av Daniel Hasselrot , 13 oktober 2003

SUBSTANTIV = namn på saker, personer, känslor

Ordklasser och satsdelar

Kungl. Tekniska högskolan NADA Grundformer med Stava

Kongruensböjningen av adjektivet påverkas av substantivets genus och numerus.

Instuderingsmaterial: Adjektiv, Substantiv och Verb

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

grammatik Ordklasser, nominalfraser, substantiv

Innehåll GRAMMATIKKONTROLL I GRANSKA. Datorstöd för skrivande. Problemställning. Ola Knutsson

Kungliga Tekniska Högskolan Patrik Dallmann

De flesta orden finns under substantiv men flera exempel på verb och adjektiv finns också med i appen.

Ordklasser. Substantiv är benämningar på människor, djur, växter och föremål. Du kan sätta en, ett eller flera framför substantiv.

Gränssnitt för FakeGranska. Lars Mattsson

Persiska. Albin Finne. Mark Peldius D1418 Språkteknologi

ORDKLASSERNA I SVENSKA SPRÅKET

Dåtid:'' Perfekt'' Beskriver'att' något'har'skett.' Bildas'med' hjälpverbet' har.'

Institutionen för Lingvistik. NP-detektion UTVÄRDERING OCH FÖRSLAG TILL FÖRBÄTTRINGAR AV GRANSKAS NP-REGLER

Lathund för Gustavas ordböcker

Jag kan bli rektor ORDLISTA CHRISTINA WAHLDÉN ARBETSMATERIAL FÖR LÄSAREN

Inlämningsuppgift: Pronomenidentifierare

Grammatik för språkteknologer

glad simma luft koka barnslig pojke moln lycka jord överenskommelse Pelle femte varför arg ropa

Granskas regelspråk. Ola Knutsson. Uppdaterad IPLab, Nada, KTH

Maskininlärning med boostrapping. Maskininlärningslabb i Språkteknologi

Svensk minigrammatik

1. Inledning, som visar att man inte skall tro på allt man ser. Betrakta denna följd av tal, där varje tal är dubbelt så stort som närmast föregående

Ett dockhem Arbetsmaterial för läsaren Författare: Henrik Ibsen

Bilaga 4: Tidsuppskattning. Wikispeech. en användargenererad talsyntes på Wikipedia

2. Substantiv kan man sätta en, ett, flera eller all, allt, alla framför.

Praktisk Svenska 2. Jag kan Skapa och använda olika minnesknep Studieteknik 1

ADJEKTIV. En cykel kan t ex vara: stor, svart, snabb, gammal, bra, fin flerväxlad och rostig. Alla dessa ord är adjektiv.

Automatisk textsammanfattning

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

Bootstrapping för substantivtaggning

Grammatik för språkteknologer

!!! Några verb är oregelbundna vara är var!!!

Vid läsning av berättande texter handlar förutsägelserna om vad som kommer att hända senare i berättelsen.

Lycka till med pluggandet! Tro på dig själv! VI HAR FÖRHÖRET TORSDAG DEN 7/4-16.

3. Granskas regelspråk

1 Vilka ord är substantiv? Läs texten.

Valet är ditt ORDLISTA CHRISTINA WAHLDÉN ARBETSMATERIAL FÖR LÄSAREN

EXEMPELSIDOR SPELBOKEN

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

Lathund för Stava Rex

Introduktion till språkteknologi. Datorstöd för språkgranskning

Förord. Elevfacit och Test för kopiering utges till varje del av Grammatikövningar för Sfi, del 1 2.

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

En byggmodell över språket fonemet morfemet

Grammatik för språkteknologer

12 Programstege Substantiv

Ryska pronomen. Pronomen är en sluten ordklass som består av många undergrupper. Pronomina kan fungera självständigt eller förenat

Skrivstöd. Joakim Nivre. Introduktion till språkteknologi. Skrivstöd. Inledning. Orsaker till stavfel. Detektering av icke-ord

Föreläsning 3.1: Datastrukturer, en översikt

PROV ORDKLASSER SV Förklara vad ett konkret substantiv är och ge två exempel (3p)

ORDKLASSTAGGNING. Marco Kuhlmann Institutionen för datavetenskap

Med livet som insats ORDLISTA CHRISTINA WAHLDÉN ARBETSMATERIAL FÖR LÄSAREN

Varför är morfologi viktigt? Morfologisk analys och generering. Vad är ett ord (idag vs. i dag) Kan man inte lägga alla ord i en lexikonfil?

Alla bokstäver bildligt och uttalsmässigt Förstå alla ord vid bokstävernas berättelser

Sovra i materialet. Vad är viktigt? Vad kan tas bort? Korta ner långa texter.

Maskinöversättning och språkgranskning. F6: Grammatikkontroll

Ordbok arabiska - svenska. Denna ordboks webbadress är:

Svensk grammatik Ordklasser!

Dagboken ANNELIE DREWSEN ARBETSMATERIAL FÖR LÄSAREN. Kapitel 2 sår (s 6, rad 7), hål i huden / en skada

Grammatik för språkteknologer

Träningshäfte ordklasser facit

SKRIVNING I VEKTORGEOMETRI

Våren Nationalencyklopedin. Avancerad guide

Lektion 15. Adjektiv efter verb Nobel Uttal

FOR BETTER UNDERSTANDING. Kom igång med. WordFinder Snabbguide

Granskas regelspråk. Tentativ version, Ola Knutsson IPLab, Nada, KTH

Svenskans struktur, 7,5 hp Tentamensexempel 1

Programmera och hitta buggarna. Se video

Hemtentamen HT13 Inlämning senast Lärare: Tora Hedin

Välkommen att träna skriva!

En samling fårskallar

Korp. Övningar Språkbankens höstworkshop oktober 2016

Annonsen Arbetsmaterial för läsaren Författare: Gull Åkerblom

Manual för. LO-TCO Biståndsnämnds bildbank på

Svensk nationell datatjänst, SND BAS Online

Läslandet 2 Ord och meningar

Språkliga strategier för att minnas och lära, till exempel tankekartor och stödord. Mål:

Lingvistiskt uppmärkt text

SALDO. En ruta kommer upp och du uppmanas att skriva in ett ord inte nödvändigtvis en lexikonform, det kan också vara en böjd form.

Harry Potter och De Vises Sten, den spännande ungdomsboken, skriven av den engelska författaren J.K. Rowling, har blivit en succé över hela världen.

Svarsmall vårdprocess och hälsoärende

Word- sense disambiguation

Lokal Pedagogisk planering i Spanska åk 6

Bakgrund till förslagen i remissen. Definitionen av överkänslighet har förtydligats.

FÖR ÅR 2 9 HILLERSTORPSSKOLAN KULLTORPSSKOLAN

Har adjektivets a och e former någon reell betydelse i dagens svenska? Om den så kallade sexusböjningen. Theres Brännmark Grammatikdagen 17 mars 2017

Lathund för SpellRight

Studiehandledning för nybörjare

Lär dig först ritteknik genom att göra var sin ritning över en valfri klots. Se bifogade sidor om ritteknik.

Spanska höstterminen 2014

ANDREAS ISSA SVENSKA SPRÅKET

Begrepp :: Determinanten

Transkript:

Taggning av räkneord som årtal eller andra räkneord, Språkteknologi 2D1418, HT 01 Jonas Sjöbergh, 761029-0178, jsh@nada.kth.se 15 oktober 2001

1 Bakgrund 1.1 Kort om taggning Taggning innebär att man ger varje ord i en text en tagg, vilket är en samling värden som beskriver egenskaper hos ordet. En tagg kan t.ex. se ut som bilen <lemma=bil, wc=nn, num=sin, spec=def>, vilket innebär att ordet bilen är ett substantiv i bestämd from singular och att grundformen är ordet bil. Vid taggning av text finns i huvudsak två angreppssätt, regelbaserad taggning och statistisk taggning. Regelbaserad taggning innebär att man ställer upp ett antal regler för vilken tagg ett ord ska tilldelas, medan statistiska metoder innebär att man första analyserar stora mängder text och lagrar statistik, t.ex. över vilka ord som brukar få vilken tagg. 1.2 Problemformulering Vid taggning kan det vara användbart att kunna skilja årtal i texten från andra räkneord. En regelbaserad metod för att göra detta beskrivs nedan. Ett exempel på då det är bra att skilja på årtal och andra räkneord är vid talsyntes (maskinuppläsning av text), då uttalet av årtal skiljer sig från andra räkneord ( år nittonhundranittionio men ettusenniohundranittionio kronor ). Vid talförståelse (maskintolkning av tal) är naturligtvis uttalet av räkneord på samma sätt en stor ledtråd till om det är ett årtal eller ej. I denna rapport används dock bara text som indata. 1.3 Kort om programmet Granska Granska är ett program för automatisk grammatikkontroll som utvecklas vid Nada på KTH i Stockholm. Granska har en samling regler som definierar olika typer av fel (t.ex. den huset ) och ger rättningsförslag ( det huset ). Granska taggar texten och reglerna kan sedan beskriva feltyper med hjälp av den information som finns i taggar, t.ex. om ett adjektiv som föregår ett substantiv inte har samma genus (utrum/neutrum) som substantivet är det fel. Regler i Granska skrivs genom ett vänsterled som talar om hur texten ska se ut för att regeln ska vara applicerbar följt av ett högerled som talar om vad som ska göras då denna regel uppfylls. Ett litet exempel på en regel: exempelregel@exempelkategori X (wordcl=dt), Y (wordcl=jj), Z (wordcl=nn & gender!= Y.gender) mark(x Y Z) info("genusfel") Denna regel säger att då en determinerare följt av ett adjektiv följt av ett substantiv förekommer i texten och adjektivet inte har samma genus som substantivet (vänsterledet, före > ) ska de tre orden markeras i texten och beskrivningen genusfel ska skrivas ut. En introduktion till Granska finns på http://www.nada.kth.se/theory/projects/granska/popular.html 1.4 Intressanta webbplatser På http://www.nada.kth.se/theory/projects/granska/scrutinizer-rules-demo.html kan man pröva Granska med egna regeltillägg. 1

På http://www.nada.kth.se/theory/projects/granska/rapporter/rulelang20010308.pdf finns dokumentation om Granskas regelspråk. På http://www.student.nada.kth.se/λjsh/taltagg.txt finns de regler som använts i denna rapport. 2 Lösning Här presenteras en regelbaserad lösning av problemet att skilja ut årtal från andra räkneord. Reglerna är skrivna i Granskas regelspråk. Reglerna beskrivs i avsnitt 2.1 och 2.2. 2.1 Regler De regler som använts finns sammanfattade nedan och hela regelsamlingen i Granskaformat finns i appendix A. Prioriteringsordningen mellan reglerna är uppifrån och ned, och så fort en regel passar in så stannar man, dvs den översta regel som gäller för ett räkneord är den som bestämmer om det är ett årtal eller inte. 1. Om ett räkneord följs av e.kr., f.kr. eller någon variant av stavning av dessa så är det ett årtal. 2. Om ett ord är på formen X-talet (t.ex. 1700-talet) eller någon liknande variant så är X ett årtal (det har åtminstone med årtal att göra). 3. Om ett räkneord föregås av år eller någon variant (t.ex. åren ) är det ett årtal. 4. Om ett räkneord följs av ett godtyckligt antal adjektiv och sedan ett substantiv i pluralis är det inte ett årtal. 5. Om ett räkneord föregås av vissa nyckelord (t.ex. månadsnamn eller sommaren ) är det ett årtal. 6. Om ett räkneord är fyrsiffrigt är det ett årtal. 7. Om ett räkneord är på datumformat (t.ex. 2001-10-16) består det i och för sig av bl.a. ett årtal, men klassas som datum istället. 8. Om två räkneord förekommer på formen X - Y ( åren 1998-2000 ) är antingen båda årtal eller så är inget av orden årtal. 9. Räkneord som inte passar under någon av ovanstående regler är inte årtal. En regel som sa att om ett räkneord föregås av ett substantiv i obestämd form singularis är det inte ett årtal testades också tidigare. Regeln var tänkt att ta hand om formuleringar som kapitel 5, rum 1645 och rad 189. Denna gav dock många fel, t.ex. för uttryck av typen Lanark dödade Wallaces fru 1297 och de uttryck den var tänkt att ta hand om var dels ovanliga och dels tenderade de att bli rätt ändå (genom regeln att räkneord vanligen inte är årtal), så den regeln togs bort. 2.2 Motivering av regler ffl Regel 1 kräver inte så mycket förklaring, e.kr. används i princip bara efter årtal. ffl Regel 2 innebär att 1700-talet betraktas som ett årtal, vilket det i strikt mening inte är, men det har med årtal att göra. Vill man inte betrakta 1700-talet som ett årtal är det bara att ta bort regel 2. 2

ffl Regel 3 säger att år 1976 och åren 1976-2000 betyder att 1976 i dessa fall är ett årtal, vilket är det normala då år används före ett räkneord. ffl Regel 4 fångar text som 1999 kronor, 50 år och fem stora hus och säger att detta inte är årtal utan en bestämning avantalet knutet till substantivet senare i meningen. Granskaregeln matchar även substantiv där numerus är obestämt, detta då enheter efter mätetal, såsom 30 m, oftast taggas som <nn>, utan några mer detaljer. ffl Regel 5 är i princip likadan som regel 3, vanligtvis är ett räkneord som följer t.ex. ett månadsnamn ett årtal, sommaren 2001 eller januari 1900. Man kan också tänka sig att lägga till fler nyckelord, vissa verb föregår ofta årtal ( han dog 1976 ). Ett problem med sådana verb är dock att de även kan följas av andra räkneord ( av de insjuknade dog 30 ). ffl Regel 6 är en heuristisk metod som fungerar ganska bra i vanlig text, fyrsiffriga tal är ofta årtal. Två problem är att det förekommer även andra fyrasiffrorskombinationer samt att i vissa typer av texter, t.ex. historieböcker, förekommer många årtal som inte är fyrsiffriga. ffl Regel 7 innebär att räkneord på särskilda datumformat specialtaggas som datum, trots att de innehåller årtal. Oftast är det intressantare att veta att ett uttryck är ett datum än att det finns ett årtal i närheten. Eventuellt kan man inkludera information om huruvida ett datum innehåller årtal eller ej. ffl Regel 8 säger att två räkneord med - mellan är av samma typ, som i åren 1976-2000 eller 5-2 blir 3, vilket är rimligt att anta. ffl Regel 9 säger att om inget av ovanstående gäller så är det inte ett årtal, vilket oftast ger rätt beteende. 3 Utvärdering 3.1 Resultat De enkla regler som använts ger mycket bra resultat. På de texter som testats blir de flesta (över 90%) räkneord rätt uppmärkta. Resultatet varierar dock beroende på texten, historiska texter där årtal skrivs som år 0 eller 44 f.kr. fungerar bra, medan texter där sådana markörer inte används (t.ex. Julius Caesar (100-44) ) fungerar dåligt. Texter med många språkliga fel fungerar också dåligt ( Jag köpte 1999 bingolott igår. ) 3.2 De bästa reglerna Regel 4 om att räkneord som följs av ett substantiv i pluralis inte är årtal är mycket användbar, den har aldrig fel (i de test som gjorts) och den täcker många fall. Reglerna 1, 2 och 3, med år, e.kr. och -talet, är mycket användbara för att täcka in årtal, och de ger inte heller några falska träffar (i de test som gjorts). Regel 6, om att fyrsiffriga tal är årtal, täcker in väldigt många årtal som inte täcks av någon annan regel, men alla fyrsiffriga tal är inte årtal, så regeln ger upphov till en del falska träffar. Hur många falska träffar det blir beror mycket på den text som analyseras (även hur många riktiga årtal man hittar beror på texten, i historietexter är årtal ofta inte fyrsiffriga). Grundregeln (regel 9) att de flesta räkneord (de som inte täckts av någon annan regel) inte är årtal fungerar ganska bra. Många räkneord hamnar under denna regel och de allra flesta är inte årtal, undantaget i vissa historietexter. 3

3.3 Problem Ett Granskarelaterat problem är att regel 6 just nu inte kontrollerar om ett räkneord är fyrsiffrigt, eftersom det inte går att kontrollera på ett enkelt sätt i Granska. Istället kontrolleras om räkneordet består av fyra tecken. Detta leder till problem med ord som fyra och 40,9, så därför görs ytterligare några test, bl.a. kontrolleras att sista tecknet inte är a och att inget av de två tecknen i mitten är.,, eller :. Ett annat problem är att 1250-1400 taggas som ett enda räkneord, vilket gör att regeln för fyrsiffriga tal inte upptäcker dessa två räkneord, eftersom de betraktas som ett nio tecken långt räkneord. I övrigt är det vanligt med fel där fyrsiffriga räkneord som inte är årtal upptäcks av regel 6 och då märks fel. Ett sådant exempel är rum 1645. Ett annat vanligt fel är att årtal som inte är fyrsiffriga inte upptäcks av någon regel och därför inte märks som årtal. Exempel på uttryck där årtal inte upptäcks är Lanark dödade Wallaces fru 297, 600- och 500-talet (där 600- märks fel) och 720 grundades Birka. Räkneord skrivna med bokstäver blir också problematiskt om de särskrivs, åtta tusen f.kr., eftersom de då taggas som två separata räkneord, talet åtta (regel 9) och årtalet tusen (regel 1). 3.4 Möjliga förbättringar En förbättring vore att lägga till fler regler liknande den om att X - Y innebär att räkneorden X och Y har samma typ, för andra typer av uttryck, t.ex. X och Y. En snarlik förbättring är att om man har en följd av räkneord efter varandra ska de alla ha samma typ ( åtta tusen tre hundra kaniner ). De Granskarelaterade problemen borde kunna rättas till ganska enkelt, t.ex. kontrollera om räkneord verkligen är fyrsiffriga och inte som nu fyra tecken långa. A Regler i Granskas regelspråk category taltagg info("taltaggning") link("http://www.nada.kth.se/~jsh/taltagg.html" "Jonas taltaggningstest") datum@taltagg X (wordcl=rg & token=token_date) info("datum") nnrg1@taltagg Y (wordcl=nn & real_text.length > 5 & (real_text.substr(real_text.length-4, 4)="-tal" real_text.substr(real_text.length-5, 5)="-tals")) 4

nnrg2@taltagg Y (wordcl=nn & real_text.length > 6 & (real_text.substr(real_text.length-6, 5)="-tale" real_text.substr(real_text.length-7, 5)="-tale")) efkr@taltagg X (wordcl=rg), Y (tolower(text)="f.kr" tolower(text)="e.kr" tolower(text)="f. kr" tolower(text)="e. kr" tolower(text)="f.kr." tolower(text)="e.kr." tolower(text)="f. kr." tolower(text)="e. kr." tolower(text)="f kr." tolower(text)="e kr." tolower(text)="f kr" tolower(text)="e kr") jump(endlabel, 1) talet1@taltagg Y (wordcl=rg & real_text.length > 5 & (real_text.substr(real_text.length-5, 4)="tale" real_text.substr(real_text.length-3, 3)="tal" real_text.substr(real_text.length-4, 4)="tals" real_text.substr(real_text.length-6, 4)="tale")) talet2@taltagg Y (wordcl=rg), X (text="talet") 5

jump(endlabel, 1) år1@taltagg Y (wordcl=rg & real_text.substr(0,2)="år") år2@taltagg X (text="år" text="året" text="åren"), Y (wordcl=rg) jump(endlabel, 1) nnplu@taltagg X (wordcl=rg), Z (wordcl=jj)*, Y (wordcl=nn & (num=plu num=undef)) info("tal") jump(endlabel, 2) nyckelord@taltagg Y (text="januari" text="februari" text="mars" text="april" text="maj" text="juni" text="juli" text="augusti" text="september" text="oktober" text="november" text="december" text="hösten" text="sommaren" text="vintern" text="våren" text="halvåret" text="kvartalet"), X (wordcl=rg) jump(endlabel, 1) fyrsiffrig@taltagg 6

X (wordcl=rg & real_text.length=4 & real_text.substr(real_text.length-1, 1)!="a" & real_text.substr(real_text.length-1, 1)!="v" & real_text.substr(real_text.length-2, 1)!="," & real_text.substr(real_text.length-3, 1)!="," & real_text.substr(real_text.length-2, 1)!=":" & real_text.substr(real_text.length-3, 1)!=":" & real_text.substr(real_text.length-2, 1)!="." & real_text.substr(real_text.length-3, 1)!=".") basregel@taltagg X (wordcl=rg) info("tal") ordningstal@taltagg X (wordcl=ro) info("tal") 7