Emacs Artificial General Intelligence Algorithmic Game Theory: Prediction Markets (po polsku) Systemy Inteligentnych Agentów
Przetwarzanie Języka Naturalnego
|
On this page… (hide) [Na marginesie: słĂłw węzeł i wierzchołek używam zamiennie (tzn. używam pierwszego bo jest krĂłtsze).] Uwaga: notatki są w trakcie opracowywania i mogą zawierać poważne błędy. 1. Analiza morfologiczna (Computational Morphology, word tagging)RozbiĂłr zdania nie musi zatrzymywać się na poziomie słowa: dzięki automatycznemu podziałowi słowa na morfemy możemy zmniejszyć wielkość słownika, a nawet radzić sobie z nieznanymi słowami. Dla przykładu, system konwersacyjny może swobodnie zapytać użytkownika o znaczenie wyrazu, kiedy jego rola gramatyczna jest dzięki analizie w pełni określona i znane są wzorce odmiany. Jedno z zadań polegało na zapoznaniu się z gramatykami (czyli.. słownikami) programu sprawdzającego pisownię Wydajne techniki analizy morfologicznej w OCamlu: http://pauillac.inria.fr/~huet/PUBLIC/tagger.pdf 2. Parsowanie gramatyk struktur frazowychMam na myśli gramatyki bazujące na CFG lub na gramatykach kategorialnych, wspierane przez więzy wyrażające ograniczenia składniowe i semantyczne. Często są one nazywane gramatykami unifikacyjnymi lub atrybutowymi. OgĂłlnie o parsowaniu: Parsing Techniques - A Practical Guide. Istotne hasła: metoda CYK, chart parsing, parsowanie top-down vs. bottom-up, Earley parser, metody LR. 2.1 Praser CFG: algorytm Earleya.Zacznijmy od parsowania pełnego CFG: Functional Pearls: Functional Chart Parsing of Context Free Grammars by Peter LjunglĂśf. 2.2 Parsery “shift-reduce” w kontekście NLPAllen 1995 : Natural Language Understanding / Chapter 6: Toward Efficient Parsing Dla gramatyk CCG: Incremental natural language understanding with combinatory categorial grammar. 2.3 Inkrementacyjna unifikacja (inkrementacyjne rozstrzyganie więzĂłw)Drzewa dowodĂłw (proof trees) jako drzewa rozbioru dla gramatyk unifikacyjnych, zobacz Logic, Programming and Prolog (2ed) rozdz. 3.6. Oczywiście chcemy możliwie szybko odcinać błędne ścieżki wyprowadzeń, dlatego (jak w Prologu), od razu propagujemy rozwiązania generowanych rĂłwnań. “Funkcję obliczeń” R wyznacza nam algorytm chart-parsera. (Rozdział 3.6 książki o Prologu mĂłwi tylko o doklejaniu płytkich drzew odpowiadających produkcjom, u nas krawędzi z kropką na samym początku, ale idea przenosi się na doklejanie głębszych drzew. Pełne gramatyki unifikacyjne są opisane w rozdziale o “Definite Clause Grammars”.) 2.4 Usprawnianie chart-parseraPomysły na optymalizacjęDla ustalenia uwagi udoskonalamy algorytm Earleya: bottom-up left-to-right
Pomysły na tłumaczenie błędĂłw gramatycznychJeśli zdanie jest niepoprawne gramatycznie, to parsing kończy się bez krawędzi obejmujących całe zdanie. Szukamy (dynamicznie) ciągĂłw krawędzi dających minimalne pokrycie rozłączne zdania (tzn. minimalną ilość krawędzi, po ktĂłrych można przeskoczyć z początku na koniec). Budujemy nowy chart, tylko z krawędzi z tych ciągĂłw. Do standardowych reguł chart-parsera dodajemy następujące reguły obsługi błędĂłw:
Nasyć chart przy pomocy poszerzonego zbioru reguł (poszerz odpowiednio używany algorytm parsowania). ZwrĂłć użytkownikowi drzewa rozbioru odpowiadające krawędziom obejmującym całe zdanie wyprowadzone z minimalną ilością zastosowań reguł obsługi błędĂłw, razem z zapamiętanymi komentarzami. 2.5 Obecny Speagram: trochę ogĂłlniejsze gramatyki struktur frazowychSpeagram to jednocześnie język programowania oraz dynamiczny (programowalny) parser. (Uwagi dotyczą wersji SVN http://svn.sourceforge.net/viewvc/speagram/trunk/speagram/, intensywnie rozwijanej od sierpnia do października 2006 http://dev.openwengo.com/trac/openwengo/trac.cgi/wiki/CodeCampWengoPhoneNaturalLanguage — projekt zakończony fiaskiem). Nieterminale to typy, ale typy mogą posiadać bogatą strukturę.Po lewej stronie produkcji, wstawiamy term A opisujący własności drzewa rozbioru z korzeniem wyprowadzonym z tej produkcji, zależne od własności poddrzew. Po prawej stronie produkcji, zamiast nieterminali wstawiamy term Ai opisujący interesujące nas własności, oraz relację Ri, w ktĂłrej term B opisujący potencjalne poddrzewo rozbioru ma być względem termu Ai. Trzy rodzaje relacji wydają się rozsądne, w żargonie językĂłw programowania nazywają się one: “pozycja inwariantna” (=), “pozycja kowariantna” (<), “pozycja kontrawariantna” (>). Budując drzewo rozbioru zdania pilnujemy niesprzeczności wymagań. Przykłady (italiką oznaczone są terminale, a znakiem zapytania zmienne w termach własności, tzn. w typach): rewrite_rule ← let (> ?a) be (< ?a) z przedchodniości, ta produkcja jest rĂłwnoważna następującym: rewrite_rule ← let (> ?a) be (= ?a) rewrite_rule ← let (= ?a) be (< ?a) Konstrukcja z językĂłw programowania. NP[gender=?g, number=?n] ← (> ADJ[gender=?g, number=?n]) (= NP[gender=?g, number=?n]) NP[gender=?g, number=?n] ← (= N[gender=?g, number=?n]) Przymiotnik opisujący frazę rzeczownikową może mieć typ ogĂłlniejszy niż ta fraza, na przykład może być rodzaju męskiego Etykiety i cechy. Interpretacja brakujących etykiet.W Speagramie typy (czyli cechy) są symbolami lub odwzorowaniami z etykiet w typy. Mamy też domyślne etykiety symboli: jeśli domyślną etykietą symbolu Są dwie możliwe interpretacje etykiet brakujących w opisie: sensowna formalnie interpretacja abstrakcyjna oraz praktyczna interpretacja polimorficzna. Interpretacja abstrakcyjna pod niewyspecyfikowane wartości etykiet podstawia 3. Formalizmy lingwistyczne używane w NLPIntroduction to LFG and HPSG by Ananda Lima. 3.1 Gramatyki transformacyjneGramatyki transformacyjne (“szkoła Chomskiego”). http://www.ling.upenn.edu/~beatrice/syntax-textbook/index.html Government & Binding TheoryAn Introduction to Government & Binding 3.2 Lexical Functional Grammar (LFG)Strona domowa LFG (m. in. wprowadzenie do LFG) http://emsah.uq.edu.au/linguistics/Working%20Papers/ananda_ling/LFG_Summary.htm 3.3 Head-driven Phrase Structure Grammar (HPSG)HPSG przypisuje frazom — począwszy od słĂłw po całe zdania — struktury atrybutowe (feature-structures) zawierające bardzo bogatą informację: fono/morfologiczną, syntaktyczną i semantyczną. HPSG składa się ze słownika, zawierającego struktury atrybutowe dla poszczegĂłlnych słĂłw języka, oraz bardzo niewielu schematĂłw reguł. Do HPSG można stosować chart-parsery: wypełnia się chart przez struktury atrybutowe słĂłw zdania i następnie stosuje schematy reguł do konstrukcji/przekształcania krawędzi charta. Od “zwykłych” gramatyk unifikacyjnych (tzn. CFG + struktury atrybutowe) HPSG rĂłżni się więc tym, że produkcje nie są dane jawnie, tylko wydobywane ze struktur atrybutowych przez schematy reguł. HPSG jest niederywacyjna (deklaratywna): zupełnie nieistotne jest, w jaki sposĂłb skonstruowaliśmy strukturę atrybutową dla zdania, ta struktura zawiera całą potrzebną informację, oraz nietransformacyjna: struktury atrybutowe nie są modyfikowane, tylko łączone w większe struktury przez unifikację. Dlatego HPSG można też parsować “czysto więzowo” tak jak gramatyki zależności (dependency grammars). Ważne miejsce: http://hpsg.stanford.edu/ Kurs LFG i HPSG: http://www.cl.uni-bremen.de/~stefan/Lehre/Konstanz2001/ (slajdy dla HPSG) http://emsah.uq.edu.au/linguistics/Working%20Papers/ananda_ling/HPSG_Summary.htm 3.4 (Lexicalized) Tree Adjoining Grammar (TAG, xTAG)Atrybutowe leksykalne TAGs (strona głĂłwna projektu xTAG) 3.5 Unification Categorial Grammar, Combinatory Categorial Grammar (UCG, CCG)Gramatyki kategorialne są rĂłwnież formalizmem leksykalnym. Ze słowami związane są kategorie (typy), ktĂłre ilustrują sposĂłb, w jaki słowa i frazy łączą się (kombinują) ze sobą tworząc większe frazy. Reguły zwykłych gramatyk kategorialnych (CG, rĂłwnoważnych CFG) to:
Kombinatoryczne gramatyki kategorialne (o mocy “mildly context sensitive”) mają dodatkowo reguły
Wielomodalne CCG mają annotacje na ukośnikach mĂłwiące, ktĂłre reguły można do danej kategorii złożonej stosować. Kategorie mogą być indeksowane strukturami atrybutowymi, ktĂłre są unifikowane pomiędzy kategoriami, ktĂłre ze sobą kombinują (tzn. unifikowane są struktury atrybutowe ktĂłre stałyby przy wystąpieniach Do parsowania CCG używa się chart-parserĂłw, każdej spośrĂłd powyższych reguł odpowiada reguła dodawania krawędzi do charta. Publikacje dot. CCG: http://groups.inf.ed.ac.uk/ccg/publications.html (m. in. wprowadzenie do CCG). Multi-modalne CCG: http://www.dfki.de/~gj/lectures/050404-08.fi.helsinki.kit/ 4. Gramatyki zależności (dependency grammars)Parsowanie dla gramatyk struktur frazowych istotnie wykorzystuje kolejność węzłĂłw drzewa. Nie jest to korzystne w przypadku językĂłw o zdaniach ze swobodnym szykiem. Szyk wyrazĂłw nie musi być istotnym elementem składni: możemy rozpatrywać przynależność do języka modulo permutacja słĂłw zdania. Aby parsować z pominięciem szyku, należy znaleźć jakiś odpowiednik programowania dynamicznego, ktĂłry pozwoli inkrementacyjnie budować drzewo rozbioru. OgĂłlnych metod rozwiązywania problemĂłw o naturze kombinatorycznej dostarcza programowanie więzĂłw. Pierwszym językiem programowania więzĂłw był Prolog, ale obecne języki / techniki programowania więzĂłw są skuteczniejsze, zaopatrzone w bogatsze logiki i wydajniejsze mechanizmy (dziedziny). Jak widzieliśmy już wcześniej, parsery gramatyk unifikacyjnych budują drzewo obliczeń (gramatyki potraktowanej jako) program w Prologu, przycięte przez algorytm dynamiczny wiążący porządek (liniowy) węzłĂłw drzewa z porządkiem słĂłw zdania. Nasz obecny pomysł na parsowanie, to pominięcie “przycinania z zewnątrz”, ale wykorzystanie wspĂłłczesnych technik programowania więzĂłw. 4.1 Struktura (drzewa) rozbioruAby zaprogramować całe parsowanie jako problem rozwiązywania więzĂłw, potrzebujemy reprezentować dowolne drzewo rozbioru w dziedzinie więzĂłw, ktĂłrej używamy. Reprezentować dowolne drzewo o liściach będących słowami ustalonego zdania jest trudno — jest ich nieskończenie wiele. Musimy więc ograniczyć ilość węzłĂłw wewnętrznych nie posiadających rozgałęzień. Najprościej jest wykluczyć takie węzły. Zauważmy, że wtedy węzłĂłw wewnętrznych jest o jeden mniej niż liści, możemy więc każdemu węzłowi wewnętrznemu przyporządkować liść. Miło byłoby, gdyby sama gramatyka z każdym węzłem drzewa rozbioru wiązała liść-terminal-słowo zdania. Okazuje się, że takie gramatyki są naturalne, pracował nad nimi m.in. Lucien Tesniere, głĂłwną pracę “Elements de syntaxe structurale” wydał w 1959, więc rĂłwnolegle z pracami Chomsky’ego. Samemu rozwiązywaniu więzĂłw jest wszystko jedno, jaką strukturę narzucimy na graf, więc możemy “zrelaksować” prototypowy warunek, żeby strukturą rozbioru było drzewo. Spotkałem się z formalizmami, w ktĂłrych wymaga się, żeby to był graf acykliczny (DAG). Praktyczne wydaje się zezwolenie na cykle, może ograniczone do klik, np. żeby wyrażać związki koordynacji (tzn. konstrukcje złożone wspĂłłrzędnie, np. “A i B”), z ktĂłrymi “dependency grammars” mają pewne problemy. 4.2 Constraint ProgrammingKompletny tutorial implementacji parsera dla “dependency grammar” na bazie programowania więzĂłw: http://citeseer.ist.psu.edu/duchier00constraint.html. 5. Gramatyki probabilistyczne, parsowanie probabilistyczneSą użyteczne m.in. dla:
Allen 1995: Natural Language Understanding / Chapter 7 - Ambiguity Resolution: Statistical Methods / 7.4 Obtaining Lexical Probabilities, 7.5 Probabilistic Context-Free Grammars, 7.6 Best-First Parsing, 7.7 A Simple Context-Dependent Best-First Parser Data and models for statistical parsing with Combinatory Categorial Grammar, Chapter 4. A brief introduction to statistical parsing (faktycznie strony 121–152 wersji jednostronnej), ten rozdział przedstawia ogĂłlnie parsowanie probabilistyczne (bez odniesień do CCG). 5.1 Parsery probabilistyczne z modelowaniem zależności w strukturze predykatowo-argumentowejKoncepcja zaczerpnięta z “dependency grammars” pozwala na optymalniejsze posługiwanie się gramatykami probabilistycznymi. Parsing with generative models of predicate-argument structure 6. Od składni do semantyki
Part II: Semantic Interpretation / Chapter 8 : Semantics and Logical Form, Chapter 9 : Linking Syntax and Semantics 6.1 Gramatyki Montague’ahttp://www-personal.umich.edu/~akao/MontagueGrammar.pdf 6.2 Underspecificationhttp://www.coli.uni-saarland.de/courses/underspecification-06/page.php?id=schedule 6.3 Przetwarzanie dyskursuDiscourse Representation Theory |