1 Inledning. 1.1 Programförklaring. 1.2 Innehållet. 1.3 Beteckningskonventioner - 1 -



Relevanta dokument
Datorlingvistisk grammatik

Lite mer psykologi. L2: Automater, Sökstrategier. Top-down. Kimballs sju principer

Språkteknologi och Open Source

DAB760: Språk och logik

Idag: Reguljära språk Beskrivs av Reguljära uttryck DFA Grammatik

729G09 Språkvetenskaplig databehandling

Matematik för språkteknologer

Föreläsning 5: Modellering av frasstruktur. 729G09 Språkvetenskaplig databehandling Lars Ahrenberg

729G09 Språkvetenskaplig databehandling

Automatateori (2) Idag: Sammanhangsfria språk. Dessa kan uttryckas med Grammatik PDA

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

Tekniker för storskalig parsning

Partiell parsning Parsning som sökning

Fil: /home/lah/undervisning/sprakteknologi/ohbilder/oh1_kv.odp. Tjänster

Teoretisk lingvistik och datalingvistik. Robin Cooper

TDDA94 LINGVISTIK, 3 poäng tisdag 19 december 2000

Frasstrukturgrammatik

Formell logik Kapitel 1 och 2. Robin Stenwall Lunds universitet

Språkteknologi. Språkteknologi

Kursbeskrivning med litteraturlista HT-13

MÄLARDALENS HÖGSKOLA. CD5560 Formella språk, automater och beräkningsteori. Användarmanual. för simulatorn JFLAP

Språkets struktur och funktion, 7,5 hp

Grundläggande textanalys. Joakim Nivre

b) S Ø aa, A Ø aa» bb, B Ø aa» bc, C Ø ac» bc» 2. Låt L vara språket över 8a< som nedanstående NFA accepterar.

Modellering med kontextfri grammatik Kontextfri grammatik - definition En enkel kontextfri grammatik Klasser av formella språk

Svensk nationell datatjänst, SND BAS Online

Linköpings universitet Artificiell Intelligens II 729G11 HT Maskinöversättning. med hjälp av statistik. Erik Karlsson

Grammatik för språkteknologer

Kommentarer till bedömningsmatris för Tala Kurs D

Tekniker för storskalig parsning: Grundbegrepp

Grammatisk teori II Attributvärdesgrammatik

Automater. Matematik för språkteknologer. Mattias Nilsson

Introduktion till algoritmer - Lektion 1 Matematikgymnasiet, Läsåret Lektion 1

TDDD02 Föreläsning 2 HT Reguljära uttryck och reguljära språk Lars Ahrenberg

Kommentarer till bedömningsmatris för Tala Kurs D

Datorlingvistisk grammatik

Uppsala Universitet Matematiska Institutionen Thomas Erlandsson

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT Lars Larsson Algoritmer 1

Programmering för språkteknologer II. OH-serie: Ändliga automater. reguljära uttryck i Java. Deterministiska ändliga automater

Kommentarer till bedömningsmatris för Skriva Kurs C

Syntaktisk parsning (Jurafsky & Martin kapitel 13)

ENKEL Programmering 3

Väl godkänt (VG) Godkänt (G) Icke Godkänt (IG) Betyg

Kontextfria grammatiker

Grammatik för språkteknologer

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

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

MATEMATIKENS SPRÅK. Avsnitt 1

Om ämnet Engelska. Bakgrund och motiv

Pragmatisk och narrativ utveckling

Aristi Fernandes Examensarbete T6, Biomedicinska analytiker programmet

Riktlinjer för bedömning av examensarbeten

Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen.

Cristina Eriksson oktober 2001

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

Föreläsning 7: Syntaxanalys

Föreläsning 9: Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen.

Tekniker för storskalig parsning

Automatisk textsammanfattning

Lexikal semantik. Lingvistik 1. Hanna Seppälä Uppsala universitet 1

ENGA01: Engelska grundkurs, 30 högskolepoäng Studiebeskrivning

Bedömning av Examensarbete (30 hp) vid Logopedprogrammet Fylls i av examinerande lärare och lämnas i signerad slutversion till examinator

En byggmodell över språket fonemet morfemet

Fraser, huvuden och bestämningar

Inlämningsuppgift: Pronomenidentifierare

Skrivprocessen. Skrivprocessen och retoriken. Skrivprocessen Retoriken Förklaringar

Beräkning med ord. -hur en dator hanterar perception. Linköpings universitet Artificiell intelligens Erik Claesson

Anhållan om ändrad ersättning för vissa HST

Pedagogisk planering för ämnet: Svenska

För universitetsgemensamma regler för forskarutbildning se Regler för utbildning på forskarnivå vid Göteborgs universitet Doktorandreglerna.

Språkpsykologi/psykolingvistik

ENGA01: Engelska grundkurs, 30 högskolepoäng Studiebeskrivning

grammatik Ordklasser, nominalfraser, substantiv

Dependensregler - Lathund

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


Logisk semantik I. 1 Lite om satslogik. 1.1 Konjunktioner i grammatisk bemärkelse. 1.2 Sant och falskt. 1.3 Satssymboler. 1.

Föreläsningens upplägg. Språket, individen och samhället HT Döva och språk. Internationell manifestation för teckenspråket (29 september 2007)

BLOCK 1. 1A. Att komma igång

Skäl för revideringarna är att kursplanerna tydligare ska spegla kursernas innehåll och mål.

Lösningsförslag till tentamen i Språkteknologi 2D1418,

HUMANISTISKA FAKULTETEN. Språkteknologi, masterprogram, högskolepoäng

Kritiskt tänkande HTXF04:3 FTEB05. Grundläggande semantik II

Instuderingsmaterial: Adjektiv, Substantiv och Verb

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

MODERSMÅL. Ämnets syfte. Undervisningen i ämnet modersmål ska ge eleverna förutsättningar att utveckla följande: Kurser i ämnet

Grundläggande textanalys, VT2012

Lexikon: ordbildning och lexikalisering

Labb 1 - Textbearbetning med reguljära uttryck. Formella språk. Definitioner. Chomskyhierarkin. Formella språk. Formella språk

Bedömningsstöd Verktygslåda för texttyper

Parsning. TDP007 Konstruktion av datorspråk Föreläsning 6. Peter Dalenius Institutionen för datavetenskap

Lingvistiska grundbegrepp

Kursplan för kurs på grundnivå

Objektorienterad modellering och diskreta strukturer. 13. Problem. Sven Gestegård Robertz. Datavetenskap, LTH

Grammatisk teori III Praktisk analys

Aspekt Nivå 1 Nivå 2 Nivå 3

Hammarbyskolan Reviderad februari 2009 Lokal kursplan i svenska/svenska som andra språk

För universitetsgemensamma regler för forskarutbildning se Regler för utbildning på forskarnivå vid Göteborgs universitet Doktorandreglerna.

Taltaggning. Rapport av Daniel Hasselrot , 13 oktober 2003

Använda Convertus Kursplaneöversättaren

Transkript:

