Emacs Artificial General Intelligence Algorithmic Game Theory: Prediction Markets (po polsku) Systemy Inteligentnych Agentów
|
NLP.Gramatyki HistoryHide minor edits - Show changes to markup May 06, 2007, at 03:29 AM
by - semantics
Changed lines 3-4 from:
[Na marginesie: słÃ³w węzeł i wierzchołek używam zamiennie (tzn. używam pierwszego bo jest krótsze).] to:
[Na marginesie: słÄ‚Å‚w węzeł i wierzchołek używam zamiennie (tzn. używam pierwszego bo jest krÄ‚Å‚tsze).] Changed lines 8-9 from:
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. to:
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. Changed lines 17-18 from:
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. to:
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. Changed lines 21-22 from:
Functional Pearls: Functional Chart Parsing of Context Free Grammars by Peter Ljunglöf. to:
Functional Pearls: Functional Chart Parsing of Context Free Grammars by Peter LjunglĂśf. Changed lines 28-30 from:
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”.) to:
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”.) Changed lines 36-44 from:
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: to:
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: Changed lines 51-53 from:
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. Obecny Speagram: trochę ogólniejsze gramatyki struktur frazowychto:
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. Obecny Speagram: trochę ogÄ‚Å‚lniejsze gramatyki struktur frazowychChanged lines 57-58 from:
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): to:
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): Changed lines 61-62 from:
z przedchodniości, ta produkcja jest równoważna następującym: to:
z przedchodniości, ta produkcja jest rÄ‚Å‚wnoważna następującym: Changed lines 66-67 from:
Konstrukcja z języków programowania. to:
Konstrukcja z językÄ‚Å‚w programowania. Changed lines 71-73 from:
Przymiotnik opisujący frazę rzeczownikową może mieć typ ogólniejszy niż ta fraza, na przykład może być rodzaju męskiego to:
Przymiotnik opisujący frazę rzeczownikową może mieć typ ogÄ‚Å‚lniejszy niż ta fraza, na przykład może być rodzaju męskiego Changed lines 77-78 from:
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 to:
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 Changed lines 97-100 from:
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). to:
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). Changed lines 108-109 from:
Atrybutowe leksykalne TAGs (strona głÃ³wna projektu xTAG) to:
Atrybutowe leksykalne TAGs (strona głÄ‚Å‚wna projektu xTAG) Changed lines 111-112 from:
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: to:
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: Changed lines 129-132 from:
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. to:
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. Changed lines 138-139 from:
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. to:
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. Changed lines 141-144 from:
Aby 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. to:
Aby 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. Changed lines 146-147 from:
Kompletny tutorial implementacji parsera dla “dependency grammar” na bazie programowania więzów: http://citeseer.ist.psu.edu/duchier00constraint.html. to:
Kompletny tutorial implementacji parsera dla “dependency grammar” na bazie programowania więzÄ‚Å‚w: http://citeseer.ist.psu.edu/duchier00constraint.html. Changed lines 151-154 from:
to:
Changed lines 158-159 from:
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). to:
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). Changed lines 167-168 from:
Allen 1995 : Natural Language Understanding / to:
April 27, 2007, at 02:30 PM
by - GB
Changed lines 3-4 from:
[Na marginesie: słów węzeł i wierzchołek używam zamiennie (tzn. używam pierwszego bo jest krótsze).] to:
[Na marginesie: słÃ³w węzeł i wierzchołek używam zamiennie (tzn. używam pierwszego bo jest krótsze).] Changed lines 8-9 from:
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. to:
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. Changed lines 17-18 from:
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. to:
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. Changed lines 21-22 from:
Functional Pearls: Functional Chart Parsing of Context Free Grammars by Peter Ljunglöf. to:
Functional Pearls: Functional Chart Parsing of Context Free Grammars by Peter Ljunglöf. Changed lines 28-30 from:
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”.) to:
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”.) Changed lines 36-44 from:
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: to:
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: Changed lines 51-53 from:
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. Obecny Speagram: trochę ogólniejsze gramatyki struktur frazowychto:
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. Obecny Speagram: trochę ogólniejsze gramatyki struktur frazowychChanged lines 57-58 from:
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): to:
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): Changed lines 61-62 from:
z przedchodniości, ta produkcja jest równoważna następującym: to:
z przedchodniości, ta produkcja jest równoważna następującym: Changed lines 66-67 from:
Konstrukcja z języków programowania. to:
Konstrukcja z języków programowania. Changed lines 71-73 from:
Przymiotnik opisujący frazę rzeczownikową może mieć typ ogólniejszy niż ta fraza, na przykład może być rodzaju męskiego to:
Przymiotnik opisujący frazę rzeczownikową może mieć typ ogólniejszy niż ta fraza, na przykład może być rodzaju męskiego Changed lines 77-78 from:
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 to:
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 Added lines 87-90:
Government & Binding TheoryAn Introduction to Government & Binding Changed lines 97-100 from:
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). to:
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). Changed lines 108-109 from:
Atrybutowe leksykalne TAGs (strona główna projektu xTAG) to:
Atrybutowe leksykalne TAGs (strona głÃ³wna projektu xTAG) Changed lines 111-112 from:
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: to:
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: Changed lines 129-132 from:
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. to:
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. Changed lines 138-139 from:
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. to:
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. Changed lines 141-144 from:
Aby 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. to:
Aby 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. Changed lines 146-147 from:
Kompletny tutorial implementacji parsera dla “dependency grammar” na bazie programowania więzów: http://citeseer.ist.psu.edu/duchier00constraint.html. to:
Kompletny tutorial implementacji parsera dla “dependency grammar” na bazie programowania więzów: http://citeseer.ist.psu.edu/duchier00constraint.html. Changed lines 151-154 from:
to:
Changed lines 158-159 from:
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). to:
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). Changed line 79 from:
Formalizmy lingwistyczne używane w NLPto:
Changed line 133 from:
Gramatyki zależności (dependency grammars)to:
Changed line 136 from:
Struktura (drzewa) rozbioruto:
Changed line 7 from:
to:
Changed line 14 from:
to:
Changed line 19 from:
to:
Changed line 23 from:
to:
Changed line 28 from:
to:
Inkrementacyjna unifikacja (inkrementacyjne rozstrzyganie więzów)Changed lines 31-33 from:
to:
Changed line 42 from:
to:
Pomysły na tłumaczenie błędów gramatycznychChanged line 53 from:
to:
Obecny Speagram: trochę ogólniejsze gramatyki struktur frazowychChanged line 56 from:
to:
Nieterminale to typy, ale typy mogą posiadać bogatą strukturę.Changed line 74 from:
to:
Etykiety i cechy. Interpretacja brakujących etykiet.Changed line 79 from:
to:
Formalizmy lingwistyczne używane w NLPChanged line 82 from:
to:
Changed line 87 from:
to:
Changed line 92 from:
to:
Changed line 103 from:
to:
Changed line 106 from:
to:
Changed line 133 from:
to:
Gramatyki zależności (dependency grammars)Changed line 136 from:
to:
Struktura (drzewa) rozbioruChanged line 141 from:
to:
Changed line 144 from:
to:
Changed lines 156-157 from:
to:
Changed lines 161-162 from:
to:
Changed line 167 from:
to:
Changed line 170 from:
to:
Changed lines 173-175 from:
to:
Deleted lines 2-29:
Added lines 43-44:
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. Added line 22:
Changed lines 180-181 from:
Parsery probabilistyczne z modelowaniem zależności w strukturze predykatowo-argumentowejto:
Parsery probabilistyczne z modelowaniem zależności w strukturze predykatowo-argumentowejChanged lines 177-178 from:
Data and models for statistical parsing with Combinatory Categorial Grammar, Chapter 4. A brief introduction to statistical parsing (faktycznie strony 121–152 wersji jednostronnej). to:
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). 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 Added line 185:
Changed lines 172-173 from:
to:
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). Changed lines 4-10 from:
to:
Changed line 43 from:
Zacznijmy od parsowania CFG: to:
Zacznijmy od parsowania pełnego CFG: Changed lines 46-51 from:
Inkrementacyjna unifikacja (inkrementacyjne rozstrzyganie więzów)to:
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. Inkrementacyjna unifikacja (inkrementacyjne rozstrzyganie więzów)Changed lines 54-56 from:
to:
Usprawnianie chart-parseraPomysły na optymalizacjęChanged line 65 from:
to:
Pomysły na tłumaczenie błędów gramatycznychChanged line 76 from:
Obecny Speagram: trochę ogólniejsze gramatyki struktur frazowychto:
Obecny Speagram: trochę ogólniejsze gramatyki struktur frazowychChanged line 79 from:
Nieterminale to typy, ale typy mogą posiadać bogatą strukturę.to:
Nieterminale to typy, ale typy mogą posiadać bogatą strukturę.Changed line 97 from:
Etykiety i cechy. Interpretacja brakujących etykiet.to:
Etykiety i cechy. Interpretacja brakujących etykiet.Changed lines 175-178 from:
to:
Allen 1995 : Natural Language Understanding / Part II: Semantic Interpretation / Chapter 8 : Semantics and Logical Form, Chapter 9 : Linking Syntax and Semantics Changed lines 142-143 from:
Wielomodalne CCG mają annotacje na ukośnikach mówiące, które reguły można do danej kategorii złożonej stosować. to:
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 Changed lines 20-25 from:
to:
Added lines 124-145:
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ć. 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. Changed lines 161-163 from:
Od składni do semantykiGramatyki Montague’ato:
Gramatyki probabilistyczne, parsowanie probabilistyczneSą użyteczne m.in. dla:
Od składni do semantykiGramatyki Montague’aChanged line 173 from:
to:
UnderspecificationChanged lines 176-178 from:
to:
Przetwarzanie dyskursuDiscourse Representation TheoryChanged lines 70-71 from:
Speagram 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 b.r. http://dev.openwengo.com/trac/openwengo/trac.cgi/wiki/CodeCampWengoPhoneNaturalLanguage — projekt zakończony fiaskiem). to:
Speagram 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). Changed lines 69-71 from:
Obecny Speagram: trochę ogólniejsze gramatyki struktur frazowychSpeagram to jednocześnie język programowania oraz dynamiczny (programowalny) parser. to:
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 b.r. http://dev.openwengo.com/trac/openwengo/trac.cgi/wiki/CodeCampWengoPhoneNaturalLanguage — projekt zakończony fiaskiem). Changed lines 111-112 from:
HPSG jest niederywacyjna: zupełnie nieistotne jest, w jaki sposób skonstruowaliśmy strukturę atrybutową dla zdania, ta struktura zawiera całą potrzebną informację. Dlatego HPSG można też parsować “czysto więzowo” tak jak gramatyki zależności (dependency grammars). to:
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). Added lines 111-112:
HPSG jest niederywacyjna: zupełnie nieistotne jest, w jaki sposób skonstruowaliśmy strukturę atrybutową dla zdania, ta struktura zawiera całą potrzebną informację. Dlatego HPSG można też parsować “czysto więzowo” tak jak gramatyki zależności (dependency grammars). Added lines 109-114:
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ł. Ważne miejsce: http://hpsg.stanford.edu/ Kurs LFG i HPSG: http://www.cl.uni-bremen.de/~stefan/Lehre/Konstanz2001/ (slajdy dla HPSG) Changed lines 104-105 from:
Strona domowa LFG to:
Strona domowa LFG (m. in. wprowadzenie do LFG) Changed line 16 from:
to:
Added lines 104-105:
Strona domowa LFG Changed line 114 from:
Unificational Categorial Grammar, Combinatory Categorial Grammar (UCG, CCG)to:
Unification Categorial Grammar, Combinatory Categorial Grammar (UCG, CCG)Changed lines 110-111 from:
http://www.cis.upenn.edu/~xtag/ to:
Atrybutowe leksykalne TAGs (strona główna projektu xTAG) Changed lines 113-115 from:
http://www.dfki.de/~gj/lectures/050404-08.fi.helsinki.kit/ http://groups.inf.ed.ac.uk/ccg/publications.html to:
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/ Changed lines 110-111 from:
to:
http://www.cis.upenn.edu/~xtag/ Changed lines 113-114 from:
to:
http://www.dfki.de/~gj/lectures/050404-08.fi.helsinki.kit/ http://groups.inf.ed.ac.uk/ccg/publications.html Changed lines 2-24 from:
to:
Changed line 37 from:
Gramatyki struktur frazowychto:
Parsowanie gramatyk struktur frazowychChanged lines 40-42 from:
to:
Praser CFG: algorytm Earleya.Changed line 44 from:
to:
Inkrementacyjna unifikacja (inkrementacyjne rozstrzyganie więzów)Changed lines 47-49 from:
to:
Usprawnianie chart-parseraPomysły na optymalizacjęChanged line 58 from:
to:
Pomysły na tłumaczenie błędów gramatycznychChanged line 69 from:
Obecny Speagram: trochę ogólniejsze gramatyki struktur frazowychto:
Obecny Speagram: trochę ogólniejsze gramatyki struktur frazowychChanged line 72 from:
to:
Nieterminale to typy, ale typy mogą posiadać bogatą strukturę.Changed line 90 from:
to:
Etykiety i cechy. Interpretacja brakujących etykiet.Changed line 95 from:
Formalizmy lingwistyczne używane w NLPto:
Formalizmy lingwistyczne używane w NLPChanged line 98 from:
Gramatyki transformacyjneto:
Gramatyki transformacyjneChanged line 103 from:
Lexical Functional Grammar (LFG)to:
Lexical Functional Grammar (LFG)Changed line 106 from:
to:
Head-driven Phrase Structure Grammar (HPSG)Changed lines 109-114 from:
Gramatyki zależności (dependency grammars)to:
(Lexicalized) Tree Adjoining Grammar (TAG, xTAG)Unificational Categorial Grammar, Combinatory Categorial Grammar (UCG, CCG)Gramatyki zależności (dependency grammars)Changed line 117 from:
Struktura (drzewa) rozbioruto:
Struktura (drzewa) rozbioruChanged line 122 from:
Constraint Programmingto:
Constraint ProgrammingChanged lines 125-127 from:
Od składni do semantykiGramatyki Montague’ato:
Od składni do semantykiGramatyki Montague’aChanged line 130 from:
Underspecificationto:
UnderspecificationChanged lines 133-135 from:
to:
Przetwarzanie dyskursuDiscourse Representation TheoryChanged lines 57-58 from:
to:
Changed lines 60-61 from:
Jeś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. 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: to:
Jeś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: Changed lines 21-24 from:
to:
Added lines 125-131:
Underspecificationhttp://www.coli.uni-saarland.de/courses/underspecification-06/page.php?id=schedule Przetwarzanie dyskursuDiscourse Representation TheoryChanged lines 13-14 from:
to:
Changed lines 96-99 from:
Lexical Functional Grammar (LFG)Head-driven Phrase Structure Grammar (HPSG)to:
Gramatyki transformacyjneGramatyki transformacyjne (“szkoła Chomskiego”). http://www.ling.upenn.edu/~beatrice/syntax-textbook/index.html Lexical Functional Grammar (LFG)http://emsah.uq.edu.au/linguistics/Working%20Papers/ananda_ling/LFG_Summary.htm Head-driven Phrase Structure Grammar (HPSG)http://emsah.uq.edu.au/linguistics/Working%20Papers/ananda_ling/HPSG_Summary.htm Changed lines 93-94 from:
to:
Introduction to LFG and HPSG by Ananda Lima. Changed lines 12-14 from:
to:
Changed lines 92-93 from:
Head-driven Phrase Structure Grammarsto:
Formalizmy lingwistyczne używane w NLPLexical Functional Grammar (LFG)Head-driven Phrase Structure Grammar (HPSG)Added line 12:
Changed lines 40-41 from:
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.) to:
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”.) Added lines 51-52:
Changed lines 54-63 from:
to:
Jeś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. 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. Added lines 90-91:
Head-driven Phrase Structure GrammarsChanged lines 6-8 from:
to:
Changed lines 41-42 from:
Pomysły na optymalizację parserato:
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 gramatycznychAdded lines 18-19:
Uwaga: notatki są w trakcie opracowywania i mogą zawierać poważne błędy. Changed lines 37-38 from:
to:
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.) Changed lines 19-20 from:
Rozbiór zdania nie musi zatrzymywać się na poziomie słowa: 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. to:
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. Changed line 12 from:
to:
Changed line 8 from:
to:
Added lines 1-15:
Changed line 18 from:
Analiza morfologiczna (Computational Morphology, word tagging)to:
Analiza morfologiczna (Computational Morphology, word tagging)Changed line 25 from:
Gramatyki struktur frazowychto:
Gramatyki struktur frazowychChanged lines 28-31 from:
Obecny Speagram: trochę ogólniejsze gramatyki struktur frazowychSpeagram to jednocześnie język programowania oraz dynamiczny (programowalny) parser. Praser CFG: algorytm Earleya.to:
ParsowaniePraser CFG: algorytm Earleya.Changed lines 34-36 from:
Nieterminale to typy, ale typy mogą posiadać bogatą strukturę.Następnie dodajemy atrybuty: 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): to:
Inkrementacyjna unifikacja (inkrementacyjne rozstrzyganie więzów)Pomysły na optymalizację parseraObecny Speagram: trochę ogólniejsze gramatyki struktur frazowychSpeagram to jednocześnie język programowania oraz dynamiczny (programowalny) parser. 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): Changed line 59 from:
Etykiety i cechy. Interpretacja brakujących etykiet.to:
Etykiety i cechy. Interpretacja brakujących etykiet.Changed line 64 from:
Gramatyki zależności (dependency grammars)to:
Gramatyki zależności (dependency grammars)Changed line 67 from:
Struktura (drzewa) rozbioruto:
Struktura (drzewa) rozbioruChanged line 72 from:
Constraint Programmingto:
Constraint ProgrammingAdded lines 74-78:
Od składni do semantykiGramatyki Montague’ahttp://www-personal.umich.edu/~akao/MontagueGrammar.pdf Added lines 50-52:
Constraint ProgrammingKompletny tutorial implementacji parsera dla “dependency grammar” na bazie programowania więzów: http://citeseer.ist.psu.edu/duchier00constraint.html. Changed line 46 from:
Struktura drzewa rozbioruto:
Struktura (drzewa) rozbioruAdded line 49:
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. Added lines 1-2:
[Na marginesie: słów węzeł i wierzchołek używam zamiennie (tzn. używam pierwszego bo jest krótsze).] Changed lines 47-48 from:
Aby zaprogramować całe parsowanie jako problem rozwiązywania więzów, potrzebujemy reprezentować drzewo rozbioru w dziedzinie więzów, której używamy. to:
Aby 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. Added lines 43-45:
Struktura drzewa rozbioruAby zaprogramować całe parsowanie jako problem rozwiązywania więzów, potrzebujemy reprezentować drzewo rozbioru w dziedzinie więzów, której używamy. Added lines 41-42:
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. Changed lines 39-40 from:
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 to:
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 Changed lines 37-38 from:
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 to:
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 Changed lines 37-40 from:
W Speagramie typy (czyli cechy) są symbolami lub odwzorowaniami z etykiet w typy. Tzn. jeśli domyślną etykietą symbolu to:
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 Changed lines 8-37 from:
to:
Gramatyki 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. Obecny Speagram: trochę ogólniejsze gramatyki struktur frazowychSpeagram to jednocześnie język programowania oraz dynamiczny (programowalny) parser. Praser CFG: algorytm Earleya.Zacznijmy od parsowania CFG: Functional Pearls: Functional Chart Parsing of Context Free Grammars by Peter Ljunglöf. Nieterminale to typy, ale typy mogą posiadać bogatą strukturę.Następnie dodajemy atrybuty: 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. Tzn. jeśli domyślną etykietą symbolu Added lines 1-8:
Analiza morfologiczna (Computational Morphology, word tagging)Rozbiór zdania nie musi zatrzymywać się na poziomie słowa: 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 |