Sprkteknologiska metoder Sprkteknologisk forskning och utveckling HT 2006

  • Slides: 17
Download presentation
Språkteknologiska metoder Språkteknologisk forskning och utveckling (HT 2006)

Språkteknologiska metoder Språkteknologisk forskning och utveckling (HT 2006)

Metoder i språkteknologi • Forskningsmetoder: – Metoder för att systematiskt söka ny kunskap och

Metoder i språkteknologi • Forskningsmetoder: – Metoder för att systematiskt söka ny kunskap och berättiga vetenskapliga teorier • Utvecklingsmetoder: – Metoder för att tillämpa ny kunskap och vetenskapliga teorier i utvecklandet av språkteknologiska system • Problem (begreppsligt): – Dessa metoder går delvis in i varandra och används tillsammans i språkteknologisk forskning (och utveckling)

Språkteknologiska problem • Språkteknologi utvecklar datorsystem som hanterar naturligt språk. • Exempel på språkteknologiska

Språkteknologiska problem • Språkteknologi utvecklar datorsystem som hanterar naturligt språk. • Exempel på språkteknologiska problem: – Ordklasstaggning: Annotera meningar eller texter i naturligt språk med ordklasser. – Textgenerering: Producera texter på naturligt språk från en (icke-språklig) kunskapsrepresentation. – Maskinöversättning: Översätta meningar eller texter i ett (naturligt) källspråk till meningar eller texter i ett (naturligt) målspråk.

Modeller och algoritmer • Problem (metodologiskt): – Många språkteknologiska problem är alltför vagt definierade

Modeller och algoritmer • Problem (metodologiskt): – Många språkteknologiska problem är alltför vagt definierade för att kunna lösas algoritmiskt. – Vi använder därför matematiska modeller för att lösa abstrakta problem som är approximationer av de verkliga problemen. • Exempel: – Syntaktisk analys av text i ett naturligt språk L kan lösas genom att beräkna parsningsproblemet för en kontextfri grammatik G för ett formellt språk L(G) som approximerar L.

Tillämpningsmetoder • En tillämpningsmetod för ett problem P kan normalt delas upp i två

Tillämpningsmetoder • En tillämpningsmetod för ett problem P kan normalt delas upp i två komponenter: – En matematisk modell M som definierar ett abstrakt problem Q som kan användas som en modell av P – En algoritm A som effektivt beräknar Q • Exempel: – – P = Syntaktisk analys M = Kontextfri grammatik Q = Parsningsproblemet för kontextfria grammatiker A = Parsningsalgoritm (t. ex. CKY)

Problem, modeller och algoritmer Verkligt problem P Abstrakt problem Q Instanser Lösningar I S

Problem, modeller och algoritmer Verkligt problem P Abstrakt problem Q Instanser Lösningar I S Modell M Instans i Algoritm A Lösning s

Utveckling och utvärdering • En utvecklingsmetod är en metod för att implementera en tillämpningsmetod

Utveckling och utvärdering • En utvecklingsmetod är en metod för att implementera en tillämpningsmetod i ett språkteknologiskt system: – Utveckling/implementation av modeller (inklusive dataresurser) – Utveckling/implementation av algoritmer • En utvärderingsmetod är en metod för att utvärdera ett språkteknologiskt system

Systemutveckling • Definiera problem: – Verkligt problem med utvärderingskriterier – Approximation i form av

Systemutveckling • Definiera problem: – Verkligt problem med utvärderingskriterier – Approximation i form av abstrakt(a) problem • Definiera och implementera tillämpningsmetoder: – Matematiska modeller: • Struktur (formalism, representationsspråk, etc. ) • Innehåll (dataresurser, t. ex. lexikon, grammatik) – Algoritmer • Utvärdera system: – Intern utvärdering (modeller och algoritmer) – Extern utvärdering (jfr utvärderingskriterier)

Systemutveckling: Exempel (1) • Problem: – Syntaktisk analys av fri text på svenska –

Systemutveckling: Exempel (1) • Problem: – Syntaktisk analys av fri text på svenska – Utvärderingskriterier: • Robusthet: Minst en analys per mening • Disambiguering: Högst en analys per mening • Effektivitet: Linjär tids- och minnesåtgång (i förhållande till meningslängd) • Korrekthet: Andelen helt korrekt analyserade meningar i ett slumpmässigt stickprov

Systemutveckling: Exempel (2) • Abstrakta problem: – Grammatikbaserad parsning: x {y 1, …, yn}

