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). |