Ugrás a tartalomhoz

Alkalmazott Mesterséges Intelligencia

Dudás László (2011)

Kempelen Farkas Hallgatói Információs Központ

Morfológia

Morfológia

A morfológia a szavak alakjával, szerkezetével, felépítésével, a különféle szóalakokkal foglalkozik. Mivel a magyar nyelv az erősen agglutináló, toldalékoló nyelvek körébe tartozik, ezért különösen fontos foglalkoznunk a szavak felbontásával, illetve toldalékolásával, ragozásával. A szavak egy, vagy több morfémából állnak: ház; meg-ház-as-od-ott.

A morfológiai elemzés feladata a szó felbontása és az alkotórészek lexikai kategorizálása, címkézése.

A téma alapos feldolgozása (Prószéky, Kis, 1999) könyvében található meg. A mű alapján a következő, a szóösszetételek, a helyes morfémaláncolatok képzésének megadására alkalmas szabályokat megadó modelleket, morfológia típusokat említhetjük:

  1. Kétszintes morfológiák (Koskenniemi, 1983): A felbontott szó morfémájához megadja az (esetleg kissé eltérő) alap (lexikális) morfémát a morféma nyelvtani kategóriájával együtt. Pl.: labdá + k → labda [főnév] + k [többesszám jele].

    A karakterről karakterre haladó elemzés véges automatát alkalmaz és jellemzője, hogy megfordítható: pl.: labda [főnév] + k [többesszám jele] → labdá + k.

  2. Folytatási osztályok: egy morfémához megadja a lehetséges folytatómorfémákat. Pl.: labda [főnév] (+ t [tárgyrag], + val [eszközhatározó rag], + nak [birtokosrag], … ); + k [többesszám jele] (+ at [tárgyrag], + nak [birtokosrag], + val [eszközhatározó rag], + ból [helyhatározó rag] …)

    A morfémák osztályozhatók az egyes folytatási osztályok tartalma alapján.

  3. Unifikációs modellek: nem a kapcsolódó morfémákat, hanem a morfémát megelőző és követő morfémák jellemzőit (morfoszintaktikai és fonológiai, hangképzési tulajdonságok) tárolja. Igekötőknél a megelőző, ragoknál a következő morféma hiányzik, így jellemzői is hiányoznak.

A morfológia szükségessége

A szavak összetevőikre, előtagra, szótőre, jelekre és ragokra való felbontása több okból is fontos. A szótő (lemma) megtalálása azért szükséges, mert a szó alapjelentését az hordozza. Mintaillesztéses szövegfeldolgozás esetén a ragozott szavak eltérő sztringekként különböző egységeknek minősülnek, holott a jelentésközelség érezhető (emberek, embert). Másrészt az azonos képzőknek, ragoknak, toldalékoknak azonos a jelentésmódosító hatásuk, ezért fontos az észlelésük és a jelentésmódosító hatás feltárása. Ez szorosan összefügg a toldalékok szófajképző hatásával is (ház – főnév, ház-as – jelző, ház-ban – határozó). További célja a morfológiai felbontásnak az eltérő szóalakok számának redukálása.

Morfoszintaktikai ábrázolás véges állapotú automatával

Példaként a kétszintes morfológiát mutatjuk, (Prószéky, Kis, 1999) alapján.

  • Az egyszerű véges automata csak a szintaktikai elemzés legelső lépését képes elvégezni egy toldalékolt szóval: megállapítja, hogy része a modellezett nyelvnek, vagy sem. (Jól írt szó – hibásan írt szó.)

  • Az automata kibővítésével az automata kimenete gazdagítható: képes megadni

    • a morfémák alap lexikális alakját (értelm -> értelem),

    • a morfémák morfoszintaktikai kódját ( -ja -> [birtokos jelző] )

    • stb.

  • Ilyenkor az automata az input szöveghez egy output leírást ad, azaz az inputot lefordítja az outputra. A szöveget (surface level) és a hozzátartozó leírást (lexical level) az automata által kezelt két szintnek tekinthetjük, mivel még az is jellemzi, hogy a leírás is szolgálhat inputként és ekkor az automata azt a szövegre fordítja. Az ilyen, két szint közötti transzformációt végző automatát véges fordítónak (finite state transducer, FST) nevezzük.

Szófelismerés és -címkézés véges fordítóval

Öntanuló morfológia

