emtsv Egy formátum mind felett

Hasonló dokumentumok
Bevezetés az e-magyar programcsomag használatába

Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft

A Java EE 5 plattform

Az e-magyar rendszer GATE környezetbe integrált magyar szövegfeldolgozó eszközlánca

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

A Magyar Nemzeti Szövegtár új változatáról Váradi Tamás

AWK programozás, minták, vezérlési szerkezetek

AWK programozás Bevezetés

Internetes térkép publikálási technikák, szabványok, trendek, nyílt forráskódú megoldások

Nyelvelemzés sajátkezűleg a magyar INTEX rendszer. Váradi Tamás varadi@nytud.hu

10. EGYSZERŰ HÁLÓZATOK TERVEZÉSE A FEJLESZTŐLAPON Ennél a tervezésnél egy olyan hardvert hozunk létre, amely a Basys2 fejlesztőlap két bemeneti

Motiváció Eszközök és eljárások Eredmények Távlat. Sass Bálint

Interaktív webes térképezés GRASS GIS 7-tel. A Web Processing Service bemutatása

Speciális ügyfélkapcsolati igények Önkiszolgáló ügyfelektől az előfizető nyilvántartásig

Enterprise extended Output Management. exom - Greendoc Systems Kft. 1

icollware szoftver portfolió

Flex: csak rugalmasan!

A felhőről általában. Kacsuk Péter MTA SZTAKI

ALKALMAZÁS KERETRENDSZER

kodolosuli.hu: Interaktív, programozást tanító portál BALLA TAMÁS, DR. KIRÁLY SÁNDOR NETWORKSHOP 2017, SZEGED

Képi információk hatékony feldolgozása széles társadalmi rétegeket érintő egészségügyi problémákban

JAVA webes alkalmazások

Szaniszló Gábor, ABB Kft MEE szakmai nap elıadás, Az IEC61850-es szabvány gyakorlati alkalmazása. ABB Group June 1, 2010 Slide 1

Operációs rendszerek. 9. gyakorlat. Reguláris kifejezések - alapok, BASH UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Objektum Vezérelt Szoftverek Analízise

Sass Bálint MTA Nyelvtudományi Intézet, Nyelvtechnológiai Osztály PPKE, Információs Technológiai Kar, MMT Doktori Iskola

SABLONOZÓ KERETRENDSZER

RBLDNS DNS-based blocklists management felhasználói kézikönyv

BIG DATA ÉS GÉPI TANULÁS KÖRNYEZET AZ MTA CLOUD-ON KACSUK PÉTER, NAGY ENIKŐ, PINTYE ISTVÁN, HAJNAL ÁKOS, LOVAS RÓBERT

Adatok ábrázolása, adattípusok

Az MTA Cloud a tudományos alkalmazások támogatására. Kacsuk Péter MTA SZTAKI

Bevezetés a Python programozási nyelvbe

Autóipari beágyazott rendszerek. Komponens és rendszer integráció

Mazsola mindenkinek. Sass Bálint MTA Nyelvtudományi Intézet január 18. MSZNY 2018, Szeged

II. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

Rubin SMART COUNTER. Műszaki adatlap 1.1. Státusz: Jóváhagyva Készítette: Forrai Attila Jóváhagyta: Parádi Csaba. Rubin Informatikai Zrt.

A szerzõrõl... vii Köszönetnyilvánítás... ix Bevezetés... xi A könyv példakódjai... xiii Áttekintés... xv Tartalomjegyzék... xvii

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

ÚTMUTATÓ. az eadat rendszer fejezeti nettó finanszírozás témakörének szabályairól és használatáról

Podoski Péter és Zabb László

wstudio IPDRIVE-mini 9

Szoftver-technológia II. Szoftver újrafelhasználás. (Software reuse) Irodalom

Használati alapú és modell alapú tesztelés kombinálása szolgáltatásorientált architektúrák teszteléséhez az ipari gyakorlatban

A FileZilla program beállítása az első belépés alkalmával

DAT adatcserefájl AutoCAD MAP DWG mapobject konvertáló program dokumentáció

DXF állományok megnyitása QGIS programmal (1.7 verzió) Összeállította: Ács Eszter, dr. Siki Zoltán

PC-Kismester verseny első forduló feladatai. Beküldési határidő: december 6.

Labor leletező program

Bevezetés Működési elv AJAX keretrendszerek AJAX

KARAKTERFELISMERÉS AZ EVASYS-BEN

Kirakós játék. Döntő február 22. Alakzatok (katalógus) DUSZA ÁRPÁD ORSZÁGOS PROGRAMOZÓI EMLÉKVERSENY 2013/2014

Hibrid előfeldolgozó algoritmusok morfológiailag komplex nyelvek és erőforrásszegény domainek hatékony feldolgozására Orosz György

