Gramatyka ograniczeń

Gramatyka z ograniczeniami ( CG ) jest paradygmatem metodologicznym przetwarzania języka naturalnego (NLP). Napisane przez językoznawców, kontekstu reguły są kompilowane w gramatykę, która przypisuje znaczniki gramatyczne („czytania”) do słów lub innych tokenów w bieżącym tekście. Typowe znaczniki odnoszą się do lematyzacji ( leksem lub forma podstawowa ), fleksji , derywacji , funkcji składniowej , zależności, wartościowości , ról przypadków , typu semantycznego itp. Każda reguła dodaje, usuwa, wybiera lub zastępuje znacznik lub zestaw znaczników gramatycznych w danym kontekst zdania. Warunki kontekstu można powiązać z dowolnym znacznikiem lub zestawem znaczników dowolnego słowa w dowolnym miejscu zdania, lokalnie (zdefiniowane odległości) lub globalnie (niezdefiniowane odległości). Warunki kontekstu w tej samej regule mogą być powiązane, tj. uwarunkowane od siebie, negowane lub blokowane przez kolidujące ze sobą słowa lub tagi. Typowe CG składają się z tysięcy reguł, które są stosowane stopniowo, obejmując coraz bardziej zaawansowane poziomy analizy. Na każdym poziomie bezpieczne reguły są stosowane przed regułami heurystycznymi i żadna reguła nie może usuwać ostatniego odczytu danego rodzaju, zapewniając w ten sposób wysoki stopień niezawodności.

Koncepcja CG została zapoczątkowana przez Freda Karlssona w 1990 r. (Karlsson 1990; Karlsson i in., red., 1995), a od tego czasu tagery i parsery CG zostały napisane dla wielu różnych języków, rutynowo uzyskując wyniki F-score dokładności dla części mowy (klasa słów) ponad 99%. Szereg syntaktycznych systemów CG zgłosiło wyniki F na poziomie około 95% dla etykiet funkcji składniowych. Systemy CG mogą być używane do tworzenia pełnych drzew składniowych w innych formalizmach poprzez dodawanie małych, nieterminalnych gramatyk struktur frazowych lub gramatyk zależności , a wiele projektów Treebank wykorzystywało CG do automatycznej adnotacji. Metodologia CG została również wykorzystana w wielu aplikacjach technologii językowych, takich jak sprawdzanie pisowni i systemy tłumaczenia maszynowego .

Składnia i format reguły

Parser gramatyki ograniczeń oczekuje jako danych wejściowych strumienia przeanalizowanych morfologicznie tokenów, zwykle wytwarzanych przez analizator oparty na przetwornikach stanu skończonego (powszechne to narzędzia Xerox twolc/lexc/xfst, HFST lub lttoolbox Apertium ). Każdy token może być niejednoznaczny i mieć wiele odczytów , forma powierzchniowa ze wszystkimi odczytami nazywana jest kohortą . Poniżej znajduje się możliwa przykładowa analiza „, a X było jak „” w formacie wejściowym oczekiwanym przez VISL CG-3:

"<,>" "," cm " " "i" spójnik " " "X" liczba pl "X" rzeczownik rekwizyt " " "być" czasownik po p1 sg "być" czasownik po p3 sg " " "jak" przym "jak" subj "jak" pr "jak" czasownik inf "jak" czasownik pres "jak" czasownik imp "<“>" "“" lquot

Ten fragment pokazuje 5 kohort, z których każda ma co najmniej jeden odczyt. Formy powierzchniowe są w „<cytaty kątowe>”, podczas gdy lematy/formy bazowe są w zwykłych „cudzysłowach”, po których następuje niecytowany zestaw znaczników, i widzimy, że niektóre kohorty mają kilka odczytań, tj. są niejednoznaczne ( „<jak>” jest niejednoznaczne między 6 odczytami). Zadaniem parsera CG jest teraz 1) usunąć tyle błędnych odczytów, ile jest to bezpieczne w danym kontekście, 2) opcjonalnie zastosować jedną lub więcej etykiet funkcji składniowych do każdej kohorty (lub nawet relacji zależności) i 3) ujednoznacznić zastosowane etykiety/relacje.

