Complexiteit Rick Nouwen Inleiding Taalkunde
Vandaag: Complexiteit Hoofdstuk 12, sectie 12.6: voorproefje op hoofdstuk 16 Hoofdstuk 14, sectie 14.10: complexiteit van parsing (achtergrondmateriaal, hier komen statistische termen in voor die we niet behandelen) Hoofdstuk 16: complexiteit
Het college vandaag Formele talen & de Chomsky-hierarchie De generatieve kracht van talen Hoe herken je de generatieve kracht: het pomp-lemma Welke generatieve kracht is nodig voor (de syntaxis van) natuurlijke talen Complexiteit bij menselijke taalverwerking Methode Garden path-zinnen Experimenten
Formele Talen (I) Een formele taal is een verzameling symbolenrijtjes, ofwel een verzameling strings De symbolen waaruit de strings kunnen bestaan vormen het alfabet Alfabet: A ={a, b, c} Een formele taal L over A: {abc, aabbcc, aaabbbccc,...}
Formele talen Formele talen over het alfabet {0, 1} {01, 0101, 010101, 01010101,...} {01, 001, 0001, 00001, 000001,...} {01, 0011, 000111, 00001111...} Formele talen over het alfabet {a, b, c,... z} {ab, ac, ad,..., abab, abac,...} {sofuto, kanazawa, riku, arigato,...} Formele talen over het alfabet {Jan, Marie, haat, kust,...} {Jan kust Marie, Marie kust Jan, Jan haat Marie,... }
Formele Talen (II) Hoe definieer je een formele taal?
Formele Talen (II) Hoe definieer je een formele taal? Met een grammatica die de verzameling strings in de taal genereert Met een automaat die de verzameling strings in de taal herkent S ba A aba A ɛ b(ab)
Vragen over formele talen Gegeven een alfabet, welke talen zijn er zoal mogelijk? In welke interessante formele opzichten verschillen die talen? Is er bv. een interessant verschil tussen de volgende 2 talen? {b, bab, babab, bababab,...} {ba, bbaa, bbbaaa, bbbbaaaa,...} Antwoord: Ja! formele talen zijn in te delen in complexiteitsklassen
De Chomsky-hierarchie Recursief Opsombare Talen Context-gevoelige Talen Context-vrije Talen Recursief opsombare talen Reguliere Talen
Het idee achter de Chomsky-hierarchie De Chomsky-hierarchie verdeelt formele talen in 4 klassen Bij elke klasse hoort een klasse van grammatica s en automaten De klassen verschillen in kracht Hoe krachtiger een grammatica/automaat, hoe meer (soorten) talen hij kan genereren/herkennen
De Chomsky-hierarchie (sterk ) Type 0 recursief opsombare talen turing-machine Type 1 context-gevoelige talen context-gevoelige grammatica Type 2 context-vrije talen context-vrije grammatica en pushdown automaat Type 3 reguliere talen eindige automaten en reguliere expressies (zwak )
Type 3 Reguliere talen Precies de klasse talen die herkend kan worden door eindige automaten Precies de klasse talen die gegenereerd kan worden door reguliere grammatica s Regels van de vorm: A x*b en A x*. Óf regels van de vorm: A Bx* en A x*. (niet-terminale symbolen transformeren naar een string van terminale symbolen, eventueel gevolgd/voorafgegaan door een niet-terminaal symbool) Dus niet: A bac Precies de klasse talen die je met reguliere expressies kan beschrijven
Type 3: {b, bab, babab, bababab,...} S ba A ɛ A as S Ab A ɛ A Sa S b S T T b A b A a A a S a
Type 3: {b, bab, babab, bababab,...} S ba A ɛ A as Rechts-lineaire reguliere grammatica S Ab A ɛ A Sa S b S T T b A b A a A a S a
Type 3: {b, bab, babab, bababab,...} S ba A ɛ A as S Ab A ɛ A Sa Rechts-lineaire reguliere grammatica Links-lineaire reguliere grammatica S b S T T b A b A a A a S a
Type 3: {b, bab, babab, bababab,...} S ba A ɛ A as S Ab A ɛ A Sa S b S T T b A b A a A a S a Rechts-lineaire reguliere grammatica Links-lineaire reguliere grammatica Dit is geen reguliere grammatica
Type 3: {b, bab, babab, bababab,...} S ba A ɛ A as S Ab A ɛ A Sa S b S T T b A b A a A a S a Rechts-lineaire reguliere grammatica Links-lineaire reguliere grammatica Dit is geen reguliere grammatica maar wel een reguliere taal
De Chomsky-hierarchie Recursief Opsombare Talen Context-gevoelige Talen Context-vrije Talen Recursief opsombare talen Reguliere Talen
De Chomsky-hierarchie (sterk ) Type 0 recursief opsombare talen turing-machine Type 1 context-gevoelige talen context-gevoelige grammatica Type 2 context-vrije talen context-vrije grammatica en pushdown automaat Type 3 reguliere talen eindige automaten en reguliere expressies (zwak )
Type 2 Context-vrije talen Precies de klasse talen die herkend kan worden met push-down automaten (gaan we het niet over hebben) Precies de klasse talen die gegenereerd kan worden door context-vrije grammatica s Regels van de vorm: A rijtje symbolen Voorbeeld van context-vrije grammatica: S bsa S ɛ
Type 2 Context-vrije talen Precies de klasse talen die herkend kan worden met push-down automaten (gaan we het niet over hebben) Precies de klasse talen die gegenereerd kan worden door context-vrije grammatica s Regels van de vorm: A rijtje symbolen Voorbeeld van context-vrije grammatica: S bsa S ɛ Bijbehorende grammatica: b n a n
Type 3 en 2 De Chomsky-hierarchie is een hierarchie Context-vrije grammatica s genereren ook reguliere talen! Context-vrije grammatica s hebben grotere generatieve kracht (ofwel grotere complexiteit) dan reguliere grammatica s Reguliere grammatica s zijn tegelijkertijd context-vrij Regulier: A x*b of A x* Context-vrij: A rijtje symbolen {b,bab,babab,... } is zowel een reguliere als een context-vrije taal. {ba,bbaa,bbbaaa,... } is een context-vrije taal, maar geen reguliere taal.
Probeer het uit The context-free grammar tool: http://smlweb.cpsc.ucalgary.ca/
Type 1 Context-gevoelige talen Precies de klasse talen die door een lineair gebonden automaat herkend kan worden (gaan we het niet over hebben) Precies de klasse talen die door een context-gevoelige grammatica kan worden gegenereerd Regels van de vorm: αaβ αγβ (α, β, γ zijn hier willekeurige strings van terminale of niet-terminale symbolen; γ is niet ɛ)
Type 1 αaβ αγβ met γ ɛ 1 S abc 2 S asbc 3 cb Bc 4 bb bb
Type 1 αaβ αγβ met γ ɛ 1 S abc 2 S asbc 3 cb Bc 4 bb bb Geeft: a n b n c n voor n 1 S 2 asbc 2 aasbcbc 1 aaabcbcbc 3 aaabbccbc 4 aaabbccbc 3 aaabbcbcc 3 aaabbbccc 4 aaabbbccc Deze taal kan niet context-vrij gegenereerd worden
Type 0 Recursief opsombare talen De klasse talen die door een Turing machine herkend kunenn worden De klasse talen die door een onbeperkte grammatica gegenereerd kunnen worden Elke regel...... is toegestaan zo lang de linker-kant niet gelijk is aan ɛ
Hoe herken je formele talen? Enkele typische patronen: Reguliere talen kunnen locale afhankelijkheden aan {bab, babab, bababab,...} Context-vrije talen kunnen geneste afhankelijkheden aan {lepel, parterretrap, bob,...} Context-gevoelige talen kunnen gekruiste afhankelijkheden aan {abcabc, bcabca, cbacba,...}
Het pomp-lemma Het pomp-lemma gebruik je om aan te tonen dat een taal niet regulier is Reguliere talen: vastliggend aantal toestanden, onafhankelijk van de string strings met meer symbolen dan het aantal toestanden moeten dus gemaakt zijn mbv een loop Het lemma: Laat L een reguliere taal zijn. Dan bestaan er strings x, y, z met y niet-leeg zodat xy n z L voor n 0 Toepassing: als je voor een expressie in taal L geen x, y, z kunt vinden waarvoor y gepompt kan worden, dan is L geen reguliere taal
Toepassing van het pomp-lemma Laat L een reguliere taal zijn. Dan bestaan er strings x, y, z met y niet-leeg zodat xy n z L voor n 0 Is a n b n regulier? Mogelijkheden voor toepassing v/h lemma y bestaat alleen uit a s: dan bestaat x uit a s en z bestaat uit alle b s: y kan niet gepompt worden y bestaat alleen uit b s: dan bestaat x uit alle a s en z uit de rest van de b s: y kan niet gepompt worden y bestaat uit a s en b s: dan bestaat x uit a s en z uit b s: xy n z zal nu b s in zich hebben die voor a s staan => Gevolg: deze taal is niet regulier
De Chomsky-Hierarchie en Natuurlijke Taal Met welke soorten formele talen corresponderen aspecten van natuurlijke taal? Welke grammatica s hebben we nodig voor natuurlijke taal? Met andere woorden: wat is krachtig genoeg, maar niet te krachtig? Niet te krachtig: Krachtige mechanismen zijn computationeel lastiger Krachtige mechanismen leren ons niets over de limieten van cognitieve modules We gaan nu onderzoeken wat voor talen we nodig hebben om natuurlijke taal te modelleren...
Fonologie Generatieve fonologie gebruikte context-gevoelige regels Computationele fonologie erkent dat context-gevoelige grammatica s te krachtig zijn Fonologische (en ook morfologische) processen kunnen met een reguliere taal gemodelleerd worden Zijn misschien alle talige fenomenen modeleerbaar met eindige automaten?
Center-embedding The man likes Mary. The man the boy saw likes Mary. The man the boy the dog bit saw likes Mary. The man the boy the dog the cat chased bit saw likes Mary.
Center-embedding The man likes Mary. The man the boy saw likes Mary. The man the boy the dog bit saw likes Mary. The man the boy the dog the cat chased bit saw likes Mary. Hoe meer center-embedding, hoe moeilijker te begrijpen Toch bestaan er goeie voorbeelden van herhaalde center-embedding The pictures that the photographer who I met at the party took turned out very well. Idee: herhaalde center-embedding is grammaticaal, maar moeilijk te begrijpen door limieten aan ons korte-termijn-geheugen Gevolg: Engels (competence) is niet regulier
Center-embedding / Pomp-lemma The man the boy the dog bit saw likes Mary. NP NP NP V V VP Center-embedding-zinnen: Een n aantal NPs gevolgd door een n 1 aantal Vs gevolgd door een VP Ofwel: a n b n 1 c => niet regulier
Dus natuurlijke taal is context-vrij?
Dus natuurlijke taal is context-vrij? Engelse syntaxis is niet regulier Is een context-vrije grammatica genoeg? Schwyzerdütsch (Zwitserland/Italië) (Jan zegt dat:) mer d chind em Hans es huus haend wele laa hälfe aastriiche (Jan zegt dat we de kinderen Hans het huis hebben willen laten helpen schilderen) [de kinderen].acc [Hans].DAT [es huus].acc haen wele [laa] ACC [hälfe] DAT [aastriiche] ACC X (NP-dat) m (NP-acc) n (V dat ) m (Vacc) n Y Deze kruisende afhankelijkheden zijn typisch voor context-gevoelige talen: voorbeeld: a n b m c n d m is context-gevoelig en niet context-vrij
Meer kruisende afhankelijkheden dat Jan Marie het kind zag helpen leren zwemmen
Conclusie Er zijn aanwijzigingen dat natuurlijke talen niet regulier zijn Er zijn aanwijzigingen dat talen als het Nederlands en het Schwuzerdütsch niet context-vrij zijn Kanttekeningen: Zinnen die op een context-vrije grammatica duiden zijn moeilijk te begrijpen (center-embedding) Kruisende afhankelijkheden komen zelden voor in talen Al deze overwegingen beperken zich tot syntaxis De aanname is dat center-embedding en kruisende afhankelijkheden oneindig diep toepasbaar zijn Het is dus interessant om wat beter te kijken wat nu het verwerken van bepaalde zinnen moeilijk maakt
Complexiteit bij menselijke taalverwerking Niet alle grammaticale zinnen zijn even gemakkelijk te verwerken (processing) Lees bijvoorbeeld de volgende zin:
The horse raced past the barn fell
Ik heb de stoel aangeboden op het internet onlangs gekocht.
Complexiteit bij menselijke taalverwerking Niet alle grammaticale zinnen zijn even gemakkelijk te verwerken (processing) The horse raced past the barn fell Hoe meet je eigenlijk of mensen moeite met een zin hebben? Waardoor ontstaan processing-problemen?
Gardenpath-zinnen To lead someone up/down the gardenpath iemand op een dwaalspoor brengen Beroemdste voorbeeld: The horse raced past the barn fell Probleem: je begint met de zin te verwerken voordat we de hele zin gehoord hebben... maar je neemt het verkeerde pad Je neemt aan dat the horse het onderwerp is en raced het werkwoord.
The horse raced past the barn fell NP Det the N horse
The horse raced past the barn fell S NP VP Det the N horse V raced
The horse raced past the barn fell S NP VP Det N V PP the horse raced P NP past Det the N barn
The horse raced past the barn fell S + V NP VP fell Det N V PP the horse raced P NP past Det the N barn
The horse raced past the barn fell NP Det the N horse
The horse raced past the barn fell NP NP S Det N VP the horse V PP raced P NP past Det the N barn
The horse raced past the barn fell S NP VP Det NP N S VP V fell the horse V PP raced P NP past Det the N barn
Meer gardenpaths
Meer gardenpaths [1] While Anna dressed the baby spat up on the bed.
Meer gardenpaths [1] While Anna dressed the baby spat up on the bed. [2] I convinced her children are noisy.
Meer gardenpaths [1] While Anna dressed the baby spat up on the bed. [2] I convinced her children are noisy. [3] The old man the boat.
Meer gardenpaths [1] While Anna dressed the baby spat up on the bed. [2] I convinced her children are noisy. [3] The old man the boat. [4] Fat people eat accumulates.
Meer gardenpaths [1] While Anna dressed the baby spat up on the bed. [2] I convinced her children are noisy. [3] The old man the boat. [4] Fat people eat accumulates. [5] The man who whistles tunes pianos.
Meer gardenpaths [1] While Anna dressed the baby spat up on the bed. [2] I convinced her children are noisy. [3] The old man the boat. [4] Fat people eat accumulates. [5] The man who whistles tunes pianos. [6] While John hunted the deer ran into the woods. Garden paths-zinnen zijn niet altijd moeilijk Ze zijn moeilijk omdat we een andere parse verwachtten Echter: je verwachtingen zijn contekst-afhankelijk
Meet-methodes Lees-snelheid / Reactie-snelheid Eye-tracking ERP (Event related brain potential) de gemeten response in termen van brein-activiteit op een bepaalde stimulus bijvoorbeeld, N100: een piek van negatief voltage 100ms na de stimulus N400: typisch geassocieerd met semantisch onverwachte stimulus P600: typisch geassocieerd met syntactisch onverwachte stimulus
Een experiment Trueswell et al. 1999: Put the frog on the napkin into the box Gaat het om [de kikker op het servet]? Of gaat het erom de kikker op het servet te zetten?
Put the frog on the napkin into the box
Put the frog on the napkin into the box Volwassenen gebruiken de context: B => D Kinderen rond de 5 jaar: B => D (39%) A => C (19%) A => C en dan van C => D (15%) A => C en B=>D (15%)
Samenvattend: complexiteit Soorten formele talen, soorten grammatica s De Chomsky-hierarchie Natuurlijke taal lijkt context-vrij, misschien zelfs context-gevoelig Taalverwerking door mensen: garden paths