Operációs rendszerek gyak.

PRECÍZ Információs füzetek

JSF alkalmazások teljesítményhangolása JMeter és dynatrace segítségével

Dokumentumformátumok Jelölő nyelvek XML XML. Sass Bálint Bevezetés a nyelvtechnológiába 2. gyakorlat szeptember 20.

Szövegek C++ -ban, a string osztály

A Neptun.Net Egységes Tanulmányi Rendszer. Előadó: Fauszt Zoltán Budapest, április 26.

A LOGSYS GUI. Fehér Béla Raikovich Tamás, Laczkó Péter BME MIT FPGA laboratórium

NAV online számla regisztráció SAP rendszerhez

Webes alkalmazások fejlesztése

RBLDNS DNS-based blocklists management felhasználói kézikönyv

Bánsághi Anna 2014 Bánsághi Anna 1 of 31

Az e-magyar digitális nyelvfeldolgozó rendszer

2. Készítsen awk szkriptet, amely kiírja az aktuális könyvtár összes alkönyvtárának nevét, amely februári keltezésű (bármely év).

Operációs rendszerek. 9. gyakorlat. BASH recap, reguláris kifejezések UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

A HG-1 Treebank és keresőfelület fejlesztői munkái, használata és felhasználhatósága

Jelszavak helyes megválasztása, szótáras törés. Pánczél Zoltán

Élő webes alkalmazások rendszerfelügyelete cím- és tartalomteszteléssel

Intelligens elektronikus szótár és lexikai adatbázis

Operációs rendszerek. 10. gyakorlat. AWK - bevezetés UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

NETinv. Új generációs informatikai és kommunikációs megoldások

Operációs rendszerek 1.

Központi közigazgatási rendszerek kapcsolatai

4. Laborgyakorlat. A fájlokról ezeket az adatokat, a fájlrendszer tárolja. Számunkra az 1, 3, 4. oszlopok lesznek az érdekesek.

Tartalom C O N S T E E L 1 3 Ú J D O N S Á G O K

MobilArm-2 / 2a. 1. A GSM modul működése: Riasztóközpontokhoz illeszthető GSM távirányító és távjelző modul 2 bemenettel és relés kimenettel

Folyamatok rugalmas irányítása. FourCorm Kft.

Intégro CLIA. A klímavezérlő számítógép általános ismertetése

OZW V7.0 firmware frissítés, Remote Tool Access részletes ismertető

MVC. Model View Controller

reactable interaktív zeneasztal

Tudás Reflektor. Copyright 2011; Kodácsy Tamás;

Debreceni Egyetem Matematikai és Informatikai Intézet. 13. Védelem

Csináljunk az adatból információt! A Lone-Soft listázó keretrendszerrel

Főnévi csoportok és mondatvázak elemzésének lehetősége magyar nyelvű korpuszokon

Iman 3.0 szoftverdokumentáció

Ügyfélforgalom számlálás modul

Téradatbázisok használata QGIS-ből A DB kezelő modul 2.2 verzió

Tudásalapú információ-kereső rendszerek elemzése és kifejlesztése

Valimed API. REST API a magyarországi orvos pecsétszámok validálására

Szoftvertechnológia 8. előadás. Szoftverrendszerek tervezése Giachetta Roberto

DuneHD.hu. Kompatibilis médialejátszók: Dune HD Center Dune BD Prime Dune HD Base 2.0 Dune HD Base 3.0 Dune BD Prime 3.0

H N S A d a t K a p c s o l a t

Elektronikus számla. First Businesspost Kft. Jakabos Árpád ügyvezető igazgató

Vezeték nélküli M-Bus (Wireless M-Bus) modulok MULTICAL 403 és 603-hoz

Az ekovut költségvetés követő alkalmazás web-es környezetben működik, adatait SQL adatbázisban tárolja.

Flex tutorial. Dévai Gergely

Oracle Containers for Java - j2ee alkalmazás szerver funkciók. Molnár Balázs Oracle Hungary

Átírás:

emtsv Egy formátum mind felett Indig Balázs, Sass Bálint, Simon Eszter, Mittelholcz Iván, Kundráth Péter, Vadász Noémi MTA Nyelvtudományi Intézet ELTE Bölcsészettudományi Kar 2019. január 25. MSZNY 2019, Szeged

motiváció kiindulópont: eredeti e-magyar = GATE keretrendszer által integrált magyar nyelvfeldolgozó modulok A felhasználói visszajelzések alapján a fő problémás elem a GATE volt mint integráló keretrendszer. gond: a GATE nem kikerülhető a GATE nehézkes: bonyolult installálás, nagy overhead, nehéz hibakeresés a GATE által adott kommunikációs formátum kényelmetlen 2/18

