Presentation laddar. Vänta.

Presentation laddar. Vänta.

Växjö 15 april -04Språk & logik: Reguljära uttryck1 DAB760: Språk och logik 15/4: Finita automater i 15-17språkteknologi Leif Grönqvist

Liknande presentationer


En presentation över ämnet: "Växjö 15 april -04Språk & logik: Reguljära uttryck1 DAB760: Språk och logik 15/4: Finita automater i 15-17språkteknologi Leif Grönqvist"— Presentationens avskrift:

1 Växjö 15 april -04Språk & logik: Reguljära uttryck1 DAB760: Språk och logik 15/4: Finita automater i 15-17språkteknologi Leif Grönqvist Växjö Universitet (MSI) GSLT (Sveriges nationella forskarskola i språkteknologi) Göteborg Universitet (Institutionen för lingvistik)

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

3 3Språk & logik: Reguljära uttryckVäxjö 15 april -04 XEROX verktyg  Xerox har en gratisversion av sin FST-kompilator på nätet: 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é KempeTamás Gaál Ronald M. KaplanLauri KarttunenAndré 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

4 4Språk & logik: Reguljära uttryckVäxjö 15 april -04 Morfologisk kodning  En transduktor (Lauri Karttunen 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

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

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

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

8 8Språk & logik: Reguljära uttryckVäxjö 15 april -04 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* %{... %}] definierar en enkel uppmärkare ser till att längsta frasen som matchar uttrycket markeras d? skrivs (d) i XEROX-syntax

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

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

11 11Språk & logik: Reguljära uttryckVäxjö 15 april -04 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 V]  Med definitioner av C och V ger uppslagning med strängen “strukturalismi” ur övre språket resultatet: struk-tu-ra-lis-mi

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

13 13Språk & logik: Reguljära uttryckVäxjö 15 april -04 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: 1.Retain the first letter of the name, and drop all occurrences of a, e, h, i, o, u, w, y in other positions. 2.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. 3.If two or more letters with the same code were adjacent in the original name (before step 1), omit all but the first. 4.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).

14 14Språk & logik: Reguljära uttryckVäxjö 15 april -04 Soundex, forts.  Knuths definition kan översättas till ett reguljärt uttryck: [ [ 1, 2, 3, 4, 5, 6, [] ].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

15 15Språk & logik: Reguljära uttryckVäxjö 15 april -04 Översättning mellan romerska och arabiska siffror  Romerska tal byggs upp av följande siffror: I=1V=5 X=10 L=50 C=100D=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

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

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

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

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

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

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

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


Ladda ner ppt "Växjö 15 april -04Språk & logik: Reguljära uttryck1 DAB760: Språk och logik 15/4: Finita automater i 15-17språkteknologi Leif Grönqvist"

Liknande presentationer


Google-annonser