Poniżej znajduje się przykładowa reguła (ponownie w formacie VISL CG-3) wybierania trzeciej osoby czytania „było” (poprzez usunięcie pierwszej osoby czytania), biorąc pod uwagę, że nie ma zaimka pierwszej osoby po lewej stronie:

USUŃ (czasownik p1) JEŻELI (0C (czasownik)) (NEGATE *-1 (prn p1)) ;

Tutaj (czasownik p1) to zestaw tagów (kolejność nie ma znaczenia), które muszą pasować do usuwanego odczytu. Po JEŻELI następuje lista zerowych lub więcej ograniczeń , pierwsza z nich mówi, że w tej kohorcie (pozycja 0) wszystkie odczyty (kwalifikator C , dla Ostrożnie) mają znacznik czasownik . Drugie ograniczenie mówi, że jeśli istnieje kohorta, która znajduje się co najmniej o jedno słowo w lewo (pozycja *-1 , * oznacza, że ​​możemy pójść dalej niż o jedno słowo i - oznacza w lewo) i ta kohorta jest zaimkiem pierwszej osoby, to ograniczenie *nie* pasuje ( NEGATE ).

W CG-3 regułom można również nadać nazwy, np. SELECT:jakaśnazwa (…) IF , które pojawiają się w wynikach śledzenia.

Reguła może również wybrać pojedynczy odczyt, jeśli jesteśmy pewni, że wszystkie inne odczyty muszą być błędne, biorąc pod uwagę ograniczenia:

WYBIERZ:cytowanie ("like" subj) JEŚLI (-1 (" ")) (1 (lquot) OR (":")) ;

W tej regule widzimy, że w zestawach tagów możemy odnosić się zarówno do form słownych, jak i bazowych (są one traktowane jak każdy inny znacznik, a odczyt zawsze będzie pasował do formy słownej). Tutaj drugie ograniczenie wykorzystuje OR do łączenia dwóch zestawów tagów. Jeśli ten zestaw jest powszechnie używany, możemy nadać mu nazwę i użyć nazwy – bez nawiasów – w ten sposób:

LISTA prequote = lquot ":" ; WYBIERZ:cytowanie ("like" subj) JEŚLI (-1 (" ")) (1 precytat);

Równoważną definicją byłoby SET prequote = (lquot) OR (":"); .

Po uruchomieniu powyższych reguł powinniśmy skończyć z tym:

"<,>" "," cm " " "i" spójnik " " "X" liczba pl "X" rzeczownik rekwizyt " " "być" czasownik po p3 sg " " "polub" temat "<">" """ lcyt

Gdybyśmy użyli opcji --trace , zobaczylibyśmy usunięte odczyty z inicjałem ; , oraz nazwę i numer linii reguły, gdziekolwiek dotyczyła czytania.


Składnia reguły dodawania etykiet funkcji składniowych jest zgodna z podobnym schematem „zrób to, jeśli x, y i z”:

LISTA nominalna = rzeczownik prn ; ADD (@SUBJ) JEŻELI (NEGATE *-1 nominalna) (0C (prop)) (1C finiteverb) ;

Nazywa się to „regułą mapowania” i możemy otrzymać wiele takich tagów mapowania na kohortę, w którym to przypadku możemy ujednoznacznić, używając tych samych reguł SELECT/REMOVE.

Implementacje

CG-1

Pierwszą implementacją CG była CGP autorstwa Freda Karlssona na początku lat 90. Był oparty wyłącznie LISP -ie, a jego składnia była oparta na s-wyrażeniach LISP-a (Karlsson 1990).

CG-2

mdis CG-2 Pasi Tapanainena usunęła niektóre nawiasy w formacie gramatyki i została zaimplementowana w C++, interpretując gramatykę jako przetwornik stanu skończonego dla szybkości.

