SZEGEDI TUDOMÁNYEGYETEM TERMÉSZETTUDOMÁNYI ÉS INFORMATIKAI KAR MTA-SZTE MESTERSÉGES INTELLIGENCIA KUTATÓCSOPORT
ÖSSZETETT RENDSZER VÁLLALKOZÁSOK CÍMEINEK WEBRŐL TÖRTÉNŐ AUTOMATIKUS ÖSSZEGYŰJTÉSÉRE
Készítette: Nagy István V. közgazdasági programozó matematikus
Konzulensek: Farkas Richárd, tudományos segédmunkatárs Dr. Csirik János, egyetemi tanár
Szeged, 2008. november
Tartalomjegyzék 1. Bevezetés..........................................................................................................................................1 2. Intelligens üzleti hírszerzés a Webről...............................................................................................2 2.1. Üzleti információ......................................................................................................................2 2.2. Webbányászat...........................................................................................................................2 2.3. Kapcsolódó munkák.................................................................................................................5 3. A vállalkozások címeit kinyerő rendszer .........................................................................................7 3.1. Honlapok osztályozása.............................................................................................................8 3.1.1. Tanulás pozitív és jelöletlen példákból.............................................................................8 3.1.2. Honlap osztályozási adatbázis........................................................................................10 3.1.3. A honlap osztályozás jellemzőtere..................................................................................11 3.1.5. Döntési fa-alapú osztályozás...........................................................................................13 3.2. Címek automatikus felismerése..............................................................................................15 3.2.1. A manuálisan annotált címkorpusz.................................................................................15 3.2.2. Szabályalapú megközelítés címek és cégnevek jelölésére..............................................17 3.2.3. Gépi tanulási megközelítés címek és cégnevek jelölésére..............................................18 3.3. A cégnevek és -címek összerendelése.....................................................................................19 3.3.1 Az összerendelés kiértékelése..........................................................................................19 3.3.2. Cím és cégnév hozzárendelési heurisztikák....................................................................20 4. Eredmények....................................................................................................................................22 4.1. Honlapok osztályozásának eredményei..................................................................................22 4.2. Címek automatikus felismerése..............................................................................................23 4.3. Cím és cégnév hozzárendelési heurisztikák eredményei........................................................25 4.4. A teljes rendszer eredményei..................................................................................................28 5. Diszkusszió ....................................................................................................................................29 6. Összefoglalás..................................................................................................................................31 7. Bibliográfia.....................................................................................................................................32
1. Bevezetés A webbányászat [1] célja az Internethez kapcsolható dokumentumokból (honlapok, emailek, blogok, fórumok stb.) hasznos információ automatikus összegyűjtése. Ilyen feladat lehet például állásajánlatok automatikus összegyűjtése vállalati honlapokról, vagy újsághírekben egy vállalkozásról fellelhető információk kinyerése. Az így nyert információ strukturált szerkezetű (mezőértékekből áll), azaz például betölthető egy adatbázisba. Egy vállalkozás számára rengeteg információ található a Weben a potenciális partnerekről, esetleg versenytársakról, mint például a konkurencia árai, akciói vagy egy cég referenciái. Célom egy olyan online kereséseken alapuló rendszer megvalósítása, amely automatikusan képes cégekről, a Web publikus részén (WWW) elérhető információk összegyűjtésére. Ennek megvalósíthatóságát illusztrálandó, dolgozatomban egy olyan rendszert mutatok be, amely az egyes tevékenységi körökhöz tartozó magyarországi vállalkozások neveit és címeit automatikusan gyűjti össze. A kezdeti kísérletek után egyértelművé vált, hogy egy olyan összetett rendszer szolgáltatja a megoldást, amely számos szövegbányászati részprobléma beazonosítását és megoldását igényli (ez a dolgozat legfontosabb eredményének tekinthető). Az egyes részproblémák megoldása során egyaránt alkalmaztam gépi tanuló algoritmusokat, szabályalapú módszereket és egyéb heurisztikákat. A két legfontosabb részfeladat a következő: Weblapok osztályozása: Az egyes vállalatok honlapjainak azonosítása érdekében az alkalmazott on-line keresők eredményeit automatikusan „céges” és „nem céges” csoportokba kell sorolni. Ezt a dokumentum klasszifikációs feladatot tanító adatbázis manuális létrehozása nélkül oldom meg úgy, hogy a pozitív és jelöletlen példákból való tanulás megközelítését alkalmazom. Itt a standard módszer egy módosított változatát is ismertetni fogom. Címek és cégnevek azonosítása: A letöltött weboldalakon az egyes cégek neveinek és címeinek automatikus jelölésére van szükség (tulajdonnév felismerési feladat). Erre a részproblémára mind szabályalapú, mind gépi tanulási megoldást is adok, és a két módszer a dolgozatban összehasonlításra kerül. Az egész rendszer és a főbb komponensek egyéni empirikus kiértékelésére egy keretrendszert implementáltam, amelynek felhasználásával a dolgozatban számszerű eredményeket közlök.
-1-
2. Intelligens üzleti hírszerzés a Webről 2.1. Üzleti információ A XXI. század vállalatainak elengedhetetlenül szükségük van a folyamatos és naprakész információkra mind a versenytársaikról, partnereikről, mind potenciális ügyfeleikről. Ezen információk egy részhalmaza elérhető valamilyen strukturált adatbázisban vagy archívumban, másik része azonban nyers, szöveges, azaz strukturálatlan adatokban rejtőzik. Ezen adatok révén a döntéshozók olyan értékes információra tehetnek szert, amely segíti potenciális üzleti kapcsolataiknak értékelését és kereskedelmi partnereik kategorizálását, valamint új üzletfeleik feltérképezését, vagy egyszerűen könnyebben hozhatnak a vállalat szempontjából megfelelő döntéseket [1]. Így például, amikor egy menedzser egy lehetséges partner megbízhatóságáról, fizetőképességéről kíván meggyőződni, egy cég-referencia vagy kapcsolatháló segítségével felderítheti, milyen más cégekkel van kapcsolatban az adott vállalkozás, esetleg milyen érdekeltségi körbe tartozik, és ezek helyzete mennyire stabil. Továbbá a megfelelő kapacitásokkal rendelkező üzletfél kiválasztását is megkönnyítheti. Távlati célom egy olyan automatikus, hatékony döntést támogató rendszer építése, amely minél több hasznosnak vélt információt képes összegyűjteni egy adott vállalkozásról vagy vállalkozásokról (például kapcsolathálót) a WWW publikusan elérhető részeiről. Így lényegesen kevesebb szakértői humán munkaerő (piaci elemző, marketinges, sales-es) alkalmazására lenne szükség, amely egyben jóval kevesebb költségráfordítást is jelent. Ráadásul részben kizárható a legfőbb hibaforrás, az ember, aki sokszor nem is képes a nagy mennyiségű adat között rejtőző fontos információk kinyerésére. A célrendszer egy „fuvarozási” use case-ében, például a felhasználó „Szeged” inputjára outputként megjelenik a Weben elérhető fuvarozó társaságok adatainak listája (esetenként egy Excel táblázat), ahol az adatok közt szerepel például a társaság járműállományának mérete (természetesen csak akkor, ha ez az adat a weben elérhető), így a döntéshozó, amennyiben szüksége van rá, megszűrheti a fuvarozókat a „legalább 100 kamionnal rendelkezők”-re.
2.2. Webbányászat Az utóbbi évtizedekben az adatok tárolása egyre olcsóbbá vált, (a tárolókapacitások rohamosan fejlődtek, míg az árak csökkentek) ezáltal az elektronikus eszközök és adatbázisok a mindennapi életünkben elérhetővé váltak. Az egyre olcsóbb adattárolási lehetőségek az adatok tömeges felhalmozását eredményezte, ám a ritkán látogatott adatokból úgynevezett
-2-
„adat temetők” alakultak ki, ezáltal a döntéshozók a döntéseiket nem hozhatták meg információ-gazdag adatok alapján. John Naisbitt híressé vált mondása szerint: ”We are drowning in information, but starving for knowledge” (Megfulladunk az információtól, miközben tudásra éhezünk) [2]. Az utóbbi években az informatika egyik leggyorsabban fejlődő részterülete az adatbányászat [2] lett. Ez az új tudományág szolgál a nagy mennyiségű adatokban rejlő információk automatikus feltárására mesterséges intelligencia algoritmusok alkalmazásával (pl. neurális hálók, szabálygenerálók, asszociációs modellek). A fejlődés motorja a pénzügyi haszon, hiszen a kibányászhatatlannak vélt, vagy csak nagyon erőforrás-igényesen elérhető információk, összefüggések nagyon sokat érhetnek. A köznyelv és a különböző informatikai cégek sok mindent neveznek adatbányászásnak, de a szigorúbb szakmai terminológia szerint nem tekinthető adatbányászatnak az adatokból lekérdezésekkel, aggregálásokkal, illetve alapstatisztikai vizsgálatokkal történő információ kinyerése. Az adatbányászat egy már meglévő, valamilyen egyéb célból összegyűlt adathalmazban keres megbúvó, rejtett és számunkra hasznos, releváns összefüggéseket, ismereteket, információkat. Az adatbányászat egyik igen fontos részterülete a szövegbányászat [3], amely a strukturálatlan, (vagy részben strukturált) elektronikus szöveges állományokban megbúvó, nem triviális információk kinyerését jelenti. Jól mutatja a probléma létjogosultságát Merill Lynch elemzése1, mely szerint az üzleti információk 85%-a strukturálatlan, illetve részben strukturált adat formájában áll rendelkezésre, mint pl. e-mailek, emlékeztetők, üzleti és kutatási beszámolók, prezentációk, hírek, reklámanyagok, weboldalak, ügyfélszolgálati tevékenység jegyzetei, stb. Az adatbányászathoz hasonlóan a szövegbányászat is a látens összefüggések és rejtett ismeretanyagok automatikus kinyerésére hivatott, de inputja folyó szövegek, azaz strukturálatlan, vagy részben strukturált dokumentumok. A szövegbányászati problémák megoldásai eltérő eszközöket igényelnek, itt modellezni kell az emberek által írt szövegek szintaktikai, szemantikai szerkezetét, sőt a pontos megértéshez azok stílusát is. Napjainkra a tudásmenedzsment egyik legfontosabb információtechnológiai eszközévé vált a szövegbányászat, melynek segítségével üzleti versenyelőny szerezhető. Az új alkalmazási lehetőségek közül a webbányászat az egyik legígéretesebb, mivel a világ legnagyobb és leggyorsabban bővülő adattárát, az Internetet használja. A szöveg- vagy web-bányászati rendszereknek számos alkalmazása képzelhető el, úgymint a 2008 őszén zajló amerikai elnökválasztás finiséhez érkező kampány2, ahol a jelölteknek égető szükségük volt a bizonytalan szavazókra, ezért összetett automatikus webbányászati módszerek segítségével Adatbányászok: http://www.168ora.hu/cikk.php?cikk=24066 (2008)
1
Adatbányászat az elnökválasztási kampányban: http://index.hu/tech/szoftver/obam080531/ (2008)
2
-3-
próbálták megtudni a fórumokon vagy blogokon fellelhető vélemények alapján a potenciális szavazók preferenciáit, álláspontjait. A WWW a jellegéből, struktúrájából fakadóan kihívásokkal teli platformot jelent az online szövegbányászati rendszerek számára3. Ezen kihívások a következők: ●
Elosztott adatstruktúra: Az Interneten jelen lévő információtároló szerverek egy előre meg nem határozott, önszerveződő struktúrájú kapcsolatban állnak egymással, vagyis az adatok fizikailag más-más helyen lelhetőek fel, amelyeket egységesen kell kezelni függetlenül forrásuktól, formázásuktól, a nyelvektől, nyelvezetüktől, valamint stílusuktól.
●
Változó tartalmak: Az Internethez kapcsolódó dokumentumok bármikor eltűnhetnek vagy változhatnak. Becslések szerint az Interneten elérhető tartalom 40%-a legalább havi rendszerességgel módosul.
●
Óriási méretek: Az Internet struktúrájából fakadóan lehetőséget biztosít minden fizikailag egy helyen tárolt adatbázisnál nagyobb adattömeg elérésére. Ekkora méretnél már komoly kérdéseket vet fel a szövegek feldolgozásának sebessége. Ráadásul a jelenlegi méret továbbra is exponenciális ütemben bővül.
●
Redundáns és strukturálatlan szövegek: Az elérhető szövegek jelentős része többször is jelen van a hálózaton. Ezen redundáns dokumentumok aránya meghaladhatja akár a teljes adatmennyiség 30%-át, ezért figyelni kell, hogy az ugyanolyan tartalmú dokumentumok csak egyszer szerepeljenek az adott korpuszban. Ugyanakkor a szövegbányászat számára a redundancia lehetőségeket is hordozhat, ugyanis ha ugyanazon információ több helyen jelenik meg, az annál megbízhatóbbnak tekinthető.
●
Ellenőrizhetetlen adatminőség: Az újonnan megjelenő szövegek cenzúrázatlanul kerülnek ki a Webre, a szerkesztői feladatokat pedig senki sem látja el. Ezért előfordulhat, hogy elavult, vagy valótlan tartalmak válnak elérhetővé, ezáltal téves információk kerülhetnek előtérbe. Ebből kifolyólag fokozottan figyelni kell a kinyert adat megbízhatóságára, minőségére. A probléma jelentőségét jól mutatja az a közelmúltban történt eset, amikor egy nagy amerikai hírportálon egy amerikai légitársaság rossz pénzügyi helyzetéről szóló, 7 évvel ezelőtti hír csak később módosult. Miután a Google változáskövető rendszerébe belekerült a hír, és végigfutott a világon, a társaság részvényeinek árfolyama meredek esésbe kezdett.
Szövegbányászat – Nyelvtechnológia a PC világában: http://sznoberia.blogter.hu/?post_id=208013
3
(2007)
-4-
2.3. Kapcsolódó munkák A webtartalom-bányászat célja az Interneten elérhető szöveges dokumentumokból valamilyen szempont szerint hasznosnak vélt információk kinyerése. A kezdeti klasszikus webtartalom-bányászati próbálkozások után [4][5] a kutatók figyelme a webbányászat két másik részterületére a Web Usage Mining (webhasználat elemzés) [6][7] és a Wrapper Induction (struktúra felderítés) [8] felé fordult. A Wrapper Induction célja (HTML DOM) strukturált adatok automatikus módon történő kinyerése (cél a struktúra automatikus felismerése),
többek
között
webshopok
termékinformációs
oldalaihoz
hasonló
dokumentumokból. Ugyanakkor a Web Usage Mining feladata a felhasználók böngészési szokásairól összegyűjtött, vagy generált adatok alapján automatikusan felkutatni és elemezni a viselkedési mintákat. Az utóbbi esztendők szövegbányászati eredményeinek köszönhetően a közeljövőben úgy vélem a webtartalom-bányászat ismét a figyelem középpontjába kerülhet. A webtartalom-bányaszati alkalmazásokra példa a FlipDog.com által kifejlesztett, egészen új elven működő álláskereső portál, amely automatikusan gyűjtötte össze a munkalehetőségeket több mint 60.000 vállalat weboldaláról. Mindemellett havonta kiadtak egy elemzést az adatbázisukban megtalálható minták és trendek változásairól, amelyet sok szervezet használ, hiszen ehhez hasonló átfogó és naprakész értékelés máshol nem elérhető. Az információk automatikus kinyerése elég hitelesnek bizonyult, ám adott esetben a minél nagyobb pontosság elérése érdekében az alacsony megbízhatóságú weboldalakról kinyert információkat manuálisan is ellenőrizték [9]. Ismereteim szerint ez a dolgozat az első publikált munka, amely magyar nyelvű honlapokra irányuló webbányászati megoldást mutat be. A dokumentumosztályozási probléma [10] megoldása során (egyes cégekhez köthető weboldalak azonosítása) a pozitív és jelöletlen példákból való tanulás módszerét alkalmaztam. Ezen probléma megoldására publikált rendszerek [11][12] a kétlépéses megközelítést alkalmazzák, amelynek részletes bemutatása a 3.1.1. fejezetben történik. A publikált rendszerek elsősorban a negatív példák kiválasztásában különböznek, egészen az egyszerű többségi szavazástól a kernel módszerekig [13] több lehetőség is megtalálható. A
szövegbányászati
rendszerek
számára
elengedhetetlenül
fontos
az
egyes
tulajdonnevek azonosítása, hiszen ezek általában jelentős információhordozó szerepet tölthetnek be a szövegekben. Az 1990-es évek közepe óta kutatott terület egy kétszintű problémának bizonyult: egyrészről meg kell találni és fel kell ismerni a szöveg(ek)ben az előre definiált kategóriákba tartozó tokensorozatokat, másrészről a megfelelő szemantikai osztályokba kell azokat sorolni. Az utóbbi időben egyre nagyobb figyelmet kaptak a -5-
tulajdonnév felismerő rendszerek. A Message Understanding Conference MUC-7 keretén belül a tulajdonnevek azonosítása, valamint a személynevek, földrajzi nevek, szervezetek egyéb kategóriákba sorolása, továbbá egyéb, időt, mennyiséget stb. leíró kifejezések felismerése volt a feladat [14]. 2003-ban a Conferenceon Computational Natural Language Learning (CoNNL) által meghirdetett nyílt versenysorozaton angol és német nyelvű szövegekben egyazon modell építésével tulajdonnevek felismerése volt a célkitűzés [15]. Napjainkban a probléma legsikeresebbnek vélt, és egyben leggyakrabban használt megközelítésének a szekvenciatanulás bizonyult, amelynek legismertebb képviselője a Conditional Random Fields (CRF) [16]. Léteznek magyar nyelvre is alkalmazott szabályalapú [17] és gépi tanulási tulajdonnévfelismerő rendszerek [18][19]. A statisztikai rendszereket elsősorban a Szegedi Tudományegyetemen készített gazdasági tulajdonnév korpusz [20] inspirálta.
-6-
3. A vállalkozások címeit kinyerő rendszer Dolgozatomban - a távlati célok elérése érdekében tett első lépésként – magyarországi vállalkozások megnevezésének és címeinek online kereséseken alapuló automatikus kinyerésének problémájára fókuszáltam. A rendszer egy adott tevékenységi kör lekérdezésére a WWW-ben elérhető vállalkozások neveit és címeit adja eredményül. Tehát egy „autókereskedés Szeged” keresőkifejezésre a „C-Mobil Kft. 6728 Szeged, Napos út 6.” rekordot adja vissza egy lehetséges találatként (a másik több tucat találat között). Azért választottam a címek azonosítását első lépésként, mert az automatikus rendszer outputja könnyedén kiértékelhető a Cylex Tehnologia Informatiei SRL4 által rendelkezésemre bocsátott címlista alapján, és mindemellett mindennapi gyakorlati alkalmazása is komoly előnyöket biztosíthat a döntéshozók számára. A probléma megoldása során egyaránt alkalmaztam szabályalapú rendszereket, gépi tanuló algoritmusokat és egyéb heurisztikákat. A rendszer több, elkülöníthető részprobléma megoldásaként áll elő (az architektúrát az 1. ábra szemlélteti): A rendszer inputja egy keresőkifejezés, ami jellemzően egy tevékenységi kör, ami alapján on-line keresők (Google és Yahoo) segítségével letöltjük a találati oldalakat. Ezek közül a nem magyar nyelvű és kevés szót tartalmazó oldalak kiszűrésre kerülnek. A szűrésen átment dokumentumokból kiválasztásra kerülnek a céges honlapok, ugyanis az online keresőket alkalmazva nem mindig találtam releváns oldalakat, ezért szükséges volt ezek szűrése, osztályozása. Az egyes vállalatok internetes oldalainak az azonosítása érdekében a kereséshez használt online keresők eredményeit automatikusan „céges” és „nem céges” csoportokba soroltam. A probléma megoldásához a pozitív és jelöletlen példákból való tanulás megközelítését alkalmaztam, ahol a standard módszer egy módosított változatát használtam. A „céges”-nek ítélt weblapokon ezután az egyes cégek neveinek és címeinek automatikus jelölésére került sor (tulajdonnév felismerési feladat). Erre a részproblémára mind szabályalapú megközelítéssel, mind gépi tanulási módszerrel adtam megoldást, ezáltal lehetőség nyílt a két módszer összehasonlítására is. Az egyes honlapokon található címek és cégnevek azonosításán túl, az ellenőrizhetőség miatt szükség volt azok egységes formátumra hozására is, illetve ha egy oldalon több cím is szerepelt, egyszerű heurisztikák segítségével hozzárendeltem az adott cég nevéhez a hozzátartozó címet is, ami egy – a keresett tevékenységi körhöz kapcsolódó - cégnév címlistát eredményez. 4
http://www.cylex-tudakozo.hu/
-7-
1. ábra: A rendszer felépítése
3.1. Honlapok osztályozása Az első kísérletek kiértékelése során a hibák elemzésekor azonosítottam azt a problémát, hogy az online keresők találatai nagyon sok spam oldalt tartalmaznak. Ezek a nem releváns találatok rontják a hatékonyságot. A célom az volt, hogy a vállalatok weblapjait megkülönböztessem minden egyéb típusú weblaptól a későbbi (címfelismerésen túli) munka megkönnyítése érdekében. Ehhez a pozitív és jelöletlen példákból tanulás módszerét választottam.
3.1.1. Tanulás pozitív és jelöletlen példákból A standard szövegklasszifikációs eljárások [11][12] egy megadott tanulóhalmaz alapján megtanult modell szerint sorolják be az új, ismeretlen dokumentumokat az előre definiált osztályokba. A tanítóhalmaz általában minden osztályra tartalmaz példákat. Ezen felügyelt tanulási módszerek legnagyobb hátránya, hogy a pontos tanuláshoz szükség van egy nagy -8-
méretű, felcímkézett tanító adatbázisra. Ezt általában manuálisan jelölik, amely igen időigényes folyamat. A negatív példák keresése különösen fontos és nehéz feladat, mivel ezek egyenletesen írják le -a pozitív eseteken kívüli- univerzum halmazt. A honlap osztályozási feladatban a pozitív példák (céges oldalak) és a jelöletlenek könnyen gyűjthetőek. Az én esetemben a kézi jelölés elkerülhető. Megközelítésemben egy rendelkezésre álló pozitív
tanítóhalmaz
és
egy
jelöletlen
halmaz
segítségével
valósítom
meg
a
szövegklasszifikációt. A fő nehézség ebben az esetben az, hogy a jelöletlen halmaz tartalmazhat pozitív példákat is, ezért a klasszifikációt megelőzi egy előfeldolgozási szakasz, amelyben megbízható negatív példákat nyerünk ki automatikusan ebből a halmazból. A problémát éppen ezért kétlépéses stratégiával szokták megközelíteni [11]: 1. lépés: A jelöletlen halmazból azonosítani kell a legvalószínűbb negatív példákat automatikus eljárással. 2. lépés: A pozitív tanítóhalmaz és a jelöletlen halmaz negatív elemeiből összetevődő tanítóhalmaz segítségével „klasszikus” szövegklasszifikációs algoritmus alkalmazása. A probléma gyakorlati megvalósítása során az eddig alkalmazott eljáráson túl, annak módosított változatait is implementáltam. 1. lépés: Positive Examples Based Learning (PEBL, pozitív példákon alapuló tanulás): az eddig publikált módszerekben [10][11] egy pozitív szólista készült, amelybe minden olyan szó bekerült, amely átlagosan többször fordult elő a pozitív dokumentumokban, mint a jelöletlen korpuszban. Ennek a listának a segítségével minden olyan dokumentumot eltávolítok a jelöletlen halmazból, amelyben legalább egyszer előfordult a pozitív szólista egy eleme. Ez az új leszűkített jelöletlen halmaz jelentette a később alkalmazott klasszikus szövegklasszifikációs algoritmus negatív halmazát. Átlagos tfidf alapú megközelítés (ATFIDF): ez a saját módszer egy pozitív szólistát készít, melynek alapjául a pozitív és a jelöletlen halmaz átlagos tf-idf súlyozása szolgált (lásd 3.1.4. fejezet). Ezután a negatív halmaz kijelölése a hagyományos módszerhez hasonlóan történt. Vegyes megközelítés: a hagyományos és a VTM alapú megközelítések szólistájának összefésülése (uniója) révén egy bővebb pozitív lista segítségével az eddigiekhez hasonló módon került kijelölésre a negatív korpusz. 2. lépés: Mindhárom esetben klasszikus szövegklasszifikáció alkalmazása, néhány új, a korábbiakban nem alkalmazott jellemzővel bővített térben.
-9-
3.1.2. Honlap osztályozási adatbázis A honlap osztályozási feladat megoldásához és kiértékeléséhez szükséges adatbázisok alapjául, egy a Cylex által rendelkezésemre bocsátott lista szolgált, amely tízezer, többségében magyarországi vállalkozás legfontosabb információt tartalmazza, úgy mint a vállalkozás megnevezése, pontos címe, telefonszáma, tevékenységi köre, és amennyiben az elérhető, akkor annak e-mail címe és weboldala. A későbbi könnyebb feldolgozhatóság érdekében szükséges volt a listában szereplő vállalkozások normalizálása, egységes formára hozása. A tanító és kiértékelő adatbázisok a céglista bejegyzései alapján indított, a Google és a Yahoo API-val történő keresések találatainak letöltésével álltak elő. A nyílt forráskódú online kereső API-k előzetes regisztráció után, napi keresési limitek (a Google API esetében ez napi 1000, míg a Yahoo esetében napi 5000 lekérdezés) közt használhatóak. Mivel napjainkban alapkövetelménnyé vált, hogy betűinket és számainkat a saját nyelvünkön, ékezetekkel ellátva jelenítsék meg a weboldalak, ezért azok készítői különös figyelmet szentelnek a helyes karakterkódolásnak. Az egyes letöltött weblapok helyes karakterkódolásának megállapítása a későbbi
hatékony
adatfeldolgozás
érdekében
elengedhetetlenül
fontos,
ugyanakkor
meglepően bonyolult feladatnak bizonyult. Megoldást végül a Mozilla Firefox nyílt forráskódú szoftverének a karakterkódolás megállapításáért felelős software könyvtára jelentette. Az online keresők API-jai jól paraméterezhetőek, ezért a keresések kizárólag magyar nyelven történtek. Sajnos ennek ellenére szükség volt a letöltött weblapok nyelvi szűrésére, ugyanis még így is jelentős mennyiségű angol nyelvű lap került az adatbázisokba. A szűrés alapja az egyes dokumentumokban szereplő angol szavak aránya volt. Amennyiben a dokumentumban szereplő szavak több mint 40%-a szerepelt egy angol szólistában5 [21], akkor az a dokumentum kikerült a korpuszból. Továbbá kiszűrésre került minden 20-nál kevesebb szót tartalmazó dokumentum, mivel azok sok esetben egy belépő, vagy valamilyen hibáról értesítő oldalt tartalmaztak. A Cylex lista 4000 véletlenszerűen választott vállalkozásának URL címe biztosította a honlap osztályozási feladat pozitív példáit. Letöltés 3891 alkalommal volt sikeres, a többi esetben a lista nem tartalmazott webcímet. Az angol nyelvi és méret szűrések után 1646 dokumentum maradt a halmazban. A jelöletlen halmazba a dokumentumok a következőképp kerültek: a Cylex lista tevékenységi kör mezőjében szereplő kifejezések közül azon szavakra kerestem rá az online keresők segítségével, amelyek legalább harmincszor fordultak elő. Ez 279 különböző online 5
az English Gigaword korpuszban több mint tízezerszer előforduló szavak
- 10 -
keresést és 5253 letöltött fájlt eredményezett. A szűrések után 3384 dokumentumból tevődött össze a jelöletlen halmaz. A különböző módszerek végső kiértékeléséhez szükség volt egy etalon kiértékelési korpuszra. Ezért egy annotátor manuálisan kiválasztott mindkét listából 200 egyértelműen pozitív, illetve negatív weblapot.
3.1.3. A honlap osztályozás jellemzőtere A vektortérmodell (VTM) [22] a szövegbányászati modellek első, és egyben egyik legszélesebb körben használt dokumentum reprezentációs eszköze. A modellben a korpusz (dokumentumok halmaza) minden dokumentuma egy pontnak felel meg a sokdimenziós vektortérben, melyben egy dokumentumot egy vektor ír le. A vektor minden eleme az egyes termek (szavak esetleg szósorozatok) előfordulását jelenti. Ez a sokdimenziós struktúra nyújt lehetőséget
az
egyes
dokumentumok
egymáshoz
viszonyított
hasonlóságának
meghatározására, dokumentum klaszterek definiálására, valamint egyéb jelentéstartalom kinyerésére. A dokumentumhalmazt leíró lexikon alapesetben minden egyedi szót tartalmaz (legalább egy alkalommal, legalább egy dokumentumban előfordultak a vizsgált korpuszban), a vektortérmodell dimenziószáma pedig a lexikon méretével azonos. Az egyedi szavak száma egy nyelv esetében átlagosan 100.000 szó, de ez természetesen nyelvenként jelentősen eltérhet, és függ a felölelt témák diverzitásától is. A vektortér dimenziószámának csökkentésére különböző szövegbányászati előfeldolgozási műveleteket lehet alkalmazni, úgymint stopszó lista-alapú szűrés vagy szótövezés. A vektorteret egy TDNxM term-dokumentum előfordulási mátrixszal (Term-Document mátrix vagy TD mátrix) tudjuk leírni, ahol N-nel jelöljük a dokumentumok vektorainak dimenziószámát, míg M-mel a dokumentumok számát. Egy tetszőleges tdij elem pedig az iedik term előfordulásainak számát jelenti a j-edik dokumentumban. Egy TDNxM term-dokumentum mátrixot többféleképpen valósíthatunk meg. Bináris TD mátrixról akkor beszélhetünk, ha a mátrix elemei csak 0 és 1 értéket vehetnek fel. Ebben az esetben, ha egy tetszőleges elem értéke 1, akkor az i-edik term szerepel a j-edik dokumentumban, máskülönben 0 (amennyiben nincs benne a dokumentumban). A szógyakorisági TD mátrix esetén az egyes elemek az egyedi szavak j-edik dokumentumban való előfordulásának a gyakoriságát adják meg, mely nyilvánvalóan több információt hordoz a bináris megközelítéssel szemben. A vektortér még pontosabb reprezentálására a súlyozott TD mátrixot használják, amely az előbbi gyakorisági értékeket súlyozza, ezáltal kisebb súllyal kerülnek a mátrixba a kevésbé releváns szavak. Erre az egyik legáltalánosabban használt módszer a tf-idf (term frequency– - 11 -
inverse document frequency) normalizáció. Ekkor azon termek kapnak nagyobb súlyt, amelyek előfordulása jobban jellemzi a dokumentum tartalmát. Alapjául egyrészről a TF súlyozás szolgál, amit alábbi módon számítanak:
tf i,j=
ni,j
∑ n k,j
i-edik term j-edik dokumentumra vonatkozó tf értékét kiszámító képlet Ezen súlyozási séma fogyatékossága, hogy a lexikon összes szavát azonos módon számítja, holott az egyes témaspecifikus szavak, mint pl. az „adatbányászat” szó nyilvánvalóan jobban leírja egy dokumentum tartalmát, mint esetleg egy névelő. Másrészről az inverz dokumentum frekvencia (Idf) az alábbi képlettel képes leírni, hogy adott szó a korpuszbeli ritkasága alapján mekkora megkülönböztető képességgel rendelkezik:
idf i= log
∣D∣ , ∣ {d j :t i ∈d j }∣
i-edik term idf értékét kiszámító képlet Ahol a hányados számlálójában az összes dokumentum száma szerepel, a nevezőben pedig azon dokumentumok száma, amelyek tartalmazzák az adott termet. Ezek felhasználásával a következőképpen kapjuk meg a tf-idf-t: tfidf i,j =tf i,j∗idf i
tf-idf értékének kiszámításának képlete Ezáltal azok a szavak szerepelnek nagyobb súllyal egy dokumentumra vonatkoztatva, amelyek hangsúlyosak arra nézve, továbbá más témájú dokumentumokban nem fordulnak elő jellemzően. Az implementáció folyamán a GNU licenc alatt álló, nyílt forráskódú, JAVA nyelven implementált Text Clustering Toolkit (TCT)6
library segítségével kerültek
kiszámításra ezen értékek. A VTM megközelítésnek a legnagyobb hátránya, hogy a szavak egymáshoz való (szintaktikai és szemantikai) viszonya elveszik, mivel egy TD mátrix csak az egyedi szavak előfordulását képes reprezentálni az egyes dokumentumokban. Továbbá az ábrázolt tér dimenziószáma igen magas is lehet, a TD mátrix pedig igen ritka, mivel a teljes lexikon egyedi szavainak igen kis hányada fordul elő egy dokumentumban. Ugyanakkor elmondható, hogy egy egyszerű és gyors megoldás nyújt a dokumentumok hasonlóságának meghatározására, valamint a standard gépi tanulási technikák alkalmazására. 6
TCT (Text Clustering Toolkit) University College Dublin (http://mlg.ucd.ie/)
- 12 -
A tf-idf súlyozást két helyen is alkalmaztam a rendszerben. Egyrészt az egyes termek átlagos tf-idf értékei (tfidf normalizált TD mátrix oszlopátlaga) alapján került kiválogatásra az ATFID megközelítés esetén a pozitív szólista. Azaz minden olyan, a korpuszban legalább hússzor előforduló szó bekerült a szólistába, melynek a pozitív dokumentumhalmazban számított átlagos tf-idf súlya nagyobb volt, mint a jelöletlen halmazból számított súlya. Így természetesen
olyan
szavak
is
beválogatásra
kerültek,
amely
csak
a
pozitív
dokumentumokban fordult elő. A
pozitív
és
jelöletlen
példákból
való
tanulás
második
lépésének
szövegklasszifikációjánál is a korpusz tf-idf által súlyozott TD mátrixának használata bizonyult a előnyösebbnek a normalizálás nélküli (bináris) TD mátrixhoz képest. Az osztályozási probléma megoldásához több új jellemzőt is felvettem a dokumentumokat leíró vektorokhoz: ●
Az egyes weblapok TITLE tag-jeiben szereplő szavak a „titleword” címkével kerültek a lexikonba, amely ugyan a dimenziószám növekedésével járt, de ezáltal ezek a szavak a DOM fában való elhelyezkedésük plussz információját is tartalmazták. Így például a „kft” szó „titleworld_kft” ként szerepel a lexikonban.
●
Továbbá bekerült néhány, a weblapokra jellemző adat is, úgy mint a lapon található szavak, címek, és kifelé mutató élek (linkek) száma. Ezek ugyan növelték a vektortér dimenziószámát, de információtartalmuk miatt a végső
eredményre kedvező hatással voltak. A kezelhetőség érdekében különböző szűréseket is alkalmaznom kellett. A stopword alapú szűrés segítségével azon szavak, amelyek nem bírnak különösebb jelentéstartalommal, nem kerültek bele a VTM lexikonjába, ezáltal annak dimenziószáma is kisebb lett. Az egyes nyelvek stopword listája az Interneten fellelhető, így például a [23] nevezett helyen 23 különböző nyelv listájához lehet hozzáférni. A tf-idf szűrés során a listában szereplő szavak többségének ugyan eliminálásra kell kerülnie, de mivel ezen szavak semmilyen jelentés megkülönböztető szereppel nem bírnak, így előzetes eltávolításuk csökkenti alkalmazásuk költségeit. A stopwordökön túl a dokumentumokban előforduló számok kiszűrése is hasznosnak bizonyult.
3.1.5. Döntési fa-alapú osztályozás A VTM alapú osztályozáshoz a nagy dimenziós terekben is hatékony döntési fákat használtam [24]. Ezen megközelítés az ember számára könnyen értelmezhető outputot generál, ráadásul éppen diszkrét jellemzők feldolgozására fejlesztették ki. A döntési fa felépítésére több hatékony algoritmus létezik, például a C4.5 [25] illetve annak elődje, az ID3 (Iterative Dichotomiser 3), amelyekkel diszkrét osztályok felügyelt tanulását lehet
- 13 -
végezni. Ennek a folyamatnak az outputja egy tengelypárhuzamos vágásokat alkalmazó döntési fa lesz. Vagyis az ismert entitások által alkotott teret a tengellyel párhuzamos hipersíkok mentén részterekre osztja fel. A C4.5 algoritmust használhatjuk folytonos jellemző értékek esetén is, mivel a d-dimenziós tér pontjaiként kezeli a tulajdonságvektorokat. A C4.5 az „oszd meg és uralkodj” tudásreprezentációra épül, vagyis a tanulási folyamat közben egy részteret alterekre bontunk fel, ha az nem bizonyult kellőképpen homogénnek.
A gyakorlatban az új-zélandi Waikato Egyetem által készített nyílt forrású, JAVA nyelven implementált adatbányászati alkalmazásokat támogató programcsomagot vettem igénybe. A Weka-ban [26] a C4.5 algoritmus egy továbbfejlesztett változatát, a J48 osztályt használtam, amely talán a legelterjedtebb döntési fa tanuló módszer e programcsomagban.
3.2. Címek automatikus felismerése Ebben a részfeladatban a különböző honlapokon található címek és vállalkozásnevek azonosítása volt a cél. A címek megadásának ugyan van előre meghatározott pontos formája, ám ha ezt nem tartják be, az ugyan az emberi szem számára továbbra is felismerhető marad, míg az automatikus felismerés nem triviális. A probléma megoldásakor többféle megközelítést alkalmaztam, így lehetőség nyílt a szabályalapú és a gépi tanulási módszer összehasonlítására. A gépi tanulási megközelítés során a Szegedi Tudományegyetemen kifejlesztett tulajdonnév felismerő rendszert alkalmaztam.
3.2.1. A manuálisan annotált címkorpusz Mivel a cél az egyes részfeladatok egymástól függetlenül történő kiértékelése volt, ezért fel kellett tenni egy etalon „céges” honlaposztályozót. Az egy adott céghez köthető weboldalak a vállalkozások adatait tartalmazó Cylex adatbázis segítségével kerültek letöltésre. Mivel csak az egyes társaságok saját weboldalai, azon belül is azok, amelyek tartalmazzák a vállalat címét vagy nevét, számítottak relevánsnak, ezért az online keresők „site” speciális kulcsszava segítségével csak a cégek saját oldalain történt a keresés. A nem releváns találatok elkerülése érdekében egy keresőkifejezés tartalmazta továbbá a cég címében szereplő közterület megnevezés első tokenjét is. Amennyiben az nem volt elérhető az adatbázisban, akkor e helyett a vállalkozás nevének első tokenje szerepelt helyette. Ez alapján egy adott keresőkifejezés a következőképpen alakult: site: vallalatwebcime.hu közterület amennyiben a közterület nem volt elérhető: site: vallalatwebcime.hu vállalkozás neve Természetesen a keresés csak abban az esetben járt sikerrel, ha az adatbázis tartalmazta - 14 -
az adott webcímet. Sajnos több esetben is előfordult, hogy a cím nem helyesen került az adatbázisba, vagy az oldal címe időközben megváltozott. Az egy adott céghez tartozó weboldalak egy könyvtárba kerültek, amennyiben pedig a Google és Yahoo találatai közt volt egyezés, akkor a kérdéses oldal csak egyszer került letöltésre. HTML annotációs eszköz: A HTML oldalak manuális jelöléséhez elengedhetetlenül szükség volt egy az igényeket kielégítő, ugyanakkor kényelmes és hatékony eszközre. A 2008 tavaszán az MTA-SZTE Mesterséges Intelligencia Tanszék Kutatócsoportja által készített, HTML oldalak annotálását segítő, szabadon letölthető Mozilla Firefox extension felhasználásával történt az annotálás [27]. Ennek segítségével az annotátorok az oldalakat eredeti megjelenésükben látták, nem kellett a HTML-ek forrását szerkeszteniük. Az eszköz további előnye, hogy nem módosítja a DOM fát, mivel csak speciális komment tageket illeszt be a forrásba, így az oldalak eredeti megjelenése nem változik. Eredeti oldal
Annotált oldal
|
|
width="100%"><STRONG>No1. Gödöllő, Veres P.
30-9528-228 |
u.
18 Tel: 30-9528-228
Címkék: A korpuszban jelölendő típusok a következők voltak: VALLALAT:
különböző szervezetek és cégek megnevezései
HAZSZAM:
lakásszámok
IRANYITOSZAM:
települések postai irányítószámai
UTCA:
közterületek megnevezései és azok típusai
VAROS:
települések megnevezései
Az annotációs folyamat: A vállalkozások adatait tartalmazó adatbázisból 100 db céget választottam ki véletlenszerűen, majd az ezekhez tartozó 454 Google találatot letöltöttem. Ezek alkotják a cím-annotációs korpuszt. Az annotációt két nyelvész hallgató végezte el, akik egymástól függetlenül dolgoztak egy előzetesen megírt útmutató alapján, amely tartalmazta a feladat - 15 -
pontos leírását, valamint néhány példát és ellenpéldát egyaránt. Feladatuk az oldalakon szereplő cégnevek és címek jelölése volt. Az útmutató a legfontosabb előírása ez volt: „A cél az, hogy az oldalakon minden magyar cég és egyéb szervezet nevét és címét megjelölünk, fontos, hogy csak magyar cégeket jelölünk magyar címekkel. Nem jelölünk magyar címeket, cégeket, amennyiben bármely más nyelven vannak leírva.” Az annotátoroknak a folyamat során tilos volt a vitás eseteket egymással megbeszélniük. A folyamat végén egy harmadik nyelvész hallgató egyértelműsítette azokat az eseteket, amikor a két annotátor eltérően jelölt. Az így elkészült korpusz 536 VAROS, 526 UTCA, 515 HAZSZAM, 436 IRANYITOSZAM és 936 VALLALAT címkét tartalmaz.
3.2.2. Szabályalapú megközelítés címek és cégnevek jelölésére A szabályalapú megközelítésen a kézzel gyűjtött listaillesztési és reguláris kifejezési szabályok egymás utáni végrehajtását jelenti. Nehézséget jelentett többek közt, hogy a HTML forrásban való keresés értelemszerűen jóval nehezebb, mint az egyszerű szöveges dokumentumok esetén. Mindemellett kezelni kellett az esetleges elírásokat, a rövidítések feloldását vagy az ékezetek esetenkénti elhagyását. A helyesírási problémák feloldására a Levenstein-távolságfüggvényt alkalmaztam, ami képes egy mérőszámot adni arra, hogy milyen költségű beszúrás, törlés és csere operációk sorozatával vihetünk át egy stringet a másikba.
A rendszer alapját többek közt különböző listák jelentették, mint például a Magyar Posta honlapjáról letölthető adatbázis [28], melyben a hat legnagyobb magyarországi város közterületei és irányítószámai szerepeltek. Továbbá a lehetséges városnevek, közterület- vagy vállalkozás típusok is egy-egy felsorolást alkottak. A hatékonyabb működés érdekében a listák egyes tokenjei többféleképpen is bekerültek a rendszerbe, így ékezetek nélkül és a közterületek megnevezései esetén rövidített formában is. Ezért pl. a „Dózsa György” közterület név „Dózsa György”, „Dozsa Gyorgy”, „Dózsa Gy”, valamint „Dozsa Gy”-ként is szerepel a rendszerben. Címek esetén a megközelítésnek az alapgondolata a következő volt: amennyiben az algoritmus a HTML oldalakon szereplő szövegben egy közterület típust leíró tokent talált, annak környékén igen nagy valószínűséggel egy cím szerepel. Ezért vettem ennek a tokennek egy adott k távolságon belüli szomszédait, és a továbbiakban ezen a tokensorozaton dolgoztam. Ebben a környezetben a fenti listák alapján próbálja azonosítani az egyes elemeket az algoritmus. Szabad tagok esetén a közterület típus előtt és után egyaránt, míg félig szabad tagokat csak az adott feltételek szerint keres. A módszer nem csak teljes címeket jelölt, hiszen előfordulhatnak csonka címzések is, - 16 -
jellemzően az irányítószám hiányával. Továbbá ha az egyik tagot esetlegesen nem sikerült azonosítani, a többi attól még jelölésre került, ezáltal csökkentve a hiba mértékét. A cégnevek azonosítása a címekhez hasonló módon történt. Ebben az esetben viszont a HTML oldalakon a cégnevek végződéseit, mint például „kft”, vagy „bt” kereste az algoritmus, és cégnévnek jelölte azt a nagy kezdőbetűkkel rendelkező token sorozatot, amely a cégvégződést megelőzte. Az egyes elemek értelmezési, azonosítási lehetőségei a következők [29]: település megnevezése: szabad tag magyarországi települések neveinek halmaza (rövidítéseket tartalmazhat) irányítószám: szabad tag: (H)[19] [09] [09] [09] postafiók: szabad tag: postafiók/pf(.) [09]? [09]? [09]? [09] közterület típusa: félig szabad tag (nem szerepelhet a közterület előtt): magyarországi közterületek típusai (rövidítéseket tartalmazhat) közterület megnevezése: félig szabad tag (nem szerepelhet településnév előtt): magyarországi közterületek neveinek halmaza lakásszám: félig szabad tag (nem szerepelhet a közterület megnevezése előtt) római szám/egész szám(.) emelet egész szám (.) kerületszám: római szám/egész szám(.) ker(.)/kerület
3.2.3. Gépi tanulási megközelítés címek és cégnevek jelölésére Ezen megközelítés során a Szegedi Tudományegyetem Informatikai Tanszékcsoportján Szarvas György és Farkas Richárd által 2006-ban publikált nyelvfüggetlen tulajdonnév felismerő rendszerhez Named Entity Recognition kialakított jellemzőteret használtam fel [18]. Ezen jellemzők a következők: ●
Felszíni jellemzők: kis/nagy kezdőbetű, szóhossz, stb.
●
Frekvenciainformációk:
token
előfordulási
gyakorisága
(webről
gyűjtött
frekvenciaszótárban) ●
Környezeti jellemzők: mondatbeli pozíció, zárójelek, idézőjelek használata, stb.
●
Egyértelmű tulajdonnevek listája: azon szavak listája, amelyeknek az osztálya a tanítóhalmaz alapján egyértelműen meghatározott
●
Tulajdonnév szótárak: Internetről letöltött listák, mint pl. vállalat típusok
- 17 -
Az így kialakított jellemzőtérre a tulajdonnév felismerési feladatokban a napjainkban legjobbnak tartott Conditional Random Fields (CRF) tanuló algoritmust alkalmaztam [16], amely a szekvenciatanulás (sequence labeling, stuctured prediction) módszerén alapszik. Ez a megközelítés alapvetően abban különbözik a klasszikus osztályozási feladattól, hogy nem egyetlen szeparált egyed címkéjének előrejelzésére épülő statisztikai modell, hanem osztálycímkék egy egész sorozatára. Ebben az esetben természetesen nem lehet élni az egyedek közti függetlenség feltevésével. A szekvencia alapú tanuló algoritmusok első változata a Rejtett Markov Modell volt [30], melynek később számos változata jelent meg. A CRF a rejtett Markov Modellel ellentétben nem követeli meg (a logisztikus regressziós modell felhasználásának köszönhetően) a jellemzők közötti függetlenségi feltevést.
3.3. A cégnevek és -címek összerendelése A harmadik, és egyben utolsó nagyobb részfeladat célja a letöltött weboldalakon felismert cégnevek és azok címeinek összerendelése. Mivel egy cím, vagy akár egy cég megnevezése is többféleképpen fordulhat elő, ezért elengedhetetlen az egyes címek és vállalatnevek egységes formára hozása (normalizálása), majd ezután annak eldöntése, hogy a szóban forgó céghez mely cím és név tartozik.
3.3.1 Az összerendelés kiértékelése Az egyes honlapokon, amelyek egy adott vállalkozásra vonatkozóan tartalmazzák annak címét vagy megnevezését, más társaságok adatai is szerepelhetnek. Ebben az esetben valamilyen módon szükséges az adott vállalkozáshoz tartozó adatok azonosítása, mivel egy oldalon sok esetben több cím és vállalkozás név fordul elő. A feladatot különböző heurisztikák segítségével oldottam meg. Ezek hatékonyságának mérése a Cylex adatbázis segítségével történt. Annak érdekében, hogy az automatikus címfelismerés hozzáadott hibáját értékelni tudjuk, az egyes heurisztikák az annotátorok által címjelölt és egyértelműsített adatbázison is lemérésre kerültek (ez a címjelölésben etalon adatbázis). Mivel mind a kiértékelő Cylex adatbázist, mind az egyes weblapok tartalmát emberek készítették, valamint a jelölések tökéletlenségéből fakadóan, óhatatlanul előfordultak olyan hibák, amelyek jelentősen megnehezítették a kiértékelést.
- 18 -
Ezekre néhány típuspélda cégnevek esetén: Jelölés
Cylex adatbázis
Data Object kft
Data Object bt
Advanced Micro Logics Informatikai kft
AML Informatikai kft
Bordaganat Diagnosztikai kft
Anyajegy es Bordaganat Diagnosztika kft
Colliers International Ingatlan Tanacsado kft Colliers International Az első esetben az adott honlapon a Cylex adatbázishoz képest másmilyen vállalattípusként szerepelt ugyanaz a vállalkozás. A második esetben a cég megnevezése nem egyezik, mivel az az adatbázisban részben rövidítve szerepel, míg a honlapon a teljes név van feltüntetve. A harmadik esetben az annotátoroknak nem sikerült a teljes vállalkozásnevet azonosítani, továbbá nem teljesen egyeznek a cég megnevezései. Végül a leggyakoribb hibának az egyes vállalattípusok hiánya bizonyult. A címek esetén a következő problémás esetek fordultak elő: Jelölés
Cylex adatbázis
1012 Budapest bokréta str. 11-13.
1012 Budapest bokreta utca 11-13
9500 Celldomolk, árpád.u. .u 34.
9500 Celldomolk arpad utca 34
1092 Budapest raday utca 14
1092 Budapest raday utca 7 3860 Encs ipartelep
1121 Budapest konkoly-thege út 29-33.
1121 Budapest konkoly thege m utca 29-33
Itt az első esetben a honlapon található cím ugyan egy magyarországi cím, de nem magyar nyelven van megadva. Ekkor az annotátor hibázott, mivel a nem magyar nyelven szereplő címeket nem kellett volna jelölnie. A második esetben az adott weblapon nem helyesen szerepel a vállalat címe. A következő esetben a két cím házszáma nem egyezik meg. A következő példában az adatbázisban egy hiányos, nem teljes cím szerepel. Míg az utolsó esetben a honlapon és az adatbázisban különbözőképpen szerepel a közterület megnevezése. A helyesírási és elgépelési problémák kiküszöbölésére ebben az esetben is a Levensteintávolság algoritmus került alkalmazásra.
3.3.2. Cím és cégnév hozzárendelési heurisztikák Abban az esetben, ha egy adott honlap több címet vagy cégnevet tartalmaz, el kell dönteni, hogy ezek közül melyik tartozik az aktuális vállalkozáshoz. A megfelelő elemek kiválasztása, mind a címek, mind a vállalatnevek esetén két-két egyszerű heurisztika segítségével történt.
- 19 -
●
Első vállalkozásnév heurisztika Ez a heurisztika az adott honlapon először előforduló vállalkozásnevet jelöli meg a cég
nevének. ●
Leggyakoribb vállalkozásnév heurisztika Ekkor a honlapon legtöbbször előforduló vállalkozásnevet jelöli a heurisztika a cég
nevének. Abban az esetben, ha több ilyen is előfordulna, a legelőször előforduló említést jelöli a cég nevének. ●
Első cím heurisztika Az első cím heurisztika, az első vállalkozásnév heurisztikához hasonlóan, az oldalon
először előforduló elérhetőséget jelöli a vállalkozás címének. ●
Leggyakoribb cím heurisztika Ebben az esetben a honlapokon legtöbbször előforduló címet rendeli a heurisztika a
vállalkozáshoz. Amennyiben ebből több is van, akkor a cégnév és címpárok webes gyakoriságai alapján hozható döntés: az online keresőknek a következő alakú keresőkifejezést küldi ki a rendszer: „vállalkozás neve + az adott címben szereplő város + közterület neve” Az a cím kerül ekkor kiválasztásra, amelyikre az adott keresőkifejezés esetén a legtöbb találatot adják a keresők.
- 20 -
4. Eredmények A teljes címösszegyűjtő rendszer több, egymástól elválasztható almodulból épül fel. Ebben a fejezetben az egész rendszer végső eredményein kívül az egyes részproblémák hatékonyságát is ismertetem.
4.1. Honlapok osztályozásának eredményei A problémára adott különböző megoldások más-más pozitív szólistát és ennek megfelelően más negatív halmazt eredményeztek. Megközelítés
Pozitív szólista hossza Negatív dokumentumhalmaz mérete
PEBL:
63
1454
ATFIDF
64
1580
Vegyes:
74
1252
1. táblázat: A negatív elem kiválasztó algoritmusok statisztikái Annak érdekében, hogy a különböző megközelítéseket össze lehessen hasonlítani, mind a pozitív, mind a jelöletlen halmazból egy annotátor által kézzel kiválasztott, 200 - 200 pozitív és negatív példából álló, etalon kiértékelő halmazt kellett létrehozni a különböző módszerek kiértékelésére. Ezen a kiértékelő adatbázison, a pozitív tanító halmaz és az 1. táblázatban szereplő negatív halmaz felhasználásával a C4.5 algoritmus pontosság értékei bináris vektortérmodell felhasználása mellett: Megközelítés neve
Tanító halmaz
Kiértékelő halmaz
PEBL:
83,88%
72,78%
Vegyes:
86,86%
76,45%
ATFIDF:
85,12%
80,20%
2. táblázat: A negatív elem kiválasztó algoritmusok eredményei Mint az eredményekből kitűnik, minden esetben a klasszifikációs algoritmusnak sikerült hatékonyan tanulnia a tanító halmazon. A teszthalmazon mind a vegyes, mind a ATFIDF módszer jobbnak bizonyult a hagyományos, eddigiekben publikált megközelítésnél. Különböző megközelítések eredményei A 3. táblázatból egyértelműen kitűnik, hogy a tf-idf súlyozású vektortérmodellen történő tanulás az ATFIDF és a Vegyes listagyűjtések után előálló dokumentumosztályozási tanítóhalmaz mellett is hatékonyabb a bináris megközelítésnél, ugyanakkor a HTML oldalakból kinyert új tulajdonságok is pozitív irányba befolyásolták az eredményt. A - 21 -
leghatékonyabbnak a saját megközelítés tf-idf súlyozású vektortérmodelljein történt tanulások bizonyultak. Vegyes
ATFIDF
Bináris VTM + extra features
75.53%
78.28%
Bináris VTM
70,33%
74.92%
Tf-idf VTM+ extra features
76.45%
79.20%
Tf-idf VTM
71,55%
80.20%
3. táblázat: Különböző megközelítések eredményei A döntési fa paraméterei: A szövegklasszifikáció döntési fával történő tanulás megvalósítása során lehetőség volt annak paraméterezésére. Az alkalmazott J48-as algoritmus számos paramétere módosítható, úgy mint a fa leveleire eső minimális egyedek száma. Ennek alapértelmezett értéke a WEKA programcsomagban 2, ami 20-ra lett módosítva. Ez kisebb, átláthatóbb döntési fát eredményezett, ami segít elkerülni a túltanulást, ami ebben az esetben a túl diverz adatbázis miatt fontos szempont volt.
4.2. Címek automatikus felismerése Az annotátorok közti egyezést és az algoritmusok helyességét is a tulajdonnév felismerő rendszerek standard kiértékelési metrikájával mértem7, amely az algoritmus által jelölt címke helyessége és a lefedett tokensorozat pontossága alapján egyaránt pontoz. Az értékelés frázis szintű, vagyis csak a teljes egészében helyesen eltalált frázis (szósorozat) számít jó találatnak. A mérték minden egyes tulajdonnév osztályra fedési- és pontossági értékét állapítja meg, az ezekből aggregált F-pontszám pedig a hatékonyság végső mérőszáma. Egy c osztályra vonatkozó pontosságot és fedést rendre a
pontosság c=
∣{ E c∩E' c }∣ ∣E' c∣
c osztályra számított pontosság képlete
valamint a fedés c=
∣ { E c∩ E' c }∣ ∣E c∣
c osztályra számított fedés képlete 7
A CoNLL-2003 CRF versenyhez készített hivatalos kiértékelő szkript segítségével.
- 22 -
képletek adják meg, ahol c osztályba tartozó egyedek halmazát Ec jelöli, míg a rendszer által c osztályúnak jelölt egyedeket az E’c. A c osztály F-mértékét a precízió és a fedés harmonikus közepe adja meg, vagyis: F −mérték c=2∗ precízió c∗ fedésc / precízió c +fedésc c osztályra számított F-érték képlete
Az annotátorok közötti egyetértés F mértékkel való leírása során az egyik annotátor jelöléseit etalonnak, míg másikét a jelölésnek vettem. Ez alapján a két annotátor közötti egyetértés a következőképp alakult: HAZSZAM: IRANYITOSZAM: UTCA: VALLALAT: VAROS: ÖSSZESEN:
Precízió 95.64% 96.02% 96.14% 84.84% 96.88% 92.00%
Fedés 84.76% 87.79% 85.04% 54.83% 84.34% 74.99%
Fβ=1 89.87 91.72 90.25 66.62 90.18 82.63
4. táblázat: Annotátorok közti egyetértés Az automatikus rendszerek kiértékelése során a kiértékelési adatbázist a harmadik annotátor által egyértelműsített kézi jelölés jelentette. A szabályalapú megközelítés eredményei az egyértelműsített korpuszon: HAZSZAM: IRANYITOSZAM: UTCA: VALLALAT: VAROS: ÖSSZESEN:
Precízió 80.15% 85.27% 83.49% 47.91% 85.19% 77.50%
Fedés 74.66% 88.24% 80.09% 20.22% 87.83% 62.86%
Fβ=1 77.30 86.73 81.76 28.44 86.49 69.42
5. táblázat: a szabály alapú megközelítés eredményei Mivel CRF rendszer nem kezeli az elírásokat, ezért a két rendszer jobb összehasonlíthatósága végett szükséges volt a szabályalapú megközelítés Levenstein távolság alkalmazása nélküli lefuttatása. Így megadható az elíráskezelés hozzáadott értékét is: HAZSZAM: IRANYITOSZAM: UTCA: VALLALAT: VAROS: ÖSSZESEN:
Precízió 80.15% 84.50% 81.87% 43.77% 83.24% 75.57%
Fedés 71.00% 86.88% 77.69% 22.35% 80.63% 63.16%
Fβ=1 74.12 85.67 79.62 29.59 81.91 68.81
6. táblázat: a szabály alapú megközelítés Levenstein távolság alkalmazása nélkül
- 23 -
A gépi tanulási módszer kiértékelésére a 10-szeres keresztvalidációt alkalmaztam [30], amely a tanítóhalmaz részhalmazokra való particionálását foglalja magában. Ekkor 10 lépésben történik a validáció, és minden lépésben egy részhalmaz jelenti a teszthalmazt, a többi kilenc uniója pedig a tanuló halmazt. Ezáltal minden részhalmaz pontosan egyszer szerepel teszthalmazként, ezek uniója így megegyezik a tanító adatbázissal. HAZSZAM: IRANYITOSZAM: UTCA: VALLALAT: VAROS: ÖSSZESEN:
Precízió 81.35% 86.53% 88.60% 37.33% 89.09% 72.75%
Fedés 71.69% 80.75% 77.38% 29.58% 77.65% 62.51%
Fβ=1 76.21 83.54 82.61 33.01 82.98 67.24
7. táblázat: CRF rendszer eredményei Jól mutatja a gépi tanulásos módszerek egyik nagy előnyét, hogy egy eredetileg nem erre a domainre fejlesztett rendszer a szabályalapú megközelítéshez hasonló eredményt tudott produkálni. Míg a szabályalapú megközelítés során minden esetben egy egészen új rendszert kell fejleszteni, ami igen idő- és erőforrás igényes, addig a gépi tanulásos megközelítés esetén gyakran alkalmazható egy a korábbiakban kifejlesztett rendszernek az aktuális problémára testreszabott változata. Továbbá a gépi tanulás olyan összefüggéseket is képes megtanulni, amire egy szabályalapú megközelítés nem volna alkalmas. Ugyanakkor a szabályalapú megközelítés során szerzett tapasztalatok segíthetnek a gépi tanulás jobb paraméterezésében, hozzásegítve ezáltal azt a jobb eredmény eléréséhez.
4.3. Cím és cégnév hozzárendelési heurisztikák eredményei Annak érdekében, hogy össze lehessen hasonlítani az automatikus gépi jelöléseket, és az annotátorok jelölését is, ebben a fázisban az egyes heurisztikákat különböző jelöléseken is futtattam. Ezek eredményei egyben az egyes heurisztikák elvi maximumát is jelentik. A 8. táblázat alapján az egyértelműsített kézi jelölésen az egyes vállalkozások címei az esetek 85%-ában volt megtalálhatóak. Az adott példák 4%-ában a letöltött weblap ugyan tartalmazott valamilyen címet, de az nem egyezett meg a kiértékelésre használt Cylex lista aktuális vállalkozásához tartozó címével, míg a maradék 11%-ban egyáltalán nem tartalmazott címet a letöltött oldal. A szabályalapú megközelítés az emberi jelöléshez hasonló végeredményt volt képes elérni, mivel az esetek 84%-ában jelölte helyesen a vállalkozások címeit. A sikertelen esetek megoszlása is igen hasonlóan alakult. A CRF rendszer az előzőekkel nagyban megegyező eredményt ért el: 80%-ban tudta helyesen jelölni a címeket, míg az esetek 4%-ában nem volt azonos cím. Ezek alapján az egyes cégekhez tartozó címek - 24 -
előfordulása a következőképp alakult: Etalon (%)
Szabályalapú (%)
CRF (%)
Sikeres címillesztés
85
84
80
Sikertelen címillesztés
15
16
20
Nem tartalmaz címet
11
10
16
Nincs egyező cím
4
6
4
8. táblázat: Címek előfordulási aránya a címkorpuszban Cégnevek esetén az etalon adatbázison csak az esetek 60%-ában sikerült helyes cég megnevezést azonosítani. A sikertelen esetek 24%-ában a weboldalak nem tartalmaztak vállalatneveket, míg 16%-ban nem a Cylex listában szereplő címet jelöltek az annotátorok. A szabályalapú megközelítés 44%-ban volt képes a vállalkozások nevét megállapítani, míg 45%-ban semmilyen cégnevet, valamint 11%-ban nem egyezőt jelölt. Míg végül a CRF-nek 52%-ban sikerült a helyes jelölést adnia, továbbá az esetek 30%-ában nem azonosított cégnevet. A cégnevek egyezése a következőképp alakult: Etalon (%)
Szabályalapú (%)
CRF (%)
Sikeres cégnévillesztés
60
44
52
Sikertelen cégnévillesztés
40
56
48
Nem tartalmaz cégnevet
24
45
30
Nincs egyező cégnév
16
11
18
9. táblázat: cégnevek előfordulási aránya a címkorpuszban
• Első vállalkozásnév heurisztika Ez a heurisztika az etalon adatbázison az esetek 55%-ában tudta megadni a helyes vállalkozás nevet, ugyanakkor a szabályalapú megközelítés esetén a 44%-os eredmény figyelemre méltónak tekinthető, mivel ennek a megközelítésnek ez egyben az elvi felső korlátja is. Ennek egy lehetséges oka lehet, hogy ez a megközelítés az egyes weblapok TITLE tagjében is jelölt, míg a többi nem. A CRF jelölései az esetek 48%-ában bizonyultak helyesnek, míg 22%-ban nem egyeztek a cégnevek. Etalon (%)
Szabályalapú (%)
CRF (%)
Sikeres cégnévillesztés
55
44
48
Sikertelen cégnévillesztés
45
56
52
Nem tartalmaz cégnevet
24
45
30
Nincs egyező cégnév
21
11
22
10. táblázat: első vállalkozásnév heurisztika eredményei - 25 -
●
Leggyakoribb vállalkozásnév heurisztika A leggyakoribb vállalkozásnév heurisztika az etalon adatbázison 45%-ban, a
szabályalapú megközelítés esetén 41%-ban, míg a CRF rendszer 44%-ban volt képes a helyes vállalkozás nevet azonosítani. Etalon (%)
Szabályalapú (%)
CRF (%)
Sikeres cégnévillesztés
45
41
44
Sikertelen cégnévillesztés
55
59
56
Nem tartalmaz cégnevet
24
45
30
Nincs egyező cégnév
31
14
26
11. táblázat: leggyakoribb vállalkozásnév heurisztika eredményei ●
Első cím heurisztika Az első cím heurisztika esetében az etalon jelölésen 79%-os, a szabályalapún 78%, míg
a CRF rendszer jelölésén 74%-os eredmény született. Etalon (%)
Szabályalapú (%)
CRF (%)
Sikeres címillesztés
79
78
74
Sikertelen címillesztés
21
22
26
Nem tartalmaz címet
11
10
16
Nincs egyező cím
10
12
10
12. táblázat: első cím heurisztika eredményei
• Leggyakoribb cím heurisztika Míg végül a leggyakoribb cím heurisztika az etalon adatbázison 76%-os eredményt volt képes elérni, amely a szabályalapú megközelítés jelöléseivel 74%-ot, és ugyanakkor a CRF jelölésén 70%-os teljesítményre volt képes. Etalon (%)
Szabályalapú (%)
CRF (%)
Sikeres címillesztés
76
74
70
Sikertelen címillesztés
24
26
30
Nem tartalmaz címet
11
10
16
Nincs egyező cím
13
16
14
13. táblázat: leggyakoribb cím heurisztika eredményei
- 26 -
4.4. A teljes rendszer eredményei A rendszer végső, teljes egészében történő kiértékelésére során a „teherfuvarozás” tevékenységi körhöz köthető vállalkozások nevére és címére fókuszáltam. Az online keresők összesen 600 találatából 474 alkalommal volt sikeres a letöltés. Az első fázisban a weblapok közül 38 került kiszűrésre, mivel 24 angol nyelvűnek bizonyult, míg 14 nem haladta meg a szükséges tokenszámot. Ezután a pozitív és jelöletlen példákból való tanulás általam módosított modellje 140 oldalt jelölt cégesnek, míg 296-t spamnek. A második fázisban a szabályalapú megközelítés segítségével történt a címek és a vállalkozás nevek jelölése. Végül az utolsó lépésben az első cím- és cégnév heurisztika segítségével 18 esetben sikerült teljes cégnév-cím párt megadni. Ezeket manuálisan ellenőrizve, az esetek 70%-a valóban a szóban forgó tevékenységi körhöz tartozott.
- 27 -
5. Diszkusszió Az online keresők találatai közül a „céges” weboldalak kiválasztásának problémájára a pozitív és jelöletlen példákból való tanulás bizonyult a megfelelő megoldásnak A publikált, standardnak tekinthető PEBL módszer mellett további két új eljárást alkalmaztam a megoldás folyamán. Ezek mindegyike különböző méretű pozitív szólistát és ezáltal negatív halmazt eredményezett. A saját megközelítés új, vektortérmodellen alapuló szólistája a PEBL módszerhez hasonló méretű pozitív listát és negatív halmazt eredményezett, ám ennek „minősége” egyértelműen jobb lett az eredeti megközelítéssel szemben. Mindezt a két módszer bináris vektortérmodellen végzett tanításainak
eredménye jól reprezentálja. A
vegyes megközelítés egy bővebb pozitív listát, ezáltal kisebb negatív halmazt eredményezett. Ebben az esetben is már a bináris vektortérmodellen való tanulással elért eredmény alapján elmondható, hogy a negatív halmaz „helyessége” a saját megközelítés alatt marad. A bináris vektortérmodell helyett annak tf-idf súlyozású változatának használata az előzetes várakozásoknak megfelelően javított az eredményen, és szignifikáns javulás köszönhető az egyes weboldalakat leíró plusz jellemzőknek is. Az egyes javítások hozzáadott értékeit az alábbi táblázat foglalja össze: Teszt
Hozzáadott érték
PEBL bin
72,78%
-
ATFIDF bin
74.92%
+2.14%
ATFIDF tfidf
79.20%
+4.28%
ATFIDF tfidf + extra
80.20%
+1%
14. táblázat: az egyes javítások hozzáadott értékei A weboldalakon megtalálható cégek neveinek és címeinek automatikus azonosítására fejlesztett szabályalapú módszer ugyan valamivel még jobb eredményt képes adni, mint a gépi tanuló rendszer, de fontos kiemelni, hogy ez utóbbin semmilyen optimalizálás, jellemzőtér átalakítás nem történt, csupán a gazdasági rövidhírekre fejlesztett CRF rendszer rendszer tanítására és alkalmazására került sor (valamint érdemes megjegyezni, hogy az IRÁNYITOSZAM osztály kivételével a CRF jobb eredményeket ért el osztályszinten). A későbbiekben természetesen lehetőség van a szabályalapú rendszer tapasztalatai alapján a gépi tanulási rendszer további hangolására, hatékonyságának növelésére. Az, hogy a humán annotátorok közötti egyetértés foka csak 82% jól mutatja a probléma nehézségét. Ennek fényében az automatikus megoldás hatékonynak tekinthető. Az utolsó lépésben egyszerű heurisztikák segítségével meglepően jól sikerült a szóban - 28 -
forgó vállalkozás nevét és címét összerendelni. Mind a címek, mind a vállalkozás megnevezések esetén „az első” heurisztika bizonyult a leghatékonyabbnak. A cégnevek esetén ez azzal is magyarázható, hogy a szabályalapú megközelítés a weblapok TITLE tagjében is jelölte a vállalkozás neveket, amely majdnem minden esetben a honlaphoz tartozó cég nevét jelentette. Értelemszerűen a TITLE tagben szereplő jelölés egy helyesen szerkesztett weboldal esetén a HTML elején helyezkedik el. Mindemellett a kiértékeléshez használt Cylex adatbázisban előforduló hibák miatt, az egyes heurisztikák eredményei valamivel gyengébbek a valós teljesítményüknél. A végső eredmény kiértékelése során szembesültem igazán a feladat bonyolultságával, például: •
Egy adott vállalkozás profiljáról igen eltérő, néhol egymásnak ellentmondó információk találhatók a Weben.
•
Néhány esetben egy cég tevékenységi körét is nehéz megállapítani, pl milyen besorolás alá kerül egy teherfuvarozó cégek számára specializálódott könyvelőiroda. Ugyanakkor az eredmény ismeretében elmondható, hogy a rendszer jól demonstrálja azt
a tényt, hogy automatikus mechanizmusok építhetőek az eredetileg kitűzött probléma megoldására.
- 29 -
6. Összefoglalás Célkitűzésem egy input tevékenységi kör keresőkifejezéshez tartozó, vállalkozások neveit és címeit a Webről automatikusan összegyűjtő rendszer építése volt. A feladat megoldása során azonosítottam számos szövegbányászati részproblémát, ami a dolgozat egyik fontos eredményének tekinthető. A két legfontosabb részfeladat a letöltött honlapok megszűrése és a vállalkozások címeinek automatikus felismerése volt. A letöltött oldalak először nyelvi szűrőn, majd tartalmi szűrőn („céges” és „nem céges”) haladtak át. A „céges” honlapklasszifikációs problémára a pozitív és jelöletlen példákból való tanulás megközelítését alkalmaztam, és összehasonlítottam a standard módszert egy általam kidolgozottal (ATFIDF). A végső algoritmus a független kiértékelési adatbázison 80,2% pontosságot ért el (7.42%-kal jobbat, mint a standard módszer). A letöltött céges weboldalakon megtalálható címek és cégnevek felismerésére egy szabályalapú módszert, és annak tapasztalataira támaszkodva, egy gépi tanulási eljárást is adaptáltam. Az általános tulajdonnév felismerési módszer nem tudta eredményében felülmúlni a speciálisan erre a feladatra fejlesztett szabályrendszert, amelynek végső frázis szintű Fmértéke 69,2% lett. Az egész webbányász rendszer, egy korábban nem látott keresőkifejezésre adott találatainak 80%-a valóban a kérdésre adott választ. A dolgozatban bemutatott rendszer - legjobb tudomásom szerint - az első magyar nyelvű webbányászati megoldás. A jelenleg elérhető magyarországi céges adatbázisokat manuálisan, emberi erőforrások segítségével gyűjtötték össze, vagy az adott vállalkozások hirdették magukat a cégadatbázisokban, amely folyamat a fent bemutatott módszer segítségével automatizálható. A rendszerrel kapcsolatos jövőbeli terveim kétrétűek. Egyrészt a cégnév felismerés és címkinyerés eredményeit fel szeretném használni az egyes honlapokon azonosított cégnév hivatkozások segítségével történő cég-kapcsolati háló építésére, amely által ellenőrizhető az egyes cégek kapcsolatrendszere, valamint érdekeltségi körhöz való tartozása. A dolgozat egy ilyen általános üzleti információkinyerő rendszer megvalósíthatósági tanulmányának is tekinthető. Másrészt a rendszer bővítésével, a vállalkozás alapadatain túlmenően (cégjegyzék szám, adószám, elérhetőség stb.) más, a Weben elérhető információk összegyűjtését is tervezem, mint például a vállalkozás termékei, árai, akciói, álláshirdetései, így a döntéshozóknak lehetőségük nyílik a találatok további szűrésén keresztül a minél relevánsabb partnerek kiválasztására.
- 30 -
7. Bibliográfia 1.
Bing Liu: Web Data Mining, Springer, 2006
2.
Bodon Ferenc - Adatbányászati algoritmusok. 2002-2008, BME, 2008
3.
Tikk Domonkos: Szövegbányászat, Typotex, 2007
4.
R. Cooley, B. Mobasher, and J. Srivastava,: Web Mining: Information and Pattern Discovery on the World Wide Web, Proc. Of the 9th IEEE Intl. Conf. on Tools With Artificial Intelligence, 1997, pp. 558-567.
5.
B. Liu, and K. Chen-Chuan-Chang: Editorial: special issue on web content mining, ACM SIGKDD Explorations Newsletter, Volume 6, Issue 2, ACM, 2004, pp. 1-4.
6.
B. Mobasher: Web Usage Mining, Encyclopedia of Data Warehousing and Mining, John Wang (eds.), 2006
7.
J. Srivastava, R. Cooley, M. Deshpnde, and P. Tan: Web Usage Mining: Discovery and Applications of Usage Patterns from Web Data, SIGKDD Explorations, 2000, pp. 12-23.
8.
N. Kushmerick: Wrapper induction: Efficiency and expressiveness, Artif. Intell. Volume 118, 2000, pp. 15-68.
9.
Andrew McCallum: Information Extraction: Distilling Structured Data from Unstructured Text. ACM Queue, volume 3, Number 9, November 2005.
10. Fabrizio Sebastiani: Research in Automated Text Classification: Trends and Perspectives,6 Congreso del Capítulo Español de ISKO, 2002 11. Xiaoli L. and Wee S. L.: Building Text Classifiers Using Positive and Unlabeled Examples, The Third IEEE International Conference on Data Mining, 2003
12. Hwanjo Yu and Jiawei Han and Kevin Chen-Chuan Chang: PEBL: Web Page Classification without Negative Examples, Knowledge Discovery and Data Mining (KDD '02) Los Alamitos, 2004 13. Li, X., and Liu, B. Learning to classify textusing positive and unlabeled data, Proceedings of IJCAI-03, 2003 14. Nancy Chinchor.: MUC-7 Named Entity Task Definition, Proceedings of Seventh Message Understanding Conference, 1998 15. Erik F. Tjong Kim Sang, and Fien De Meulder: Introduction to the CoNLL-2003 Shared Task: Language-Independent Named Entity Recognition. Proceedings of CoNLL-2003, 2003 16. J. Lafferty, A. McCallum, and F. Pereira. Conditional random fields: Probabilistic models for segmenting and labeling sequence data. In Proc. of ICML-01, 18th Int. Conf. on Machine Learning,, 2001, pp 282–289 17. Kata Gábor, Enikő Héja, Ágnes Mészáros, Bálint Sass: Nyílt tokenosztályok reprezentációjának technológiája, IKTA-00037/2002, 2002 18. Farkas R. and Szarvas Gy.: Nyelvfüggetlen tulajdonnév-felismerő rendszer, és alkalmazása különböző domainekre, IV. Magyar Számítógépes Nyelvészeti Konferencia (MSZNY-06), 2006 19. Varga Dániel, Simon Eszter: Hungarian named entity recognition with a maximum entropy approach. Acta Cybernetica Volume 18 Issue 2., 2007
- 31 -
20. Szarvas György; Richárd, Farkas; László, Felföldi; András, Kocsor; János, Csirik:. A highly accurate Named Entity corpus for Hungarian. In Proceedings of International Conference on Language Resources and Evaluation, 2006 21. David Graff: English Gigaword, Linguistic Data Consortium, 2003 22. Dik L. L., Huei C. and Kent S.: Document Ranking and the Vector-Space Model, IEEE Software, vol. 14, no. 2, 2002 23. Free Stop Word Lists in 23 Languages: http://www.semantikoz.com/2008/04/02/free-stop-word-listsin-23-language, 2008 24. Ethem Alpaydin: Introduction to Machine Learning, The MIT Press, 2004 25. Quinlan, R.C4.5: Programs for Machine Learning. Morgan Kaufmann Publishers, San Mateo, 1993 26. Witten I. H. and Frank E. Data Mining: Practical Machine Learning Tools and Techniques, Morgan Kaufmann Series in Data Management Systems. Morgan Kaufmann, second edition, 2005 27. Farkas R., Ormándi R., Jelasity M. and Csirik J.: A manually annotated HTML corpus for a novel scientific trend analysis, The Eighth IAPR International Workshop on Document Analysis Systems, 2008 28. Postai
irányítószámok:
http://www.posta.hu/object.a4c06249-c686-4d95-b333-08b467959979.ivy,
2008 29. Andriska Z., dr. Babarczy A., Hamp G., Kardkovács Zs., Kárpáti A., dr. Magyar G. Rung A., Surányi G.,dr. Szakadát I., Takács T., dr. Tikk D.: Természetes nyelveket támogató perspektivikus technológiai megoldás, Technical report BME TMIT, 2004 30. L. R. Rabiner.: A tutorial on hidden markov models and selected applications in speech recognition, In A. Waibel and K.-F. Lee, editors, Readings in Speech Recognition, Kaufmann, 1990.pp 267–296. 31. Kohavi, Ron: A study of cross-validation and bootstrap for accuracy estimation and model selection, Proceedings of the Fourteenth International Joint Conference on Artificial Intelligence 2 (12): 1137– 1143, (Morgan Kaufmann, San Mateo) 1995
- 32 -