23.3. Információkinyerés

Az információkinyerés (information extraction) adatbázis-bejegyzések előállításának a folyamata, amely során egy szöveget egy adott osztályba tartozó objektum vagy esemény előfordulásait, valamint az objektumok és események közti relációkat keresve átfutunk. Megpróbálhatjuk konkrét címek kinyerését weboldalakról, adatbázismezőkkel az utca, az állam és az irányítószám számára, vagy konkrét viharok adatainak a kinyerését időjárás-jelentésekből, mezőkkel a hőmérséklet, a szélsebesség és a csapadék számára. Az információkinyerő rendszerek félúton állnak az információkereső rendszerek és a teljes nyelvi elemzők között, hiszen többet kell tenniük, mint egyszerűen szózsáknak tekinteni a dokumentumot, de kevesebbet, mint minden egyes mondat teljes nyelvtani elemzését.

Az információkinyerő rendszerek legegyszerűbb típusát attribútumalapú (attribute-based) rendszernek nevezzük, mert feltételezi, hogy a teljes szöveg egy objektumról szól, és a feladat ezen objektum attribútumainak kinyerése. Például a 10.5. alfejezetben megemlítettük a „17 hüvelykes SXGA Monitor mindössze 249,99 $-ért” szövegből az alábbi adatbázis-reláció kinyerésének problémáját:

m m SzámítógépMonitorokMéret(m, Hüvelyk(17)) ∧ Ár(m, $(249,99))

Felbontás(m, 1280 × 1024)

Ennek az információnak egy része reguláris kifejezésekkel (regular expression) kezelhető, amelyek reguláris nyelvtant definiálnak egy karakterfüzérben. Reguláris kifejezéseket használnak olyan Unix-parancsokban, mint a grep, olyan programozási nyelvekben, mint a Perl, valamint olyan szövegszerkesztőkben, mint a Microsoft Word. A részletek eltérők az egyes eszközökben, és legjobban a megfelelő útmutatóból tanulhatók meg, azonban itt bemutatjuk, hogyan lehet reguláris kifejezéseket építeni dollárban megadott árakra, bemutatva a közös részkifejezéseket:

[0-9] megfelel bármely 0 és 9 közti számjegynek

[0-9] + megfelel egy vagy több számjegynek

.[0-9] [0-9] megfelel számjegyek által követett pontnak

(.[0-9] [0-9]) ? megfelel számjegyek által követett pontnak vagy

üres füzérnek

$[0-9] + (.[0-9][0-9])? megfelel 249,99 $-nak, vagy 1,23 $-nak, vagy

1 000 000 $-nak, vagy…

Az attribútumalapú információkinyerő rendszerek reguláris kifejezések sorozatából építhetők fel, ahol minden egyes attribútumhoz egy reguláris kifejezés tartozik. Ha a reguláris kifejezés pontosan egyszer illeszkedik a szövegre, akkor kivehetjük a szöveg illeszkedő részét, amely az attribútum értéke lesz. Ha nincs illeszkedés, akkor nem tudunk mit tenni, azonban ha több illeszkedés is van, akkor szükségünk van egy eljárásra, hogy hogyan válasszunk közülük. Az egyik megoldás szerint minden egyes attribútumhoz több reguláris kifejezést rendelünk, prioritás szerint sorba rendezve. Például a legnagyobb prioritású árra vonatkozó reguláris kifejezés a dollárjel előtti „ár:” karakterfüzérre kereshet, ha ezt nem találja meg, akkor átlépünk egy kevésbé megbízható reguláris kifejezésre. Egy másik stratégia az összes találat kinyerése, majd valamilyen módon választani közülük. Például vehetjük azt a legalacsonyabb árat, amely a legnagyobbnak legalább fele. Ez a megoldás kezelni tudja az olyan szövegeket, mint a „Listaár 99,00 $, akciós ár 78,00 $, szállítás 3,00 $”.

Az attribútumalapú rendszereknél eggyel összetettebbek a relációs alapú információkinyerő rendszerek, amelyeknek több mint egy objektummal kell foglalkozniuk, ráadásul a köztük levő relációkat is figyelembe kell venniük. Azaz, amikor egy ilyen rendszer a „249,99 $” szöveget látja, akkor nem csak azt kell megállapítania, hogy ez egy ár, hanem azt is, hogy mely objektumnak az ára. A FASTUS egy tipikus relációs alapú információkinyerő rendszer, amely cégegyesülésekről és felvásárlásokról szóló híreket képes kezelni. El tudja olvasni a következő hírt:

„Bridgestone Sports Co. said Friday it has set up a joint venture in Taiwan with a local concern and a Japanese trading house to produce golf clubs to be shipped to Japan.”[249]

és egy a következőhöz hasonló adatbázisrekordot tud létrehozni:

e VegyesVállalat Termék(e, „Golfütők”) ∧ Dátum(e, „Péntek”)

Entitás(e, „Bridgestone Sports Co.”) ∧ Entitás(e, „egy helyi konszern”)

Entitás(e, „egy japán kereskedőház”)