- 1-1 Inledning 1.1 Programförklaring Detta kompendium är utvecklat för en introduktionskurs i datalingvistik som vänder sig till studenter med tidigare kännedom om grundläggande lingvistik och datavetenskap. Ambitionen är att ge en pedagogisk framställning av några grundläggande modeller för språkbeskrivning som används inom datalingvistiken, speciellt för textanalys. 1.2 Innehållet Kapitel 2 ger en översikt över ämnet och några olika tillämpningsområden. Kapitel 3 introducerar ett antal matematiska begrepp och modeller som kompendiet utnyttjar. Kapitel 4 anger en metod att modellera lexikon och ordkunskap med svenska som exempelspråk. Kapitel 5 presenterar några olika modeller att klassificera ordformer på grundval av deras placering i texten. Kapitel 6 visar hur svenska fras- och satsstrukturer kan beskrivas med kontextfri grammatik. Kapitel 7 diskuterar hur särdragsvillkor kan användas för att uttrycka syntaktisk och semantisk information och därmed ge en noggrannare och utförligare beskrivning av språkliga konstruktioner. 1.3 Beteckningskonventioner Kursiv stil används framförallt metaspråkligt, d.v.s. när ord och meningar benämns inuti löpande text. Kursiv stil används också för fristående exempelmeningar och exempelord samt för vissa viktiga termer när de förklaras i texten. Typsnittet Courier används för att referera till särdragsattribut och värden inuti texten.

- 2-2 Vad är datalingvistik? 2.1 Språk och datorer Med en viss förenkling kan man säga att datalingvistikens uppgift är att utveckla programvara och system som kan utföra eller stödja olika typer av språktjänster. Tanken att datorer kan användas för sådana ändamål är nästan lika gammal som datorerna själva. De första experimenten gjordes med automatisk översättning och det så tidigt som i slutet av 40-talet; den första konferensen om maskinöversättning hölls sedan på MIT (Massachusetts Institute of Technology) i juni 1952. Det dröjde dock till 1963 innan det första maskinöversättningssystemet installerades för praktiskt bruk. Det var EURATOM, den Eurepeiska Atomenergigemenskapen i italienska Ispra, som köpte ett system för översättning mellan ryska och engelska, utvecklat vid Georgetown University i USA. Maskinöversättningsforskningen kom sedan av sig, efter den utvärdering som genomfördes i USA av den s.k. AL- PAC-kommittén (Automatic Language Processing Advisory Committee) 1966, och som kom till slutsatsen att maskinöversättningsforskningen nästan inte producerat någonting som var användbart, utan att resurser i stället borde satsas på verktyg för översättare och på lingvistisk och datalingvistisk grundforskning. Det var en aning ironiskt att den kritiska ALPAC-rapporten kom just när maskinöversättningssystem började användas praktiskt. Sedan dess har dock både forskningen och utvecklingen återhämtat sig och det finns i dag många system i praktiskt bruk. Å andra sidan kan vem som helst som använder ett generellt maskinöversättningssystem konstatera att kvalitén ligger ganska långt under vad en professionell översättare levererar, vilket inte hindrar att maskinöversättningar kan vara användbara i alla fall, eftersom alternativet till en maskinell översättning oftast är ingen översättning alls (goda översättare är en bristvara). En annan ironi är att datalingvistiken började med att ge sig på översättning, den kanske svåraste språktjänsten man kan ge sig på att automatisera, och som fortfarande framstår som dess Heliga Graal, ett mål som all erfarenhet numera säger att man inte kan nå till hundra procent, men som man ändå ständigt återkommer till och utvecklar nya modeller för. Men det är naturligtvis så att det är de svåraste problemen, dit vi förutom översättning kan räkna dialog, tal- och textförståelse och språkinlärning som är de mest utmanande och därför de mest intressanta. Forskningen om dessa svåra problem för också det goda med sig att den uppmärksammar ett antal olika delproblem, som efter en viss tid kan ges generella lösningar. Till de problem som datalingvistiken i dag kan sägas ha löst hör ordklassbestämning av orden i godtycklig

- 3 - löpande text (se nedan, kapitel 5) och parsning av ett stort antal grammatikformalismer. De innehållsliga nivåerna av språket, vad som i lingvistiken brukar kallas semantik och pragmatik, är sämre förstådda, men det finns ett antal förslag som griper över helheten och tillåter oss att formulera samband mellan de språkliga uttrycken och deras betydelse, såväl generellt som i en specifik kontext. Exempel på några sådana metoder ges i Russell & Norvig, kap. 22-23. Tanken att skapa system (artefakter) med mänsklig språkförmåga, vare sig det handlar om översättning, textförståelse eller kommunikation i naturligt språk, delar datalingvistiken med den gren av artificiell intelligens som på engelska kallas Natural Language Processing (NLP). NLP-forskare betonar ofta den språkliga kommunikationens beroende av omvärldskunskap och tenderar att fokusera språkets högre nivåer som diskurs- och dialoghantering. Målet är ofta att samtidigt förstå hur mänsklig kommunikation går till och modellera aspekter av den i körbara program. Datalingvistikens utveckling har också skett parallellt med att den allmänna språkvetenskapen alltmer börjat använda formella modeller. Många datalingvistiska forskare ser som sin främsta uppgift att modellera mänsklig språkförmåga så väl som möjligt med utgångspunkt i den aktuella lingvistiska teoribildningen. Starka kopplingar finns exempelvis mellan de unifieringsbaserade tekniker för parsning och tolkning som behandlas i kapitel 3 och 6, och de grenar av den generativa lingvistiken som anammat ett constraint-baserat synsätt på naturliga språks syntax och semantik. Även om det kan tyckas vara den bästa möjliga metoden att utgå från vetenskapens nuvarande ståndpunkt, när man vill modellera så pass komplexa fenomen som läs- och förståelseprocesser på dator, så finns det också en hel del problem med detta, i synnerhet för den som vill ta språkteknologien i bruk för praktiska ändamål. Ett problem är att varken AI-forskningen eller språkvetenskapen i dag har teorier som på samma gång är tillräckligt precisa och omfattande för att de ska kunna tas som utgångspunkt för utveckling av robusta system. Ett annat problem är att t.ex. lingvistiken tenderar att fokusera språkliga data som är relevanta för teoriutvecklingen och det handlar då ofta om data som inte är allmänt förekommande i de texter eller dialoger som man vill utveckla praktiska system för, t.ex tidningsnotiser eller enkla sökfrågor. Det finns alltså ofta en skillnad i vad man uppfattar som relevanta data mellan den teoretiskt orienterade språkvetenskapen och den praktiskt inriktade språkteknologin. Av detta skäl har datalingvistiken under senare år alltmer kommit att använda empiriska språkliga material i form av textsamlingar och inspelat tal i samband med systemutveckling och systemtestning. Med empiriska data som är representativa för just den tillämpning man har som grund för systemutvecklingen, kan systemets språkmoduler bli bättre anpassade till just det språk som förekommer i tillämpningen och systemets prestanda bli bättre. Praktisk språkteknologi uppmärksammar också datorstöd för språktjänster i lika hög grad som autonoma system. Om vi ser på datorsystem som maskiner som ersätter människor och tar över deras arbetsuppgifter, så blir det naturligt att simuleringen av

- 4 - den mänskliga förmågan hamnar i förgrunden. Om vi däremot ser på datorer som verktyg, som människor använder för att öka sina förmågor och färdigheter, får vi ett bredare perspektiv som både rymmer frågor om design och användbarhet och om möjligheter att utnyttja befintlig teknik på ett kreativt sätt. Ett slående exempel ges just av översättningsforskningen. Att denna initialt kom att handla om datorn som översättare är kanske inte så konstigt med tanke på att dåtidens datorer var något svåra att hantera för andra än specialister, men detta sätt att se på datoranvändning höll sig kvar som den dominerande tankefiguren även sedan pc:n blivit allmän egendom. Tanken att andra moment i översättningsverksamheter, så som redigering, granskning, ord- och termuppslagning, e-postförbindelse med författare och terminologer, låter sig automatiseras bättre än själva översättandet tog lång tid på sig att slå igenom. Men i dag är begreppet Translator s Workbench (översättarens arbetsstation) väl etablerat, och i dessa ingår ofta maskinöversättning som en modul bland flera andra. 2.2 Tillämpningar De flesta system och metoder vi tar upp i det här kompendiet är inriktade på automatisk textanalys. En del av metoderna har tillämpning också på högre nivåer av talförståelse, men vi tar inte upp taligenkänning som är ett problem som kräver andra typer av tekniker. När vi i dagligt tal talar om läsning, så gör vi det oftast som en aktivitet med ett eget syfte, t.ex. för att skaffa oss information eller för nöjes skull. Men vi läser ofta i speciella syften som en del av någon överordnad aktivitet. Då kan språktekniska system bidra på olika sätt till att underlätta läsprocessen.

- 5 - Fig. 2.1. Textkontroll, en komponent i systemet Skribent från Wordwork AB, som upptäcker vanliga formella fel i Worddokument. En speciell läsart är den som tillämpas vid språkgranskning. Den är speciell eftersom den kräver mer uppmärksamhet på formen än vad vi tillämpar normalt. I synnerhet texter som man skrivit själv är svåra att granska, eftersom man lätt blir blind för sina egna stereotypiska formuleringar och skrivfel. Sådana företeelser i en text hör dock till det som ett datorsystem har lättast att upptäcka eftersom det till stor del låter sig göras genom att jämföra teckensträngar i texten med teckensträngar i en ord- eller fraslista (figur 2.1). Dagens system tillåter även upptäckter av ord som är rätta i sig, Fig. 2.2. Markering av felaktigt subjekt i Word 7.0.

- 6 - men fel i sin kontext, t.ex. har en felaktig position eller böjningsändelse, och kan i många fall också föreslå korrekta alternativ (figur 2.2). Mer avancerad språkgranskning som t.ex. kan upptäcka tvetydigheter eller oklarheter i texten krävs det dock fortfarande människor för. Det förutsätter en generell förmåga att uppfatta innehållet i texten, som dagens teknik inte medger. Däremot finns numera system som kan föreslå alternativ, d.v.s. synonymer till det som står i texten, och anpassa formen till den aktuella kontexten (figur 2.3). Fig. 2.3. Förslag på synonymer med rätt böjningsform i Word 7.0. En annan speciell läsart är den vi tillämpar när vi skummar en tidning för att hitta någon intressant notis, eller en artikel på jakt efter ett speciellt avsnitt med intressant information. Dagens system kan plöja texter mycket snabbare än vi själva och genom att använda smarta indexerings och komprimeringstekniker t.o.m. databaser med miljontals dokument. Dessa tekniker faller under området informationssökning (eng. Information retrieval, IR) men i och med att antalet dokument som är åtkomliga från en viss punkt blir fler och fler, blir behovet av precisare tekniker för informationssökning större. Man har exempelvis behov av att behandla böjningsformer och avledningsformer av ord som uttryck för samma begrepp och tillämpar då stamsökningsalgoritmer. Ett ambitiösare projekt som datalingvistiken alltmer kommit att intressera sig för är informationsutvinning (eng. information extraction), d.v.s. tekniker för att hitta och sammanställa information av ett föregivet slag. Det kan t.ex. handla om affärstransaktioner (vilket företag har köpt/gått samman med vilket annat företag när, hur och varför), forskningsprojekt (vilken inriktning?, universitet/forskningsinstitut?, projektledare?, projekttid?, mål? etc.) eller recensioner av nya böcker (vilket förlag?, vilken författare?, vilken genre?, vad tycker recensenten?). Sammanställningen kan

- 7 - ske i form av ett ifyllt formulär, en post i en databas eller en sammanfattning i textformat. Figur 2.4 visar ett delresultat från körning med ett forskningssystem kallat VIE. PAULEY PETROLEUM <PP> NAMES NEWGARD PRESIDENT LOS AN- GELES, April 13 - Pauley Petroleum Inc said it appointed Mark Newgard president and chief operating officer. Newgard, 42, had been president of privately-held Edgington Oil Co. He succeeds William Pagen, Pauley s chairman, who had also been serving as president, the company said. Reuter. Fig. 2.4.Textinformation (underst) om benämnda objekt i en given text (överst) med systemet VIE under GATE (Wilks et al, 1996). Man kan säga att ett informationsutvinningssystem konstruerar en innehållsrepresentation, eller åtminstone en representation av vissa objekt och fakta i en text. Det innebär inte nödvändigtvis detsamma som att de kan läsa i mänsklig mening. Systemen är anpassade till sin specifika uppgift och använder ofta en blandning av tekniker, från strängmatchning av ord och fraser till enkel diskursmodellering och representation av begreppsrelationer för de kunskapsområden som uppgiften gäller. En enklare form av informationsutvinning finner vi i system som utför automatiska sammanfattningar. Dessa system har ofta ingen domänkunskap alls utan baserar sina sammanfattningar på antaganden om var den centrala informationen kan hittas i en text, t.ex. i rubriker, inledningar och avslutningar. Vi har redan i inledningen nämnt automatisk översättning som en av datalingvistikens stora utmaningar. Det finns i dag ett antal kommersiella system som används av internationella företag och organisationer, men det krävs stora insatser för att anpassa dem till de texttyper och ämnesområden som de ska arbeta med för att få ett bra resultat. Företag som använder maskinöversättningssystem brukar också ofta införa någon form av begränsat språk i sin textproduktion för att göra den så kostnadseffek-

- 8 - tiv som möjligt. Ett begränsat språk utmärks av en konsistent terminologi och fraseologi, en explicit textbindning och undvikande av flertydigheter i basordförrådet och syntaxen. Vissa naturligt förekommande subspråk,som t.ex. väderprognoser, sammanträdesprotokoll eller produktbeskrivningar har också sådana egenskaper, och kan därför översättas automatiskt med hyfsat resultat. Se figur 2.5. Original The present invention relates to a process for producing lube oil. More specifically, the present invention relates to a process for producing lube oil from olefins by isomerization over a silicoaluminophosphate catalyst. Översättning Den foreliggende opfindelse angår en fremgangsmåde til at fremstille smøreolie. /- Mere specifikt, foreliggende opfindelse angår en fremgangsmåde til at fremstille smøreolie fra olefiner med isomerisering i løbet af en silicoaluminophosphatkatalysator. -/ Efter redigering Den foreliggende opfindelse angår en fremgangsmåde til at fremstille smøreolie. Mere specifikt angår den foreliggende opfindelse en fremgangsmåde til at fremstille smøreolie ud fra olefiner ved isomerisering over en silicoaluminophosphatkatalysator. Fig. 2.5. Översättning med systemet PaTrans utvecklat av Lingtech A/S & Center for sprogteknologie, Köpenhamn, som används för översättning av patenttexter för kemiska produkter. Ytterligare en speciell läsart tillämpas av språkforskare, som ser texter som studieobjekt, där ett språks ordförråd, morfologi, syntax, stildrag etc. manifesteras. Datorn har gjort det möjligt att lagra stora textmängder på ett ställe och söka i dem efter språklig information av olika slag. Ett organiserat textarkiv som samlats in för språkvetenskapliga ändamål brukar kallas en korpus. Korpusar var till en början mest intressanta för lexikologer och lexikografer, d.v.s. språkforskare som arbetar med att beskriva och producera lexikon. Datorlagrade korpusar gör det nämligen lätt att på automatisk väg ta fram konkordanser, d.v.s. tabeller där varje ordform i en text, eller en korpus, kan studeras i sitt textuella sammanhang. På senare år, när datalingvistiken blivit mer och mer empiriskt orienterad har korpusar också blivit en allmänt brukad resurs t.ex. för att utvärdera system, eller för att anpassa system, som utnyttjar stokastiska tekniker, till ett givet språk eller applikation. Datalingvistiken har då medverkat till att förbättra metoderna för korpusanalys, t.ex. möjligheterna att på automatisk väg bestämma ordklass eller morfologiska egenskaper för orden i en text. (Se kap. 4 för några sådana metoder.)

- 9 - För tvåspråkiga ordböcker och för översättningssystem används parallellkorpusar. I en parallellkorpus ingår texter som är varandras översättningar, eller som har samma ämne och syfte, men är producerade oberoende av varandra. Parallellkorpusar är vanligen länkade till varandra stycke för stycke, och mening för mening. I en tvåspråkig konkordans kan man se ett ord i sin meningskontext, tillsammans med översättningen av meningen. Parallella, länkade texter kan också utgöra en viktig resurs för översättare medan de arbetar, under förutsättning att texterna är av samma slag som översättaren för tillfället arbetar med. I datorstöd för översättning brukar de parallella texterna kallas översättningsminne. När meningar i den nya texten matchar meningar i översättningsminnet, visas detta för översättaren, t.ex. via färgkodning. Att läsa är inte samma sak som att lyssna, men många av de metoder som utvecklats för automatisk textläsning kan tillämpas också i samband med talförståelse. Ett taligenkänningssystem levererar ofta sitt resultat i form av en lista på ordsekvenser, rangordnade med den mest sannolika först (enligt systemets bedömning). Dessa ordsekvenser kan sedan passera genom en granskande komponent som filtrerar bort analyser som är grammatiskt omöjliga, och sedan vidarebefordras till komponenter som tillämpar informationsutvinningstekniker för att komma fram till vad som sas. Talförståelse är särskilt intressant i samband med röststyrning av maskiner och i dialogsystem som utgör gränssnitt mot informationssystem. En annan tänkt tillämpning, som dock ligger några år framåt i tiden, gäller automatisk översättning av tal, och automatiska tolktjänster vid telefonsamtal. 2.3 Generiska uppgifter och tekniker Flera av de tillämpningar som vi nämnt ovan har drag som gör dem speciella, men en närmare analys av de uppgifter som ett system ska utföra, leder ofta till att vi stöter på samma grundläggande problem. Några sådana grundläggande problem i textanalys är Lexikalisk analys - att identifiera de grundläggande enheterna (ordformer, tokens) i en text Morfologisk analys: att bestämma ordformernas egenskaper vad gäller - ordklass, - morfologiska och syntaktiska egenskaper, - grundform (stam eller lemma), - morfologisk struktur Syntaktisk analys / Parsning - att identifiera fraser, dvs. semantiskt intressanta ordgrupper, - att bestämma frasernas grammatiska funktioner och övriga egenskaper

- 10 - Semantisk analys - att bestämma ordbetydelser (lexikal disambiguering), - att bestämma betydelsen för varje fras och för hela meningar Diskursanalys / Tolkning - att bestämma referenter till refererande uttryck, inklusive anaforiska referenser, - att bestämma uttryckta och implicita fakta och referentrelationer, - att bestämma språkhandlingar och retorisk funktioner, - att modellera kontext 2.4 Systemarkitekturer Ett vanligt sätt att bygga upp ett komplext textläsningssystem är att fördela uppgiften på flera, mer eller mindre generiska komponenter, där varje komponent gör en liten del av hela bearbetningen, och utdata från en komponent utgör indata till nästa komponent. Detta kallar vi en sekvensiell arkitektur. En något större flexibilitet får vi om vi tillåter en komponent att använda output från flera andra komponenter. Systemet VIE som refererades i figur 2.4 är sammansatt av ett antal generella komponenter på så sätt som visas i figur 2.6. Fig 2.6. Arkitektur för informationsutvinningssystemet VIE. När vi använder särdragsstrukturer eller termer som representationsformat för lingvistisk information (se kapitel 3), finns möjligheten att uttrycka samband mellan lingvistisk information på olika nivåer med deklarativa regler, som utnyttjas i bearbetningen med ett fåtal generella operationer som unifiering. En formalism för att skriva sådana regler heter PATR, och den kommer att introduceras senare i det här kompend-

- 11 - iet för att beskriva syntaktiska och semantiska förhållanden. Detta ger ett enhetligt system, med betydligt färre komponenter, enligt figur 2.7. IN: mening PARSER med UNIFIERARE Regelinvokering Uppslagning REGLER LEXIKON chart AVLÄSARE UT: analys Figur 2.7. Översikt av ett system för meningsanalys.

- 12-3 Matematisk bakgrund 3.1 Introduktion Det här kapitlet ger en beskrivning av grunderna för de metoder och formalismer som kommer att användas i resten av kompendiet för att modellera språkliga yttranden och uttryck. Eftersom de några av de analysmetoder vi tar upp också använder sig av statistik kommer kapitlet också att ge några statistiska grundbegrepp. Kapitlet består av tre delar: Hur kan man beskriva vad som är en tillåten sträng i språket? Den här frågan kommer naturligvis att behandlas mer grundligt i resten av kompendiet men i det här kapitlet ger vi en kort översikt över de enklaste metoderna för att beskriva språk med basen inom formella språk och automatateori. En kort introduktion till de statistiska grundbegrepp som används när man vill använda statistiska metoder för att analysera språket. Vi kommer även kortfattat att beskriva hur man kan koppla ihop statistik med metoder för att beskriva ett språk. Vilka strukturer behöver man för att kunna representera innehållet, till exempel syntax och semantik, i en text? Här kommer vi framförallt beskriva oss av särdragsstrukturer, men vi kommer också att ta upp termer, ett alternativ som används i Russel och Norvig (1995). Vi kommer också att ge några kopplingar till diskret matematik som är den formella matematiska bakgrunden till dessa strukturer.

- 13-3.2 Olika klasser av språk När man vill analysera ett språk behöver man något sätt att beskriva vad som är en tilllåten följd av tecken eller ord i språket. Om man, som vi, är intresserade av de naturliga språken, är det naturligtvis svårt att ge en fullständig beskrivning av vad som är en tillåten sträng i ett språk. Inom datavetenskapen däremot pratar man ofta om något som kallas för formella språk. Ett formellt språk är ett språk som konstruerats för ett speciellt syfte. Två bra exempel är programmeringsspråk eller det formelspråk som används inom logiken. Eftersom ett formellt språk är konstruerat för ett speciellt ändamål är det oftast mycket enklare än de naturliga språken. Speciellt programmeringsspråk är ofta relativt enkla eftersom de konstruerats för att kunna hanteras effektiv av en dator. (Här använder vi alltså enkel i betydelsen vad som är enkelt att beskriva och hantera för en dator. Vad vi människor tycker är enkelt är ofta en helt annan sak.) Några påtagliga skillnader mellan naturliga språk och programmeringsspråk är: Naturliga språk har många fler lexikala enheter än programmeringsspråk, några tiotusental i jämförelse med några tiotal; De lexikala enheterna förekommer i flera olika former, inte bara en; Ordformerna är inte entydiga, utan kan svara mot flera olika lexikala enheter, t.ex. får som presens av verbet få, singularis och pluralis av substantivet får; Icke desto mindre kan teorin för formella språk tillämpas också på naturliga språk. Man tänker då på ett språk som en mängd av strängar definierade över ett givet alfabet. Denna teori kan dessutom ges tillämpningar på flera sätt: meningar kan definieras som strängar av ordformer, eller mera strikt, tokens; ordformer kan ses som strängar över ordled (morfer), och dessa i sin tur definieras som strängar över bokstäver eller, alternativt, fonem. När man vill karaktärisera hur enkelt ett språk är brukar man använda den så kallade Chomskyhierarkin. Chomskyhierarkin delar in språken i fyra klasser där den första klassen hanterar de enklaste språken och sedan utvidgas klasserna till att innehålla mer och mer komplicerade språk. Chomskyhierarkin kan sammanfattas av nedanstående tabell. Klass av språk Kan beskrivas av Exempel på språk Reguljära språk Finita automater, Reguljära uttryck a*b(c d) Kontextfria språk Kontextfri grammatik a i b i Kontextkänsliga språk PATR-II a i b i c i Fria språk Turingmaskin Alla språk som kan kännas igen av en dator

- 14 - De reguljära språken är den enklaste klassen av språk. Det språk som ges som exempel för klassen består av valfritt antal (0 eller flera) a följt av ett b och till sist ett c eller ett d. Det här är ett typiskt exempel på ett reguljärt språk där man alltså kan definiera språket genom att ange en grundsträng och sedan alternativ eller upprepningar av delar av denna sträng. Reguljära språk kan beräknas av finita automater som vi kommer att ge en mer detaljerad beskrivning av i nästa avsnitt. Nästa klass är de kontextfria språken. De innehåller alla de reguljära språken och dessutom ett antal språk som inte är reguljära. Ett typexempel på ett språk som är kontextfritt men inte reguljärt är språket a i b i, det vill säga alla strängar som innehåller först ett antal a och sedan samma antal b. Kontextfria språk kommer vi också att beskriva mer detaljerat längre fram i kapitlet. Om man sedan går vidare till de kontextkänsliga språken så utvidgar man ytterligare klassen av språk som kan hanteras. Ett bra exempel på ett språk som kan beskrivas med en kontextkänslig grammatik men inte med en kontextfri är språket a i b i c i som består av strängar som innehåller samma antal a, b och c. Kontextkänsliga språk kan beskrivas av formalismen PATR-II som vi också kommer att använda för att beskriva naturliga språk längre fram i kompendiet. Den sista klassen av fria (eng. unresticted) språk innehåller alla språk som kan beräknas av en dator. Man brukar säga att alla språk som man naturligt kommer att tänka på är kontextkänsliga, därför är det ganska svårt att hitta bra exempel på språk som inte är det. De exempel som finns är ganska konstruerade och av typen: Språket som innehåller alla strängar som kan genereras av någon kontextkänslig grammatik. Vi kommer inte att förklara vad en Turingmaskin är för något här. Det enklaste man kan säga är att det är en matematisk modell av en dator. Turingmaskinen skapades på 30-talet av Alan Turing. Som kuriosa kan nämnas att engelsmännen byggde en Turingmaskin under andra värdskriget och den lär ha hjälpt dem att vinna kriget genom att dechiffrera hemliga tyska meddelanden. Förutom dessa fyra klasser finns naturligtvis även språk där inte ens en dator kan avgöra om en sträng tillhör språket eller inte. Dessa språk blir i allmänhet ännu mer konstlade än fria språk och vi ska inte gå in mer på dem. Naturligt språk brukar i allmänhet anses vara kontextkänsligt, det vill säga det skulle kunna beskrivas fullständigt med till exempel en PATR-grammatik. I praktiken vill man ofta beskriva en mindre delmängd av språket och då kan det ibland räcka med något enklare. När man väljer hur man vill beskriva ett språk är det inte heller bara viktigt att bestämma om det är möjligt att beskriva ett språk inom en viss klass. Det är också så att man ibland kan välja en mer komplicerad klass än man egentligen behöver för att beskrivningen blir enklare att göra. Rent allmänt kan man säga att när man försöker beskriva ett språk eller subspråk med någon form av grammatik så har man tre mål. Man vill göra beskrivningen så omfattande som ändamålet kräver, dvs den ska täcka alla relevanta uttryck i språket. Man vill också att beskrivningen ska vara selektiv, dvs slå ut så många felaktiga eller

- 15 - irrelevanta uttryck som möjligt. Till sist ska beskrivningen också vara enkel att förstå och utvidga. 3.2.1 Finita automater Det enklaste sättet att introducera finita automater är att börja med ett litet exempel. Vi antar vi vill använda en finit automat som känner igen följande meningar. Kalle springer. Den lilla bollen rullar. En boll rullar. Den lilla röda bollen rullar. Om vi försöker känna igen språket utifrån enskilda ord får vi problem eftersom det finns alltför många variationer. Vi väljer därför att i stället titta på ordklasserna för att förenkla problemet och använder följande lilla lexikon för det. Här används några förkortningar som är vanliga inom datorlingvistiken. En svensk förklaring står bredvid varje benämning. Kalle PROPN (egennamn) den en DET (artikel) lilla röda A (adjektiv) boll bollen N (substantiv) rullar springer V (verb) Om vi nu skriver om meningarna och använder ordklasserna i stället för orden så kan vi konstatera att följande följder av ordklasser förekommer i våra exempelmeningar. Kalle springer. PROPN V Den lilla bollen rullar. DET A N V En boll rullar. DET N V Den lilla röda bollen rullar. DET A A N V Vi bestämmer oss för att skapa följande lilla finita automat som klarar av att känna igen ordklassföljderna ovan. PROPN DET N V 1 2 3 4 A De runda ringarna i automaten kallas för tillstånd. Pilarna kallas för bågar och markerar att man kan hoppa från ett tillstånd till ett annat i automaten om man har ett något som matchar det som står på bågen. Pilen till tillstånd 1 markerar att här får man börja. Tillstånd 4 är extra markerat och det innebär att det är ett så kallat sluttillstånd, dvs

- 16 - ett tillstånd som det är tillåtet att sluta på. Den här automaten säger alltså att en mening alltid måste börja med antingen ett egennamn (PROPN) eller en artikel (DET), noll eller flera adjektiv (A) och ett substantiv (N). Sist i meningen måste alltid komma ett verb (V). En finit automat kan användas både för att kontrollera om en viss sträng tillhör ett språk och för att generera strängar som tillhör språket. Om man till exempel vill kontrollera om strängen Kalle springer hör till språket så går man in i automaten vid starttillståndet (tillstånd 1). Man konstaterar sedan att Kalle är en PROPN och hoppar vidare till tillstånd 3. Därefter konstaterar vi att springer är ett verb och hoppar vidare till tillstånd 5. Nu är meningen slut och vi står i ett sluttillstånd i automaten. Meningen Kalle springer hör alltså till språket. Om man vill använda automaten för att generera meningar kan man göra så här. Vi startar vid starttillståndet som är tillstånd ett. Sedan hoppar vi vidare till tillstånd 2 och väljer en artikel, till exempel en. Nu hoppar vi till tillstånd 3 och väljer ett substantiv, boll. Till sist hoppar vi till sluttillståndet och väljer ett verb, rullar. Nu står vi i ett sluttillstånd och har alltså genererat meningen En boll rullar. För att ge lite fler ideer om vad finita automater kan användas till kommer här ytterligare ett exempel. I det här fallet vill vi beskriva hur svenska ord som börjar på bokstaven s kan se ut fram till första vokalen. I det här exemplet använder vi alltså bokstäver istället för ordklasser som markering för vilka bågar som vi ska följa i automaten. Automaten går att bygga ut för att omfatta alla möjliga bokstavskombinationer i en stavelse för det svenska språket, men den skulle då bli ganska stor och svåröverskådlig. I automaten används ordet Vokal för att representera valfri vokal. På flera ställen är också automaten förenklad genom att det ibland finns mer än en bokstav på varje båge. Notera speciellt att automaten innehåller två sluttillstånd, vilket alltså är tillåtet. I det här fallet är det extra sluttillståndet infört för att få en lite snyggare automat, men det finns fall där man behöver mer än ett sluttillsstånd för att kunna känna igen ett språk. Om vi tittar närmare på de två finita automater som vi definierat ser vi att givet att vi vet vilken ordklass eller bokstav vi får in så har vi alltid bara ett enda val på vilket tillstånd vi ska hoppa vidare till. En sådan automat kallas för en deterministisk finit automat (förkortat DFA). Ibland är det dock praktiskt att tillåta några valmöjligheter. Vi kan demonstrera detta genom att vi försöker utöka vår första lilla exempelautomat så att den också klarar av följande meningar. Bollen rullar. Den röda rullar. Den rullar. Den första meningen kan vi hantera genom att vi tillåter oss att både starta i tillstånd ett och två i automaten. Den andra meningen hanteras enklast genom att vi inför en extra båge mellan tillstånd 2 och 3 där vi kan hoppa vidare om vi har ett adjektiv i meningen. Det sista fallet kan man hantera genom att man tillåter sig att hoppa direkt

- 17 - Vokal 1 4 k Vokal Vokal r,l,v 3 r,l,j p r t 3 4 m,n,v,l,f 3 Vokal Vokal s Vokal 1 2 4 mellan tillstånd 2 och 3 utan att man använder sig av något tecken eller ord i meningen. Automaten som man får fram kommer att se ut så här. PROPN DET N V 1 2 3 4 A A Jump Som synes innehåller den här automaten flera ställen där man kan välja vad man ska göra. För det första kan man välja i vilket tillstånd man vill starta i automaten. För det andra kan man i tillstånd 2 välja om man ska hoppa vidare direkt till tillstånd 3 eller om man ska stanna och vänta på om man kan matcha något med någon båge. Dessut-

