Spring til indhold

Constraint Grammar

Fra Wikipedia, den frie encyklopædi

Constraint Grammar (CG) er et metodologisk paradigme inden for sprogteknologi og består af en række kontekst-afhængige regler som beskriver et naturligt sprogs grammatik ved først at tillægge tags til ord som indskrænker hvilke grammatiske tolkninger (læsninger), de kan have.

Typiske eksempler på forskellige slags mærkater er lemmatisering (leksemer eller ordrødder), bøjningsform, afledning, syntaktisk funktion, afhængigheder, valens, betydningsroller, semantisk type osv.

Hver regel i en constraint grammar tilføjer, fjerner, vælger eller erstatter et eller flere grammatiske mærkater for ordene i en sætning. En regel kan aktiveres/blokeres af tilstedeværelsen/fraværet af mærkater eller ord.

Typiske constraint grammars til naturlige sprog består af tusinder af regler som anvendes i mængder af gangen i en bestemt rækkefølge sådan at den første mængde regler giver den simpleste grammatiske analyse og de senere regler giver gradvist mere kompleks grammatisk analyse. Inden for hvert niveau af regler anvendes først "sikre" regler og herefter heuristikker hvor gæt tillades.

Konceptet constraint grammar blev først formuleret af Fred Karlsson i 1990, og sidenhen er CG-taggere og -parsere blevet lavet til adskillige sprog med F-scorer på over 99% for genkendelse af ordklasser, over 95% for mærkater med syntaktisk funktion.

Constraint grammars kan bruges til at danne syntakstræer i andre formalismer ved at tilføje små non-terminale phrase structure grammars eller dependency grammars. En mængde Treebank-projekter har benyttet CG til automatisk annotering. CG er også blevet anvendt i stavekontroller og systemer til maskinoversættelse.

Implementeringer

[redigér | rediger kildetekst]

Den første implementering var CGP af Fred Karlsson fra 1990. Den var LISP-baseret og baseret på LISP's s-udtryk.

Pasi Tapanainens CG-2-reimplementering mdis er lavet i C++ og fjernede nogle af parenteserne i grammatikformatet og forbedrede ydeevnen ved at fortolke grammatikken ved hjælp af en tilstandsmaskine med to bånd (eng. finite state transducer).

VISL-gruppen ved Syddansk Universitet reimplementerede efterfølgende CG-2 i form af open source-projektet VISL CG. Den blev senere til VISL CG-3[1] og der ændredes yderligere på grammatikformatet ved bl.a. at tilføje navngivne relationer og variable. VISL-implementeringerne benytter ikke en tilstandsmaskine.