HTML

Precognox

precognox_logo_190.jpg

A blog készítői a Precognox Kft. keretein belül fejlesztenek intelligens, nyelvészeti alapokra épülő keresési, szövegbányászati, big data és gépi tanulás megoldásokat.

Ha a blogon olvasható tartalmak kapcsán, vagy témáink alapján úgy gondolod megoldhatjuk problémáidat, lépj velünk kapcsolatba a keresovilag@precognox.com címen.

Star Wars text mining

visualizing_star_wars_movie_scripts_precognox.jpgA long time ago, in a galaxy far, far away data analysts were talking about the upcoming new Star Wars movie. One of them has never seen any eposide of the two trilogies before, so they decided to make the movie more accessible to this poor fellow. See more...

Facebook oldaldoboz

Meetup ajánló

Blog figyelése (RSS)

 Add hozzá az RSS olvasódhoz

Ha levélben szeretnél értesülni az új cikkekről:

opendata.hu

opendatahu45.jpg

Az opendata.hu egy ingyenes és nyilvános magyar adatkatalógus. Az oldalt önkéntesek és civil szervezetek hozták létre azzal a céllal, hogy megteremtsék az első magyar nyílt adatokat, adatbázisokat gyűjtő weblapot. Az oldalra szabadon feltölthetőek, rendszerezhetőek szerzői jogvédelem alatt nem álló, nyilvános, illetve közérdekű adatok.

Az opendata.hu oldalt a Magyar OpenData Alapítvány/Egyesület hivatalos megalakulásáig - lelkes önkéntesek segítségével a
K-Monitor Közhasznú Egyesület (K-Monitor) működteti, az üzemeltetést a Precognox végzi.

Főbb témák

adatok (12) adatújságírás (16) adatvizualizáció (14) alternatív (6) alternatív keresőfelület (24) beszédtechnológia (13) big data (45) bing (14) CEU (6) clustering (6) conTEXT (7) dashboard (6) data science (8) deep learning (12) egészség (7) egészség kereső (7) előadás (7) emócióelemzés (29) Facebook (9) facebook (8) gépi tanulás (10) google (57) Google (23) gyűlöletbeszéd (7) hackathon (9) hálózatelemzés (14) internetes keresés (26) internet hungary (6) képkereső (8) keresés (57) kereséselmélet (7) keresés jövője (55) keresés problémái (38) keresők összehasonlítása (9) keresőoptimalizálás (6) kereső szándéka (11) kereső tanfolyam (9) kereső teszt (15) kognitív nyelvészet (12) konferencia (34) könyvajánló (19) korpusznyelvészet (13) közösségi keresés (8) közösségi média (6) különleges keresők (7) kutatás (6) lda (9) LDA (9) live (13) magyar kereső (9) marketing (8) meetup (38) mesterséges intelligencia (9) metafora (6) mobil (37) mobil keresés (17) Neticle (8) NLP meetup (17) Nuance (9) nyelv (6) nyelvészet (27) nyelvtechnológia (69) open data (11) open knowledge (7) politikai blogok (22) Precognox (41) Precognox Labs (14) Python (11) R (19) spam (6) statisztika (10) számítógépes nyelvészet (6) szemantikus keresés (16) szemantikus kereső (9) szentimentelemzés (31) szövegbányászat (14) tartalomelemzés (51) tartalomjegyzék (6) tematikus kereső (19) twitter (15) Twitter (18) vertikális kereső (9) vizualizáció (11) yahoo (26) Címkefelhő

A blog tartalmai CC licenc alá tartoznak

Creative Commons License
Kereső Világ by Precognox Kft. is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Based on a work at http://kereses.blog.hu/.
Permissions beyond the scope of this license may be available at http://precognox.com/.

A Kereső Világ blogon közölt tartalmak a Precognox Kft. tulajdonát képezik. A tartalom újraközléséhez, amennyiben nem kereskedelmi céllal történik, külön engedély nem szükséges, ha linkeled az eredeti tartalmat és feltünteted a tulajdonos nevét is (valahogy így: Ez az írás a Precognox Kft. Kereső Világ blogján jelent meg). Minden más esetben fordulj hozzánk, a zoltan.varju(kukac)precognox.com címre írt levéllel.