motiváció a GATE által adott kommunikációs formátum: GATE XML speciális standoff annotáció belső formátum további, GATE-en kívüli felhasználásra nem kényelmes a standoff annotáció lehetetlenné teszi az adatfolyamként való feldolgozást nagy fájlok feldolgozására nem alkalmas két lépés közötti köztes formátumnak szintén azért nem jó, mert nem dolgozható fel adatfolyamként 3/18

cél a GATE kiváltása használhatóság növelése, egyszerűség alkalmas kommunikációs formátum a modulok önálló és láncba épített használatának egyenrangú támogatása terv a GATE XML helyett találjunk ki egy egyszerű adatformátumot, és (a GATE helyett) hozzunk létre egy azt kezelő keretrendszert, illesszük bele az eredeti e-magyar modulokat = cseréljük le a GATE-et mint integráló eszközt 4/18

ha már változtatunk, nézzünk távolabbra 1. loosely coupled rendszert szeretnénk könnyen alkalmazható könnyen továbbfejleszthető (= külső fejlesztők saját moduljaikat könnyen a rendszerhez tudják illeszteni) az alternatív rendszerek nem ilyenek / kevésbé ilyenek A magyarlánc esetében nehézkes a rendszer módosítása, új modulokkal való bővítése, a modulok lecserélése, összehasonlítása. Bizonyos mértékben igaz ez a nem specifikusan magyar megoldásokra is: UDPipe és spacy. (kitérő: az emtsv modulok sorában fontos elem a jó minőségű, speciálisan magyar nyelvre kialakított morfológiai elemző.) 5/18

ha már változtatunk, nézzünk távolabbra 2. webes API-t szeretnénk lehetőséget a felhőben való üzemeltethetőségre Az ilyennel bíró rendszerek (pl.: WebSty, Weblicht) esetében a szoftver forráskódja nem érhető el saját példány futtatása céljából, külső fejlesztőként létrehozott modulok beillesztése a láncba nem lehetséges. 6/18

ha már változtatunk, nézzünk távolabbra 2. webes API-t szeretnénk lehetőséget a felhőben való üzemeltethetőségre Az ilyennel bíró rendszerek (pl.: WebSty, Weblicht) esetében a szoftver forráskódja nem érhető el saját példány futtatása céljából, külső fejlesztőként létrehozott modulok beillesztése a láncba nem lehetséges. tehát a GATE kiváltásán túl 2 dolgot szeretnénk egyszerre: 1. loosely coupled rendszer 2. webes API 6/18

loosely coupled = nyíltan integrált független ( egymásról mit sem tudó ) alkotóelemek egyszerűen, könnyen helyettesíthető modulok vminek a módosításához semmi mást nem kell módosítani jól definiált/elhatárolt egységek könnyebb változtatás/módosíthatóság, könnyebb továbbfejlesztés/kiterjeszthetőség nyitottság fontos az elemek közötti (szabványos) kommunikáció/koordináció a standard adatformátum elősegíti elv: érdemes a couplingot csökkenteni a szabványosítás javára ezt csináljuk! 7/18

a) egységes adatformátum: fejléces tsv form lemma xpostag A a [/Det Art.Def] kutyák kutya [/N][Pl][Nom] ugatnak ugat [/V][Prs.NDef.3Pl].. [Punct] A a [/Det Art.Def]... egy token egy sor oszlopok elválasztása egy TAB karakterrel mondat végén üres sor fejléc! lényegében kompatibilis a CONLL-U formátummal 8/18

a) egységes adatformátum: fejléces tsv egyszerű formátum; könnyű, szabványos feldolgozhatóság adatfolyamként feldolgozható nagyon fontos (a feldolgozás során nem kell az egész fájlt a memóriában tartani) adat: szabad szöveg vagy JSON (újsor és TAB nélkül) egymástól elkülönülő, egymást nem zavaró annotációk (oszlopok) vezérlés: fejléc ez határozza meg a rendszer működését a formátum révén valósulnak meg a kitűzött céljaink! 9/18

b) integráló architektúra: xtsv keretrendszer újonnan fejlesztett, általános célú keretrendszer a tsv általi kommunikációt valósítja meg általánosan ez fogja össze a loosely coupled modulokat vezérlés: fejléc ez határozza meg a rendszer működését minden modul 1. a fejlécben definiált oszlopnevek segítségével azonosítja a szükséges bemeneti adatai helyét (az oszlopok sorrendjétől függetlenül); 2. kimeneti adatait szintén a fejlécben definiált nevű új oszlopokba helyezi el (mindig a meglévő oszlopok után, a végére); 3. az összes többi oszlopot változatlanul hagyja Elengedhetetlen, hogy az oszlopok elnevezése és tartalma az egymásra épülő modulok között szinkronizálva legyen. 10/18