Relációs információkinyerő rendszereket gyakran építenek kaszkádosított véges állapotú átalakítók (cascaded finite-state transducer) segítségével. Ez azt jelenti, hogy egy sor véges állapotú automatából (finite-state automaton, FSA) áll, ahol minden egyes automata egy szöveget kap bemenetként, amelyet átalakít egy más formába, majd továbbadja a következő automatának. Ez azért megfelelő, mert az egyes véges automaták hatékonyak lehetnek, és együtt képesek lehetnek a szükséges információ kinyerésére. A FASTUS egy tipikus rendszer, amely a következő öt fokozatból áll:

  1. Tokenizálás

  2. Komplex szavak kezelése

  3. Alapcsoport-kezelés

  4. Komplex kifejezések kezelése

  5. Struktúra-összevonás

A FASTUS első lépése a tokenizálás (tokenization), amely a karakterfüzéreket tokenekbe (szavak, számok és írásjelek) szegmentálja. Az angol nyelv esetén a tokenizálás elég egyszerű lehet, pusztán a szóközök (white space) vagy írásjelek mentén történő szegmentálás viszonylag jó hatékonyságú. A japán nyelv esetén a tokenizálásnak szegmentálást kell végeznie, valami olyasmit használva, mint a Viterbi algoritmus (lásd 23.1. ábra). Egyes tokenizálók az olyan jelölőnyelveket is kezelik, mint a HTML, az SGML és az XML.

A második lépés komplex szavak (complex words) kezelése, ideértve az olyan szókapcsolatokat, mint a „set up” és a „joint venture”, valamint olyan tulajdonneveket, mint a „Prime Minister Tony Blair ” és a „Bridgestone Sports Co.”.[250] Ezeket szótárbejegyzések és véges állapotú nyelvtani szabályok kombinációjaként ismeri fel. Például egy cégnevet a közvetkező szabállyal lehet felismerni:

NagybetűvelKezdődőSzó + („Company” | „Co” | „Inc” | „Ltd”)

A szabályokat gondosan kell megalkotni, majd ellenőrizni kell a felidézést és a pontosságot. Az egyik kereskedelmi rendszer az „Intel Chairman Andy Grove”[251] szöveget személy helyett helyként ismerte fel, az egyik szabály miatt:

NagybetűvelKezdődőSzó + („Grove” | „Forest” | „Village” | …)

A harmadik lépés az alapcsoportok (basic groups) kezelése, amelyek főnévi és igei csoportokat jelentenek. A lépés lényege, hogy ezeket darabokra kell vágni, hogy a későbbi lépések kezelhessék őket. A főnévi csoport a fejszerepet betöltő főnévből áll, amelyet opcionálisan megelőzhetnek névelők és egyéb módosítók. Mivel a főnévi csoport nem tartalmazza az NP1-beli teljes komplexitását, ezért nincs szükség rekurzív környezetfüggetlen nyelvtani szabályokra, a véges automaták által megengedett reguláris nyelvtanok is elégségesek. Az igei csoport az igéből és a hozzá kapcsolódó segédigékből, valamint határozókból áll, azonban nem tartalmazza a közvetlen és közvetett tárgyakat és az elöljárói kifejezéseket. Az előbbi példamondat a következő módon kerülne ki ebből a lépésből:

1 NG: Bridgestone Sports Co.

10 NG: a local concern

2 VG: said

11 CJ: and

3 NG: Friday

12 NG: a Japanese trading house

4 NG: it

13 VG: to produce

5 VG: has set up

14 NG: golf clubs

6 NG: a joint venture

15 VG: to be shipped

7 PR: in

16 PR: to

8 NG: Taiwan

17 NG: Japan

9 PR: with

 

Az NG főnévi csoportot, a VG igei csoportot, a PR elöljárószót, a CJ pedig kötőszót jelent.

A negyedik lépés az alapcsoportokat komplex kifejezésekké (complex phrases) kombinálja. Ismét az a cél, hogy véges állapotú szabályokat használjunk a gyors feldolgozás érdekében, és a szabályok olyanok legyenek, hogy (közel) egyértelmű kimeneti kifejezéseket kapjunk. A kombinációs szabályok egyik típusa tárgyterületfüggő eseményekkel foglalkozik. Például a

Cég + VegyesVállalatLétrehozása („with” Vállalat+)?

szabály a vegyes vállalat létrehozásának egyik lehetséges leírása. A kaszkádban ez az első lépés, amely eredményét nemcsak a kimenetre, hanem adatbázissémákba is elhelyezi.

Az utolsó lépés az előző lépés által felépített struktúrákat vonja össze (merges structures). Amennyiben a következő mondat azt állítja, hogy „A vegyes vállalat januárban kezdi meg a termelést”, akkor ez a lépés felismeri, hogy két hivatkozás történt a vegyes vállalatra, amelyeket össze kellene vonni.

Általánosságban az információkinyerés jól működik egy olyan korlátozott tárgyterület esetén, amelyben a tárgyalt témákat előre meg lehet állapítani, továbbá azt is lehet tudni, hogy hogyan írnak róluk. Számos tárgyterületen használhatónak bizonyult ez a technika, azonban nem lehet a teljes természetes nyelvi elemzés helyettesítője.



[249] „A Bridgestone Sports Vállalat pénteken azt nyilatkozta, hogy vegyes vállalatot hozott létre egy helyi konszernnel és egy japán kereskedőházzal Tajvanon, hogy Japánba szánt golfütőket gyártsanak.” A golf club kétértelmű, itt golfütő. (A ford.)

[250] „vegyes vállalat”, „Tony Blair Miniszterelnök”, „Bridgestone Sports Vállalat” (A ford.)

[251] Az Intel elnöke, Andy Grove – a grove magyarul ligetet jelent. (A ford.)