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

Slides:



Advertisements
Liknande presentationer
Att förstå anonymiteten (översättning från
Advertisements

Talföljder formler och summor
MaB: Ekvationssystem Allmänt
Access med Sebastian och Robert
Golv, väggar, tak. fönster och en dörr
hej och välkomna EKVATIONER Ta reda på det okända talet.
Varför grammatik? Vad är ordklasser?
Mål och betygskriterier
FL4 732G70 Statistik A Detta är en generell mall för att göra PowerPoint presentationer enligt LiUs grafiska profil. Du skriver in din rubrik,
1 Logikprogrammering ons 11/9 David Hjelm. 2 Repetition Listor är sammansatta termer. De består av en ordnad mängd element. Elementen i en lista kan vara.
Prolog, Mån 16/9 Rebecca Jonson.
Leif Håkansson’s Square Dancer Rotation
DAB752: Algoritmteori Leif Grönqvist
MEDELVÄRDE, MEDIAN & TYPVÄRDE
Växjö 21 april -04Språk & logik: Kontextfria grammatiker1 DAB760: Språk och logik 21/4: Kontextfria 10-12grammatiker Leif Grönqvist
Växjö 22 april -04Språk & logik: Parsning med kontextfria grammatiker1 DAB760:Språk och logik: 22 aprilParsning Leif Grönqvist
Föreläsning 2 Datalogi för E1 2D1343
FL2 732G70 Statistik A Detta är en generell mall för att göra PowerPoint presentationer enligt LiUs grafiska profil. Du skriver in din rubrik,
732G22 Grunder i statistisk metodik
Text och bild från wikipedia
Växjö 29 april -04Språk & logik: Kontextfria grammatiker i språkteknologi1 DAB760, 29 april Kontextfria grammatiker i språkteknolog Leif Grönqvist
Växjö 15 april -04Språk & logik: Reguljära uttryck1 DAB760: Språk och logik 15/4: Finita automater och 13-15reguljära uttryck Leif Grönqvist
Community Readiness Baseras på teorier om Community Developement -Organisationsteori -Psykologiteorier Har använts inom alkohol och drogmissbruk, våld.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 7: Deadlocks.
Programmering B PHP Lektion 2
Programmering B PHP Lektion 3
Workshop inför Projektet
Fakta om undersökningen
INFÖR NATIONELLA PROVET
1 Funktioner Nr 3 Funktionstyper, högre ordningens funktioner och polymorfism.
Programmering B PHP Lektion 3
Digitalteknik 7.5 hp distans: 5.1 Generella sekvenskretsar 5.1.1
Fakta om undersökningen
Beräkna en ekvation (metod 1)
Beräkna en ekvation (metod 1)
Algoritmer och datastrukturer
TÄNK PÅ ETT HELTAL MELLAN 1-50
DATABASHANTERING för programmerare Lektion 4 Mahmud Al Hakim
Listor En lista är en föränderlig ordnad samling objekt.
1 ITK:P2 F2 Stilsättning av XHTML DSV Peter Mozelius.
Funktioner, styrstrukturer, manipulering av matriser
1 Föreläsning 3 programmeringsteknik och Matlab 2D1312/ 2D1305 Matlab fortsättning Funkioner, styrstrukturer, manipulering av matriser.
Grundläggande programmering
Diskreta, deterministiska system Projekt 1.2; Vildkatt
Blanketter De gamla blanketterna i SÄO, S1 – S16 samt order och uppgift till förare slopas. Nya blanketter redovisas i JTF bilaga 5 Blanketter. De finns.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Jämförelseoperatorer -Villkorssatser -Logiska operatorer.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Jämförelseoperatorer -Villkorssatser -Logiska operatorer.
Barnets rättigheter i Sverige och för alla barn i världen
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
Bråk Text och bild från wikipedia. Vad är bråk 1/3 5/8 1/27 3 _
F. Drewes, Inst. f. datavetenskap1 Föreläsning 11: Funktionella språk Funktioner och variabler i matematiken Funktionella språk LISP, ML och.
Logikprogrammering 21/10 Binära träd
1 Logging and monitoring of TCP traffic in SSH tunnels Masters thesis Anton Persson.
Bevarande utifrån nya Ladoks perspektiv
1 CD5560 FABER Formal Languages, Automata and Models of Computation Lecture 6 Mälardalen University 2006.
Logikprogrammering 16/ : operatorer Staffan Larsson.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 4: Syntaxdefinition Formell syntaxdefinition Lexikalisk och kontextfri syntax Flertydighet i kontextfri.
Projekt 5.3 Gilpins och Ayalas θ-logistiska modell A Course in Mathematical Modeling - Mooney & Swift.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 12 Sökning och Sökträd.
DATABASHANTERING för programmerare Lektion 5 Mahmud Al Hakim
1 Mönstermatchning och rekursion Nr 4. 2 Förenklad notation val fnname = fn name => expression Förenklas till fun fnname name = expression Exempel fun.
1 Mjukvaru-utveckling av interaktiva system God utveckling av interaktiva system kräver abstrakt funktionell beskrivning noggrann utvecklingsmetod Slutanvändare.
Satslogik, forts. DAA701/716 Leif Grönqvist 5:e mars, 2003.
Upphovsrätten Texter och illustrationer är upphovsrättsligt skyddade. Texter får dock användas för utbildning, forskning, till instruktioner, rådgivnings-
Pontus Johansson 1 grammatiker 21.1 G 1 (BBS 7)
Föreläsning 1 Introduktion till kursen. Algoritmer
Växjö 22 april -04Språk & logik: Introduktion till labb 11 DAB760:Språk och logik: 22 aprilLabbintroduktion Leif Grönqvist
Växjö 14 april -04Språk & logik: Finita automater1 DAB760: Språk och logik 14/4:Finita automater Leif Grönqvist Växjö Universitet.
Formal Languages, Automata and Models of Computation
Svensk grammatik ORDKLASSER 1.
Presentationens avskrift:

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) Växjö 15 april -04 Språk & logik: Reguljära uttryck

