emMorph - morfológiai elemző

Az eszközről

Mire jó? Mit csinál?

Az elemzőlánc morfológiai elemző része a szöveg minden egyes szóalakjához hozzárendeli az összes lehetséges morfológiai, morfoszintaktikai elemzését. Feladata minden olyan elemzés meghatározása, amely az adott szóalakra környezettől függetlenül érvényes lehet (például a vár esetében azt is hozzáadja, hogy főnév és azt is, hogy ige). Megállapítja a szótőt, a szófaji főkategóriát, elemzi a toldalékokat, megadja a szóalak morfémákra bontásának lehetőségeit, így a szóösszetételi határokat is.
Az elemző a magyar nyelvre eddig elérhető eszközök tudását összegző, a fejlesztők szándéka szerint az eddigi legpontosabb és legtöbb szóalakot ismerő, szabadon hozzáférhető és egyedi nyelvfeldolgozási igényekhez, nyelvváltozatokhoz testre szabható eszköz, amely a leggyorsabb működést biztosító számítógépes nyelvészeti modellen (ún. véges állapotú technológián) alapul.

Mi a bemenet?

A teljes rendszer alapvetően egy elemzési lánc egymásra épülő elemzési lépésekkel. Ebből következően a morfológiai elemző bemenete egy sorban egy szóalak.
A szóalakok határait megállapító megelőző nyelvfeldolgozási lépést a szövegtagoló, a többféle lehetséges elemzés közül a szövegkörnyezetben éppen megfelelő kiválasztását, a következő elemzési lépés, az egyértelműsítő (emTag) végzi.

Mi a kimenet?

Az elemző kimenete az összes olyan morfémasorozat a hozzátartozó elemzéssel, amiből az aktuális karaktersorozat a magyar nyelv szabályai szerint felépülhet. Ez sokszor olyan nagy számú elemzéshez vezet, melyeknek többsége az emberi beszélőben nem is tudatosul. Ezeknek az elemzési útvonalaknak a többségét a morfológia elemzőt felhasználó magasabb szintű feladat igényeihez igazodva lehet aztán kiszűrni, az elemzési lehetőségeket szűkíteni.

Egy példa a működésre.

Az alábbi példa egyrészt a beszélő számára nehezen tetten érhető többértelműséget is szemlélteti, másrészt illusztrálja azt a jelenséget is, amikor az elemző szótárában egy egységként tárolt szóalakok további alkotóelemekre bonthatók. Alkalmazástól függően többnyire a beszélők számára is legkézenfekvőbb ['fejetlenség' + tárgyeset] elemzés elegendő, melyet a szótövesítő programot felhasználva meg is kaphatunk, viszont az ebben megmaradó szemantikai többértelműséget (a 'fej' alak igei vagy főnévi értelmezésétől függően) a morfológiai elemzés (és a szófaji egyértelműsítés) szintjén nem lehet feloldani.

fejetlenséget
1. fej[/N]etlen[_Abe/Adj]ség[_Nz_Abstr/N]et[Acc]
2. fej[/V]etlen[_NegPtcp/Adj]ség[_Nz_Abstr/N]et[Acc]
3. fej~etlen[/Adj]ség[_Nz_Abstr/N]et[Acc]
4. fej~etlen~ség[/N]et[Acc]

[/N] főnév
[/Adj] melléknév
[_Abe/Adj] névszói fosztóképző (eredménye: melléknév)
[Acc] tárgyeset (accusativus)
[_Nz_Abstr/N] absztrakt tulajdonságnév-képző (eredménye: főnév)
[_NegPtcp/Adj] igei fosztóképző (eredménye: melléknév)


A morfológiai kódok teljes listája


Fejlesztőknek

Forrás https://github.com/dlt-rilmta/emMorph
Forrásnyelv Az elemző alapvetően egy véges állapotú fordító eszköz (transzdúcer), amely a felszíni szóalakot (karaktersorozatot) a tőtár, a toldaléktár és a morfofonológiai leírás (nyelvtan) alapján egy morfémákból és morfológiai kódokból álló másik karaktersorozatra alakítja. Az elemző adatbázisa a nyelvi információk meghatározott formátumban történő leírását tartalmazza, a transzdúcer elkészítéséhez és az elemző futtatásához a Helsinki Finite-State Transducer (HFST) eszközkészlet áll rendelkezésre. Ennek implementációs nyelve: C++. A HFST compilere számára értelmezhető lexc nyelvű lexikont a morfológia elsődleges forrásából perl nyelven implementált programok állítják elő.
Input Unicode kódolású szöveg, soronként egy szó.
Output A bemeneti szó elemzéseit (soronként egy) üres sor zárja. Az egyes elemzések alakja: bemeneti szó [tab] elemzés [tab] súly. A súly a jelen implementációban mindig 1, ha van elemzés, végtelen (inf), ha nincs.
Futtatás hfst-lookup --cascade=composition hu.hfst
hfst-lookup --pipe-mode=input --cascade=composition hu.hfstol <intext >outtext
Az elemző a HFST eszközkészlet lookup programjaival futtatható.
Licenc Az adatbázisra a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 (CC BY-NC-SA) licenc vonatkozik. Az adatbázis elsődleges forrásának konverzióját végző kód licence GNU General Public License (GPL v3).