1 / 22

DAB760: Språk och logik 15/4: Finita automater i 15-17 språkteknologi

DAB760: Språk och logik 15/4: Finita automater i 15-17 språkteknologi. Leif Grönqvist (leif.gronqvist@msi.vxu.se) Växjö Universitet (MSI) GSLT (Sveriges nationella forskarskola i språkteknologi) Göteborg Universitet (Institutionen för lingvistik). Dagens föreläsning.

clark
Download Presentation

DAB760: Språk och logik 15/4: Finita automater i 15-17 språkteknologi

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. DAB760: Språk och logik15/4: Finita automater i 15-17 språkteknologi Leif Grönqvist (leif.gronqvist@msi.vxu.se) Växjö Universitet (MSI) GSLT (Sveriges nationella forskarskola i språkteknologi) Göteborg Universitet (Institutionen för lingvistik) Språk & logik: Reguljära uttryck

  2. Dagens föreläsning • XEROX finite-state-verktyg: XFST • Några exempel bland annat från XEROX webbsida • Morfologi • Fransk vokalförändring • Substantivfraser • Grammatikkontroll • Stavelseuppdelning • Taligenkänning • Soundex • Översättning mellan romerska och arabiska tal • Einsteins puzzel Språk & logik: Reguljära uttryck

  3. XEROX verktyg • Xerox har en gratisversion av sin FST-kompilator på nätet: • http://www.xrce.xerox.com/competencies/content-analysis/fsCompiler/fsinput.html# • En mer utvecklad version som kan hantera större automater finns att köpa • Xerox Finite-State Compiler utvecklades av Tamás Gaál, Ronald M. Kaplan, Lauri Karttunen, André Kempe • Några praktiska operatorer har lagts till: • A .x. B : Kryssprodukt för språken A och B • .#. : Början/slut av sträng • A -> B || L _ R : Ersätt A (i övre språket) med B (i undre) i kontexten: efter språket L och före R • % används före specialtecken, t.ex. mellanslag • Läs i dokumenten på XEROX hemsida för en fullständig lista Språk & logik: Reguljära uttryck

  4. Morfologisk kodning • En transduktor (Lauri Karttunen. 1994. Constructing Lexical Transducers) • Ger en möjlighet att översätta mellan • grundform+analys (övre språk) • ytform i texten (undre språk) • Ett litet exempel från XEROX webbsida: [ [l e a v e VBZ .x. l e a v e s] |[l e a v e VB .x. l e a v e] |[l e a v e VBG .x. l e a v i n g] |[l e a v e VBD .x. l e f t] |[l e a v e NN .x. l e a v e] |[l e a v e NNS .x. l e a v e s] |[l e a f NNS .x. l e a v e s ] | [l e f t JJ .x. l e f t] ] • Kan matas in direkt i XEROX finite-state-kompilator Språk & logik: Reguljära uttryck

  5. Resulterande nätverk 16 states, 22 arcs, 8 paths. Sigma: a e f g i l n s t v JJ NN NNS VB VBD VBG VBZ s0: l -> s1. s1: e -> s2. s2: a -> s3, f -> s4, <a:f> -> s5. s3: v -> s6, <f:v> -> s7. s4: t -> s8. s5: <v:t> -> s9. s6: e -> s10, <e:i> -> s11. s7: <NNS:e> -> s12. s8: <JJ:0> -> fs13. s9: <e:0> -> s14. s10: <NN:0> -> fs13, <NNS:s> -> fs13, <VB:0> -> fs13, <VBZ:s> -> fs13. s11: <VBG:n> -> s15. s12: <0:s> -> fs13. fs13: (no arcs) s14: <VBD:0> -> fs13. s15: <0:g> -> fs13. Språk & logik: Reguljära uttryck

  6. Morfologiskt lexikon som FST • Resultatet från XEROX FST-kompilator är: • Deterministiskt med avseende på par av strängar • Epsilonfri (inga bågar med enbart epsilon) • Minimal • Icke-deterministiskt vid uppslagning • Ger flera svar för en sträng • “Slå upp åt båda håll” • Stora lexikon lagras ganska kompakt • Kanske den vanligaste användningen av FST Språk & logik: Reguljära uttryck

  7. Vokalförändring i olika kontexter • Exemplet handlar om reduktioner i franska • I vissa kontexter försvinner ‘e’ i “le” och “de”. Regel: • [[ e % ] -> ' || [% |.#.] [c|d|l|s] _ [A|E|I|O|U|H|a|e|i|o|u|h]] • “de le” reduceras ibland till “du”: • [[ d e % l e] -> d u || [% |.#.] _ [% |.#.]] • Reglerna komponeras ihop med hjälp av kompositionsoperatorn .o. Språk & logik: Reguljära uttryck

  8. Substantivfras-parser • Jobbar på ordklassnivå • Markerar början och slut på substantivfraser • Ett simpelt exempel för att visa idén • Ordklasserna är: a=adjektiv, d=determinerare, n=substantiv, v=verb • “Många små katter gillar mjölk” representeras som “danvn” • [(d) a* n+ @-> %{ ... %}] definierar en enkel uppmärkare • “@->”-operatorn ser till att längsta frasen som matchar uttrycket markeras • d? skrivs (d) i XEROX-syntax Språk & logik: Reguljära uttryck

  9. Resulterande FST [(d) a* n+ @-> %{ ... %}] ger ett nät med 8 tillstånd och 28 övergångar Språk & logik: Reguljära uttryck

  10. Grammatikkontroll • Det vanligaste sättet att hitta fel i skriven text är att • Formulera regler som letar fel, exempelvis kongruensfel, meningar som saknar subjekt osv. • Ett annat sätt är att använda FST på ett listigt sätt: • Definiera en grov grammatik som inte tittar på komplicerade beroenden mellan delar av meningar • Definiera en finkornig grammatik inklusive de beroenden som skall gälla när det gäller kongruens, mm. • Nu har vi två språk, dvs två (oändliga) mängder av strängar • En grammatik för felaktiga strängar fås genom att subtrahera den finkorninga grammatiken från den grova! • Denna beskriver hur fel ser ut, baserat på vad vi anser vara rätt Språk & logik: Reguljära uttryck

  11. Stavelseuppdelning • En stavelse i finska kan beskrivas som [C* V+ C*] där C är en konsonant och V en vokal • En enkel transduktor definieras som: [C* V+ C*] @-> ... "-" || _ [C V] • Med definitioner av C och V ger uppslagning med strängen “strukturalismi” ur övre språket resultatet: struk-tu-ra-lis-mi Språk & logik: Reguljära uttryck

  12. Taligenkänning • En taligenkännare består av flera resurser: • En akustisk modell som ger sannolikheter för att en mycket kort ljudsekvens svarar mot ett visst språkljud • Modeller för olika ords uttalsvarianter • Metoder för att beskriva skillnaden mellan olika talare (dialekter, röst, mm.) • Modeller som beskriver vilka kontexter olika ord brukar förekomma i • Dessa resurser är av väldigt olika typ men kan paketeras genom att: • Transformera dem till finita transduktorer • Sätta ihop dem till en stor transduktor med hjälp av komposition Språk & logik: Reguljära uttryck

  13. Soundex • Liknande namn som Johnson, Johnsen, Johansson, Johanson och Johansen är lätta att förväxla • Soundex-algoritmen beräknar ett värde för varje sträng som sedan kan jämföras. Namnen ovan får samma värde • Donald Knuths beskrivning av Soundex: • Retain the first letter of the name, and drop all occurrences of a, e, h, i, o, u, w, y in other positions. • Assign the following numbers to the remaining letters after the first: • b, f, p, v -> 1, c, g, j, k, q, s, x, z -> 2, • d, t -> 3, l -> 4, • m, n -> 5, r -> 6. • If two or more letters with the same code were adjacent in the original name (before step 1), omit all but the first. • Convert to the form "letter, digit, digit, digit" by adding trailing zeros (if there are less than three digits), or by dropping rightmost digits (if there are more than three). Språk & logik: Reguljära uttryck

  14. Soundex, forts. • Knuths definition kan översättas till ett reguljärt uttryck: [ [ [b|f|p|v]+ @-> 1, [c|g|j|k|q|s|x|z]+ @-> 2, [d|t]+ @-> 3, l+ @-> 4, [m|n]+ @-> 5, r+ @-> 6, [a|e|h|i|o|u|w|y]+ @-> [] ] .o.[?^4 [?:0]* | ?^3 0:%0 | ?^2 [0:%0]^2 | ? [0:%0]^3] ] • Vilket resulterar i en FT med 26 tillstånd och 805 bågar Språk & logik: Reguljära uttryck

  15. Översättning mellan romerska och arabiska siffror • Romerska tal byggs upp av följande siffror: • I=1 V=5     • X=10 L=50 • C=100 D=500 • M=1000 • Högre tal byggs upp genom att summera flera romerska siffror i fallande storleksordning: • MCCV motsvarar 1205 • Om en romersk siffra föregås av en siffra med lägre värde fås subtraktion: • MCMXCIV motsvarar 1994 Språk & logik: Reguljära uttryck

  16. Romerska/Arabiska tal, forts. • Enklast är att definiera det reguljära uttrycket stegvis • Ett mellanformat beskriver talen som en lång rad av ettor: • XXIV -> 111111111111111111111111 -> 24 • Tillåtna arabiska tal beskrivs som: • [(1|2|3) ["0"|1|2|3|4|5|6|7|8|9]^{1,3}] - ["0"+ ?+] • Enstaka romerska siffror översätts så här: • [I -> 1      || _ \[X | V] | .#. ,, V -> 1^5    || _ ,,X -> 1^10   || _ \[L | C] | .#. ,, L -> 1^50   || _ ,,C -> 1^100  || _ \[M | D] | .#. ,, D -> 1^500  || _ ,, M -> 1^1000 || _ ]            .o.[I 1 -> 0 , X 1^10 -> 0 , C 1^100 -> 0] • Det fullständiga uttrycket kan skrivas som: • [Roman .o. RomanToUnary] .o. [Arabic .o. ArabicToUnary].i Språk & logik: Reguljära uttryck

  17. Einsteins puzzel • Den här typen av problem kan lösas med XFST, men webb-versionen räcker inte riktigt till (versionen som följer med boken Finite-State Morphology, 2003 av Kenneth R. Beesley and Lauri Karttunen klarar det) • På en gata finns 5 hus i en rad och varje hus har: • En viss färg • Ägaren har en viss nationalitet • En favoritdrink • Ett husdjur • Ett favoritcigarettmärke • Givet ett antal fakta och listor på färger, nationaliteter, drinkar, husdjur och cigarettmärken, skall följande fråga besvaras: Vem har fiskar? Språk & logik: Reguljära uttryck

  18. Einsteins puzzel (2) • Bakgrundsfakta: • The Englishman lives in the red house. • The Swede keeps dogs. • The Dane drinks tea. • The green house is just to the left of the white one. • The owner of the green house drinks coffee. • The Pall Mall smoker keeps birds. • The owner of the yellow house smokes Dunhills. • The man in the center house drinks milk. • The Norwegian lives in the first house. • The Blend smoker has a neighbor who keeps cats. • The man who smokes Blue Masters drinks bier. • The man who keeps horses lives next to the Dunhill smoker. • The German smokes Prince. • The Norwegian lives next to the blue house. • The Blend smoker has a neighbor who drinks water. Språk & logik: Reguljära uttryck

  19. Einsteins puzzel (3) • Några definitioner: define Color [blue | green | red | white | yellow];define Nationality [Dane | Englishman | German | Swede | Norwegian];define Drink [bier | coffee | milk |tea | water];define Cigarette [Blend | BlueMaster | Dunhill | PallMall | Prince];define Pet [birds | cats | dogs | fish | horses]; • Ett hushåll representeras av: define House [Color Nationality Drink Cigarette Pet]; • Antalet möjliga hushåll är 3125 och antalet möjliga kombinationer för de 5 husen blir 3125^5 (!) Språk & logik: Reguljära uttryck

  20. Einsteins puzzel (4) • De 15 fakta vi har kan ses som regler som begränsar antalet kombinationer, dvs. språket de beskriver är en delmängd av de 3125^5 kombinationerna • Skärningen av dessa språk består av de kombinationer som uppfyller samtliga fakta! • Om det finns ett svar på frågan “vem har fiskar?” så kan vi utläsa det i det resulterande språket • Om frågan inte går att besvara så finns flera kombinationer med olika fiskägare eller ingen lösning alls Språk & logik: Reguljära uttryck

  21. Einsteins puzzel (5) • Faktumet: “The Swede keeps dogs.” kan beskrivas som: • $[Color Swede Drink Cigarette dogs]; • eller förenklat: $[Swede ~$Pet dogs]; • “The Norwegian lives next to the blue house.” blir: • $[Norwegian ~$Color blue | blue ? ~$Nationality Norwegian]; • Notera att norrmannen kan bo till höger eller till vänster om det blå huset • Efter att ha definierat alla fakta samt C16 ($fish) som säger att någon måste ha fiskar fås lösningen med: • Define Solution [House^5 & C1 & C2 & C3 & C4 & C5 & C6 & C7 & C8 & C9 & C10 & C11 & C12 & C13 & C14 & C15 & C16]; • Om vi gör ett uppsnyggande filter fås en snygg utskrift med: [Solution .o. Prettyprint]; Språk & logik: Reguljära uttryck

  22. Einsteins puzzel (6) • Den resulterande automaten innehåller 76 tillstånd, 75 bågar och en stig: regex [Solution .o. Describe];76 states, 75 arcs, 1 path. xfst[2]: print lower-wordsIn the yellow house the Norwegian drinks water, smokes Dunhills, and keeps cats. In the blue house the Dane drinks tea, smokes Blends, and keeps horses. In the red house the Englishman drinks milk, smokes PallMalls, and keeps birds. In the green house the German drinks coffee, smokes Princes, and keeps fish. In the white house the Swede drinks bier, smokes BlueMasters, and keeps dogs. Språk & logik: Reguljära uttryck

More Related