Creative Commons License

Nevezd meg! - Ne add el! - Ne változtasd!

 

A Named entity recognition fontossága, avagy mire is jó a névelem-felismerés?

2017.07.24. 18:16 Szerző: Szabó Martina Katalin Címkék: tartalomelemzés alkalmazott nyelvészet gépi tanulás nyelvtechnológia named entity recognition named entity disambiguation

A Named entity recognition (NER) vagy Named entity extraction, amelyet magyarul névelem-felismerésként szoktunk emlegetni, egy viszonylag alapvető feldolgozó lépés az automatikus tartalomelemző feladatoknál. Ennek ellenére sokaknak talán nem egyértelmű, hogy pontosan miért is bír ilyen nagy jelentőséggel az ún. névelemek automatikus kinyerése. A jelen posztot e megfontolásból a névelem-felismerésnek szentelem, és igyekszem megmutatni e részfeladat célját és hasznát. 

Röviden a tartalomelemzésről

A tartalomelemzés vagy információkinyerés (Information extraction, IE) által bizonyos szemantikai információkat akarunk automatikus megoldásokkal kinyerni a szövegekből. Ennek során a szövegekben foglalt strukturálatlan információból strukturált adatot hozunk létre. Miután az adat formalizálttá válik, képesek leszünk számos elemző eszközzel kezelni azokat. 

pscaie_illlustration_30pct.jpg

De hogyan kapcsolódnak ehhez a névelemek?

A legtöbb információkinyerési feladatban értelemszerűen nagyon fontos, hogy a számunkra releváns tartalom mely névelemhez kapcsolódik. Így például, a szentiment- vagy az emócióelemzésben nagy jelentőséggel bír, hogy az adott értékítéletet (pl. jó, íztelen, förtelmes) vagy érzelmet (pl. csak bosszúságot okoz, ennyire még nem örültem semminek, attól félek, hogy...) a szöveg szerzője mely entitás vonatkozásában fogalmazza meg, tehát például mely termék vagy közszereplő vonatkozásában fejezi ki, vagy éppen melyik helyhez, időponthoz vagy politikai eseményhez kapcsolható. A különböző szövegek tartalmi elemzésének tehát egyik fontos első lépése a névelemek detektálása és osztályozása, a névelemek az információkinyerés mintegy alapegységeinek is tekinthetőek.

Az információkinyerés ma már jelentős szerepet játszik olyan egyéb, hasznos nyelvtechnológiai alkalmazásokban is, mint például a kérdés-válasz-rendszerekben vagy chatbotokban, amelyek a felhasználó igényei szerint törekednek a leghatékonyabb automatikus feladatvégzésre (pl. jegyfoglalásra) vagy legrelevánsabb információk megadására (pl. utazási időpontokkal kapcsolatban).

maluuba.jpg

És nem csak az információkinyerésben fontosak...

...hanem például a gépi fordításban is. Ahhoz ugyanis, hogy az alábbi típusú fordítási hibákat elkerülhessük, tudnunk kell, hogy névelemekkel van dolgunk:

                Nagy Péter - Great Peter, Salt Lake City - Sóstó város, Joy (magazin) - öröm

A fenti megoldások nyilvánvalóan nem szerencsések az automatikus fordításban. 

Na de mik is azok a névelemek?

Fontos, hogy a nyelvtechnológiában névelemekként emlegetett kifejezések csoportja egy az egyben nem azonosítható a nyelvészetben tulajdonnevekként emlegetett kifejezések csoportjával. Ennek az az alapvető oka, hogy a nyelvtechnológiai alkalmazások oldalán a névelemek keresésekor legtöbbször nem csupán a klasszikus tulajdonnevek érdekelnek mindket, hanem több és más egyedített jelölőt is meg kell találnunk. Így például, nem csak egy személynév vagy egy szervezet elnevezése lehet releváns, de esetenként fontos információként kell kezelnünk egy telefonszámot, egy e-mail-címet, kémiai tárgyú szövegekben a különböző képleteket vagy orvosi szövegekben a betegségek elnevezéseit is.

