Elemzőlánc, integráció

GATE integráció

Az e-magyar.hu rendszert alkotó különféle feldolgozó modulok integrációját a GATE nyelvfeldolgozó keretrendszerben valósítottuk meg. A java nyelven implementált GATE előnye, hogy kényelmes módszert biztosít tetszőleges számú nyelvfeldolgozó eszköz (ún. Processing Resource) rendszerbe illesztésére. A másik fontos előnyös tulajdonsága az egységes annotációs modell, mely biztosítja a kommunikációt az egyes modulok között.

A feldolgozás legelején a szövegben a karakterközök kapnak egy sorszámot (ez az ún. offset), és onnantól kezdve minden annotációt egy offset-pár fejez ki, mely az annotáció elejét és végét adja meg. Az információ közvetlenül az annotációban (Token), vagy az annotációk attribútumaiban (a Token szótő attribútuma) kap helyet. Ezen a módon az annotációk nem zavarják egymást (sőt tetszőleges átfedés lehet közöttük). Ez hasznos megoldás: így minden modul csak a számára releváns annotációt kell, hogy beolvassa, az eredményét pedig kiírhatja a megfelelő meglévő vagy újonnan létrehozott annotációba. Például: a tokenizáló Token és SpaceToken elemeket hoz létre a szavaknak és a szóközöknek megfelelően, a morfológiai elemző már csak a Tokenek listáját fogja lekérni, ezen végzi el a morfológiai elemzést, a SpaceTokeneket pedig érintetlenül hagyja. A modulok paraméterezhetők abban a tekintetben, hogy mely annotációkon dolgozzanak, ezzel a rendszer rugalmassága még tovább növelhető.

Feladat tehát, hogy minden modult alkalmassá tegyünk arra, hogy a bemenetét és a kimenetét is a GATE annotációs modelljének megfelelően kezelje. Kiegészítő feladat, hogy ha az egymástól független annotációk között kapcsolatot akarunk megadni, akkor azt explicit meg kell tenni. Egyszerű példa erre a tulajdonneveket és az őket alkotó tokeneket összekötő kapcsolat. Ezeket a feladatokat valósítottuk meg az integráció során.

Modulok az elemzőláncban

Az e-magyar.hu elemzőlánc a következő GATE-ba integrált modulokból áll. Az emToken mondatokra bontja és tokenizálja a szöveget, az emMorph végrehajtja a morfológiai elemzést és megállapítja a lehetséges szótővet, az emTag egyértelműsít, azaz kiválasztja az érvényes morfológiai elemzést és szótövet a lehetőségek közül. Az emDep és az emCons szintaktikai elemzést végez, ez után egy kiegészítő eszköz az igékhez kapcsolja az elváló igekötőt, és megadja az igekötős szótövet. Végül az emChunk a főnévi csoportokat, az emNer pedig a tulajdonneveket határozza meg. Utóbbi eszközök adott attribútumban IOB annotációval látják el a tokeneket, ezt egy kiegészítő eszköz önálló annotációvá alakítja a kényelmesebb feldolgozhatóság érdekében.

Telepítés

Az elemzőlánc használható a GATE grafikus felületéről, (a GATE Developer-ből), és attól függetlenül paracssorból a GATE Embedded technológia segítségével.
A grafikus felületen történő használathoz a GATE telepítése után csupán a GATE Developer saját egyszerű telepítési mechanizmusát kell használni, mely az általunk publikált GATE Plugin repozitóriumból letölti és beilleszti a rendszerbe a Lang_Hungarian plugint, mely a teljes láncot tartalmazza. részletek
A grafikus felülettől független parancssori használathoz a GATE telepítésén kívül szükség van a Lang_Hungarian github repozitórium klónozására, a github repozitóriumban meg nem lévő szükséges elemek (automatikus) beszerzésére, és ez után válik használhatóvá a rendszer. részletek

Használat a GATE Developerben

A Lang_Hungarian GATE plugin installálása után, mely az e-magyar.hu elemzőláncot tartalmazza, hajtsuk végre a következő lépéseket:

  1. Töltsük be a feldolgozóeszközöket: jobbkatt a bal panelen a Processing Resources-ra, és válasszuk ki a listából a kívánt eszközöket.
  2. A bal panel Applications részében hozzunk létre egy új Corpus Pipeline-t.
  3. A létrehozott Corpus Pipeline-ra kattintva állítsuk össze a fő panelen a láncot, úgy hogy a kívánt eszközöket a kívánt sorrendben a jobb oldali listába rendezzük. A lista elejére helyezzünk el egy Document Reset PR-t, ami minden futtatás előtt alaphelyzetbe állítja a dokumentumot. Ezt a mindig rendelkezésre álló ANNIE pluginból tölthetjük be.
  4. A bal panelen hozzunk létre egy Language Resource-ot: egy új GATE Document-et, ez fogja tartalmazni a feldolgozandó szöveget.
  5. Készítsünk belőle korpuszt: jobbkatt a létrehozott GATE Document-re, és New Corpus with this Document.
  6. Kattintsunk a Corpus Pipeline-ra, majd a képernyő közepén, a Corpus-nál, adjuk meg az imént létrehozott korpuszt, és kattintsunk lent a Run this Application gombra.

Az eredményeket a létrehozott GATE Document-re kattintva tekinthetjük meg az Annotation Sets és az Annotation List bekapcsolásával. Az egyes egységek fölé állítva az egeret, megjelenik az adott egységre vonatkozó annotáció.

A GATE használatának további részletei és lehetőségei tekintetében a GATE dokumentációjára utalunk.


Fejlesztőknek

Forrás GATE: https://gate.ac.uk/download/
Lang_Hungarian GATE plugin: A magyar nyelvfeldolgozó eszközöket tartalmazó GATE Lang_Hungarian plugin a https://github.com/dlt-rilmta/hunlp-GATE github repozitóriumban érhető el a gate-server alkalmazással együtt.
Forrásnyelv Elsősorban java. A java nyelven írt GATE rendszerbe a java eszközöket közvetlenül lehetett integrálni, az egyéb nyelveken (python, C++) írt modulok pedig a binárisok vagy saját interpreterük használatával épülnek be.
Input A honlap és a gate-server esetében egyszerű szöveg (txt). A GATE Developer esetében viszont kényelmesen kezelhetünk számos formátumot (txt, html, xml, doc, xls, docx, xlsx...), belőlük a rendszer automatikusan kinyeri a szöveges tartalmat. HTML illetve XML esetén az eredeti markup megőrződik, a hozzáadott információ az eredeti markuptól függetlenül kezelődik.
Output GATE XML formátum. A honlapról az elemzett anyag .tsv-ben is letölthető.
Futtatás Telepítés, információk a GATE Developer -hez.
Telepítés, információk a GATE Embedded -hez.