CG-2 został później ponownie wdrożony (metodą inną niż FST) przez grupę VISL na Syddansk Universitet jako open source VISL CG [1] , zachowując ten sam format, co mdis Tapanainena o zamkniętym kodzie źródłowym .


CG-3

Zrzut ekranu cg3ide VISL
Edycja i uruchamianie pliku CG-3 w Emacs cg.el

Projekt VISL przekształcił się później w VISL CG-3, co przyniosło dalsze zmiany i uzupełnienia formatu gramatyki, np.:

  • pełna obsługa Unicode przez International Components for Unicode
  • inna interpretacja negacji (NIE)
  • nazwane relacje oprócz zwykłych relacji zależności
  • ustawienie zmiennej
  • pełne dopasowanie wyrażeń regularnych
  • unifikacja tagów/zestawów – LIST gen = mf; SELECT (det) + $$gen JEŻELI (1 rzeczownik) (1 $$gen); wybierze determinant, który ma taką samą płeć jak następujący rzeczownik
  • opakowania do odczytu/zapisu formatów Apertium i HFST
  • obsługa pododczytów (gdzie jedno odczytanie ma kilka „części”, używanych do wyrażeń wielowyrazowych i złożonych)
  • skanowanie poza punkt początkowy, a nawet granice okien
  • wykorzystać jako bibliotekę i wsparcie integracji z procesami zewnętrznymi

Istnieje również proste IDE dla CG-3 opracowane przez VISL [2] , które zapewnia podświetlanie składni i pozwala zobaczyć dane wejściowe i wyjściowe oraz możliwe błędy podczas pisania gramatyki. Istnieje również tryb Emacsa cg.el [3] z podobnymi funkcjami i prostą nawigacją po kodzie.

W przeciwieństwie do implementacji Tapanainena, implementacje VISL nie wykorzystują przetworników stanu skończonego. Reguły są uporządkowane w sekcjach, co daje większą przewidywalność podczas pisania gramatyk, ale kosztem wolniejszego analizowania i możliwości niekończących się pętli.

Były eksperymentalne reimplementacje CG-2 oparte na FST, które dla małych gramatyk osiągają prędkość VISL CG-3, jeśli nie mdis .

Lista systemów

Darmowe oprogramowanie
Oprogramowanie niewolne
  1. ^ W języku angielskim patrz na przykład Tapanainen i Voutilainen 1994.
  2. ^ Tapanainen, Pasi 1996: The Constraint Grammar Parser CG-2. Publikacje Uniwersytetu Helsińskiego nr 27.
  3. ^ Nemeskey, DM, Tyers, FM i Hulden, M. (2014) „Dlaczego implementacja ma znaczenie: ocena parsera gramatyki z ograniczeniami typu open source” . Proceedings of the 25th International Conference on Computational Linguistics (COLING 2014) (w przygotowaniu)
  •   Bick, Eckhard. 2000. System analizowania „Palavras”: automatyczna analiza gramatyczna języka portugalskiego w ramach gramatyki z ograniczeniami . Aarhus: Aarhus University Press. ISBN 87-7288-910-1 .
  • Karlsson, Fred. 1990. Gramatyka z ograniczeniami jako ramy do analizowania nieograniczonego tekstu. H. Karlgren, red., Proceedings of the 13th International Conference of Computational Linguistics , tom. 3. Helsinki 1990, 168-173.
  •   Karlsson, Fred, Atro Voutilainen, Juha Heikkilä i Arto Anttila, redaktorzy. 1995. Gramatyka z ograniczeniami: niezależny od języka system do analizowania nieograniczonego tekstu . Przetwarzanie języka naturalnego, nr 4. Mouton de Gruyter, Berlin i Nowy Jork. ISBN 3-11-014179-5 .
  • Tapanainen, Pasi i Atro Voutilainen 1994: Dokładne oznaczanie: nie zgaduj, jeśli wiesz . ANLC '94 Materiały z czwartej konferencji dotyczącej stosowanego przetwarzania języka naturalnego.

Linki zewnętrzne