220 likes | 355 Views
Jakub Mikulski jmikul@student.agh.edu.pl. Parsery języka naturalnego. O co chodzi?. Odyseja Kosmiczna 2001 : „I’m sorry Dave, I’m afraid I can’t do that”
E N D
Jakub Mikulski jmikul@student.agh.edu.pl Parsery języka naturalnego
O co chodzi? • Odyseja Kosmiczna 2001: „I’m sorry Dave, I’m afraid I can’t do that” • Przetwarzanie języka naturalnego (Natural Language Processing, NLP) - cel: umożliwić komputerom korzystanie z języka ludzkiego jako wejścia i wyjścia
Dlaczego rozumienie języka ludzkiego przedstawia problem? • Hasło reklamowe McDonnell-Douglas z roku 1985:At last, a computer that understands you like your mother. • Komputer rozumie mnie tak dobrze jak moja matka? • Komputer rozumie mnie tak dobrze jak moją matkę? • Komputer rozumie, że lubię moją matkę? • mother 1. A female parent; 2. A cask or vat used in vinegar-making. [Oxford English Dictionary]
Przykładowa komenda systemu obsługi szpitala: Copy the local patient files to disk. • Lokalny jest pacjent czy pliki? • A może pliki są cierpliwe? ;)
Rozumienie tekstu opiera się na posiadanej przez nas wiedzy o świecie, którego ten tekst dotyczy; dzięki tej wiedzy instynktownie odrzucamy zdania semantycznie niepoprawne bądź mało prawdopodobne, wybierając te, które autor miał na myśli.
Początki NLP • Lata 40. i 50. XX wieku - podejście empiryczno-statystyczne, analiza tekstu na podstawie wiedzy zgromadzonej w czasie poprzednich analiz • „You shall know a word by the company it keeps”, J.R. Firth • r. 1941 - statystycy Mosteller i Williams podejmują próbę ustalenia autorstwa anonimowego zbioru esejów The Federalist Papers na podstawie wzorców słownych występujących w tekście • r. 1949 - Warren Weaver proponuje potraktowanie problemu translacji języków jako zastosowania kryptografii - jeden język stanowi zaszyfrowaną formę drugiego
W roku 1957 lingwista Noam Chomsky zauważył,że ani zdanie „Colorless green ideas sleep furiously”, ani też jego odwrotność („Furiously sleep ideas green colorless”) prawdopodobnie w żadnym z angielskich tekstów nie występują. Empiryczno-statystyczne podejście do NLP skazane jest na zatem na klęskę (sparse data problem). W zamian Chomsky zaproponował skoncentrowanie się na zasadach rządzących gramatykami języków naturalnych (knowledge-based approach).
Nawrót do metod empiryczno-statystycznych nastąpił w latach 80. za sprawą sukcesów odnoszonych przez grupę rozpoznawania mowy w IBM. Obecnie oba podejścia są stosowane w szerokim zakresie.
Link Grammar - założenia • planarność - linie (łącza) narysowane nad powiązanymi ze sobą słowami nie krzyżują się • spójność - łącza wiążą ze sobą wszystkie występujące w zdaniu słowa • poprawność - łącza spełniają odpowiednie warunki dla każdego słowa w zdaniu
Dla każdego słowa musi zostać spełnione dokładnie jedno łącze z każdej kropki. Przykładowy słownik
Notacja łączy • a the: D+ • snake cat: D- & (O- or S+) • Mary: O- or S+ • ran: S- • chased: S- & O+ • ‘+’ oznacza łącze prawostronne, ‘-’ lewostronne • ‘&’ oznacza koniunkcję warunków - oba muszą zostać spełnione • ‘or’ oznacza alternatywę wykluczającą
Link Parser • wejście:the quick brown fox jumped over the lazy dog • wyjście: +---------Ds---------+ +-------Js------+ | +-------A------+ | +-----Ds----+ | | +---A--+---Ss--+--MVp-+ | +--A--+ | | | | | | | | |the quick.a brown.a fox.n jumped.v over the lazy.a dog.n
kategorie łącz: http://www.link.cs.cmu.edu/link/dict/summarize-links.html • podkategorie - oznaczane są małymi literami dodawanymi do nazw kategorii (duże litery) • ‘Ss+’ może połączyć się z ‘S-’ lub ‘Ss-’, ale nie z ‘Sp-’ • ‘Spa+’ może połączyć się z ‘S-’, ‘Sp-’ lub ‘Spa-’,ale nie z ‘Ss-’, ‘Ssa-’ ani ‘Spb-’ • asterisk ‘*’ zastępuje jeden znak podkategorii:‘S*a+’ łączy się z ‘S-’, ‘Ss-’, ‘Sp-’ lub ‘Ssa-’,ale nie z ‘Ssb-’
Przykłady • Zdania zaznaczone gwiazdką są przez parser odrzucane. Zdania nieoznaczone są akceptowane. • The fact/*event that she smiled at me gives me hope. • I still remember the day/*room I kissed her. • But my efforts/*presents to win her heart have failed. • Failure/*Absence to comply may result in dismissal. • Last week/*dog I saw a great movie. • The party that night/*house was a great success.
She is the kind/*character of person who would do that. • John, who is an expert on dogs, helped me choose one. • John, an expert on dogs, helped me choose one. • *John who is an expert on dogs helped me choose one. • The dog that we eventually bought was very expensive. • *The dog, that we eventually bought, was very expensive. • *The dog, we eventually bought, was very expensive. • Have you ever seen the/*a Pacific? • The boys’/*boys’s bedrooms will be enlarged. • My uncle’s mother’s cousin is visiting us. • *John’s my cousin is visiting us.
Memory-Based Shallow Parser • http://ilk.kub.nl/cgi-bin/tstchunk/demo.pl • składa się z 4 modułów • parsery płytkie kładą nacisk na semantykę;dzielą zdanie na zasadzie „KTO CO zrobiłZ KIM, KIEDY, JAK etc.”
tokenizer - oddziela znaki przestankowe od słów • tagger - przydziela każdemu słowu oznaczenie części mowy • chunker - dzieli zdanie na sekwencje blisko powiązanych ze sobą wyrazów • subject/object detector - określa, która sekwencja rzeczownikowa stoi w jakiej relacji do danej sekwencji czasownikowej
wejście:the quick brown fox jumped over the lazy dog • tagger:the/DT quick/JJ brown/JJ fox/NN jumped/VBD over/IN the/DT lazy/JJ dog/NN • DT - determiner • JJ - adjective • NN - noun (liczba pojedyncza lub rzeczownik niepoliczalny) • VBD - verb (czas przeszły) • IN - preposition / subordinating conjunction
chunker:[NP the/DT quick/JJ brown/JJ fox/NN NP][VP jumped/VBD VP]{PNP [Prep over/IN Prep][NP the/DT lazy/JJ dog/NN NP] PNP} • NP - sekwencja rzeczownikowa (noun chunk), od początku frazy rzeczownikowej do rzeczownika głównego • VP - sekwencja czasownikowa (verbal chunk); składa się z czasownika głównego, wszystkich jego czasowników modalnych i pomocniczych oraz związanych przysłówków • PNP - sekwencja przyimkowa, przyimek wraz z przynajmniej jedną sekwencją rzeczownikową • Prep - przyimek (preposition)
subject/object detector:[NP1Subject the/DT quick/JJ brown/JJ fox/NN NP1Subject] [VP1 jumped/VBD VP1]{PNP [P over/IN P] [NP the/DT lazy/JJ dog/NN NP] PNP} • sekwencje rzeczownikowe wiązane są z odpowiadającymi im sekwencjami czasownikowymi • NP oznaczane są numerem wspólnym z właściwym VP, wraz ze sprecyzowaniem, czy NP stanowi podmiot (subject) czy też dopełnienie (object)
Ciekawe linki • http://www.link.cs.cmu.edu/link/index.htmlLink Grammar • http://ilk.kub.nl/cgi-bin/tstchunk/demo.plMemory-Based Shallow Parser • http://www.cs.brown.edu/people/ec/Eugene Charniak’s Home Page • http://oak.colorado.edu/assert/Automatic Statistical SEmantic Role Tagger • http://www.cs.technion.ac.il/~gabr/resources/pointers.htmlodnośniki do stron o tematyce NLP