Språk & logik: Reguljära uttryck 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 Växjö 15 april -04 Språk & logik: Reguljära uttryck

Språk & logik: Reguljära uttryck 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 Växjö 15 april -04 Språk & logik: Reguljära uttryck

Språk & logik: Reguljära uttryck 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 Växjö 15 april -04 Språk & logik: Reguljära uttryck

Språk & logik: Reguljära uttryck 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. Växjö 15 april -04 Språk & logik: Reguljära uttryck

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 Växjö 15 april -04 Språk & logik: Reguljära uttryck

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. Växjö 15 april -04 Språk & logik: Reguljära uttryck

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 Växjö 15 april -04 Språk & logik: Reguljära uttryck

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

Språk & logik: Reguljära uttryck 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 Växjö 15 april -04 Språk & logik: Reguljära uttryck

Språk & logik: Reguljära uttryck 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 Växjö 15 april -04 Språk & logik: Reguljära uttryck

Språk & logik: Reguljära uttryck 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 Växjö 15 april -04 Språk & logik: Reguljära uttryck

Språk & logik: Reguljära uttryck 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). Växjö 15 april -04 Språk & logik: Reguljära uttryck

Språk & logik: Reguljära uttryck 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 Växjö 15 april -04 Språk & logik: Reguljära uttryck

Ö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 Växjö 15 april -04 Språk & logik: Reguljära uttryck

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 Växjö 15 april -04 Språk & logik: Reguljära uttryck

Språk & logik: Reguljära uttryck 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? Växjö 15 april -04 Språk & logik: Reguljära uttryck

Språk & logik: Reguljära uttryck 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. Växjö 15 april -04 Språk & logik: Reguljära uttryck

Språk & logik: Reguljära uttryck 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 (!) Växjö 15 april -04 Språk & logik: Reguljära uttryck

Språk & logik: Reguljära uttryck 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 Växjö 15 april -04 Språk & logik: Reguljära uttryck

Språk & logik: Reguljära uttryck 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]; Växjö 15 april -04 Språk & logik: Reguljära uttryck

Språk & logik: Reguljära uttryck 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-words In 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. Växjö 15 april -04 Språk & logik: Reguljära uttryck