Ugyanakkor azt is fontos megemlítenünk, hogy az alkalmazásaink szempontjából a nyelvészeti definíciók megbízható alapot sem adnak a munkához. A Magyar Helyesírási kézikönyv szerint például tulajdonnévnek tekintendő a Magyar Nemzeti Bank, köznévnek pedig például az asztal, az alma vagy a bank. Általánosságban azt mondhatjuk, hogy a meghatározások a tulajdonnevek nagy kezdőbetűs írásmódjával operálnak.

15331-16755-megint-botond-etterem.jpg800px-chronicon_pictum_p036_botond_monda.JPGEbből kiindulva azonban nem tudni, hogy például a Botond étterem esetében a teljes kifejezés a tulajdonnév, vagy annak csupán az első eleme az. Az étterem ugyanis éppolyan köznévnek tűnik az írásmódját tekintve, mint amelyet a fentebbi köznévi példákban láttunk, ugyanakkor egyértelmű, hogy e nélkül az elem nélkül a Botond, önmagában, nem képes ugyanazt az entitást jelölni. 

Nem kevésbé elgondolkodtatóak azok a kifejezések sem, amelyeket a különböző nyelvekben eltérő kezdőbetűvel írunk. Angol szövegekben például a Bluetooth névelemet rendre nagy kezdőbetűvel írják, míg a magyar nyelvben mind a kicsi, mind a nagy kezdőbetűs írásmód gyakori (Bluetooth és bluetooth). Az oroszban még kacifántosabb a helyzet. Mondhatni, ott aztán minden van: Bluetoothbluetooth, Блютуз, блютуз, Блютус, блютус.  Az pedig mégiscsak furcsa, hogy ugyanazt az entitást megnevező jelölő az egyik nép számára tulajdonnév, a másik számára pedig köznév, az írásmód alapján...

Nem véletlen, hogy a nyelvtechnológiai alkalmazások ezekbe az elméleti fejtegetésekbe nem is szoktak túlságosan belebonyolódni, inkább keresnek egy olyan megoldást, amely az adott célra a legmegfelelőbb. A jelen probléma esetében tehát nem az a kérdés, hogy mi a tulajdonnév és meddig terjed a szövegben a tulajdonnév határa, hanem az, hogy melyik az az egy vagy több tagból álló nyelvi elem a szövegben, amely a konkrét alkalmazás szempontjából releváns egyedet jelöl, arra unikusan, azaz egyedi módon referál.  

nyulak.png

Az elmondottakkal összefüggésben a NER-feladatban, bár legtöbbször a már klasszikusnak is nevezhető névelem-kategóriába sorolható kifejezéseket keressük (személy-, hely- és szervezetnév), az aktuális projekt céljainak megfelelően gyakorta olyan névelem-típusokat is keresünk, amelyek bizonyosan nem férnének bele a klasszikus tulajdonnév-fogalomba. Ilyenek például a temporális (pl. dátum, nap neve stb.) és a numerikus (pl. vminek a mennyisége) kifejezések.

 

A névelem-detektálás és osztályozás nehézségei

A névelemek automatikus megtalálása még a feladat egy viszonylag egyszerűbb részének tekinthető. Egyértelműsíteni azonban már jóval nehezebb őket. De mit is jelent a névelemek egyértelműsítése? A névelemek feldolgozásánál két típusú egyértelműsítést kell elvégeznünk:

Egyrészt, az adott névelem referálhat egyazon kategória különböző elemeire. Például a Kennedy jelölő mind az apa, mind a fia esetében személynév típusú elem, azonban tartalomelemzési szempontból ez az információ számunkra valószínűleg nem lesz elegendő. Ahhoz, hogy a szöveg információtartalmát a megfelelő entitáshoz tudjuk kapcsolni, azt is tudnunk kell, hogy az aktuális helyzetben mire vonatkozik a megtalált jelölő. Ez pedig korántsem triviális feladat. 

1-figure1-1.png

