Ugrás a tartalomhoz

Alkalmazott Mesterséges Intelligencia

Dudás László (2011)

Kempelen Farkas Hallgatói Információs Központ

Szemantikai távolság alapú mondatkereső rendszer

Szemantikai távolság alapú mondatkereső rendszer

A 21. század kezdetére az emberiség a tények, adatok hatalmas mennyiségét halmozta fel. A feladat mindezt aktivizálni, belőle tudást előállítani. Egy lehetséges út ehhez az adatok átstruktúrálása, új módon való reprezentálása. (V.ö. szemantikus web. A szemantikus web a web következő generációja, mely az adatokat olyan módon szervezve tárolja, hogy a felszíni adatok mellett az adatok jelentésére, belső összefüggéseire vonatkozó metaadatokat is tárol, llehetővé ezáltal, hogy olyan alkalmazások készüljenek, melyek segítségével a gépek komplex emberi problémafelvetésekre lesznek képesek választ adni. Nem csak az adatot, hanem annak jelentését is tárolni fogja, a jelentés pedig nem más, mint azok a szerepek, amelyben az adat valamilyen formában hasznosul.) A hangsúly az adatelemek közötti dinamikus asszociációkon van. Az adatelemek tárolása helyett a cél a tények és módszerek közötti hálózat felépítése, mely kapcsolatiság tükrözi azokat a viszonyokat, mely közöttük a valós világban, továbbá az emberi agyakban fennáll. Ebben a küldetésben az egyik fő kihívás a jelentés rekonstruálása, kinyerése. A legalkalmasabb tudásszemléltetési módszer erre a célra az elsőként Quillian által javasolt szemantikus háló. Ez az erőteljes technika reneszánszát éli napjainkban. Ehhez kapcsolódva az alfejezet a mondat jelentésének egy új definícióját adja és bemutat egy új technikát az olyan mondatok keresésére, melyek egy adott mondathoz közeli jelentéssel bírnak.

Információ előhívó és információ szűrő rendszerek

Az ezen rendszerek által kivitelezett funkció hozzásegíti az embereket, hogy kinyerjék a szükséges és releváns információt ebből a gigantikus adatfolyamból. A különbség az információ előhívó (information retrieval, IR) és az információ szűrő (information filtering, IF) rendszerek között a forrásadatok statikus vagy dinamikus jellege. Az előhívás egy adott adatmenyiségen dolgozik, míg a szűrés egy adatfolyamon fejti ki hatását. Az eredmény a kiválasztott adatok halmaza lesz, elsősorban dokumentumok. Az előhívás, vagy a szűrés kritériuma a szoros megfelelés egy kulcsszóhalmaz, egy adott téma, lekérdezés vagy felhasználói profil tartalmának.

Ezen alfejezet célja egy mondatkereső, válaszoló rendszer bemutatása, amely szintén egy információ előhívó rendszerként fogható fel. Milyen technikákat alkalmaznak az információ előhívó rendszerek? Az (O’ Riordan, Sorensen, 2006) alapján a következő választ adhatjuk:

  • Szövegkeresés, mintaillesztés

  • ÉS, VAGY, NEM logikai operátorokkal kiterjesztett szövegkeresés

  • Vektortér modell: a dokumentumot és a lekérdezést reprezentáló vektorok közötti szöget használja a hasonlóság számításához. A vektorokat a fogalmak terében súlyozott koordinátákkal adjuk meg. A súlyokat statisztikai elemzések szolgáltatják. Minél gyakoribb a fogalom előfordulása, a súly annál kisebb: wt = fit*log(N/Nt), ahol fit a t fogalom előfordulási száma az i dokumentumban, N pedig a dokumentumok száma a gyűjteményben, Nt pedig azon dokumentumok száma a gyűjteményben, amelyek tartalmazzák a t fogalmat.

  • Tezaurusz: szinonimacsoportokat alkotó szavak, kifejezések gyűjteménye. Ezekkel elkerülhetjük a hasonló jelentésű, szinonim szavakat, és az egyalakú homonimákat és olyan dokumentumokat is megtalálhatunk, melyek hasonló jelentésű, de eltérő alakú szavakat tartalmaznak.

  • Bayes következtető háló: egy ciklusmentes gráffal megadja a dolgok közötti függőségeket. A leszármaztatott dolgok valószínűségei a gyökér csomópontokban adott valószínűségekből számíthatók.

  • Rejtett szemantikus indexálás: a szövegben található koncepciókat, vagy szemantikus relációkat a szavak közötti asszociációkkal írja le. A dokumentum és a felhasználói profil közötti összehasonlítás ezen a magasabb szinten zajlik, nem a szavak szintjén. Ez a módszer a dokumentum egy részét használja fel a koncepciók leírására és a koncepciók terét használja szög számítással a dokumentum és a felhasználói profil közelségének számítására. Egy továbbfejlesztett modell, a téma mezők kódjaival (SFC, Subject Field Codes) dolgozik, melyek előredefiniált koncepciókat, kategóriákat tartalmaznak és a dokumentum minden szavát előzetesen ezekbe osztályozzák. Az egyalakú szavak problémája a szókörnyezetek révén megoldható. A kiválasztás a dokumentumokat reprezentáló vektorok által a kategória térben bezárt szög alapján történik.

  • A konnekcionista modellek főként mesterséges neurális hálókat jelentenek, melyek nagyon sok önálló számítási elemet alkalmaznak. Az előnyük a rugalmasság, mely lokalizálható az éppen működő neuronokra, melyek nem csak a közvetlenül kapcsolódó szavakat használják, hanem a fogalom környezetét is.

  • A Koncepcionális halmaz elmélet (Concept Set Theory) egy feljövőben lévő módszer az adathalmazoknak a koncepciók egy erőteljes hierarchiában való ábrázolására. Egy dokumentumban rejtett koncepciók, fogalmak meghatározhatók és egy koncepció halmazt formálnak. Ezek a halmazok összevethetők és az eredmények mint a dokumentumok közelségének, hasonlóságának mérőszámai használhatók (Kovács, 2002).