Systemutveckling: Exempel (2) • Abstrakta problem: – Grammatikbaserad parsning: x {y 1, …, yn} – Statistisk disambiguering: {y 1, …, yn} ymax • Matematiska modeller: – Formell grammatik: • Definierar en mängd av härledningar för varje sträng, t. ex. i form av kontextfria parseträd – Statistisk disambigueringsmodell: • Definierar en metrik för par av strängar och parseträd, t. ex. i termer av deras förenade sannolikhet P(x, yi).

Systemutveckling: Exempel (3) • Algoritmer: – Parsningsalgoritm – Algoritm för beräkning av metrik (eventuellt

Systemutveckling: Exempel (3) • Algoritmer: – Parsningsalgoritm – Algoritm för beräkning av metrik (eventuellt integrerat i parsningsalgoritmen) • Implementation: – Utveckla grammatik (t. ex. genom manuellt utvecklingsarbete) – Utveckla disambigueringsmodell (t. ex. genom induktiv inlärning från korpusdata) – Implementera datastrukturer och algoritmer för parsning och disambiguering

Systemutveckling: Exempel (4) • Utvärdering – Teoretiskt: • Bevisa formella egenskaper hos modeller och

Systemutveckling: Exempel (4) • Utvärdering – Teoretiskt: • Bevisa formella egenskaper hos modeller och algoritmer, t. ex. terminering och tidskomplexitet. – Experimentellt: • Testa systemet på slumpmässigt stickprov av fri text på svenska och mät: – Robusthet: Andel meningar som ej får någon analys. – Disambiguering: Andel meningar som får mer än en analys. – Effektivitet: Faktisk tids- och minnesförbrukning (i förhållande till indatas storlek). – Korrekthet: Andel meningar som får en helt korrekt analys (i jämförelse med manuell annotering).

Modellering • Faktorer att beakta vid val av abstrakt modellproblem (för ett givet verkligt

Modellering • Faktorer att beakta vid val av abstrakt modellproblem (för ett givet verkligt problem): – Indata (ord, meningar, texter, sökfrågor, …) – Utdata (texter, dokument, analyser, …) – Relation mellan indata och utdata (analys av mening, dokument som matchar sökfråga, …) – Bivillkor (effektivitetskrav, tillgång på resurser, …) • Ett abstrakt problem kan ofta brytas ned i mindre och enklare delproblem: – Syntaktisk analys: tokenisering, taggning, chunkning, grammatisk funktionsanalys, …

Algoritmutveckling • Utveckling av nya algoritmer: – Utveckla algoritmen (eller anpassa en befintlig algoritm).

Algoritmutveckling • Utveckling av nya algoritmer: – Utveckla algoritmen (eller anpassa en befintlig algoritm). – Beskriv algoritmen på ett exakt sätt. – Bevisa egenskaper hos algoritmen (t. ex. komplexitet). • Implementation av algoritmer: – Välj implementationsstrategi (iterativt eller rekursivt, top-down eller bottom-up, …). – Välj lämpliga datastrukturer. – Koda algoritmen i lämpligt programspråk (och programmeringsmiljö). – Testa algoritmen (t. ex. med benchmark-exempel).

Modellutveckling • Två aspekter av modeller: – Struktur (t. ex. kontextfri grammatik, Markov-modell) –

Modellutveckling • Två aspekter av modeller: – Struktur (t. ex. kontextfri grammatik, Markov-modell) – Substans (specifika regler, sannolikheter, etc. ) • Utveckling av modeller: – Struktur: Definiera en ny typ av modell. – Substans: Instantiera en befintlig modelltyp (t. ex. utveckla en morfologisk beskrivning för finska). • Implementation av modeller: – Struktur: Datastrukturer (jfr algoritm) – Substans: Inläsning och lagring av data i strukturer

Utvärdering • Olika typer av utvärdering: – Black box: Extern utvärdering, in- och utdata,

Utvärdering • Olika typer av utvärdering: – Black box: Extern utvärdering, in- och utdata, oberoende av tillämpningsmetod (modeller och algoritmer) – Glass box: Intern utvärdering, modeller och algoritmer, separat eller tillsammans • Utvärderingsdimensioner: – Funktionalitet (inklusive korrekthet) – Effektivitet (resursförbrukning) – Användbarhet, portabilitet m. m.

Iterativ utveckling • Utveckling sker ofta iterativt med återkommande inslag av utvärdering: while (not

Iterativ utveckling • Utveckling sker ofta iterativt med återkommande inslag av utvärdering: while (not satisfactory) { design; implement; evaluate; }