Másrészt, egy adott névelem referálhat két vagy több különböző kategória elemére is. A Washington kifejezés például személy-, hely- és szervezetnév egyaránt lehet. Ez utóbbi akkor, ha a sportcsapatra referálunk. 

A szövegkörnyezetből - ideális esetben - az ember számára könnyen kiderül, hogy a fentebbiekhez hasonló esetekben éppen melyik jelölt az aktuális. A gép számára azonban ez egy igen nehéz feladat. Mondhatni, szintaktikai információkból kell szemantikai és pragmatikai szintű döntéseket meghoznia.

ie.jpg

Az egyértelműsítéshez hasonló részfeladat az is, hogy a szövegfeldolgozás során megtalált különböző alakú, ám azonos jelölettel rendelkező jelölőket össze kell tudnunk kapcsolni. Egy hírszövegben például könnyen előfordulhat, hogy a szerzője ugyanarra az entitásra először a Példa Péter vagy a P. Péter, majd a 37 éves férfi vagy éppen a gyilkos megnevezésekkel utal.   

Milyen módszereket alkalmazunk a NER-feladatokban?

A két alapvető NER-módszer a szótáras megoldás és a gépi tanítás. Lássuk ezeket a módszereket kicsit részletesebben is!

Röviden a szótárakról

A szótáras módszer esetében az ún. egyértelmű szavakat szótárak formájába rendezik a készítők, majd ezek alapján, ún. szótárillesztéses megoldással dolgoznak. A szólisták elkészíthetőek például egy tanuló adatbázis segítségével is, amelyből kigyűjtjük a megfelelő elemeket (pl. a betegségek neveit). Vannak családi név és keresztnév listák, továbbá vállalatnév- és terméknév-listák is. A helynevek listáját gazetteerek-nek nevezzük.

A szólisták azonban a NER-feladat megoldására csupán korlátozott mértékben képesek, és alkalmazásuk egyébként is problémás lehet. Egyrészt, ezeket a listákat nehéz és költséges elkészíteni. Emellett a hatékonyságuk is névelem-osztályonként változik. A gazetteerek például jól működnek, míg a szervezet- és személynevek nem annyira. Ráadásul, mivel a névelemek a nyelvben nyílt halmazt képeznek, nem fedhetőek le teljes mértékben szótárakkal, és a listák folyamatos frissítést igényelnek. A szótáras megoldás előnye viszont, hogy - a gépi tanuló megoldással ellentéteben - nem igényel nagy méretű adatbázist.  

A szótáralapú elemző rendszerek gyakran ún. prediktív szavak listáit is alkalmazzák. Ezek olyan nyelvi elemek, amelyek a kontextusban elő tudják jelezni a névelemek egy bizonyos csoportját. Például, a titulusok jó prediktív elemei a tulajdonnévi entitásoknak. Ellentétben az előzőleg tárgyalt listákkal, ezek a szótárak relatíve rövidek és időben jelentősen stabilabbak, tehát könnyebben elkészíthetőek és karban is tarthatóak. 

A nyelvtechnológia trigger-szótáraknak nevezi azokat a listákat, amelyek nem egyedi entitások elnevezéseit tartalmazzák, hanem egyéb olyan elemeket vagy névelem-részeket, amelyeket alkalmazni lehet az elemzésben. 

Röviden a gépi tanulásról 

Mivel minden NER-feladat az aktuális projekttől függően más és más, a szótárak, és az azokra építő szabályalapú rendszerek előállítása igen költséges vállalkozás. Megoldást jelenthet, ha gépi tanító adatbázisokat építünk, és ezek alapján megtanítjuk az algoritmusnak felismerni és kezelni a névelemeket a nyers szövegekben.

A feladat standard megközelítése az angolul word-by-word sequence labeling task-nak nevezett módszer, amelyet magyarra szavankénti szekvenciajelölés-ként fordíthatnánk. Ez tulajdonképpen egy statisztikai alapú megoldás, hasonló ahhoz, mint amelyet a szófaji egyértelműsítésben (POS-tagging) vagy a szintaktikai alapú fráziselemzésben (chunkolás) alkalmazunk. Az osztályozót arra tréneljük, hogy megtalálja és bejelölje a szövegben a megfelelő tokeneket. A rendszer az ún. IOB-jelölési megoldáson alapul, amelyben a kódok a következő információkat rejtik: I=inside a chunk, O=outside any chunk, B=beginning of a chunk.