Az alfejezet az agglutináló, erősen toldalékoló nyelvek közé sorolt magyar nyelv esetére ad egy módszert a toldalékolt szavak toldalékainak beazonosítására, a nyelvben lehetséges toldalékok felismerésére tisztán statisztikai elven. A statisztikai elv azt jelenti, hogy a módszer nem igényli a nyelv nyelvtanának ismeretét, nem alkalmaz nyelvtani elemzést. Ebből következően a bemutatott módszer nyelvfüggetlen. A módszer a szerző saját fejlesztése.

Az elemzett probléma a szerző korábbi cikkében (Dudás, 2003) bemutatott, szemantikai távolság mérésével dolgozó, Tudor nevű öntanuló információs program használata közben merült fel. A Tudor minden kérdés, vagy állítás formájában beadott mondatot megjegyez, miközben a mondat szavai közötti kapcsolatrendszerrel, ill. új szó esetén magával a szóval bővíti az ismeretbázisát, mely gyakorlatilag egy szemantikus háló. A működés egyszerűsített váza: a beadott mondat szavaihoz korábban kapcsolt szóhalmazok unióját metszésbe hozza sorra az összes korábban megismert mondatra hasonlóan adódó uniós halmazzal és a legnagyobb metszetet, a legtöbb közös kapcsolódó szót adó tárolt mondatot hozza fel kimenetként, megvalósítva ezáltal egy szemantikus távolság minimálásán alapuló keresőt, kiaknázva azt a Quillian-i elvet, miszerint egy szó jelentését a szóhoz társított asszociációk hordozzák. Felismeri ilymódon a szinonímákat a hasonló asszociációs halmaz révén (kutya, eb) és segíti a homonímák kezelését (Ég a tűz. Dörög az ég. Tűz és Dörög asszociált halmazai eltérőek, irányítják az ég megfelelő jelentésének kiérzését.). Mivel a magyar nyelv az erősen toldalékoló nyelvek családjába tartozik, a százezres nagyságrendű alapszó mennyiséghez százmilliós nagyságrendű ragozott, toldalékolt szóforma társul. Ez három problémát is felvet: az egyik a hatalmas szómennyiség tárolásának gondja, a másik az önálló szintaktikai egységként megjelenő szavak elfedik a szótő által hordozott alapjelentést (Bár ezen a szemantikai hálóval való tárolás sokat segít, mivel hasonló asszociált szókörnyezetben fordul elő a kutya és a kutyát szó. Ekkor viszont az asszociációt leíró linkhalmaz duplikált tárolása jelent többletet.) A harmadik probléma, hogy a toldalékok nem élhetnek önálló életet és ezáltal a toldalék által önállóan hordozott jelentés – a jelentésmódosító, viszonymeghatározó tulajdonság – nem kristályosodhat ki, nem válhat a szemantikus háló csomópontjává. A toldalékolt, vagy igekötős szavak felbontása morfémákra, igekötőkre, szótőre, képzőkre, jelekre, ragokra megnöveli a szemantikus háló szövetének finomságát és árnyaltabb szemantikai közelségvizsgálatot tesz lehetővé. Hangsúlyozni kell azonban, hogy jelen megoldásban az igekötő, szótő, képző jel, rag kategóriák nem értelmezhetők és feleslegesek, egyszerűen csak az önálló jelentéssel, jelentésmódosító hatással bíró morfémák feltárása a cél.

Ismert módszerek

A toldalékolt szavak morfémákra való bontására alkalmas eljárások két fő csoportba tartoznak:

  • Nyelvtani elemzéssel működő

  • Statisztikai elven működő.

A nyelvtani elemzésen alapuló szóelemzők a nyelv nyelvtanát alaposan ismerők, többnyire nyelvészek közreműködésével készülnek. Jellemzőjük, hogy nem csak a szavak morfémákra bontását, hanem a morfémák lexikális alakjának meghatározását (fára → fá+ra → fa+ra) is elvégzik, továbbá meghatározhatják a morfémák morfoszintaktikai tulajdonságait is (fa: főnév; +ra: helyhatározó rag). Az általában kivételek, betűváltozások, hasonulások, stb. miatt nem egyszerű feladatot a kétszintes morfológia fő eszközével, a véges fordítóval (FST, Finite State Transducer) automatizálják, valamint kivételszótárakat alkalmaznak, mindezt nagy és alapos emberi előkészítő munka eredményeként (Prószéky G. - Kis B. 1999). A módszer alkalmazhatóságáról meggyőzhet minket a MorphoLogic cég munkássága, amelynek WORD-be integrált helyesírásellenőrző programmodulját használta ezen mondatok írása közben a szerző (Lásd Microsoft WORD™ Névjegye). Egy másik, szintén nyelvtani elemzést alkalmazó program Hornyánszky Simon (2005) beszélgető robotja.