b) integráló architektúra: xtsv keretrendszer Technikailag minden modulnak két függvényt kell definiálnia: prepare_fields() definiálja az input oszlopok nevét, feldolgozásának módját process_sentence() implementálja magát a feldolgozó lépést, melyben a kívánt számú mezőt illesztjük az egyes tokenek végére A modulok egy config fájlban vannak deklarálva néhány jellemzővel. Ha új modult szeretnénk a rendszerbe illeszteni, vagy egy modult egy másik modellel szeretnénk használni, néhány sort kell ebben a config fájlban átírni. könnyű módosíthatóság! Az xtsv dinamikusan ellenőrzi, létrehozza és futtatja a kívánt láncot. A moduloknak csak az xtsv fenti követelményeinek kell megfelelniük. 11/18

c) xtsv használati módok Az xtsv a rendelkezésre álló modulokból létrehozza a kívánt láncot, ellenőrzi és futtatja. Kétféle használati mód szerint. 1. CLI ( paraméterrel) $ cat file python3 emtsv.py morph,pos $ cat file python3 emtsv.py morph python3 emtsv.py pos 2. REST API ( paraméter nélkül) A CLI mellett automatikusan REST API-t is kapunk, futtathatjuk saját felhőben. $ python3 emtsv.py http://127.0.0.1:5000/morph/pos itt érhető el, az input adat HTTP POST kéréssel küldendő 12/18

modulok DepTool form lemma xpostag upostag feats emdep form lemma upostag feats id deprel head txt tsv tsv... emtoken emmorph + emlem form form anas form anas emtag lemma xpostag emcons form lemma xpostag emchunk cons NP BIO emner NER BIO modulok az xtsv-hez illesztve: xtsv + e-magyar modulok = emtsv a modulok funkcionalitása megmaradt Java nyelvű modulok Python modulba csomagolva ad hoc adatformátumok helyett: JSON illetve natív adatszerkezetek 13/18

a modulokról külön-külön emtoken átdolgozás, stdin/stdout kommunikáció emmorph + emlem utóbbiból Python változat emtag a PurePOS hagyományos formátumához képest az új tsv+json formátum fontos előrelépés emchunk és emner oszlopnév-alapú működés; az átdolgozott bemenetiformátum-kezelés szolgált az xtsv alapjául emmorph2ud (új!) az emmorph által kiadott morfoszintaktikai információkat konvertálja át az Universal Dependencies-nek megfelelő jegy érték párok sorára (ld. külön poszter) emdep különválasztottuk, átállítottuk az UD modell használatára emcons különválasztottuk 14/18

emmorph+emlem saját REST API https://emmorph.herokuapp.com/dstem/terem A morfológia böngészőből hívható módon külön rendelkezésre áll, telepítés nélkül, emberi fogyasztásra is alkalmas kimenettel. REST API = szabványosan, programnyelvtől függetlenül, távolról is hívható { } "terem": [ { "lemma": "terem", "morphana": "terem[/n]=terem+[nom]=", "readable": "terem[/n] + [Nom]", "tag": "[/N][Nom]", "twolevel": "t:t e:e r:r e:e m:m :[/N] :[Nom]" },... ] 15/18

következmény: bárhol be lehet lépni a láncba a nyílt integrációnak és az új adatformátumnak köszönhetően a modulok önállóan és láncba kötve egyaránt használhatók a szerelőszalag tetszőleges szakasza lefuttatható, bárhol be lehet lépni a láncba, és ki lehet lépni belőle a modulok között szabadon rendelkezünk az adattal pl. kézi módosítás/javítás beillesztése: cat input python3 emtsv.py tok,morph,pos > interm edit interm cat interm python3 emtsv.py conv-morph,dep > output 16/18

következmény: könnyű kiterjeszthetőség új modulok beillesztése egyszerű 1. minta: DummyTagger/dummy.py 2. copy 3. prepare_fields() 2-3 sor: input oszlopnevek 4. process_sentence() az egy mondatot feldolgozó kód 5. config.py 3-4 sor: source_fields, target_fields (a többi bejegyzés mintájára) Kész! :) 17/18

összefoglalás Az eredeti e-magyar rendszer továbbfejlesztésével, a GATE mint integráló eszköz kiváltásával létrehoztunk a magyar nyelvre egy funkciógazdag, szabadon elérhető elemzőláncot. nyíltan integrált (loosely coupled), moduláris módosítható, továbbépíthető, új modulokra nyitott tanulmányozható, a modulok lecserélhetők, összehasonlíthatók szabványos kommunikációs formátummal bír CLI-vel és REST API-val rendelkezik Elérhető: https://github.com/dlt-rilmta/emtsv 18/18