22.8. a nyelvtan indukciós tanulása
A nyelvtan indukciós (grammar induction) tanulása annak feladata, hogy adatokból nyelvtant tanuljunk. Nyilvánvaló, hogy meg kell kísérelni, hiszen bebizonyosodott, hogy nagyon nehéz egy nyelvtant kézzel elkészíteni, és az interneten mintaként használható kijelentések milliárdjai állnak ingyenesen rendelkezésre. Ez egy nehéz feladat, mivel a lehetséges nyelvtanok tere végtelen, és azért is, mivel annak ellenőrzése, hogy egy adott nyelvtan generálja-e a mondatok egy adott halmazát, számításigényes feladat.
Egy érdekes modell a SEQUITUR
-rendszer (Nevill-Manning és Witten, 1997). Nincs szüksége más bemenetre, csak egy szövegre (amit nem szükséges előzetesen mondatokra bontani). Egy nagyon specializált formátumú nyelvtant állít elő: egy olyan nyelvtant, amely csak egy karakterfüzért generál, nevezetesen az eredeti szöveget. Másképp tekintve a SEQUITUR
épp csak arra elegendő nyelvtant tanul, hogy a szöveget elemezze. Íme, itt van az a zárójelezés, amit egy nagyobb, híreket tartalmazó szövegben levő mondatra felfedezett:
[Most Labour] [sentiment [[would still] [favor the] abolition]] [[of [the House]] [of Lords]]
Helyesen választott ki olyan összetevőket, mint például az „of the House of Lords” PP, bár a tradicionális elemzéssel ellentétesen dolgozik akkor például, amikor a „the”-t a megelőző igével és nem a követő főnévvel csoportosítja.
A SEQUITUR
azon az ötleten alapszik, hogy egy jó nyelvtan egyben tömör is. A következő két kényszer betartása a legfontosabb: (1) Egymást követő szimbólumok egyetlen párja sem szerepelhet egynél többször a nyelvtanban. Ha az A B szimbólumpár több szabály jobb oldalán is szerepel, akkor ki kell cserélnünk a párt egy új, nem záró szimbólummal, amit C-nek nevezünk, és egy új szabályt kell bevezetnünk, miszerint C → A B. (2) Minden szabályt legalább kétszer kell használni. Ha egy C nem záró, csak egyszer szerepel a nyelvtanban, akkor törölnünk kell a C-re vonatkozó szabályt, és fel kell cserélnünk egyetlen előfordulását a szabály jobb oldalával. Ezt a két kényszert egy mohó keresés alkalmazza, amely a beérkező szöveget balról jobbra végignézi, menet közben inkrementálisan építi a nyelvtant, és alkalmazza a kényszereket, amint lehetséges. A 22.22. ábra mutatja az algoritmus működését az „abcdbcabcd” szövegen. Az algoritmus egy optimálisan tömör nyelvtant határoz meg a szöveghez.
A következő fejezetben további nyelvtant tanuló algoritmusokat is látni fogunk, amelyek valószínűségi alapú, környezetfüggetlen nyelvtanokkal működnek. Most azonban egy olyan nyelvtan tanulásának problémáját vizsgáljuk meg, amelyet szemantikával terjesztettünk ki. Mivel egy kiterjesztett nyelvtan egyben Horn-klóz logikai program is, ezért az induktív logikai programozás technikái megfelelők lesznek. A CHILL
(Zelle és Mooney, 1996) egy induktív logikai programozás (ILP), amely példákból megtanul egy nyelvtant és egy arra specializált elemzőt. A célterület természetes nyelvű adatbázis-lekérdezések. A tanító példák szófüzérek, és a nekik megfelelő lekérdezések párjait tartalmazzák – például:
What is the capital of the state with the largest population?
Answer(c, Capital(s, c) ∧ Largest(p, State(s) ∧ Population(s, p)))
A CHILL
feladata, hogy megtanuljon egy Parse(words, query) predikátumot, amely konzisztens a példákkal, és remélhetőleg más példákra is jól általánosít. Az ILP közvetlen alkalmazása ezen predikátum megtanulására gyenge teljesítményt hoz: a kikövetkeztetett elemző csak körülbelül 20%-os pontosságú. Szerencsére az ILP tanuló algoritmusok fejleszthetők tudás bevitelével. Ebben az esetben a Parse predikátum nagy részét logikai programként definiálták, és a CHILL
feladatát a vezérlő szabályok kikövetkeztetésére redukálták, amelyek segítik az elemzőt a különböző elemzések közötti választásban. Ezzel a hozzáadott háttértudással a CHILL
70–85% közötti pontosságot ér el különböző adatbázis-lekérdezési feladatokon.