A következőkben bemutatandó módszer a szemantikus indexáló technikához áll közel, de különbségekkel is bír.

Az IF, információ szűrő rendszerek hasonló módszereket használnak a releváns információ kiválogatására egy hosszabb idejű adatfolyamból.

Beszélgető Robotok (Chat Robots)

Miért fontosak a beszélgetőrobotok ezen fejezet számára? A legtöbb beszélgetőrobot előredefiniált tudásbázist, mintaillesztést és véletlengenerálással választott válasz előállítást alkalmaz. Ezek a beszélgetőrobotok kívül esnek a jelen pont témáján. Azonban létezik egy másik csoportjuk, mely megpróbálja megérteni a párbeszédet, nem csak szintaktikai, hanem szemantikai szinten is. És létezik néhány olyan beszélgetőrobot is, mely képes tanulni, egy üres tudásbázisból indulva. Egy áttekintés és elérhetőségek találhatók a következő helyen: http://www.loebner.net/Prizef/loebner-prize.html.

Emeljük ki az öntanuló beszélgetőrobotok közül NICOLE-t! Ezen program céljai közel esnek a mi céljainkhoz:

  • Indulás üres tudásbázissal.

  • Tanulás a felhasználó által használt mondatokból.

  • Válaszgenerálás a tudásbázisból választott mondatok révén.

Sajnos, az alkalmazott technikákat nem publikálták.

A következőkben a fejezet egy saját fejlesztésű, hatékony tanuló képességgel bíró válaszoló rendszert mutat be, mely pl. egy kiváló memóriával bíró személyi titkárként használható. Egy ilyen MI ágens számára nagyon fontos, hogy megragadja a kérdés jelentését, amennyiben jó, releváns választ akar adni, melynek jelentése közel áll a kérdés jelentéséhez.

A mondat Jelentése – egy új definíció

Jól ismert, hogy egy mondat jelentése négy szinten is megragadható:

  1. Szintaktikai

  2. Szemantikai

  3. Pragmatikus

  4. Intencionális

A mondat szintaktikai elemzése eldönti, eleme-e a mondat az adott nyelvnek. A szemantikai szinten a szavak jelentése a kapcsolódásuk, viszonyuk felhasználásával kombinálásra kerül és előáll a mondat egy szószerinti jelentése. A pragmatikus szint már a szavak mögé tekint, felhasználja a kontextus, a szövegkörnyezet információit is, és egy relevánsabb, odaillőbb értelmezést ad. A mondat intencionális jelentését többnyire csak a kontextus, a szöveg- és szituációkörnyezet birtokában, az értelmező kellő tájékozottsága esetén lehet megkapni, és kifejeződik benne a beszélő szándéka, vágya, óhaja, stb. Tömören: olvasás a sorok között.

 

"Within the philosophy of language, one of the most central topics is inevitably the idea of meaning: the meaning of a word, the meaning of a sentence, or the meaning of an utterance, and also the relation between these three different notions."

"A nyelv filozófiáján belül, az egyik leginkább központi kérdés kétségtelenül a jelentés fogalma: a szó jelentése, a mondat jelentése, vagy a kifejezésmódban rejlő jelentés, és természetesen ezen három eltérő dolog viszonya."

 
 --White, 2011

