Parsery języka naturalnego

Download Report

Transcript Parsery języka naturalnego

Parsery języka naturalnego
Jakub Mikulski
[email protected]
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
Przykładowy słownik
Dla każdego słowa musi zostać spełnione
dokładnie jedno łącze z każdej kropki.
Notacja łączy
•
•
•
•
•
a the: D+
snake cat: D- & (O- or S+)
Mary: O- or S+
ran: Schased: 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.html
Link Grammar
• http://ilk.kub.nl/cgi-bin/tstchunk/demo.pl
Memory-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.html
odnośniki do stron o tematyce NLP