Koreferencia-annotáló eszköz fejlesztése hálózati környezetben Oltványi Gábor József Oltványi Gábor József diplomaterv bemutató PPKE-ITK, Témavezető: Dr. Prószéky Gábor Konzulens: Miháltz Márton
Áttekintés 2 Bevezetés Feladat Implementációk Összegzés Absztrakció Koreferencia Annotált korpuszok Kiírás Cél Coref 1 és 2 – demóval Platform megfontolások Egyebek
Absztrakció Digitális szövegek földolgozása › keresés › nyelvhelyesség ellenőrzése › nyelvi elemzések ›…›… › komolyabb összefüggések automatikus megtalálása: információkivonatolás a szöveg jelentésének gépi „megértése”, szemantikai feldolgozása, pl.: információkivonatolás (mesterséges intelligencia ) KOREFERENCIA 1. 3
Koreferencia Ko-referencia: közös hivatkozás – viszony anafora antecedens ugyanarraentitásra utal egy visszautaló elem (anafora) és a szövegben korábban előforduló, vele koreferens szószerkezet (antecedens) ugyanarra a való világbeli entitásra utal. Föloldása: a viszony azonosítása 2. 4
Koreferencia – példák PéldaTípus Tegnap találkoztam egy ismerősömmel. Az ismerősöm nagyon sietett, mindössze pár percet beszéltünk.Ismétlés Kovács Jakab tegnap sajtótájékoztatót tartott. Az eseményen Kovács úr bejelentette az új termékeket. Tulajdonnév- variáns Tamás kapott egy biciklit. Én is láttam a kerékpárt.Szinonima Bejött egy puli. Az állat fáradtnak tűnt. Hipernima /hiponima Beszéltem Julival. Megadtam neki a számodat.Névmás Viktor ismeri Ferit, de (ő) nem kedveli (őt) túlságosan.Zérónévmás 5
Annotált korpuszok Korpusz: digitálisan tárolt nyelvi anyag (írott vagy beszélt), amin elemzéseket tudunk végezni. Annotált korpusz: a szöveg egyes elemeinek megjelölése az elemzés során – valamilyen nyelvészeti céllal. 6 3.
Szeged Korpusz 2.0 1.2 millió szövegszó, témakörökből: › szépirodalmi regények › éves tanulók fogalmazásai › újságcikkek › számítástechnikai szövegek › jogi szövegek › gazdasági és pénzügyi rövidhírek XML-ben. DTD: TEIxLite (szabványos) Annotáció: szófaji egyértelműsítés jelölés: MSD morfo-szintaktikai kódok 3.1. bejelentette bejelent [Vmis3s---y] bejelent [Vmis3s---y] bejelent [Vmis3s---y] bejelent [Vmis3s---y] 7
Szeged Treebank 2.0 A Szeged Korpusz 2.0-ból indul ki. Új annotáció: szintaktikai elemzés. A magyarban a szószerkezetek egymásra épülő hierarchiát alkotnak. Treebank-reprezentáció Treebank-reprezentáció: ~mondatfa. Szintaktikai szabályrendszer alapján automatikus elő-annotációval készült. XML, egy általánosabb „TEI P4” DTD-vel. Minden szintaktikai egység, azaz minden igei/névszói csoport kap egy ID-t
Szintaktikai hierarchia a Szeged Treebank 2.0-ban 9
Ági minden rokonát tegnapelőtt látta vendégül. Ági minden rokonát tegnapelőtt látta vendégül. 10
minden rokonát A Szeged Treebank főnévi csoportjainak (NP) azonosítása 11 Ez a szint nem kapott ID-t az XML-ben! A főnévi csoportok NP max szinten vannak annotálva végig a SzegedTreebankben. Ez a szint nem kapott ID-t az XML-ben! A főnévi csoportok NP max szinten vannak annotálva végig a SzegedTreebankben. minden rokonát A korlátozás föloldása: új ID-k generálása az NP-k részeihez. (Lásd: előkészítés)
Koreferenciák annotálása Feladat: annotáljuk a Szeged Treebank 2.0 XML- jeit koreferenciákkal! az anaforától hivatkozunk az antecedensre, a típusát is megadva: Egy nyelvész szakértő végighalad a szövegen, és bejelölgeti a hivatkozásokat. Munkaigényes… Grafikus annotáló program?! A lány nagyon örült látogatóinak. A lány
A feladat GUI – grafikus felhasználói felület input: Szeged Treebank 2.0 XML-jei koreferencia-bejelölés gyors, könnyű szerkesztés Szerver-kliens architektúra felhasználók kezelése munka szétosztása verziók számontartása Egyéb, „offline” szolgáltatások: NP-részek azonosítása zérónévmásokkal bővítés (automatikusan?) egységekre bontás
Cél Kutatás indul a koreferenciák feloldásának automatizálására Újabb kutatásokra nyit teret az információkivonatolásban Koreferencia- annotáló algoritmusok Gépi tanulás Sok koreferencia kézi annotálása
Implementációim Két implementáció készült el a két félévben: C OREF 1 C OREF 1: ›.NET ablakozós alkalmazás (.exe) C# nyelven › Nem tartalmaz hálózati funkciókat › Az „offline” feladatokra praktikusabb C OREF 2: › Webes alkalmazás, több felhasználós rendszer › PHP, MySQL, JavaScript, Ajax, XHTML, CSS › Támogatott böngészők: Chrome, Firefox, Safari › Az „offline” feladatokat részben teljesíti
C OREF
C OREF
Platform megfontolások platformfüggetlenség › C# (nem pl.ftln, de fejlesztőbarát) vs. JAVA, egyéb hálózati eszközök › szerver? – ingyenesség... (egyelőre ideiglenes) › adatbázis: Oracle, MSSQL, MySQL, PostgreSQL, stb. › webböngészős alkalmazás? ASP.NET, egyéb vs. PHP › kliens-/szerveroldali logika kérdése – JavaScript, AJAX továbbfejleszthetőség, ingyenesség miután választottunk: › hol tároljuk az XML-eket? (adatbázis, szerver, kliens) › PHP melyik XML-kezelő függvénytárát használjuk (SimpleXML) › kódolás – UTF
C OREF – kiegészítés Segédeszköz kereséshez › ID alapján, fás szerkezetben (Coref 1) -ekre bontás Pythonnal (string alapú) Multi-koreferencia › „Péter és János a film vége után hazamentek. Aznap mindketten későn feküdtek le.” › C OREF 2: webböngészők sajátosságai…
Zérónévmások automatikus beszúrása MetaMorpho fordítóprogram (nem publikus) magyar szintaktikai elemző kutatási célra bináris formában hozzáférhető (MorphoLogic) igei vonzatkeret információk segítségével ki tudja írni, hogy van-e hiányzó vonzat az adott egyszerű mondatokban › Input: mondatok soronként. › Output: +nem újítja meg olajszállítási szerződéseit. [zeroinfo: ZEROSUBJ] hiányzó alany Nom. esetű ige (újítja) E/3-ban (MSD-annotációból) › E/3, Nom. személyes névmás [ő] beszúrása › Az ige után egy új -be, saját ID-vel az igéhez egy vonzat fölvétele
Zérónévmások automatikus beszúrása MetaMorpho fordítóprogram (nem publikus) magyar szintaktikai elemző kutatási célra bináris formában hozzáférhető (MorphoLogic) igei vonzatkeret információk segítségével ki tudja írni, hogy van-e hiányzó vonzat az adott egyszerű mondatokban › Input: mondatok soronként. › Output: +nem újítja meg olajszállítási szerződéseit. [zeroinfo: ZEROSUBJ] hiányzó alany Nom. esetű ige (újítja) E/3-ban (MSD-annotációból) › E/3, Nom. személyes névmás [ő] beszúrása › Az ige után egy új -be, saját ID-vel az igéhez egy vonzat fölvétele nem újítja meg olajszállítási szerződéseit. [zeroinfo: ZEROSUBJ] Hiányzik az alany: Nom. eset újítja újít [Vmip 3s ---y]... meg... Az ige E/3 esetben van E/3 Nom. esetű személyes névmás: ő. – Beszúrandó (az ige után): [ő] – És az ige vonzataihoz: : <NODE idref="Nepszava z3" type="NP" role="NOM" /> E/3 Nom. esetű személyes névmás: ő. – Beszúrandó (az ige után): [ő] – És az ige vonzataihoz: : <NODE idref="Nepszava z3" type="NP" role="NOM" /> újítja újít [Vmip 3s ---y]... [ő] meg...
Két implementációban megvalósult minden kiírt feladat. Felhasználóbarát mindkettő Az alkalmazás felhasználóival még kell konzultálni, hogy praktikusabb legyen Fejlesztéskor alkalmam nyílott a platformok megismerésével, pl. a böngészők sajátosságaihoz való trükkökkel. 22 Összefoglalás 6.
23 A bíráló kérdései A főnévi csoportok NP max szinten vannak annotálva végig a SzegedTreebankben. › 2. Koreferencia annotálás szövegelemzésben › szintaktikai és szemantikai egyértelműsítés › kulcsszavak gyűjtése, szövegtérképek minden rokonát
Köszönöm a figyelmet! 24 Kérdések: Oltványi Gábor
25
Szeged Korpusz 2.0 1.2 millió szövegszó, témakörökből: › szépirodalmi regények › éves tanulók fogalmazásai › újságcikkek › számítástechnikai szövegek › jogi szövegek › gazdasági és pénzügyi rövidhírek XML-ben. DTD: TEIxLite (szabványos) Annotáció: szófaji egyértelműsítés jelölés: MSD morfo-szintaktikai kódok
minden rokonát A Szeged Treebank főnévi csoportjainak (NP) azonosítása 27 Ez a szint nem kapott ID-t az XML-ben! A főnévi csoportok NP max szinten vannak annotálva végig a SzegedTreebankben. Ez a szint nem kapott ID-t az XML-ben! A főnévi csoportok NP max szinten vannak annotálva végig a SzegedTreebankben.
Zérónévmások automatikus beszúrása MetaMorpho fordítóprogram (nem publikus) magyar szintaktikai elemző kutatási célra bináris formában hozzáférhető (MorphoLogic) igei vonzatkeret információk segítségével ki tudja írni, hogy van-e hiányzó vonzat az adott egyszerű mondatokban › Input: mondatok soronként. › Output: +nem újítja meg olajszállítási szerződéseit. [zeroinfo: ZEROSUBJ] hiányzó alany Nom. esetű ige (újítja) E/3-ban (MSD-annotációból) › E/3, Nom. személyes névmás [ő] beszúrása › Az ige után egy új -be, saját ID-vel az igéhez egy vonzat fölvétele nem újítja meg olajszállítási szerződéseit. [zeroinfo: ZEROSUBJ] Hiányzik az alany: Nom. eset
Zérónévmások automatikus beszúrása MetaMorpho fordítóprogram (nem publikus) magyar szintaktikai elemző kutatási célra bináris formában hozzáférhető (MorphoLogic) igei vonzatkeret információk segítségével ki tudja írni, hogy van-e hiányzó vonzat az adott egyszerű mondatokban › Input: mondatok soronként. › Output: +nem újítja meg olajszállítási szerződéseit. [zeroinfo: ZEROSUBJ] hiányzó alany Nom. esetű ige (újítja) E/3-ban (MSD-annotációból) › E/3, Nom. személyes névmás [ő] beszúrása › Az ige után egy új -be, saját ID-vel az igéhez egy vonzat fölvétele nem újítja meg olajszállítási szerződéseit. [zeroinfo: ZEROSUBJ] Hiányzik az alany: Nom. eset újítja újít [Vmip 3s ---y]... meg... Az ige E/3 esetben van
Zérónévmások automatikus beszúrása MetaMorpho fordítóprogram (nem publikus) magyar szintaktikai elemző kutatási célra bináris formában hozzáférhető (MorphoLogic) igei vonzatkeret információk segítségével ki tudja írni, hogy van-e hiányzó vonzat az adott egyszerű mondatokban › Input: mondatok soronként. › Output: +nem újítja meg olajszállítási szerződéseit. [zeroinfo: ZEROSUBJ] hiányzó alany Nom. esetű ige (újítja) E/3-ban (MSD-annotációból) › E/3, Nom. személyes névmás [ő] beszúrása › Az ige után egy új -be, saját ID-vel az igéhez egy vonzat fölvétele nem újítja meg olajszállítási szerződéseit. [zeroinfo: ZEROSUBJ] Hiányzik az alany: Nom. eset újítja újít [Vmip 3s ---y]... meg... Az ige E/3 esetben van E/3 Nom. esetű személyes névmás: ő. – Beszúrandó (az ige után): [ő] – És az ige vonzataihoz: : <NODE idref="Nepszava z3" type="NP" role="NOM" /> E/3 Nom. esetű személyes névmás: ő. – Beszúrandó (az ige után): [ő] – És az ige vonzataihoz: : <NODE idref="Nepszava z3" type="NP" role="NOM" />
Köszönöm a figyelmet! 31 Oltványi Gábor Kérdések: