Gå till innehållet. Gå till navigation

Språkteknologi.se

Personliga verktyg

Textanalys

Dokumentåtgärder
Textanalys är enkelt uttryckt hur datorn tolkar texter, hur den kan förstå vilka grammatiska och kontextuella funktioner olika ord fyller och hur den kan representera en texts innebörd. Här presenteras även textgenerering, hur datorn skapar en text från en beskrivning av vad som ska uttryckas.

Textgenerering


Automatisk generering av naturligt språk

Automatisk generering av naturligt språk (kort och gott "generering"), eller "NLG" (Natural Language Generation) med en engelsk akronym, kallas forskningsområdet som ägnar sig åt att studera och bygga teorier och system för att från en "underliggande representation" skapa "texter" (skrivna eller talade språksekvenser) på något naturligt språk. "Underliggande representationer" är ett samlingsbegrepp för alla möjliga sätt att representera information som kan finnas i en dator. Varje system har sitt format. Generellt kan sägas att NLG ska omvandla något vi människor inte kan tolka (åtminstone inte utan att lära oss "läsa" eller "tolka" den representationen) till något vi förstår; en text på vårt modersmål. Den genererade texten kan bestå av enstaka satser, en hel paragraf eller en text med flera paragrafer. Det kan också handla om att generera yttranden i en dialog. Gemensamt för dem är att vi, om vi tillhör textens målgrupp, ska kunna förstå den. Förståeliga texter kännetecknas av att grammatiken är korrekt, att man använder rätt ord för att skapa den betydelse man vill ha, men även rätt ord för att nå den målgrupp man har, och att texten hänger ihop och flyter bra. Att den är en bra och ändamålsenlig text, helt enkelt.

Ett genereringssystem skulle därför kunna liknas vid en översättare som i stället för att översätta mellan två språk som människor talar, översätter mellan språk som datorer förstår och vårt språk. Men bara till en viss grad; som vi ska se senare ingår det en hel del annat arbete i genereringsprocessen.

Egenskaper som man brukar kräva av system som ska passa in under begreppet generering är att texten skapas avsiktligt och uppfyller de kommunikativa mål som avses. Detta innebär att framslumpade ord, även om de nu skulle bilda en mening, inte faller innanför ramen. Inte heller talande dockors lösryckta satser hör hit.

Det finns många olika anledningar till varför folk ägnar sig åt generering; dessa anledningar brukar leda till att man studerar olika saker och på olika sätt. En del av forskningen med rötterna i artificiell intelligens och datorlingvistik syftar till att "lära datorn tala". Men det kan också handla om att testa lingvistiska teorier, t.ex. att undersöka om en psykolingvistisk teori om språkproduktion håller, d.v.s. om det är en möjlig teori om de processer som äger rum i våra hjärnor när vi pratar eller skriver. Generering är också viktig i gränssnittsforskning, då man studerar hur språk kan användas som kommunikationsmedel mellan människa och dator. Syftet med det senare är att göra informationen som finns i datorer tillgänglig för människorna, för ALLA människor och inte bara för dem som kan handskas med datorer.

NLG-system brukar sällan fungera ensamma utan utgör ofta en modul i ett större system som har en mer övergripande funktion. Några exempel är: automatisk översättning, automatisk sammanfattning, dialogsystem (gränssnitt till databaser, svar från expertsystem), rapportering av händelser i system och/eller stora mängder statistiska data, rapportering av föränderliga data, texter som ska anpassas för olika mottagare eller på olika språk. Genereringssystem för dessa olika tillämpningar kan skilja sig mycket åt; både i vad systemet får in och vad det ska ge ut samt vad det gör. Som en modul i ett översättningssystem kan t.ex. NLG-modulen som indata få en representation av vad som stod i källspråket, som då ska ges ord och grammatisk struktur på målspråket. En genereringsmodul som är en del av ett språkgränssnitt mot en databas har å sin sida som indata en post från databasen, och eventuellt ett kommunikativt mål att uppfylla och generera en presentation av informationen från databasen.

Vad som traditionellt anses ingå i ett genereringssystem sträcker sig från "vad ska sägas?" till "hur ska det sägas?", d.v.s. från att bestämma innehållet (oftast måste man välja bland stora mängder information) till hur detta bäst presenteras för användaren. I detta "bäst presenteras" ingår t.ex. att välja vilka ord som ska användas, i vilken ordning informationen ska komma och vilka grammatiska konstruktioner som ska användas. Trots att det kan låta lätt, är dessa val ingalunda det, och med tanke på alla dåliga och svårtförståeliga texter som vi dagligen konfronteras med, verkar dessa val vara rätt svåra även för oss människor!


Metoder

