Maskinöversättning och språkgranskning Föreläsning 7 Regelbaserad maskinöversättning Eva Pettersson Institutionen för lingvistik och filologi Uppsala universitet e-post: evapet@stp.lingfil.uu.se
Föreläsningsöversikt Regelbaserad maskinöversättning i allmänhet MatsLex Den lexikala databasen MATS-systemet så funkar det Transfer och generering i MATS-systemet Labben
Regelbaserad maskinöversättning interlingua-översättning transferbaserad översättning Källtext direktöversättning Måltext
MATS-systemet, bakgrund MATS = Methodology and Application of a Machine Translation System Samarbetsprojekt mellan Institutionen för lingvistik vid Uppsala universitet och Scania CV AB Bygger på MULTRA = Multilingual Support for Translation and Writing Nuvarande vidareutveckling sker i Convertus-systemet
MATS-projektets syfte Uppskalning av MULTRA för att skapa ett fullfjädrat, kommersiellt användbart maskinöversättningssystem för kvalitetsöversättningar av svensk, teknisk text o design och implementation av MATS-systemet o nytt lexikon i form av en lexikal databas o uppskalning av grammatik och lexikon
Grundläggande egenskaper Transferbaserat Prolog i botten Siktar mot fullständig analys av källspråket Möjliggör hög översättningskvalitet inom begränsade domäner Designprinciper: o genomskinlighet och spårbarhet o modularitet (varje delsteg sköts av separat modul)
MatsLex Den lexikala databasen Källspråket o lemma, teknisk stam, mönsterord, ordklass (verbvalens, semantisk information) o mönsterordsdefinitioner: mönsterord, morfosyntaktisk kod, suffix Målspråket o lemma, stam, mönsterord, ordklass o mönsterordsdefinitioner: mönsterord, morfosyntaktisk kod, suffix Översättningsrelationer o lemma och lexemnummer för källspråks- resp. målspråksingång
Exempel på källspråksingång i MatsLex Källspråkslemma: ägare.nn ägar KYPARE NOUN Mönsterordsdefinition: KYPARE e NNUXIB KYPARE es NNUXIG KYPARE en NNUSDB KYPARE ens NNUSDG KYPARE na NNUPDB KYPARE nas NNUPDG
Exempel på målspråksingång i MatsLex Målspråkslemma: owner.nn owner DOG NOUN Mönsterordsdefinition: DOG NNSB DOG s NNPG DOG 's NNSG DOG s' NNPG
Exempel på översättningsrelation i MatsLex Översättningsrelation: ägare.nn 1 owner.nn 1
Fraser i lexikonet Kontinuerliga fraser kan läggas in i lexikonet och ges ett mönsterord som talar om hur det ska böjas i alla fall New York Diskontinuerliga fraser kan inte läggas in i lexikonet, utan måste tas av transferregler slå på turn on
MATS-moduler 1) Textextraktion 2) Teckenomvandling 3) Tokenisering 4) Lexikonuppslagning 5) Parsning 7) Generering 8) Kodkomposition 9) Lexikonuppslagning 10) Fonotaktisk bearbetning 11) Finish 6) Transfer
1. Textextraktion Indata i XML-format Texten som ska översättas separeras från taggar Indata är meningssegmenterat Varje segment har ett id-nummer: <doc name= exempel > <s id= id1 >första meningen</s> <s id= id2 >andra meningen</s> </doc>
2. Teckenomvandling segmenten kodas om till latin1 så att de blir kompatibla med lexikonet sgml-entiteter görs om till motsvarande tecken vår vår
3. Tokenisering Varje segment delas upp i tokens (löpord) I de flesta fall hittas orden med ledning av whitespace Whitespace läggs in före/efter skiljetecken studenten sover. studenten sover.
4. Lexikonuppslagning (1) Uppslagning av: o enordsenheter: dag o flerordsenheter: i dag, på grund av o mönstermatchning: 2007 Okända ord o antas i MATS-systemet vara substantiv o senare versioner (Convertus-systemet) utnyttjar taggare
Lexikonuppslagning (2) De uppslagna orden tilldelas o morfosyntaktisk information o default-översättning Samspel mellan lexikonet och kodfilen matscodes
Lexikonuppslagning (3) Indatasträng: ägaren Lexikonuppslagning: ägare.nn NNUSDB Matscodes: :NOUN gender numb def case ########################################### NNUSDB utr sing def basic!np_noun
5. Parsning UCP3 (Light) Strävan efter komplett syntaktisk analys Hantering av meningar utan komplett analys Preferensmetod: rankning av likvärdiga analyser
6. Transfer (1) Indata: Analysstruktur för källspråket (från parsningsmodulen) o särdragsstruktur o källspråksspecifika attribut o default-översättningar från lexikonet Utdata: Motsvarande analysstruktur för målspråket o särdragsstruktur o målspråksspecifika attribut o översättningar anpassade till kontexten
Transfer (2) Källsida Målsida Transfermodulen översätter särdragsstrukturen I varje nod kan enskilda särdrag o kopieras över från källsidan till målsidan o läggas till på målsidan (t. ex. person från svenska till engelska) o tas bort på målsidan (t. ex. genus från svenska till engelska) o byta värde (t. ex. förvalda överssättningar)
Kopiera värden från källspråk till målspråk LABEL number SOURCE <* numb> =?x TARGET <* numb> =?x TRANSFER
Ta bort särdrag på målspråkssidan LABEL gender SOURCE <* gender> = ANY TARGET <*> = <*> TRANSFER
Byte av värde LABEL byta.mot-exchange.for SOURCE <* verb> =?verb1 <* verb head lex sym>=byta.vb.1 <* obj.prep phr.cat> = pp <* obj.prep prep word.cat> = PREP <* obj.prep prep lex sym> = mot.pp.1 <* obj.prep rect> =?rect1 TARGET <* verb> =?verb2 <* obj.prep phr.cat> = pp <* obj.prep prep word.cat> = PREP <* obj.prep prep lex> = for.pp.1 <* pred obj.prep rect> =?rect2 TRANSFER?verb1<=>?verb2?rect1<=>?rect2
7. Generering Genereringens uppgift: att utifrån målspråkets särdragsstruktur ordna de ingående leden i rätt ordföljd Indata: särdragsstruktur från transfermodulen Utdata: målspråkssärdrag ordnade i rätt ordföljd Grammatik för målspråket Unifiering och konkatenering Baserat på PATR-II (Stuart M. Shieber)
Generering (2) Typad unifiering Undviker övergenerering av regler För strukturer som innehåller typade särdrag måste alla de typade särdragen finnas uppräknade i regeln för att regeln ska vara tillämpbar Alla typade särdrag i regeln måste finnas med i särdragsstrukturen för att regeln ska vara tillämpbar
8. Kodkomposition Särdragsstrukturen från genereringsmodulen mappas mot motsvarande morfosyntaktiska koder för de ingående ordformerna, ex: Indata: Utdata: ([numb:plur, case:basic, word.cat:noun, lex:student.nn.1]) (NNPB [* [lem [sym student.nn]]])
9. Lexikonuppslagning Indata: Målspråkslemman med tillhörande morfosyntaktiska koder Utdata: Målspråksordformer student.nn NNPB students
10. Fonotaktisk bearbetning Ytsträngen skrivs om i enlighet med fonotaktiska regler, t.ex: a engine an engine
11. Finish Finputsning av de översatta segmenten, t.ex: o gör om första bokstaven i varje mening till versal o ta bort överflödiga mellanslag Den översatta texten läggs in i en likadan XML-struktur som källtexten
Upphämtningsstrategier Översättningsprocessen kan misslyckas i ett eller flera delsteg Upphämtningsstrategier (fallback-strategier) för att hantera: o okända ord: externa lexikon, ordklassgissare o ofullständig parsning: klistra ihop delanalyser o ofullständig transfer: kopiera över okända strukturer o ofullständig generering: alternativ strategi o ofullständigt målspråkslexikon: försök generera form
Översättning med partiella analyser Vissa meningar okänsliga för segmentering: [en bil] [,] [en buss och ett tåg] [a car] [,] [a bus and a train] Problem när beroende bryts (boundary friction): [för studerande som underkänts] [vid det ordinarie provtillfället] [anordnas] [två extra provtillfällen] [for students who have failed] [at the regular examination] [is organised] [two additional examinations]
Fallbackgenerering Målspråksgrammatiken täcker inte alltid hela strukturen Om så är fallet följer man källspråkets ordföljd även i målspråket Fungerar bra i många fall: studenten är glad the student is happy Fungerar mindre bra i andra fall: för studerande som underkänts vid det ordinarie provtillfället anordnas två extra provtillfällen for students who have failed at the regular examination is organised two additional examinations
Fallbackgenerering med språkmodell (1) Ordföljd (jag tänker,) därför finns jag o 56 800: therefore I exist o 912: I exist therefore o 301: I therefore exist o 59: therefore exist I
Fallbackgenerering med språkmodell (2) Ordval/böjning Jag är törstig o 92 300: I am thirsty o 3 210: I are thirsty o 658: I is thirsty
Fallbackgenerering med språkmodell (3) Samma idé som inom statistik maskinöversättning: o för varje ord/fras i meningen, samla ihop alla dess översättningsalternativ o sök efter den kombination av översättningsalternativ som både maximerar sannolikheten för ordvalet och sannolikheten för ordföljden o språkmodellen bygger optimalt på en korpus för den domän som maskinöversättningssystemet är tränat för att översätta o om ingen domänspecifik korpus finns, kan man använda Internet som språkmodell, t. ex. via Google
Transfer och generering i MATS studenten litar på läraren the student trusts the teacher prepositionsobjekt direkt objekt
Lexikonuppslagning ((NNUSDB [* [lem [sym student.nn], [lex [sym student.nn.1]], [trglex [sym student.nn.1]]]]) (VBAPM [* [lem [sym lita.vb], [lex [sym lita.vb.1]], [trglex [sym trust.vb.1]]]]) (PP [* [lem [sym på.pp], [lex [sym på.pp.1]], [trglex [sym on.pp.1]]]]) (NNUSDB [* [lem [sym lärare.nn], [lex [sym lärare.nn.1]], [trglex [sym teacher.nn.1]]]])
1-process([[* =['phr.cat'=cl, type=main, (mode)=decl, subj=['phr.cat'=np, numb=sing, gender=utr, case=basic, def=def, head=[lem=[sym='student.nn', lex=[sym='student.nn.1'], trglex=[sym=path(* :subj:head:lem:lex:sym)]], 'word.cat'='noun']], verb=[lem=[sym='lita.vb', lex=[sym='lita.vb.1'], trglex=[sym='trust.vb.1']], tense=pres, 'verb.type'=path(* :type), inff=fin, diat=act, 'word.cat'='verb'], 'obj.prep'=['phr.cat'=pp, prep=[lem=[sym='på.pp', lex=[sym='på.pp.1'], trglex=[sym='on.pp.1']], 'word.cat'='prep'], rect=['phr.cat'=path(* :subj:'phr.cat'), numb=path(* :subj:numb), gender=path(* :subj:gender), case=path(* :subj:case), def=path(* :subj:def), head=[lem=[sym='lärare.nn', lex=[sym='lärare.nn.1'], trglex=[sym='teacher.nn.1']], 'word.cat'=path(* :subj:head:'word.cat')]]]]]]
Transferregel LABEL lita.på-trust SOURCE <* verb> =?v1 <* verb lem lex sym> = lita.vb.1 <* obj.prep phr.cat> = pp <* obj.prep prep> =?x <* obj.prep prep lem lex sym> = på.pp.1 <* obj.prep rect> =?rect TARGET <* verb> =?v2 <* obj.dir> =?objdir TRANSFER?v1 <=>?v2?rect <=>?objdir
Särdragsstruktur efter transfer [phr.cat:cl, type:main, mode:decl, verb:[tense:pres, verb.type:main, inff:fin, diat:act, word.cat:verb, lex:trust.vb.1, person:3], obj.dir:[phr.cat:np, numb:sing, case:basic, def:def, head:[word.cat:noun, lex:teacher.nn.1]], subj:[head:[word.cat:noun, lex:student.nn.1], phr.cat:np, numb:sing, case:basic, def:def]]
Genereringsregler LABEL cl.subj-verb-obj.dir x1 ---> x2 x3 x4: <x1 phr.cat> = cl <x1 type> = main <x1 mode> = decl <x1 subj> = <x2> <x1 verb> = <x3> <x3 inff> = <x1 inff> <x3 tense> = <x1 tense> <x3 numb> = <x2 numb> <x3 person> = <x2 person> <x1 obj.dir> = <x4> LABEL np.indef.art-noun x1 ---> x2 x3: <x1 phr.cat> = np <x1 def> = indef <x1 art> = <x2> <x1 head> = <x3> <x3 numb> = <x1 numb> <x3 case> = <x1 case>
Kodkomposition ((ALD [* [lem [sym the.al]]]) (NNSB [* [lem [sym student.nn]]]) (VBPM3S [* [lem [sym trust.vb]]]) (ALD [* [lem [sym the.al]]]) (NNSB [* [lem [sym teacher.nn]]]))
Lexikonuppslagning the student trusts the teacher
Färgkodningar Färgkoder talar om vilka problem systemet har haft...
Labben Undersök MatsLex Provkör MATS-systemet Skriv lingvistiskt motiverade transfer- och genereringsregler för ett antal meningar Inlämning: Fredag 26 oktober