AI kezdőknek · Természetes nyelvfeldolgozás · Lecke 19

Névesített entitás felismerés (NER)

A szövegosztályozás mellett a nyelvfeldolgozás egyik legfontosabb feladata annak felismerése, hogy egy mondatban mely szavak jelölnek konkrét, névvel azonosítható dolgokat, például személyeket, helyeket vagy dátumokat. Ez a lecke, amely a Microsoft nyílt forráskódú "AI kezdőknek" (AI For Beginners) tananyagának magyar adaptációja, bemutatja, hogyan oldja meg ezt a feladatot egy neurális háló.

Vissza a tananyaghoz


Mi az a névesített entitás felismerés

Eddig főként a szövegosztályozással foglalkoztunk, vagyis azzal a feladattal, amikor egy egész szöveghez rendelünk egyetlen címkét. A nyelvfeldolgozásnak azonban van egy legalább ennyire fontos ága, amit névesített entitás felismerésnek, angolul named entity recognition-nek, röviden NER-nek hívnak. A NER célja, hogy a szövegen belül azonosítsa a konkrét entitásokat, tehát a személyneveket, a helyszíneket, a dátumokat és időintervallumokat, a szervezetneveket, vagy akár olyan speciális kifejezéseket is, mint a kémiai képletek.

Képzeljünk el egy intelligens chatbotot, amilyen az Amazon Alexa vagy a Google Assistant. Az ilyen rendszerek úgy próbálják megérteni a felhasználó kérését, hogy a beírt vagy elmondott mondaton szövegosztályozást futtatnak, és ennek eredményeként megállapítják az úgynevezett szándékot, vagyis azt, mit szeretne elérni a felhasználó. Ha valaki az időjárásról kérdez, a felhasználó ugyanakkor gyakran meg is ad kiegészítő paramétereket, például egy helyszínt vagy egy dátumot. A chatbotnak fel kell ismernie ezeket az entitásokat ahhoz, hogy a megfelelő paraméterekkel tudja végrehajtani a kérést. Pontosan ez az a pont, ahol a NER a képbe kerül.

Hasonló a helyzet a tudományos vagy orvosi szövegek elemzésénél is. Egy orvosi cikkből ki szeretnénk nyerni a betegségneveket és a gyógyszerhatóanyagokat. Néhány gyakori betegségnév ugyan kigyűjthető egyszerű szövegrészlet kereséssel is, az összetettebb entitások, mint a kémiai vegyületek vagy a ritkább gyógyszernevek felismerése azonban már komolyabb, tanult modellt igényel.


A NER mint token klasszifikáció

A NER modellek lényegében token klasszifikációs modellek. Ez azt jelenti, hogy nem egyetlen címkét rendelünk a teljes mondathoz, hanem minden egyes tokenről, azaz minden egyes szóhoz vagy szórészlethez külön eldöntjük, hogy egy entitáshoz tartozik-e, és ha igen, melyik entitástípushoz.

Vegyük például ezt a mondatot egy orvosi cikk címéből, "tricuspidalis billentyű elégtelenség és lítium-karbonát toxicitás egy újszülött csecsemőben". Ebben a mondatban három entitást találunk. A "tricuspidalis billentyű elégtelenség" egy betegség, a "lítium-karbonát" egy kémiai anyag, a "toxicitás" pedig szintén betegségre utaló kifejezés.

Fontos észrevenni, hogy egy entitás gyakran több egymást követő tokenből áll, és a modellnek meg kell tudnia különböztetni két egymás után következő, de különálló entitást is. Erre a célra terjedt el az úgynevezett BIO címkézés, más néven IOB címkézés. Ennek lényege, hogy minden entitástípushoz két külön címkét használunk. A "B-" előtag (beginning) az entitás első tokenjét jelöli, az "I-" előtag (inner) az entitás folytatását, a mondat minden más, entitáshoz nem tartozó szava pedig az "O" (other) címkét kapja. A fenti példamondat így nézne ki BIO címkézéssel.

Mivel a feladat lényege, hogy minden bemeneti tokenhez pontosan egy kimeneti címkét rendeljünk, a NER egy úgynevezett sok a sokhoz típusú szekvenciafeladatnak számít, ahol a bemeneti szekvencia hossza és a kimeneti szekvencia hossza mindig megegyezik.


Milyen modellel oldható meg a feladat

Mivel a NER lényegében token klasszifikáció, ugyanazokat a rekurrens neurális hálókat, RNN-eket használhatjuk erre a feladatra, amelyeket a korábbi leckékben már megismertünk, csak most nem a szekvencia végén, hanem minden egyes lépésben szükségünk van egy kimenetre. Egy LSTM alapú háló minden egyes bemeneti tokenhez rögtön kiadja a hozzá tartozó címkét, így a bemenet és a kimenet szekvenciái párhuzamosan futnak végig a hálón.

A gyakorlatban ma leginkább transzformer alapú modelleket, például a BERT-et vagy annak leszármazottait használjuk erre a célra, mivel ezek sokkal jobban megragadják a szó körüli szövegkörnyezetet, ami a NER esetében kritikus fontosságú. Egy szó jelentése és entitástípusa ugyanis gyakran csak a mondat egészének ismeretében állapítható meg egyértelműen. A modell architektúrája szempontjából a lényeg változatlan marad, minden tokenhez egy osztályozó réteg rendeli hozzá a legvalószínűbb BIO címkét, csak a token reprezentációját adó háló cserélődik LSTM-ről transzformerre.

A tanításhoz olyan adatra van szükség, ahol minden szót már előre felcímkéztek a megfelelő BIO taggel. Ez jóval munkaigényesebb annotációt igényel, mint egy egyszerű szövegosztályozási feladat, hiszen nem elég egy címkét adni egy egész dokumentumhoz, hanem szavanként kell megjelölni, mi micsoda. Emiatt a NER modellek tanításánál gyakran kisebb, de gondosan annotált szakterületi adathalmazokat használnak, például kifejezetten orvosi vagy jogi szövegekre szakosodva.


Gyakorlati alkalmazások vállalati környezetben

A névesített entitás felismerés az egyik legpraktikusabb NLP technológia üzleti környezetben, mert lehetővé teszi, hogy strukturálatlan szövegből strukturált adatot nyerjünk ki. Néhány tipikus felhasználási terület a következő.

Ezekben az esetekben a NER gyakran nem önmagában, hanem más NLP komponensekkel összekapcsolva ad valódi üzleti értéket, hiszen a kinyert entitások tovább táplálhatók egy keresőindexbe, egy adatbázisba vagy akár egy másik gépi tanulási modellbe. A jó minőségű entitáskinyerés így az információkinyerés és a dokumentumautomatizálás egyik alapköve.


Gyakorlati kód

Ha szeretnéd saját magad is kipróbálni egy NER modell tanítását, a Microsoft eredeti jegyzetfüzete TensorFlow-ban, lépésről lépésre bemutatja a folyamatot. Gyakorlati kód a GitHubon.


Forrás

Ez a lecke a Microsoft nyílt forráskódú, MIT licenc alatt elérhető "AI For Beginners" tananyagának magyar adaptációja. Eredeti angol lecke. GitHub. Felhasznált magyar gépi fordítás. GitHub.


← Előző lecke Következő lecke →

Workshop

AI Transformation Day

Egésznapos, vezetőknek szóló program. Feltérképezzük, hol tart a szervezet, mi az első reális lépés, és milyen belső feltételek szükségesek a sikerhez. A nap végén konkrét, prioritizált cselekvési lista.

Érdekel a program →