Amikor névelemek automatikus felismertetése céljából tanító adatbázist hozunk létre, a fentebbi megoldás szerint a korpusz minden eleme az IOB-jelölések valamelyikét, valamint a megfelelő névelem-kategória jelét kaphatja meg: I / O / B + ORG, LOC, PER, vagy bármely, az adott nyelvechnológiai célnak megfelelő kategória tagét:

figure-1-example-of-how-chemical-entity-class-names-are-tagged-by-chener-using-the-iob.png

No de mielőtt elkészül az adatbázisunk a megfelelő tagekkel, tudnunk kell, hogy melyek azok a sajátságok, amely jó prediktorok lehetnek a későbbi tréneléshez. Ez alapján el kell készíteni a tanító adatbázist.

Miket kódolhatunk a tréning adatbázisban?

Egyrészt az adott névelemre vonatkozó ortográfiai jellemzőket: kezdőbetű típusa, szóhossz, tartalmaz-e számot  vagy speciális írásjelet, a szám, amelyet esetlegesen tartalmaz, arab vagy római szám-e. Bár ezek a sajátságok pl. a POS-taggelésnél és a szintaktikai elemzésnél is előjönnek, egyesek különösen fontosan a NER-ben. Ilyen pl. a központozás, valamint a kis- és nagybetűk szokatlan variációja (pl. Yahoo!, eBay). Vannak olyan osztályok, amelyek egyszerű szabályokkal (általában reguláris kifejezésekkel) leírhatóak, például az e-mail címek.

Másrészt szövegkörnyezeti információkat: uni- / bi- / trigramok, mondatpozíciós és dokumentum-pozíciós sajátságok, milyenek a megelőző tokenek címkéi stb. Olyan sajátosságokat kell találni, amely az egyes input példákra jellemző és jó prediktorként működhet. A kontextusra vonatkozóan igen hasznosak lehetnek a POS, a bag-of-words vagy N-gram információk. Ilyenkor a környezetre vonatkozó információkat is felvesszük az adott token jellemzői közé.

Ha ezeknek a sajátságoknak kialakítjuk egy adekvát listáját, utána bekerülhetnek a tréning korpuszba a szekvencia-osztályozón alapuló gépi tanításhoz megfelelő formában. Minden elem tehát a tréning adatbázisban az a kategória tagén és az IOB-n kívül ezekkel az információkkal is rendelkezhet.

Az elkészült tréning korpuszon azután mehet a gépi tanulás, ami által egy a nyers szövegek elemzésére alkalmaz nyelvfeldolgozó eszközt kapunk.

kep_3.png

A fentebb tárgyalt megoldások (egyenként vagy kombinálva) eredményessége természetesen függ az adott applikációtól, a szövegműfajtól, a nyelvtől és a szövegkódolástól is. Így például az íráskép nem sokat segít hangzóból leiratozott vagy twitter-szövegnél.

Irodalom

  • Jurafsky, Dan, Martin, James H. 2009. Speech and language processing. A Simon & Schuster Company,
    Englewood Cliffs, New Jersey. 759-768.
  • Simon Eszter 2013. A magyar nyelvű tulajdonnév-felismerés módszerei. Tézisfüzet. Budapest
  • Vincze Veronika, Farkas Richárd 2012: Tulajdonnevek a számítógépes nyelvészetben. Általános Nyelvészeti Tanulmányok XXIV. 97-119.

A Kereső Világ a precognox_logo_190.jpg Precognox szakmai blogja A Precognox intelligens, nyelvészeti alapokra építő keresési, szövegbányászati és big data megoldások fejlesztője.

Szólj hozzá! • Kövess Facebookon • Iratkozz fel értesítőre

A bejegyzés trackback címe:

http://kereses.blog.hu/api/trackback/id/tr1212673891

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben.

Nincsenek hozzászólások.