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.
- tricuspidalis - B-DIS
- billentyű - I-DIS
- elégtelenség - I-DIS
- és - O
- lítium-karbonát - B-CHEM
- toxicitás - B-DIS
- egy - O
- újszülött - O
- csecsemőben - O
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.
Szövegosztályozás annotálása
Elég egyetlen címkét adni a teljes dokumentumhoz, ezért a tanítóadat gyorsan és olcsón előállítható.
NER annotálása
Minden egyes szót külön meg kell jelölni a megfelelő BIO taggel, ezért jellemzően kisebb, gondosan annotált szakterületi adathalmazok készülnek.
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ő.
- Dokumentumfeldolgozás, ahol szerződésekből, számlákból vagy jelentésekből automatikusan kinyerhetők a szereplők nevei, dátumok, összegek és helyszínek.
- Ügyfélszolgálati chatbotok, ahol a NER segít kitölteni a beszélgetés során összegyűjtött paramétereket, például egy repülőjegy foglalásánál a dátumot és az úticélt.
- Keresőrendszerek és keresőmotor-optimalizálás, ahol az entitások felismerése pontosabb, kontextusérzékenyebb találatokat tesz lehetővé.
- Egészségügyi és tudományos szövegelemzés, ahol betegségeket, hatóanyagokat és orvosi eljárásokat azonosítunk nagy mennyiségű publikációban.
- Compliance és kockázatkezelés, ahol személyes adatok vagy érzékeny információk automatikus azonosítására és anonimizálására is használható a technológia.
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.
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 →