Det finns olika metoder att ta till när man behöver NLG i sin applikation. Det enklaste sättet är att använda sig av färdigskrivna texter eller färdiginspelade meddelanden, s.k. "burkade texter" och "burkat tal" (eng. "canned text", "canned speech"). Detta är något de flesta av oss kommit i kontakt med; t.ex. i form av texter som visas när man sätter på en dator ("Välkommen till XX") eller meddelandena i telefonbanktjänster. Problemen med denna metod är att man måste förutse allt ett system ska behöva kunna säga - systemen har en begränsad uttrycksförmåga - och lägga ner mycket manuellt arbete både vid skapande och vid ändringar, vilket gör dem dyra att underhålla. Ska systemet utföra annat än triviala uppgifter, måste man ha många olika meddelanden och bra metoder för att välja det som passar bäst.

Ibland har man många meddelanden som bara skiljer sig åt ifråga om ett eller några få ord; då kan man använda sig av s.k. "mallar" (eng. "templates"). Mallar är färdiga texter med "hål" som kompletteras med värden på de variabla delarna, t.ex. "Saldot på konto KONTONR är SALDOBELOPP kronor". Med mallar har man delvis samma problem som burkade texter: de måste byggas och underhållas för hand, och behovet av dem måste förutses. Däremot blir de ofta färre till antalet och problemet att välja rätt blir mindre. Man får dock ett nytt och viktigt problem, nämligen kongruenssvårigheter mellan variabelvärdet och bärtexten. Vad betyder det? Jo, att det ord som fyller "hålet" och den fasta texten måste passa ihop. I SEB:s första version av sin telefonbank hade man spelat in "Du har VÄRDE fria uttag kvar i år" för ett visst slags sparkonto. Detta gav innan något uttag hade gjorts "Du har två fria uttag kvar i år", men efter ett uttag fick man sedan höra "Du har ett fria uttag kvar i år", vilket ju inte är grammatiskt.

När det inte räcker med metoderna ovan kan man ta till "fullständig generering", d.v.s. att från en abstrakt representation skapa en text; inte välja som med burkade texter och mallar. Nackdelarna med sådana system är att man inte riktigt har fullständigt kontroll över vad som skapas, att de är dyra att utveckla och att det inte finns några standardprogram eller standardmetoder - däremot en hel del forskning och prototyper, samt system för begränsade domäner. Fördelarna är att de är billiga att utöka och underhålla, att de i princip har obegränsad uttryckskraft och att utvecklaren inte heller behöver förutse allt vad systemet ska kunna säga.

På senare tid har man försökt kombinera de burkade texternas och mallarnas fördelar med genereringens, s.k. hybridmetoder. Tanken bakom dessa är att vissa delar av en text kan vara väldigt konstanta medan andra kan variera mycket; således löses varje del med olika metoder. Om ett system t.ex. alltid välkomnar användaren med en viss fras är det onödigt att varje gång generera den. Man kan i stället lagra den färdig, medan delarna som inte är konstanta genereras. Utmaningen med hybridmetoderna är att på ett effektivt sätt kombinera de olika metoderna i ett och samma system.


Testa system

På svenska finns det ett system som skapar väderrapporter för "låghöjdsflyg". Alla i Sverige som flyger mindre plan är skyldiga att innan de ger sig av informera sig om vädret i området. SMHI har speciella prognoser för ändamålet. Man får tillgång till prognoserna genom talsvar på nummer 020-58 10 00. Prognoserna läses upp med talsyntes.

Ett mycket bra system är ILEX, ett minimuseum på nätet som presenterar modern skotsk smyckekonst. Man navigerar bland smyckena som presenteras i bild och text. Men till skillnad från vanliga webbsidor där samma text presenteras gång på gång, genererar ILEX texterna medan du vandrar runt och anpassar texten till vad du sett och vad du fått veta innan. Meningen är att systemet, ungefär som museiguider, ska lära dig något om smyckena, stilarna och konstnärerna. Således refererar systemet till de objekt du sett innan, påpekar vilken stil objekten tillhör, vilka karakteristiska och okarakteristiska drag de har m.m. Man får inte all information på en gång, eftersom det skulle bli för mycket att ta in, men om du återkommer till ett objekt får du veta nya saker. Systemet bygger på studier av hur museiguider visar samlingarna samt intervjuer med dessa där de påpekade de pedagogiska aspekterna av sitt arbete.

Till skillnad från ett vanligt www-galleri, där varje objekt presenteras en gång i sin helhet och ganska oberoende av andra objekt i samlingen (även om man länkar sidorna till varandra är själva presentationen "neutral" i sitt berättarsätt), får man med ILEX en rundvandring som en sammanhängande helhet. Nackdelen är att det kan ta lite tid.