A nyelvtani elemzésen alapuló rendszerek általában nem nyílt rendszerek, ami azt jelenti, hogy új szó, szókapcsolat megjelenésekor azt nem tudják emberi beavatkozás, módosítás nélkül kezelni.

A statisztikai elven működő szóelemzők a nyelv szavaiban található részek, kapcsolódások relatív gyakoriságából kiindulva tagolják a szavakat morfémákra. A statisztikai elvű nyelvfeldolgozás, a nyelvbeli törvényszerűségek, a nyelvtani szabályok szövegből való automatikus kinyerése újabb keletű tudomány, mely arra a megfigyelésre alapoz, hogy az emberek előbb tanulják meg a nyelvet használni és megérteni, mint ahogy megtanulnák a nyelvtani szabályokat az iskolában. Tehát a nyelv, a nagymennyiségű szöveg (és a szöveg használatakor társuló egyéb, pl. vizuális információ) teljességében hordozza a megértéséhez szükséges információt, benne a nyelvtaninak nevezett összefüggéseket. A statisztikai elvű nyelvfeldolgozás feladata ezt statisztikai, matematikai, adatbányászati eszközökkel kinyerni. Tehát ezek a rendszerek nyílt rendszerek, öntanuló módon tesznek szert a nyelvtani ismeretekre.

A témához legközelebb álló egyik ilyen eszköz Bodon Ferenc morfématanuló programja (Bodon, 2006). A program nyelvfüggetlen, a szavak morfémákra való tagolását, a morfémakategóriák kialakítását a nagymennyiségű szöveg megadása után automatikusan végzi. Módszere a következő: a szöveg szavait a Frey Tamás által kidolgozott algoritmussal létrehozott minimális méretű végesállapotú automatában tárolja, majd olyan állapotokat keres, melyekre a befutó élek és a kifutó élek számára teljesül egy paraméterezhető összefüggés, abból kiindulva, hogy a szótő és a ragok kapcsolódását az jellemzi, hogy sok szótőhöz járul ugyanaz a rag és egyúttal egy szótőhöz többféle rag szokott kapcsolódni. A módszer előnye, hogy a beazonosított állapot utáni összes toldalék hozzárendelhető az állapotba befutó bármely szótőhöz, és megfordítva, az összes befutó szótőhöz kapcsolható bármely toldalék, ilymódon a szótárban nem szereplő új, toldalékolt szavak létezése valószínűsíthető. A módszer kulcskérdése a kapcsolóállapot felfedezését szolgáló paraméterezhető összefüggés helyes meghatározása. Bodon szerint a befutó és kifutó élek számának szorzatára állítható fel alsó korlát, melyet meghaladó állapotok morfémakapcsoló állapotnak számítanak. További megszorítás tehető külön-külön a befutó és a kifutó élek minimális számára. A módszer hátránya, hogy az egyszer megkonstruált minimálfa egy szó miatt csak újraépítéssel bővíthető.

A Javasolt Morfémafeltáró Módszer

A Tudor programban alkalmazott módszernél célkitűzés volt, hogy inkrementálisan tanuljon, azaz a korábbi belső struktúra egyszerűen bővíthető legyen a felismert új toldalékkal. A rendszer a szó két részre – az egyszerűség kedvéért nevezzük szótőnek és ragnak – tagolása után az eredeti szót törli, a szótövet és a ragot beszúrja az adatbázisba. Már létező szavak újbóli beszúrása csak a szemantikus hálóban jelent változást, a szótárban nem.

A módszer jellemzője, hogy anélkül képes egy szót szótőre és ragra tagolni, hogy a szótárban már benne lenne a szótő. További jellemző, hogy a szavakat rendezetten tároló Szóvektor mellett a Fordítottvektor vektorban tárolja a szavak fordított alakját, szintén rendezett sorrendben. A következőkben egy példán keresztül mutatjuk be az algoritmus működését.

