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
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
- VISL CG-3 CGrammar kompilator/parser
-
North i Lule Sami, farerski , komi i grenlandzki z Uniwersytetu w Tromsø ( więcej informacji , dokumentacja lapońskich północnych ) Oryginalne
- fińskie FinCG Freda Karlssona jest również dostępne na Uniwersytecie w Tromsø jako GPL, zarówno w oryginalnej wersji CG1 , jak iw przekonwertowanej wersji CG3 .
- estoński [4]
- Norweski Nynorsk i Bokmål online , tagger Oslo-Bergen ( kod źródłowy )
- Bretoński , walijski , irlandzki gaelicki i norweski (przekonwertowane z powyższego) w Apertium (patrz CG w Apertium )
- Oprogramowanie niewolne
- baskijski [5]
- kataloński CATCG
- Duński DanGram
- Angielski ENGCG , ENGCG-2 , VISL-ENGCG
- Esperanto EspGram
- Francuski FrAG
- Niemiecki GerGram
- irlandzki w Internecie
- Włoski ItaGram
- Hiszpański HISPAL
- szwedzki SWECG
- suahili
- portugalski PALAVRAS
- ^ W języku angielskim patrz na przykład Tapanainen i Voutilainen 1994.
- ^ Tapanainen, Pasi 1996: The Constraint Grammar Parser CG-2. Publikacje Uniwersytetu Helsińskiego nr 27.
- ^ 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
- Samouczek CG autorstwa Kevina Donnelly'ego
- VISL CG-3 , kompilator/parser gramatyki
- Lista niektórych publikacji dotyczących gramatyki ograniczeń (przynajmniej do 2010 r.)