1 / 18

Natuurlijke Taalverwerking

Natuurlijke Taalverwerking. 3e trimester 98/99 docent: Gosse Bouma. Transducers en fonologische regels in FSA. Week 3. Transducers. Nut van herkenners (recognizers) is beperkt. Meeste finite state toepassingen gebruiken transducers.

lita
Télécharger la présentation

Natuurlijke Taalverwerking

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. Natuurlijke Taalverwerking 3e trimester 98/99 docent: Gosse Bouma

  2. Transducers en fonologische regels in FSA Week 3

  3. Transducers • Nut van herkenners (recognizers) is beperkt. • Meeste finite state toepassingen gebruiken transducers. • Een transducer vertaalt een invoerstring naar een uitvoerstring. • apen -> a-pen • 19 -> negentien • KPN -> kapeEn Natuurlijke Taalverwerking

  4. Transducer lak+en -> lakken, loop+en -> lopen k:k a:a +:k l:l n:n e:e o:o +:  o: p:p Natuurlijke Taalverwerking

  5. Reguliere expressies • [a:b, c*] vertaalt accc in bccc • ‘:’ is de ‘pair’-operator: A:B vertaalt symbool A in symbool B. • [{a,e,i,o,u} x ‘V’] vertaalt strings uit taal {a,e,i,o,u} in de string ‘V’. • ‘x’ is de ‘cross-product-operator’: A x B vertaalt strings uit taal A in strings uit taal B. Natuurlijke Taalverwerking

  6. Reguliere expressies • [a:b, c*] is eigenlijk een afkorting voor [a:b, (c:c)*] • reguliere expressies zonder ‘:’ of ‘x’ worden dus gelezen als ‘identity-transducers’: ieder input-symbool verschijnt ongewijzigd in de output. Natuurlijke Taalverwerking

  7. Reg Ex Voorbeeld {{a,e,i,u,o} x ‘V’,{b,c,d} x ‘C’}* abeceeidi -> VCVCVVVCV b:C, c:C, d:C a:V, e:V, i:V Natuurlijke Taalverwerking

  8. Spellingsregels • [lttr*, {[[a,a] x a, cons],[a,a,cons,cons]}, +:[], e,n] • haar+en --> haren • haard+en --> haarden • Non-deterministisch? • Echt non-determinisch: • {[a:b,c*,b],[a:d,c*,d]} Natuurlijke Taalverwerking

  9. Non-deterministisch haar+en -> haren, haard+en -> haarden r:r h:h n:n d:d a:a e:e +:  a:a a: r:r Natuurlijke Taalverwerking

  10. Getallen -> woorden • Macro(eentallen, [{1:een, 2:twee, 3:drie}]). • Macro(twintig, [2:[],eentallen,[]:entwintig]). • 21 -> eenentwintig Natuurlijke Taalverwerking

  11. Compositie • Vertaal Nederlandse getalsnamen naar het Engels: • eenentwintig -> 21 -> twentyone • Een mogelijke benadering: • schrijf een transducer die NL in getallen omzet, • schrijf een transducer die getallen in ENG omzet, • Knoop ze aan elkaar. Natuurlijke Taalverwerking

  12. Compositie (2) • macro(nl2num,{een x 1, twee x 2, …}). • macro(num2eng,{1 x one, 2 x two,..}). • macro(trans, nl2num o num2eng). • A o B is een transducer waarbij output van A wordt gebruikt als input van B. • eenentwintig -> A -> 21 -> B -> twentyone Natuurlijke Taalverwerking

  13. (Fonologische) Regels • Een transducer die de letter ‘x’ vervangt door ‘ks’: • Poging 1 (fout): • [[? *, ‘x’ x [k,s]]*, ?*] • axax -> aksaks, axaks, aksaks, axax • Poging 2 (goed): • [[(? - x)*, ‘x’ x [k,s]]*, (? - x)*] • axax -> aksaks • Poging 3 (simpel): {? - x, ‘x’ x [k,s]}* Natuurlijke Taalverwerking

  14. Regels met context • c -> s, mits gevolgd door e of i (cent, politici) • Poging 1: • {?-c,[c:s,{e,i}]}* • cent -> sent, cactus -> no output • c -> k, anders • Poging 2: • {? -c,[c:k,{e,i}],[c:s,? - {e,i}]}* • cent -> sent, cactus -> kaktus Natuurlijke Taalverwerking

  15. De replace-operator • Het handmatig definiëren van regels is moeizaam • replace(A x B, LC, RC): vervang A door B in de context LC _ RC • replace(c:s,[],{e,i}) • replace(c:s,[],{e,i}) o replace(c:k,[],[]) Natuurlijke Taalverwerking

  16. Grafeem naar foneem conversie • Stap 1: segmenteren • g-r-a-f-ee-m, r-i-ng, s-ch-oo-l • macro(segment,{a,aa,aai,…,z}). • replace([segment,[] : -],[],[]) Natuurlijke Taalverwerking

  17. Grafeem naar foneem conversie • Stap 2: conversie van gesegmenteerde input • macro(g2p(Target,LC,RC), replace([Target,-:+],[LC,{-,+}],RC)) • macro(lang, g2p({[a,a] x a, [e,e] x e},[],[]). • slaapt -> slapt, weer -> wer Natuurlijke Taalverwerking

  18. Opdracht 2 • G2P conversie voor letters • a e i o u d n r s t Natuurlijke Taalverwerking

More Related