Az input mondat soronlevő szava a házat, mely már beszúrásra került a Szóvektorba és a Fordítottszó vektorba. A korábbi inputok révén a két vektorban a sok, itt nem feltüntetett szó között megtalálhatók a lentebb adott tartalmak. Hely hiányában az általános algoritmus megadása helyett egy konkrét példán keresztül mutatjuk be a módszert. A ragkereső szöveges algoritmust a vektorok után helyeztük el a könnyebb követhetőség érdekében.

Az alkalmazott fő vektorok

Potenciális szótő és potenciális rag keresése:

A szó darabolása ciklusban hátulról, egyre növekvő hosszúságú levágásokkal, ill. amíg ragot nem talált.
	
	háza|t → nem rag. (ez a folytatásból derült ki..)
	ház|at → rag lehet.
	Megkeresni a  Szóvektor-ban az összes, a potenciális szótővel kezdődő, annál hosszabb szót:
		háza
		házam
		házamat
		házamban
		házat
		házban
		
	Ha nincs legalább négy (K1 = 4) szó, akkor a szóról nem állapítható meg, hogy ragozott. Vége.
	
	Egyébként ciklus az ilyen szavakra:
		Feltételezzük, hogy a szó szótő+rag alak, ahol a ház a szótő.
		A Fordítottvektor-ban megkeresni a ciklusban éppen vizsgált szó fordított ragjával kezdődő fordított szavakat. Pl. a|… szavak:
			agam		mag
			atlobmorel	lerombolt
			atnári		iránt
			azáh		ház
		Levágva a ragot (a-), a kapott szavakat visszafordítva számláljuk, hány szerepel, mint szótő a szóvektorban. (Ezek a támogatószótövek.) 
		Minden fordítottraghoz számláljuk, hogy hány támogatószótő adódott. 
	Végül megszámláljuk, hány fordítottrag (a-,ma-,tama-, stb) esetén haladta meg a támogatószótövek száma a K2 = 6 értéket, ha ezek száma eléri a K3 = 4 limitet, akkor a visszaadott eredményben van a szótőre + ragra felbontott eredeti szó.
						

Természetesen a megadott K1, K2, K3 értékek csak irányértékek. A következő ábra mutatja a ragok megtalálásának részleteit. Megfigyelhető, hogy hamis felbontás (lerombolt+a) is részt vehet az új rag megtalálásának támogatásában. Ezek hatását a Ki konstansok növelésével csökkenthetjük. Egy levágott fordítottrag támogatószótöveinek keresése elmarad, ha a fordítottragnak megfelelő nemfordított alak már szerepel a ragok között, lásd az ábrán a 4. sorszámú naplóbejegyzést.

A ragok megtalálását dokumentáló Naplófájl részlete

Egy 50000 szót tartalmazó szövegből 65 ragot tanult meg a program, csak az új inputként kapott szavakat próbálva felbontani. Ez az érték növelhető a részben már felbontással adódott szótárbeli szavak, köztük már felismert toldalékok újbóli sorbavételével.

A tesztek megmutatták, hogy a statisztikus elvű morfológia esetén is előfordulhatnak hamis felbontások, főként kis Ki konstansértékek alkalmazása esetén. (Nevezhetjük emiatt valamennyire nyelvfüggőnek is az algoritmust.) Ezek elsősorban az egybetűs szavak – a,s,e – miatt adódnak, amint az alábbi ábra is mutatja, melyek szótőként való alkalmazását egy felügyelt tanítással megakadályozhatjuk, büntetve a programot, ha hibát vétett a tanulás során. Másik hibaok a szemetes forrásszöveg, melyben, mint a mutatott esetben is, ak szó is előfordult. Ilyen leginkább szóelválasztásokból származik, melyek elkerülésére a szöveg előfeldolgozását végezhetjük.

Az egybetűs szavak hibát okozhatnak

Összefoglalva az elmondottakat, megállapíthatjuk, hogy a bemutatott statisztikai elvű morfológiai program bizonyította alkalmasságát morfémák statisztikai alapokon történő automatikus feltárására. Az ismertetett algoritmus előnye a teljesen inkrementális öntanuló működés és a nagyfokú nyelvfüggetlenség. További elemzést igényel a kisszámú, de hatásában továbbterjedő hamis felbontás kiszűrése.