Några andra system att testa:

  • I Saarbrücken har man utvecklat ett system som genererar miljörapporter på olika språk.
  • En översikt över genereringssystem finns här.
  • SIGGEN är en sammanslutning för genereringsforskare inom ACL (Association of Computational Linguistics). Här finner man material och information om genereringsforskning, som system, litteratur och konferenser. Sidan vänder sig främst till medlemmar som är "proffs" på området, men det finns även länkar till mer lekmannamässiga presentationer. Materialet är på engelska.
  • Tyska AI-institutet håller ett öga på forskning och marknad.


Referensarkitektur för genereringssystem

Följande presentation baserar sig på arkitekturen presenterad i artikeln "Building applied natural language generation systems" av Robert Dale och Ehud Reiter. Sedan området började utvecklas på allvar i början av 80-talet, har referensarkitekturen ändrats några gånger. Nu för tiden finns det, mer eller mindre, konsensus om följande modell:

arkitektur

Modellen ger en tredelad arkitektur med två mellanliggande representationer. Det finns en strävan efter standardisering av gränssnittsrepresentationerna (alltså textplanen och satsplanen) eftersom detta skulle möjliggöra utbytet av moduler, och därmed även av jämförelse och utvärdering av dem.

Indata till modellen är ett kommunikativt mål, och dessa kan se ut på många olika sätt. Vanligast är att de utgörs av en talhandling (t.ex. "informera", "fråga") och någon representation av informationen som ska presenteras.


Textplanering

Textplaneringens uppgift är att bestämma textens innehåll och övergripande organisation, d.v.s vad som ska ingå i texten och i vilken ordning informationen ska presenteras. Det är här databasen söks och informationen filtreras och sammanfattas, om det behövs.


Textplan

Textplanen är en abstrakt representation av vad texten ska innehålla och i vilken ordning informationen ska presenteras, ett slags skiss eller ritning över texten. Förutom textens innehåll består textplanen även av de retoriska förhållandena mellan de olika informationsbitarna. En mycket använd representation är trädstrukturen, där meddelandena utgörs av terminala noder.

textplan


Satsplanering

Satsplanering utgår från textplanen och innebär en detaljerad planering av varje sats som ska bygga upp texten. Här bestäms hur innehållet ska presenteras i satserna (alltså: hur många satser, vad ska de presentera, osv.). Men man bestämmer också vilka ord som ska användas, både för att referera till objekt och relationer och för att binda samman satserna.

Under denna fas bestämmer man också vilka informationsbitar som ska presenteras ihop. De organiseras också så att man inte behöver upprepa ord i onödan, man tar bort överflödig information genom att samordna och samla lika med lika. Man måste också vara försiktig så att det som presenteras inte ger upphov till underförstådda meningar som inte är sanna.

En viktig process är "lexikalisering", d.v.s. at välja de ord som ska användas. Här gäller det att se till att man väljer de ord som får texten att flyta så att användaren lätt förstår vad som avses. Man väljer t.ex. bland synonymer, men även mellan mer generella eller mer specifika ord. Det gäller också att välja rätt pronomen och på rätt plats. En annan fråga är när man får och inte får använda bestämd form av ingående ord.

Exempel: Vi ska prata om en flicka som heter Maria, och vi kan referera till henne med orden:

  • Maria
  • En flicka
  • Flickan
  • Hon
  • Henne
  • Den där flickan
  • Den där
  • X:s dotter
  • Y:s syster

Det utmynnar i en beskrivning av henne som gör att de som ingår i textens målgrupp förstår vem som åsyftas.


Satsplan

Satsplaneringen skapar en satsplan, som är en gränssnittsrepresentation som för varje mening i texten (eller för varje yttrande) innehåller meningens struktur samt grundord och uppgifter om vilken roll de har i meningen. Däremot innehåller de inte grammatiska ord eller ändelser.


Ytrealisering

Sista steget handlar om att från satsplanen göra en sträng i något naturligt språk. Orden ska få rätt böjning och hamna på rätt plats i satsen, och småorden ska in. Även sådant som påverkar presentationen av texten måste ordnas, t.ex. bra layout på rubriker eller stor begynnelsebokstav när texten ska presenteras visuellt, korrekt intonation och betoning om texten ska presenteras i talad form osv. Till sitt förfogande har ytrealisatorn oftast en grammatik och ett lexikon, men kan även använda t.ex. layoutkunskap eller kunskap om intonation och betoning m.m.


av Lena SantamartaSenast ändrad 2006-02-28 13:00

Driven av Plone, Open Source Content Management System

Denna webbplats följer följande standarder: