Ige, számnév, melléknév, majom: vadásszunk szófajokra!
Joggal gondolhatjuk, hogy ha a szószerkezetek és a mondatok minden nyelvben úgy épülnek fel, hogy meghatározott szófajú szavakat rakunk egymás mellé (akármit jelentsen is az, hogy „szófaj”), és feltesszük, hogy a szavak egyéb tulajdonságai (például a jelentésük, akármit jelentsen is ez), ezt nem érintik, akkor sok-sok szöveget megvizsgálva automatikusan kinyerhetjük, hogy azon a bizonyos nyelven melyik szó milyen szófajba tartozik. De ezt a feladatot sok minden nehezíti.
Először is sok nyelvben (így a magyarban is) csak részlegesen, bizonyos szavak, szófajok esetében van korlátozva az, hogy egy-egy szószerkezetben vagy mondatban milyen sorrendben követhetik egymást a szavak. Ezért nem támaszkodhatunk arra, hogy a szószerkezetek felépítésében, ha az bizonyos szófajú szavak jelenlétén alapul, akkor ezeket a szavakat mindig azonos sorrendben találjuk meg.
Egy másik probléma az alaktan (morfológia) szerepe, vagyis hogy az egyes szóalakok milyen toldalékokat tartalmaznak. Az emberi beszélőket segíti a szerkezetek felismerésében, hogy sok szóalakot azonnal felismernek, például könnyen azonosítják, hogy egy bizonyos szó mondjuk ragozott ige (és akkor jelen lehetnek hozzá kapcsolódó bővítmények), vagy hogy esetragos névszó (és akkor pl. a magyarban biztosan egy ún. névszói szerkezet végén foglal helyet). Máskor meg a szóalak tövét ismerik fel azonnal, ha jól ismert, jellegzetes és gyakran hallott szótőről van szó. Csakhogy minden jel arra mutat, hogy az emberi beszélők fejében mindez egyszerre, vagy legalábbis nem meghatározott sorrendben történik. Sok szóalakban azonnal felismerjük a szótövet és/vagy valamilyen toldalékot, de ezt is segítheti az, hogy a környező szavakról, így az egész szerkezetről is van már valami fogalmunk, és megfordítva, ha valamiből sejtjük, hogy milyen szerkezettel van dolgunk, az segíti a szóalakok felismerését.
Ráadásul egy csomó nyelvben alig vannak olyan értelemben toldalékok, mint amilyeneket a magyarból ismerünk, tehát nem mondhatjuk ki, hogy a szófajok automatikus felismerésének, ha az egyáltalán lehetséges, előfeltétele az, hogy szótövekre és toldalékokra tudjuk felbontani a szóalakokat.
Hosszabb távon persze szuper lenne, ha a mondatok, mondatszerkezetek felismerését valóban szimulálni tudnánk, vagyis ha géppel reprodukálni lehetne azt, ami az agyunkban történik, azt, ahogy az anyanyelvünkre vonatkozó sokféle ismeretet össze-vissza sorrendben vagy egyszerre mozgósítjuk a mondatok felismerésekor. De ez még odébb van, most maradnék annál, hogy hogyan lehetne kinyerni a szófajokat, és ebben most teljesen figyelmen kívül fogom hagyni a toldalékok jelenlétét és még más dolgokat is.
Az önző majomtól a vakaródzó majomig
És akkor most jönnek a gyakorlatibb jellegű nehézségek, amikkel esetleg tudunk is valamit kezdeni. Az első az, hogy a szavak nagyon sokszor nem olyan szavak szomszédságában jelennek meg, amikkel közvetlenül összetartoznak. Például a magyar névelő után a névszói szerkezet bármelyik eleme következhet, nemcsak az alaptag (ami általában főnév, mint az a majom szerkezetben). A teljesség igénye nélkül: jöhet utána melléknév (az önző majom), igenév (a vakaródzó majom), határozószó (a most vakaródzó majom), számnév (a három majom), sőt akár más névelőszerű elemek is (a minden majmot érdeklő gyümölcsök, a némelyik majom számára utálatos emberek). Tény, hogy például ragozott ige nemigen következhet utána (*... a vakaródzik ...), de szinte akármi más igen, méghozzá gyakran. Ezért az összes olyan program, ami egy kicsit is eredményes a szófajok felismerésében, úgy működik, hogy nemcsak a közvetlenül szomszédos szavakat vizsgálja, hanem nagyobb ablakokat (négy-öt szavas sorozatokat), mert az, hogy ilyen hosszúságú sorozatokban milyen szavak előzhetnek meg és követhetnek egy szót, az már inkább jellemző a szófajára.
Végül van egy nehézség, ami első hallásra leküzdhetetlen, de valójában nem is olyan súlyos, és ez a szófaj fogalmának a „körkörössége”. Ha a szavak szófaját onnan ismerhetjük meg, hogy milyen szófajú szavakkal kapcsolódnak össze, akkor ahhoz először a velük összekapcsolódó szavak szófajáról kéne valamit tudnunk, és megfordítva. Például ha igaz, hogy a magyar névelőket gyakran követik főnevek, akkor az a(z) névelő után gyakran kell főneveket találnunk. Csakhogy ezt addig nem tudjuk megállapítani, amíg nem tudjuk, mik a főnevek. Egy-egy konkrét „névelő + főnév” kombináció (mondjuk az, hogy a majom) nem túlzottan gyakori (sőt, meglehetősen ritka), ezért az ilyen adatokkal közvetlenül még nem jutunk sokra, csak akkor, ha valahonnan megsejtjük, hogy a majom, a gorilla, a bonobó stb. szavak egyaránt főnevek, és így együtt már elég gyakran állnak az a(z) után.
Ebből az látszik, hogy a szófajokat csak „egymáshoz képest” tudjuk felismerni: ez valamilyen iteratív (más szóval: rekurzív) eljárással sikerülhet, ami azt jelenti, hogy ugyanazokat a lépéseket hajtjuk végre újra és újra úgy, hogy a megoldáshoz fokozatosan közelítünk. Számolási feladatoknál elég gyakori, hogy így járunk el, amikor közelítő megoldásokat keresünk. Ebben az esetben ez azt jelenti, hogy először csak nagyjából állapítjuk meg a szavak hasonlóságát (annak alapján, hogy milyen más szavak környezetében fordulnak elő), vagy csak néhány szóról állapítjuk meg, hogy ugyanabba a szófajba tartozhatnak, a következő lépésnek pedig már ennek ismeretében futunk neki.
Milyen szófaj az, hogy the?
A standard módszerek éppen azokon a megoldásokon alapulnak, mint amiket itt leírtam. Sajnos ennek ellenére ezek nem igazán sikeresek. Rengeteg kísérlet volt, és rengeteg módon próbálták a sikerességüket ellenőrizni, ezekről itt lehet például egy összefoglalót olvasni. A legjobb eredmény eddig olyasmi volt, hogy angol nyelvű szövegekből egy kifejezetten angolra kidolgozott szófaji osztályozással nagyjából 2/3 arányban egybeeső osztályokat sikerült felismerni. Ezekből a mérésekből és beszámolókból viszont nem derülnek ki a részletek, vagyis az, hogy a kieső (a legjobb esetben 1/3-nyi) hibás osztályozás valamilyen értelemben a legnehezebb vagy legkevésbé lényeges eseteknek felel meg.
Végeztem néhány saját kísérletet is ezekkel a bevett módszerekkel. Például próbaképpen megnéztem, hogy egy nagyságrendileg egymilliárd szót tartalmazó angol szöveg alapján a Brown és munkatársai által 1992-ben megalkotott módszer milyen osztályba sorolja az angol határozott névelőt, a the szót. Csak néhány elemét sorolom fel az osztálynak, amit kaptam: zodiac, manly, hinge, emit, virtual. Modernebb módszerekkel sem jutottam sokkal megnyugtatóbb eredményre. Saját ötleteket is kipróbáltam, és azokkal se mentem sokra, de azokról inkább majd külön írok.
A szerző nyelvész, az MTA Nyelvtudományi Intézetének főmunkatársa.