Ha meg szeretnénk érteni a mondat jelentésének lényegét, a Sapir-Whorf Hipotézist szintén érdemes figyelembe venni:

  • Hogyan reprezentálják az emberek a tudást?

  • A tanulmányok megmutatták, hogy az emberek a lényegre emlékeznek inkább, semmint a szavakra. Létezik valamilyen nemverbális nyelv?

  • Sapir-Whorf: Az általunk beszélt nyelv alapvetően meghatározza, miként gondolkozunk. A nyelvek kategória struktúrákat építenek fel. (*, 2006)

Ez az utolsó állítás nagyon fontos: a számítógépi reprezentációnak rekonstruálnia kell ezeket a kategória struktúrákat, szemantikus hálók, keretek, vagy koncepciók hierarchiája formában. A jövőben célszerű lenne az információt rögtön ilyen szerkezetekkel tárolni, a szokásos .doc, vagy .html formátum helyett, megelőzendő az adatbányász feladatokat, az adatok újjászervezését a kereső szerverek által! A Semantic Web kezdeményezés ebbe az irányba hat.

A mondat jelentése több, mint a szavai jelentésének összessége. A szintaxis szócsoportokat, frázisokat szeparál el, kifejezések szerkezetét és hierarchiáját kódolja és egy sorrendet ad. Egyes kétértelműségek már szintaktikai szinten feloldhatók.

A mondat jelentésének ismerete magában rejti az ismeretét a szituációnak, amiről szó van, milyen objektumok, személyek, helyek, idő, és így tovább van említve. A (van Santen, 1994) referencia hangsúlyozza a szövegkörnyezet fontosságát.

A szerző definíciói a mondat jelentéséről, különböző nézőpontokból, a következők:

Az emberiség szemszögéből a mondat jelentése egy olyan struktúra, melynek alkotói az összes szituációnak, melyben a mondatot, vagy részeit használták, az asszociált jellemzői. A különféle jellemzők és asszociációk eltérő fontossággal, súllyal bírnak.

A statikus jelentése egy mondatnak egy ember számára egy többszintű hierarchiában asszociált verbális, és/vagy nem verbális, az ember számára belső és/vagy külső jellemzői mindazon szituációknak, amikor a mondatot, vagy részét használta, vagy felismerte. Ez a létrehozása, és/vagy megerősítése az asszociációs hierarchia aktív neurális reprezentációinak, beleértve a használt mondatot, építi fel a jelentést. Ez a jelentés nem abszolút statikus az ismétlés, felejtés, változó mentális állapotok miatt.

A mondat dinamikus jelentése az a mentális állapotváltozás, amely a többszintű hierarchiában lezajlott az agyban a hallott, vagy olvasott mondat hatására. A mondat dinamikus jelentése egy, a mondat és az értelmező közötti viszony. A mondat maga a társadalmi jelentést hordozza, és hogy abból az egyén számára mennyi elérhető, az alapvetően az értelmezőtől függ. A mondat jelentése az a változás, amit az értelmezőben létrehozott: függvénye annak, létezik-e már egyáltalán aktív egyező mintázat, melyet a korábbi asszociációk révén aktivizálhat. A mondat csak valami, vagy valaki számára bír jelentéssel. (V.ö. a kognitív pszichológia sémáival.)

Az objektumok szintén nem fontosak, az objektumokat az értelmező csak az asszociált jellemzőiben érzi. Az objektumok időben, és/vagy térben asszociált attribútumhalmazok. Az objektumok és a koncepciók, fogalmak ugyanazok egy értelmező számára: kapcsolt jellemzőhalmazok.

Egy szó jelentése hasonlóan definiálható egy kisebb többszintű hierarchiával, mely a szót tartalmazó mondat hierarchikus struktúrájának része.

Mondatkeresés szemantikus távolság alapján

A következőkben a jelentés alapján való mondatkeresésre kidolgozott alkalmazás, egy egyszerű szemantikus távolság minimáló kerül részletezésre. A rendszer egy válaszoló robotként működik és a tanulásnak egy nagyon egyszerű formáját alkalmazza: a kapott kérdést állítássá alakítja és tárolja. E mellett megtanulja a szavak közötti kapcsolatokat is, a háttérben felépítve egy asszociációs hálót. Általánosabban értelmezve a mondat lehetne egy bekezdés, egy szövegkörnyezet, egy szöveg. A cél egy olyan válasz kiválasztása, mely a legközelebbi egyezést mutatja jelentése szerint a kérdésből kapott állítással. Induláskor a válasz a kérdés állítássá alakított formája lesz, azaz a robot egy elfogadható választ ad, közel nulla új ismerettel. Összegyűjtve egy nagyobb mennyiségű mondatsokaságot, a válasz már más is lehet, mint a kérdés állítás alakban. Amiatt, hogy a válasz nagy százalékban a kérdés állító alakja lesz, az első tíz legrelevánsabb válasz kerül listázásra a relevancia értékkel, melyet a kérdés és a talált válasz jelentésközelségeként számít a rendszer. Ez a tíz mondat úgy fogható fel, mint a gondolatok, melyek a robot ’agyában’ a kérdés hatására keletkeztek.

Az alkalmazott egyszerű modell a következő jellemzőket veszi figyelembe a jelentést meghatározó paraméterekként:

  • A mondat jelentését: az egyidejűleg jelen volt, asszociált szavak halmazát

  • Egy szó specifikusságát

  • A mondatban előforduló két szó pozíciójának viszonyát

  • A két szó mondatokbeli egyidejű előfordulásának gyakoriságát.

Egy szó jelentését egy dinamikus rekord reprezentálja. A rekord frissül, ha a szó újabb mondatban fordul elő. A következő mezőket tartalmazza:

  • A hozzátársított különböző szavak féleségszáma, ezzel mérjük a specifikusságot

  • A hozzátársított különböző szavak vektora

A vektor egy eleme a következő mezőket tartalmazó rekord:

  • A társított szó azonosítója

  • A társított és a tulajdonos szó előjeles átlagos távolsága

  • A társított és a tulajdonos szó együttes előfordulási száma a látott mondatokban.

Egy mondat jelentését alapvetően a mondatban található szavakhoz társult szavak halmazainak egyesítése adja. Két mondat jelentésének közelségét alapvetően a két mondat egyesített halmazainak metszetével mérjük, minél nagyobb az egybeesés, a közelség annál nagyobb, lásd az ábrát.

A szemantikus távolság számításához használt társított szóhalmazok metszete

Az alap számítás megadja az erősségét a szói és a szój szavak egy metszetbeli közös szón keresztüli kapcsolatának, ha létezik olyan közös szó a metszetben, amelyen keresztül ezek a szavak kapcsolódnak. Pl. szói = kutya, szój = eb, és mindkettő előfordult együtt valamikor a harap szóval. Az erősséget a szói és a szój specifikusságának szorzatával számítjuk. Egy szó specifikusságát a társított különböző szavak darabszámának reciproka adja. Az ábrán a nagy kúp kis specifikusságot, a kis ’kúpszögű’ kúp nagy specifikusságot jelez a csúcsánál lévő szóra nézve. A jelentésközelség értékét ezután a szói és a szój között az azokat összekapcsoló közös szavakon át számított kapcsolaterősség értékek összegeként vesszük. A transzformált kérdés és a k. tárolt mondat közötti szemantikus közelséget az előzőekben két szó között bemutatott kapcsolaterősségek segítségével, egy dupla for-ciklussal számítjuk, mely a transzformált kérdés minden szavához a k. tárolt mondat minden szavát véve adódó kapcsolaterősségeket összegezve áll elő. A nagyobb érték nagyobb jelentésközelséget ad. A legnagyobb közelséget adó tíz mondat kerül kijelzésre.

Ez az alapalgoritmus még finomítható a két adott szó átlagos mondatbeli távolságának, két szó mondatbeli együttes előfordulása frekvenciájának, valamint a szói és az összekapcsoló szó mondatbeli átlagtávolságának a szój és az összekapcsoló szó mondatbeli átlagtávolságához való hasonlósága függvényében. Ezek a minősítő információk empirikus függvények által szolgáltatott szorzók segítségével fejtik ki hatásukat a szemantikai távolság értékre.

Az alkalmazott módszer a kérdés állítássá való transzformálásától eltekintve nyelvfüggetlen. Az ábra mutatja a futó alkalmazást egy olyan bekarikázott mondattal, amelyben nincs egyetlen, a kérdésben előforduló szó sem, jelentése alapján viszont egyértelműen közel áll ahhoz.

Szemantikus közelség alapján választott válaszok

Összegzés, a lehetséges továbbfejlesztések

A bemutatott válaszoló rendszer nagyon kontext-érzékeny. Használható pl. egy internetes kereső rendszer részeként a találatok további finomítására, jobban illeszkedő találatok kiválasztására a keresés által produkált sokaságból, alkalmazva a keresett tartalom és a talált dokumentumok mondatai közötti szemantikus közelség értéket.

További lehetséges és szükségesnek bizonyult továbbfejlesztés egy szóelemző, morfoló modullal történő kiegészítés, különösen addiktív, toldalékoló nyelvek esetében, a magyar nyelvnél ez elengedhetetlen. A válaszminőség fokozását szolgálná egy rövidtávú memória alkalmazása, mely figyelembe venné a válaszolási folyamatban felhasznált megelőző, korábbi mondatok jelentését is, letárolhatnánk a szomszédos mondatok jelentését is a letárolandó mondathoz, alkalmazhatnánk egy témakiemelő algoritmust a rövidtávú memória modellezéséhez, valamint gyorsíthatnánk a meglévő programkódon.