Magyar morfológiai egyértelműsítés sequence-to-sequence neurális hálózatokkal

OData támogatás
Konzulens:
Ács Judit
Automatizálási és Alkalmazott Informatikai Tanszék

Tekintve, hogy a magyar nyelv agglutináló, a szavak jelentését a szóalakok megváltoztatásával állítja elő. Ezt úgy éri el, hogy úgynevezett morfémákat - a nyelv legkisebb önálló jelentéssel bíró egységeit - egymás után ragasztja (ilyen például a szavak ragozása). Ennek a tulajdonságnak az a következménye, hogy a magyar nyelv szavai nagyon gazdag és komplex morfológiával (szóalakokkal) rendelkeznek, amiket morfológiai elemzésekkel is reprezentálhatunk. Ezen kívül, a szavak jelentése is gyakran többértelmű és csak a szövegkörnyezetükben nyernek értelmet.

Ha például egy tipikus, 20 szóból álló mondatot tekintünk, és minden egyes szónak átlagosan 2 morfológiai elemzése van, ez pontosan kettő a huszadikon (azaz 1 048 576) lehetséges morfológiai elemzés kombinációt tulajdonít az adott mondatnak.

A fentieket figyelembe véve, egy morfológiai egyértelműsítő kiválasztja azt a morfológiai elemzést minden szóhoz egy mondatban, amely beleillik az adott szövegkörnyezetbe. Az előző példa esetében ez azt jelenti, hogy az egyetlen jó elemzés kombinációt kell meghatároznunk a 1 048 576-ból. Például multikulturális világunkban rengeteg múlhat azon, hogy a számítógépek egyik nyelvről a másikra való fordítás esetén a szavak odaillő jelentését veszik-e figyelembe, vagy amikor egy hosszabb szöveget kell lerövidíteniük. Összegzésképp, ez az eszköz jelentős szerepet tölt be a legtöbb, specifikusabb természetes nyelvfeldolgozási (NLP) feladatban.

Mélytanulási (Deep Learning) eljárásokat már sikerrel alkalmaztak NLP feladatokra, state-of-the-art eredményekkel. Mindazonáltal, ebben a témában még nem vizsgálták meg eléggé a felhasználhatóságát. Mivel a természetes nyelv változó hosszúságú szavakat és mondatokat produkál, a sequence-to-sequence (szekvenciát szekvenciává átalakító) neurális hálózatok alkalmazása ígéretes lehet.

Szakdolgozatom keretén belül bemutatok és publikálok egy nyílt forráskódú, magyar nyelvre írt morfológiai egyértelműsítőt, melynek implementálása során felkészítettem arra is, hogy egyszerűen ki lehessen bővíteni más nyelvekre. Ezen felül kiértékelem az általa használt karakter- és morféma-szintű, előtanított sequence-to-sequence neurális hálózatokkal, amik magas szinten konfigurálhatók. Továbbá kifinomult adatvizualizációs algoritmusokat is használtam annak érdekében, hogy az eredmények minél könnyebben értelmezhetők legyenek.

Letölthető fájlok

A témához tartozó fájlokat csak bejelentkezett felhasználók tölthetik le.