- 18 - om kan man, om man har ett adjektiv, i tillstånd 2 välja om man vill stanna kvar (följa den loopande bågen, eller om man vill hoppa vidare till tillstånd 3. Den här typen av automat kallas för en icke-deterministisk (eng nondeterministic) finit automat. Den förkortas ofta med NFA. Om man jämför deterministiska och ickedeterministiska automater så kommer man att se att de kan beskriva precis samma språk. Det finns relativt enkla algoritmer för hur man gör om en icke-deterministisk automat till en deterministisk. Däremot är det ofta så att en icke-deterministisk automat ofta blir mindre och enklare att förstå än den deterministiska motsvarigheten. Om man tänker på hur de ska implementeras är det däremot betydligt enklare att implementera en deterministisk finit automat eftersom man aldrig behöver hålla reda på några alternativ för den. För att enkelt sammanfatta vad en finit automat är och hur den fungerar kan man säga att en finit automat består av: En ändlig mängd av tillstånd Ett (för deterministiska automater) eller flera (för icke-deterministiska automater) av tillstånden kallas för starttillstånd. Där börjar man alltid gå igenom automaten. Mellan tillstånden finns ett antal bågar som talar om hur man får hoppa mellan tillstånden. Varje båge är märkt med det som ska kännas igen eller genereras när man följer bågen. För indeterministiska automater finns också hopp-bågar, där man kan hoppa vidare i automaten utan att matcha mot något i språket. En del av tillstånden är sluttillstånd. Det är bara om man hamnat i ett sluttillsstånd som den sträng man känt igen eller genererat är godkänd i språket. Den stora fördelen med finita automater är att de är snabba på att känna igen eller generera en sträng. De är också lätta att implementera. Längre fram i kompendiet kommer vi att använda finita automater som hjälp för att representera böjningsändelser i ett lexikon. Frågan om finita automater kan beskriva naturliga språks syntax är mera omstridd. Under lång tid har detta ansetts helt uteslutet, men eftersom man numera på automatisk väg kan skapa automater utifrån regelmängder, inklusive att approximera kontextfria språk, så har finita automater fått en renässans. Att försöka skriva en syntaktisk automat för hand är dock ett oöverstigligt problem, vilket man kan se om man tittar på följande meningar: Den lilla pojken rullar den röda bollen. Råttan som katten som hunden som pojken ägde jagade fångade smet. I det första exemplet ser vi att den del av meningen som utgör subjekt och den del som utgör objekt verkar vara uppbyggd på samma sätt. Vi skulle därför vilja beskriva den strukturen på ett ställe och sedan utnyttja den för både subjekt och objekt. Det är nå-

- 19 - got som man inte kan göra med finita automater eftersom varje del måste beskrivas i sitt sammanhang. I den andra meningen ser vi ett exempel där det verkar som om vi kan lägga till hur många X som som helst i en mening. Det verkar alltså som om vi behöver konstruktioner av typen a n b n åtminstone i teorin. Men i praktiken får man leta länge i faktiskt förekommande texter innan man hittar konstruktioner av denna typ med n > 2. Övningar 3.1 Välj tre ord som börjar på s och använd automaten i exemplet för att känna igen bokstäverna fram till första vokalerna som en godkänd kombination i svenska. 3.2 Utöka automaten så att den också klarar av ord som börjar med b, d och g. 3.3 Gör en automat som klarar av att känna igen svenska tidsuttryck. Automaten ska kunna hantera uttryck som: i morgon i morgon klockan 13.15 i morgon nästa vecka klockan 18.00 nästa vecka på måndag klockan 18.00 klockan 18.00 på måndag nästa vecka 3.4 Försök göra en automat som hanterar klarar av att känna igen språket a n b n. Kan du lista ut varför det inte fungerar? 3.2.2 Reguljära uttryck Ett alternativt sätt att definiera reguljära språk på är genom att använda reguljära uttryck. Reguljära uttryck är mycket användbara för att hitta olika typer av uttryck i faktiska texter. I synnerhet i ordklasstaggade texter (se kap. 5) kan reguljära uttryck användas för att hitta frasmönster av olika slag. Vi ger här först en lista på operationer som är vanligt förekommande i reguljära uttryck och illustrerar sedan med några enkla exempel. Den syntax vi tillämpar är den som tillämpas i scriptspråk som Perl eller operativsystem som Unix. Man ska lägga märke till att man kan tillföra symboler för många andra operationer, som kan definieras i termer av dem som visas i tabellen. Det är också användbart att kunna införa symboler för definierade uttrycksmängder. Vanliga sådana definitioner är: DIGIT = [0 1 2 3 4 5 6 7 8 9] NOLL = [0] LOWER = [a b c d e f g h i j k l m n o p q r s t u v w x y z] UPPER = [A B C D E F G H I J K L M N O P Q R S T U V W X Y Z] ALPHANUM = DIGIT LOWER UPPER

- 20 - Operation Beteckning Förklaring Symbol a, b, c,... Symboler i alfabetet som matchar vid identitet Jump e Symbol för frånvaro av uttryck Uttryck r, s, t,... Godtyckligt reguljärt uttryck (strängmängd) Konkatenering rs Matchar ett uttryck bestående av något som matchar r följt av något som matchar s. Union r s Matchar ett uttryck som matchar antingen r eller s. Iterering r + Matchar en sekvens av uttryck som matchar r Optionalitet r? Samma som [r e] Begränsad iterering r{n-m} Matchar en sekvens av uttryck som matchar r, om denna sekvens har minst n och högst m medlemmar. r{n} eller r n r{n-} Matchar en sekvens av exakt n st uttryck som matchar r. Matchar en sekvens av n eller flera uttryck som matchar r. Kleenestjärna r* Samma som [r? r+] Tabell 1: Några operationer för att definiera reguljära uttryck Ett reguljärt uttryck som identifierar heltalsuttryck i löpande text kan vara DIGIT+

- 21 - Om vi vill ta hänsyn till att heltal ofta inte börjar med noll kan vi hellre skriva [1 2 3 4 5 6 7 8 9][0 1 2 3 4 5 6 7 8 9]* eller (DIGIT - NOLL) DIGIT* Men då kommer vi att missa heltalsuttryck som t.ex. 5 000 där de tre sista nollorna separerats från början med ett blanktecken. Heltalsuttryck kan ofta vara skrivna med instoppade blanktecken eller kommatecken varför en bättre definition kan vara (DIGIT - NOLL)(DIGIT{0-2}(DIGIT + [, ]DIGIT{3})* Ett reguljärt uttryck som definierar samma mängd av ordklasssymboler som den första automaten i 1.2.1 är: (PROPN DET A* N) V Ett reguljärt uttryck för den utvidgade icke-detrministiska automat i samma kapitel är (PROPN DET? A* N?) 3.2.3 Kontextfria grammatikor Vi ska nu gå vidare till nästa klass av språk, de kontextfria. Eftersom vi sa att ett problem med finita automater var att det är svårt att utnyttja att olika delar av en mening är uppbyggd på samma sätt kan vi utgå från några meningar som innehåller både subjekt och objekt för att ge ett första exempel på en kontextfri grammatik. Kalle rullar den lilla bollen. En boll rullar. Den lilla bollen rullar. En hund rullar den bollen. En liten hund väcker Kalle. Precis som för finita automater förenklar vi problemet genom att titta på följder av ordklasser i stället för att titta direkt på de enskilda orden. Vi bestämmer oss för att följande ordklasser för orden i meningarna ovan. Kalle PROPN (egennamn) den en DET (artikel) lilla, liten A (adjektiv) boll, bollen, hund N (substantiv) rullar, väcker V (verb) Vi vill nu skriva en så kallad kontextfri grammatik som beskriver hur meningarna ovan är uppbyggda. En kontextfri grammatik består av ett antal regler. Varje regel be-

- 22 - står av ett vänsterled och ett högerled och säger ungefär vänsterledet består av högerledet. Vi bestämmer oss för att använda kategorin (eller klassen) S för att representera en hel mening. Vi kan då skriva den kontextfria grammatiken på följande sätt: S -> NP VP NP -> PROPN NP -> DET N NP -> DET A N VP -> V VP -> V NP Den här grammatiken kan läsas ungefär så här. En sats (S) består av en nominalfras(np) följt av en verbfras (VP). En nominalfras(np) kan vara uppbyggd på tre olika sätt. Antingen kan den enbart vara ett egennamn (PROPN), eller en artikel (D) följt av ett substantiv (N), eller artikel och adjektiv (A) följt av substantiv. En verbfras kan bestå av enbart ett verb eller ett verb (NP) följt av en nominalfras. När man använder en kontextfri grammatik för att generera eller känna igen ett språk försöker man hitta en trädstruktur där topnoden i trädet motsvarar den kategori man söker, i det här fallet en sats och bottennoderna ( terminalnoderna ) motsvarar varje ord i meningen. Ett sådant här träd brukar kallas för analysträd eller frasstrukturträd. Om vi vill analysera meningen Kalle rullar den lilla bollen så får vi följande trädstruktur. S VP NP NP PROPN V DET A N Kalle rullar den lilla bollen I frasstrukturträdet ser man tydligt vilka regler som har används för att analysera varje del av meningen. Om man börjar uppifrån så har vi använt S-regeln för att dela upp meningen i en nominalfras och en verbfras. Nominalfrasen har sedan analyserats som ett egennamn (PROPN) med hjälp av den första NP-regeln. Verbfrasen har delats upp i ett verb och en nominalfras med den andra VP-regeln. Verbfrasens nominalfras har sedan analyserats som artikel, adjektiv och substantiv av den tredje NP-regeln. För ytterligare demonstrera hur kontextfria grammatikor kan användas ger vi ytterligare ett exempel. I det exemplet vill vi känna igen palindrom, det vill säga ord som blir desamma oavsett om de läses framifrån eller bakifån. För att få en lite mindre

- 23 - grammatik begränsar vi oss till palindrom som innehåller bokstäverna a och n. I det här exemplet kan man notera att vi inte använder oss utav något lexikon utan istället direkt skriver in bokstäverna i högerledet på grammatikreglerna. P -> apa P-> npn P -> aa P-> nn P-> a P-> n Vi demonstrerar hur grammatiken fungerar med att försöka rita frasstrukturträd för anna och annan. Som vi ser lyckas det med palindromet anna medan frasstrukturträdet för annan blir ofullständigt eftersom det inte finns något som kan matcha det sista n-et i ordet. P P P P P a n n a a n n a n För att göra en sammanfattning av kontextfria grammatikor så kan vi säga att en kontextfri grammatik består av: En ändlig mängd terminala symboler. (I våra exempel motsvarar dessa antingen de symboler som kommer från lexikonet eller bokstäverna i palindromexemplet). En ändlig mängd icke-terminala symboler. (Det som används som vänsterled i grammatikreglerna.) En ändlig mängd regler. Varje regel skrivs på formen VL -> HL där VL alltid är en icke-terminal symbol medan VL består av valfritt antal symboler som kan vara både terminala och icke-terminala. Till sist kan vi säga något om fördelar och nackdelar med kontextfria grammatikor. För det första är kontextfri grammatikor relativt enkla att begripa och också att implementera på en dator, även om de blir något mer ineffektiva än finita automater. Man kan också säga att kontextfria grammatikor ger en bättre och mer lättbegriplig beskrivning av satser i naturligt språk. Trots det är det fortfarande många olika fenomen i språket som blir krångliga att hantera. Ett exempel är kongruensböjning i svenska nominalfraser som kräver många kontextfri regler för att kunna hanteras. Det är också

- 24 - så att frasstrukturträdet inte alltid motsvarar den analys som man vill få av en mening, eftersom den mer speglar meningens syntaktiska struktur än dess innehåll. Övningar 3.5 Hitta två svenska meningar som kan genereras av den kontextfria grammatiken i exemplet ovan. Rita upp frasstrukturträden för dina två meningar. 3.6 Utöka grammatiken ovan så att den kan hantera även följande meningar. Kalle rullar en boll till den lilla hunden. Rullar Kalle bollen? Hunden väcker Kalle på morgonen. Rullar Kalle bollen till hunden? 3.7 Gör en grammatik som klarar av att analysera matematiska uttryck. Den ska till exempel klara av att hantera nedanstående uttryck. 1+2 1+(2*3) (4/2)-1 (5*2)+(3-2) 3.8 Gör en grammatik som beskriver språket a n b n. Försök också göra en grammatik för språket a n b n c n. Kan du lista ut varför det fungerar att göra en grammatik för det första språket men inte för det andra?

- 25-3.3 Statistiska grunder På senare år har det blivit mycket populärt att använda statistik som hjälpmedel när man vill analysera naturligt språk och vi kommer att gå igenom en sådan metod längre fram i kompendiet. För att kunna förstå statistiska metoder behövs några statistiska grundbegrepp som vi kommer att går igenom här. Vi kommer också att gå igenom hur man enkelt kan kombinera statistik med finita automater och kontextfri grammatik och vilka problem som finns med att göra det. Det här avsnittet förutsätter grundläggande sannolikhetsteori som finns beskrivet i Russell & Norvig, 1995: kap. 14. 3.3.1 Den brusiga kanalen En grundidé när man arbetar med statistik i samband med naturligt språk är vad man brukar kalla för den brusiga kanalen (eng. the noicy channel). Iden här är helt enkelt att det som en människa eller dator uppfattar av ett yttrande aldrig är exakt detsamma som vad som ursprungligen skrevs eller sades. På vägen tillkommer en del störningsmoment eller felkällor som förvrängt yttrandet. Uppgiften är nu att utifrån det som uppfattades försöka skapa sig en bild av vad som sades. Om man vill ge en bild av den brusiga kanalen kan det se ut ungefär så här: I -> brusig kanal -> O Det som ursprungligen yttrades i den här modellen är alltså I och det som uppfattades är O. Det finns många olika sätt att använda den här modellen och för att göra den enklare att förstå kommer några exempel. Någon skriver på maskin. I är då vad denna person tänkt att skriva medan O är det som personen verkligen skrev och som förmodligen innehåller några skrivfel, till exempel sratisik i stället för statistik. Vi vill göra automatisk taligenkänning. I är då ett yttrande av någon person medan O är det som datorn uppfattade. Eftersom det är svårt att höra skillnad på många ljud i språket kommer O att innehålla fel där ord som låter lika byts ut. T ex kan ordet jag uppfattas som ja. Automatisk teckenigenkänning, dvs att kunna scanna in en sida text till en dator. I är det som stod på den ursprungliga sidan och O är det som datorn läst in. Även här har det förmodligen skett en del fel på vägen speciellt kan det vara svårt att skilja på 0 (noll) och O eller 1, I och l. Om man ska använda sig av en brusig kanal som modell så antar vi alltså att det vi har att titta på är det som kommit ut ur kanalen, det vill säga O. Vi har alltså bara tillgång till det som maskinskrivaren skrev, inte den ursprungliga texten. Vi har tillgång till de ljudkombinationer som datorn uppfattade men inte vad som sades. Vi har tillgång till

- 26 - den inscannade texten men inte originalet och så vidare. Uppgiften är nu att försöka lista ut vad som var originalet, det vill säga vad som kom in till kanalen, vårt I. Sättet att beräkna I är att använda statistik. Vi vill beräkna vad som var mest sannolika indata till kanalen givet att vi såg den utdata vi gjorde. För att kunna göra detta behöver man skaffa sig en statistisk modell över dels hur felen i kanalen uppkommer och dels hur indata (i vårt fall språket) ser ut. Det enda sätt vi kan göra detta på är att titta på språket och försöka lista ut vilka samband som är viktiga. När vi bestämt vilka samband vi vill använda så räknar vi ut de sannolikhetsmått vi behöver och skapar på så sätt den statistiska modell vi behöver. Många av de statsistiska modeller som används idag kan tränas automatiskt, vilket är att föredra eftersom det normalt behövs stora mängder data för att skapa en bra statistisk modell. Det finns några viktiga grundbegrepp som ofta används när man ska skapa en statistisk modell: Maximal likelihood estimator (MLE). Uppskattning av en sannolikhet efter det andel gånger som en viss händelse uppträtt i en träningstext. Till exempel det antal gånger en mening hade exakt 5 ord delat med totalt antal meningar eller det antal gånger ordet tiger förekommit som ett substantiv delat med alla gånger ordet tiger förekommit. Säkerhet (Accuracy). För att veta exakt vilka sannolikhetsmått som gäller i naturligt språk skulle vi vara tvungna att studera oändligt stora texter. Säkerheten är ett mått på hur säkra vi är på att de mått vi använder är korrekta. Felmarginal Ett mått på hur bra vår modell är, dvs hur stor avvikelse från verkligheten vi tillåter oss att ha. Glesa data (Sparse data) Sällsynta förekomster av en händelse, vilket är vanligt i naturligt språk. Ett exempel är att hur stor träningsmängd vi än har så kommer det alltid att finnas vissa ord eller betydelser av ord som inte förekommer i texterna. Expected likelihood estimator (ELE) Som MLE men man tar hänsyn till sällsynta förekomster av en händelse. I MLE så antar man att alla händelser som aldrig förekommit har sannolikheten 0. I ELE däremot så antar vi att det finns en viss liten sannolikhet även för händelser som vi aldrig sett. Till exempel även om ordet tiger bara förekommit som substantiv i våra texter så antar vi att det finns en liten sannolikhet för att det också till exempel kan vara ett verb eller ett pronomen. (Det här spelar framförallt stor roll när man försöker uppskatta hur flera sannolikheter fungerar tillsammans, vilket ofta innebär att man multiplicerar sannolikheter.) För att ytterligare förklara vad som menas med säkerhet och felmarginal så tar vi ett enkelt exempel. Vi antar att vi vill beräkna en statistisk modell för hur ofta krona kommer upp när vi kastar ett mynt. I det här fallet så vet vi att den korrekta modellen