1.BEVEZETÉS. Subecz Zoltán 1. Információkinyerés természetes nyelvű szövegekből

Hasonló dokumentumok
A VEKTORTÉR MODEL HASZNÁLATA A SZÖVEGBÁNYÁSZATBAN THE USAGE OF THE VECTOR-SPACE MODEL IN TEXT MINING

ACTA CAROLUS ROBERTUS

ADATBÁNYÁSZATI SZOFTVER HASZNÁLATA SZÖVEGOSZTÁLYOZÁSHOZ DATA MINING SOFTWARE FOR TEXT CLASSIFICATION

15. LINEÁRIS EGYENLETRENDSZEREK

Gépi tanulás a gyakorlatban. Bevezetés

SZTE Eötvös Loránd Kollégium. 2. Móra György: Információkinyerés természetes nyelvű szövegekből

Dodé Réka (ELTE BTK Nyelvtudomány Doktori IskolaAlkalmazott Alknyelvdok 2017 nyelvészet program) február 3. 1 / 17

Gépi tanulás és Mintafelismerés

Gépi tanulás a Rapidminer programmal. Stubendek Attila

Szövegbányászat Információ Visszakeresés és egyéb alkalmazások

Írjon olyan programot a standard könyvtár alkalmazásával, amely konzolról megadott valós adatokból meghatározza és kiírja a minimális értékűt!

Keresés képi jellemzők alapján. Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék

Tartalom Keresés és rendezés. Vektoralgoritmusok. 1. fejezet. Keresés adatvektorban. A programozás alapjai I.

2. Készítsen awk szkriptet, amely kiírja az aktuális könyvtár összes alkönyvtárának nevét, amely februári keltezésű (bármely év).

Szövegbányászati rendszer fejlesztése a Magyar Elektronikus Könyvtár számára

Keresés és rendezés. A programozás alapjai I. Hálózati Rendszerek és Szolgáltatások Tanszék Farkas Balázs, Fiala Péter, Vitéz András, Zsóka Zoltán

Mesterséges intelligencia, 7. előadás október 13. Készítette: Masa Tibor (KPM V.)

Általános algoritmustervezési módszerek

Tudásalapú információ-kereső rendszerek elemzése és kifejlesztése

KOPI. Fordítási plágiumok keresése MTA SZTAKI DSD. Pataki Máté MSZNY Department of Distributed Systems

Felvételi tematika INFORMATIKA

Bevezetés az informatikába

1. Olvassuk be két pont koordinátáit: (x1, y1) és (x2, y2). Határozzuk meg a két pont távolságát és nyomtassuk ki.

Reguláris kifejezések 1.

end function Az A vektorban elõforduló legnagyobb és legkisebb értékek indexeinek különbségét.. (1.5 pont) Ha üres a vektor, akkor 0-t..

Érdekes informatika feladatok

Gyakorló feladatok adatbányászati technikák tantárgyhoz

Regresszió. Csorba János. Nagyméretű adathalmazok kezelése március 31.

Döntési fák. (Klasszifikációs és regressziós fák: (Classification And Regression Trees: CART ))

AZ ÜGYFÉL KOMMUNIKÁCIÓ ÚJ FORMÁI POZITÍV ÜGYFÉLÉLMÉNY SZÖVEGBÁNYÁSZATI MEGOLDÁSOK

Hadamard-mátrixok Előadó: Hajnal Péter február 23.

Hogyan fogalmazzuk meg egyszerűen, egyértelműen a programozóknak, hogy milyen lekérdezésre, kimutatásra, jelentésre van szükségünk?

Adaptív dinamikus szegmentálás idősorok indexeléséhez

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Számelmélet I.

Megjegyzés: A programnak tartalmaznia kell legalább egy felhasználói alprogramot. Példa:

Függvények növekedési korlátainak jellemzése

Közösség detektálás gráfokban

Számítógépes képelemzés 7. előadás. Dr. Balázs Péter SZTE, Képfeldolgozás és Számítógépes Grafika Tanszék

Diszkrét matematika I., 12. előadás Dr. Takách Géza NyME FMK Informatikai Intézet takach november 30.

Programozási segédlet

BEKE ANDRÁS, FONETIKAI OSZTÁLY BESZÉDVIZSGÁLATOK GYAKORLATI ALKALMAZÁSA

Multimédiás adatbázisok

Mesterséges Intelligencia. Csató Lehel. Csató Lehel. Matematika-Informatika Tanszék Babeş Bolyai Tudományegyetem, Kolozsvár 2007/2008

Felvételi vizsga mintatételsor Informatika írásbeli vizsga

1. Az informatikai eszközök használata

Lineáris egyenletrendszerek

Hash-alapú keresések

II. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

Országos Rendezési Tervkataszter

9. Entitás modulok. Nagy Gusztáv: Drupal 7 alapismeretek Fejlesztői verzió: október 6.

Digitális kultúra, avagy hová lett az informatika az új NAT-ban? Farkas Csaba

Gépi tanulás a gyakorlatban. Kiértékelés és Klaszterezés

A PiFast program használata. Nagy Lajos

A szegénység fogalmának megjelenése a magyar online médiában

Robotok inverz geometriája

Önálló labor feladatkiírásaim tavasz

Valasek Gábor

Statisztikai eljárások a mintafelismerésben és a gépi tanulásban

Feladat. Bemenő adatok. Bemenő adatfájlok elvárt formája. Berezvai Dániel 1. beadandó/4. feladat április 13. Például (bemenet/pelda.

Szöveges feladatok a mátrixaritmetika alkalmazására

KOPI. KOPI A fordítási plágiumok keresője MTA SZTAKI DSD. Pataki Máté Kovács László. Department of Distributed Systems

Számítógépes döntéstámogatás. Genetikus algoritmusok

Statisztikai szoftverek esszé

Szomszédság alapú ajánló rendszerek

I. LABOR -Mesterséges neuron

Matematikai alapok és valószínőségszámítás. Valószínőségi eloszlások Binomiális eloszlás

Diverzifikáció Markowitz-modell MAD modell CAPM modell 2017/ Szegedi Tudományegyetem Informatikai Intézet

Nagyméretű adathalmazok kezelése (BMEVISZM144) Reinhardt Gábor április 5.

Matematika feladatbank I. Statisztika. és feladatgyűjtemény középiskolásoknak

Mátrixok, mátrixműveletek

Programozás alapjai Bevezetés

Matematika A1a Analízis

Aromo Szöveges Értékelés

Novell GroupWise levelező rendszer alapok Kiadványunk célja, hogy a Nemzeti Közszolgálati Egyetemen használt Novell GroupWise (a továbbiakban GW)

17. előadás: Vektorok a térben

Struktúra nélküli adatszerkezetek

Angol szótár V

DÖNTÉSI MODELL KIALAKÍTÁSA KÖZBESZERZÉSI ELJÁRÁS SORÁN ELŐSZÓ

Leggyakrabban használt adatbányászási technikák. Vezetői információs rendszerek

KOPI. KOPI Online Plágiumkereső és Információs Portál DSD. Pataki Máté MTA SZTAKI. Elosztott Rendszerek Osztály

OPTEN Online használati útmutató

A szemantikus elemzés elmélete. Szemantikus elemzés (attribútum fordítási grammatikák) A szemantikus elemzés elmélete. A szemantikus elemzés elmélete

Gráfok, definíciók. Gráfok ábrázolása. Az adott probléma megoldásához ténylegesen mely műveletek szükségesek. Ábrázolások. Példa:

1. JELENTKEZŐ ADATBÁZIS MODUL

AKTUÁTOR MODELLEK KIVÁLASZTÁSA ÉS OBJEKTÍV ÖSSZEHASONLÍTÁSA

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

Adatbányászati technikák (VISZM185) 2015 tavasz

Műveletek makrókkal. Makró futtatása párbeszédpanelről. A Színezés makró futtatása a Makró párbeszédpanelről

Diszkrét matematika II., 5. előadás. Lineáris egyenletrendszerek

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

ElektrO-ParT elektronikai alkatrész nyilvántartó program leírás.

MKVK Informatikai Tagozat. Elnökségi beszámoló 2012

Gyorsjelentés. az informatikai eszközök iskolafejlesztő célú alkalmazásának országos helyzetéről február 28-án, elemér napján KÉSZÍTETTÉK:

Közfoglalkoztatás támogatás megállapítását segítő segédtábla használati útmutatója

dr.xlsx A programról Szövegműveletekhez használható függvények

Skalárszorzat, norma, szög, távolság. Dr. Takách Géza NyME FMK Informatikai Intézet takach/ 2005.

A lineáris programozás alapfeladata Standard alak Az LP feladat megoldása Az LP megoldása: a szimplex algoritmus 2018/

Informatika 5 8. évfolyama számára heti 1 óra. Óraterv 5 8. évfolyam 5. évf. 6. évf. 7. évf. 8. évf. Informatika heti 1 óra

Algoritmusok Tervezése. 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás

Amortizációs költségelemzés

Átírás:

Szolnoki Tudományos Közlemények XV. Szolnok, 2011. Subecz Zoltán 1 Információkinyerés természetes nyelvű szövegekből STOPSZÓ SZŰRÉS, LEMMATIZÁLÁS HATÁSA ÉS OSZTÁLYOZÁS A VEKTORTÉR MODELLEL A természetes nyelvi feldolgozás egy új interdiszciplináris terület. Ennek a területnek a célja a számítógép segítségül hívása olyan feladatokban, mint a természetes szövegek feldolgozása, az ember-gép közötti kommunikáció elősegítése és egyéb szöveg feldolgozási feladatok. Az Interneten több millió természetes nyelven írt oldal található, amelyek nincsenek feldolgozva. Enne az új kutatási területnek az egyik célja olyan programozási módszerek kidolgozása, amelyek segítségével ezen oldalak szövegéből minél több információ kinyerhető és táblázatokba, adatbázisokba lementhető. A táblázatokból és adatbázisokból a ez az információ a későbbiekben már könynyen lekérdezhető. Jelen publikációban bemutatom a stopszó szűrést és a lemmatizálást és ezek hatását a Vektortér modellre, valamint a szövegek osztályozását a Vektortér modell segítségével. THE EFFECT OF THE STOPWORD FILTERING AND LEMMATIZATION TO THE VECTORSPACE MODEL AND ITS USAGE IN A CLASSIFICATION TASK The natural language processing is a new interdisciplinary field. The goal of this new field is to get computers to perform useful tasks involving human language, tasks like enabling human-machine communication, improving human-human communication, or simply doing useful processing of text or speech. What distinguishes language processing applications from other data processing systems is their use of knowledge of language. The natural language processing uses some formal models or theories. These models and theories are all drawn from the standard toolkits of computer science, mathematics, and linguistics. Among these models is the Vectorspace model. In a classification task, we are given some observations and our job is to determine which of a set of classes a document belongs to. In this article, I rewieved the effect of the stopword filtering and lemmatization to the Vectorspace model and I created a program for text classification and I tested it in a multi-thousand document environment. [1] 1.BEVEZETÉS Kutatási témám: Információkinyerés természetes nyelvű szövegekből. Előző és jelen publikációban is az Interneten megtalálható Ingatlanközvetítői hirdetések természetes nyelvű szövegein vizsgáltam meg az információkinyerés adott módszereit. 1 Szolnoki Főiskola, Gazdaságelemzési és Módszertani Tanszék, főiskolai tanársegéd, Email: subecz@szolf.hu A cikket lektorálta: Madaras Lászlóné Dr., Szolnoki Főiskola, főiskolai tanár, PhD.

Előző publikációmban áttekintettem a szöveg-feldolgozási lépéseket a Vektortér modellig. [3] Ebben a publikációban bemutatom a stopszó szűrést és a lemmatizálást és ezek hatását a Vektortér modellre, valamint a szövegek osztályozását a Vektortér modell segítségével. A megvalósítás során a következő lépéseket végeztem el: Stopszó szűrés vizsgálata Lemmatizálás vizsgálata Osztályozás a Vektortér modellel A stopszó szűrés és a lemmatizálás hatása az osztályozás eredményére Ezekhez a feladatokhoz Java programozási nyelven írtam programokat. A kutatási anyag a következő weboldalon megtalálható: http://kutat.uw.hu/tema2/tema2.html Ez tartalmazza az alábbiakat: Java nyelven írt forrásprogramok, a programok kimeneti és bemeneti fájljai, a programok részletes leírásai. 1.1. Az információkinyerés és szövegbányászat Az információkinyerés (IE, Information Extraction) technológiájának kutatása dinamikusan fejlődő terület a természetesnyelv-feldolgozásban. Az interneten megjelenő hatalmas információtömeg gépi feldolgozása és a kívánt információ tömör formában történő összegyűjtése napi szükséglet, amelyre a gazdaság, a tudomány, a politika területén is van igény. Míg az információ visszakeresés (IR, Information Retrieval), amely a webes kereső programok jellemző tevékenysége, arra irányul, hogy a felhasználó igényeinek megfelelő dokumentumokat változatlan formában bocsássa rendelkezésre, addig az információkinyerés célja a megtalált dokumentumokban a lényeges információ megjelölése, majd összegyűjtése. Az utóbbi években az informatika egyik leggyorsabban fejlődő részterülete az adatbányászat 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 (például neurális hálók, szabálygenerálók, asszociációs modellek). Az adatbányászat egyik igen fontos részterülete a szövegbányászat, 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. Az új alkalmazási lehetőségek közül a web-bá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 web-bányászat célja, hogy az internethez kapcsolható dokumentumokból (honlapok, e-mailek, blogok, fórumok stb.) hasznos információkat automatikus összegyűjtsön. 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. 1.2. A Java programozási nyelv A szövegbányászati feladatokra programokat kell írni valamilyen programozási nyelven. Ehhez a feladathoz a Java programozási nyelvet választott am, mert a Számítógépes Nyelvészet alkalmazásainak nagy része ezen a nyelven íródott. Így a modulok jól illeszthetők egymáshoz. 2

A Java általános célú, objektumorientált programozási nyelv, amelyet a Sun Microsystems fejleszt a 90-es évek elejétől kezdve napjainkig. A Java nyelv szintaxisát főleg a C és a C++ nyelvektől örökölte, viszont a Java sokkal egyszerűbb objektummodellel rendelkezik, mint a C++. 2. A VEKTORTÉR MODELL A szövegbányászatban a tartalmak tömör reprezentációjára a vektortér modell (VTM) nyújtja a legszélesebb körben használt megoldást. A modell minden egyes dokumentumot egy vektorral ír le, amelyben minden elem az egyes termek (általában szavak) előfordulását jelenti. Termek alatt a reprezentáció egységeit, alapesetben az írásjelek által határolt szavakat (unigram) értjük. Adva van egy dokumentumgyűjtemény, amelynek elemein valamilyen rendszerezési műveletet kívánunk végrehajtani. Ehhez olyan modellt kell felépítenünk, amiben a dokumentumok távolságát, vagy hasonlóságát egyszerűen meg tudjuk határozni. Intuitív módon nyilván azok a dokumentumok hasonlítanak egymásra, amelyeknek a szókészlete átfedi egymást, és a hasonlóság mértéke az átfedéssel arányos. Ezt a megfigyelést használja fel az információvisszakeresésben (information retrieval IR) széles körben használt vektortér modell. A vektortér modellben a D={d 1,,d N } dokumentumgyűjteményt a szó-dokumentum mátrixszal (term-document mátrix) reprezentáljuk (D Є R MxN ), ahol a mátrix d ki eleme a k-adik szó(t k ) relevanciáját reprezentálja az i-edik dokumentumban, d i -ben. A d i dokumentumot reprezentáló dokumentumvektort d i =<d 1i,,d Mi >- vel jelöljük. A D mátrixban a sorok száma, M megegyezik az egyedi szavak számával. N pedig a dokumentumok száma. D = d 11 d 12 d 1N d 21 d 22 d 2N d M1 d M2 d MN (1) A dokumentumvektorok tehát a mátrix oszlopai lesznek. A mátrix egy sora azon pozíciókban tartalmaz nullától különböző értéket, amelyekhez tartozó dokumentumokban a szó nem nulla relevanciájú. Ez általában ekvivalens azzal, hogy a szó nem szerepel a dokumentumban, de ettől eltérő esetekben is lehet a relevancia nulla. Az egyedi szavak összességét szótárnak, vagy lexikonnak nevezzük, jelölése: T. A szótár mérete tehát T =M. Mivel általában egy dokumentumban a szótár szavainak csak egy kis töredéke fordul elő, ezért a D mátrix ritka. Ugyanakkor az egyedi szavak száma rendkívül nagy lehet, akár a milliós nagyságrendet is elérheti. 3. BEVEZETŐ LÉPÉSEK A stopszó szűrés és a lemmatizálás vizsgálatához 1000 ingatlanközvetítői oldalt töltöttem le az Internetről. Az 1000 dokumentumhoz elkészítettem a Vektortér mátrixot a következő lépések segítségével. (A lépéshez Java nyelven írtam programokat. Azok részletes leírása megtalálható az előző publikációban [3]) HTML oldalakról szöveg kivétele 3

A jelen kutatás szempontjából csak az oldalakon lévő természetes nyelvi szövegek az érdekesek. Azokból kell az információt kigyűjteni. Egy hirdetési oldalon a hirdetési szövegen kívül sok egyéb adat, található. Szövegek szavakra bontása A hirdetési szövegekből kigyűjti a szövegben található szavakat egy másik szövegfájlba egymás alá. Átalakítás - Fölösleges karakterek kiszűrése - Szövegek kisbetűssé alakítása Fájlok egymáshoz fűzése (egyutt.txt) - 1000 fájl szavait összefűzi 1 szöveges fájllá - 148 286 szót tartalmaz a fájl Ez a fájl tartalmazza az 1000 dokumentum minden szavát. Statisztika az előző összefűzött fájlról (4 darab szövegfájl) - Minden szó kigyűjtése, de minden szót csak egyszer. Vannak szavak, amelyek sokszor előfordulnak az 1000 dokumentumban - Minden szó mellé kiírtam, hogy hányszor fordul elő a dokumentumokban összesen. - Készítettem egy olyan szövegfájlt is, amelyikben az előző az előfordulások szerint csökkenően van kigyűjtve. Így a listában előre kerültek a gyakori szavak. Szavak rendezése, egyediek megtartása (rendezett.txt) 16 991 szó Így abc sorrendbe megkapjuk az 1000 dokumentum egyedi szavait. A Vektortér mátrix elkészítése a feldolgozás során elkészített dokumentumok alapján. 4. STOPSZÓ SZŰRÉS A szövegbányászati feladatok többségénél a gyakran előforduló, tartalmi információt egyáltalán nem tartalmazó, megkülönböztető képesség nélküli un. stop szavakat már a szavakra bontás után elhagyják. A szótárból való elhagyásukkal csökkenthető a szó-dokumentum mátrix bejegyzéseinek a száma. [2] 4.1 A stopszó szűrés bemutatása a saját 1000 dokumentumból álló korpuszon Az előző fejezetben készítettem egy olyan statisztikai fájlt, amiben kiírattam, hogy az egyes szavak hányszor szerepeltek. (Darabszám szerint csökkenően) Ebből az első 50 szó: a: 12145 db az: 3730 db és: 3405 db egy: 2005 db es: 1736 db is: 1708 db ház: 1539 db található: 1398 db van: 1156 db lakás: 850 db 2: 811 db nm: 802 db családi: 734 db ingatlan: 726 db épült: 625 db két: 606 db m2: 603 db eladó: 601 db konyha: 570 db 3: 566 db szoba: 550 db fürdőszoba: 543 db nappali: 509 db csendes: 453 db jó: 448 db külön: 412 db ben: 408 db nagy: 396 db garázs: 390 db épület: 359 db telken: 352 db de: 347 db valamint: 339 db perc: 337 db minden: 328 db el: 324 db 1: 319 db wc: 317 db 5: 309 db szinten: 297 db szobás: 290 db tartozik: 290 db m: 287 db megközelíthető: 275 db 4: 274 db belső: 271 db még: 268 db 10: 264 db étkező: 261 db alkalmas: 258 db 1. táblázat. A leggyakoribb szavak 4

Azoknak a szavaknak, amelyek sokszor szerepelnek (pl. névelők) kevés a jelentősége. Ezért ezeket kihagyhatjuk a vektortér modellből. Olyan szavakat érdemes csak kihagyni a vektortér modellből, amelyek nem hordoznak információt a későbbi feldolgozáshoz. Igaz, hogy a ház szó sok dokumentumban szerepel (ház: 1539 db), de majd egy olyan osztályozási feladatban, ahol pl. két csoportra kell kigyűjteni a családi házakat és a lakásokat, akkor a ház szónak lesz jelentősége Így látjuk, hogy a stopszavak kiválasztása nem egyszerű feladat. A kiválasztás gyakran az adott feladattól függ: - pl. az épült: 625 db szó nem hordoz önmagában sok információt - De ha azokat a hirdetéseket keresem, amelyek tartalmazzák, hogy mikor épült az épület, akkor már megnő a jelentősége. Így van olyan feladat ahol csak néhány szó hagyható el, de van ahol akár több száz, vagy több ezer is. A leggyakoribb 50 szóból a pirossal jelzettek általában elhagyhatóak. Az osztályozásnál majd megvizsgáljuk a Stopszó szűrés hatását. A Szegedi Tudományegyetem Mesterséges Intelligencia Kutatócsoportja a következő szavakat használja a Stopszó szűréshez: (stopword.txt: 219 db szó) a abban ahhoz ahogy ahol aki akik akkor akár alatt amely amelyek amelyekben amelyeket amelyet amelynek ami amikor amit amolyan amíg annak arra arról az azok azon azonban azt aztán azután azzal azért be belül benne bár cikk cikkek cikkeket csak de e ebben eddig egy egyes egyetlen egyik egyre egyéb egész ehhez ekkor el ellen elő először előtt első elég előtt emilyen ennek erre ez ezek ezen ezt ezzel ezért fel felé ha hanem hiszen hogy hogyan hát ide igen ill ill. illetve ilyen ilyenkor inkább is ismét ison itt jobban jó jól kell kellett keressünk keresztül ki kívül között közül le legalább legyen lehet lehetett lenne lenni lesz lett ma maga magát majd meg mellett mely melyek mert mi miatt mikor milyen minden mindenki mindent mindig mint mintha mit mivel miért mondta most már más másik még míg nagy nagyobb nagyon ne nekem neki nem nincs néha néhány nélkül o oda ők őket olyan ott pedig persze például rá s saját sem semmi sok sokat sokkal stb. szemben szerint szinte számára szét talán te tehát teljes ti tovább továbbá több túl ugyanis utolsó után utána vagy vagyis vagyok valaki valami valamint való van vannak vele vissza viszont volna volt voltak voltam voltunk által általában át én éppen és így ön össze úgy új újabb újra ő őket 2. táblázat Stop szavak gyűjteménye 5

A további feladatokban én is ezt a szógyűjteményt fogom használni. 5. LEMMATIZÁLÁS A legtöbb nyelvben a szavaknak vannak toldalékolt vagy módosított alakjai is. Ez különösen jellemző a magyar nyelvre. A vektortér-modell kialakításánál kézenfekvő ötlet, hogy az azonos szavaknak a különböző szóalakú előfordulásait közös kanonikus alakba vonjuk össze, és összesítve reprezentáljuk. Ezzel ugyan a szóalakra vonatkozó információt elveszítjük, de a vektortér modell méretét jelentősen csökkenthetjük. [2] 5.2 A lemmatizálás bemutatása a saját 1000 dokumentumból álló korpuszon A 3. fejezetben készítettem egy olyan statisztikai fájlt, amiben kiírattam az egyedi szavakat abc sorrendben. A következő szavak kezdődtek a ház szótővel: ház háza házacskával házak házakat házakból házakhoz házakkal házaktól házas házasok házasoknak házaspár házat házba házban házból házhoz házi háziasszony háziasszonynak háziasszonyok házigazda házikertben házikó házikót házimozi háziállatok házként házközponti házmesterlakást háznak háznyira háznál házon házra házrésszé házrész házrészhez házrésznek házrészt házról háztartás háztartáshelyiség háztartási háztetők háztól háztömb házukat házvezetőnőnek házzal házzá házát házé 3. táblázat. A ház szótővel kezdődő szavak A szavak lemmájának megtalálása sem mindig egyértelmű feladat. A pirossal bejelölt szavak lemmája lehet a ház szó. A Szegedi Tudományegyetem Mesterséges Intelligencia Kutatócsoportja is használ lemmatizálásra egy fájlt (corpus.lex) mérete: 4,6 MB, Sorainak száma: 133 387 Ebben a fájlban a következő szavakhoz rendeli a ház lemmát: ház háza házai házaiba házaiban házaiból házait házak házakat házakban házakból házakhoz házakkal házaknak házam házamat házat házba házban házból házhoz háznak háznál házon házra házról háztól házuk házukat házukba házukból házukhoz házunk házunkat házunkba házunkban házunktól házzal házába házában házából házán házának házát házától házával 4. táblázat. A ház lemmához tartozó szavak A további feladatokban én is ezt a fájlt fogom használni lemmatizálásra. 6

6. STOPSZÓ SZŰRÉS HATÁSA A VEKTORTÉR MÁTRIXRA A következőkben megvizsgáltam a stopszó szűrés hatását a Vektortér mátrixra. A rendezett.txt fájlból azokat másoltam át a stopszavaknelkul.txt fájlba, amelyek nem szerepeltek a stopword.txt fájlban. A vizsgálat eredménye: Stopszavak száma: 219 (stopword.txt) Beolvasott sorok száma: 16 991 (rendezett.txt) Kiírt sorok száma: 16 810 (stopszavaknelkul.txt) A Vektortér mátrix mérete nem csökkent jelentősen. (1%-os csökkenés), de a jelentéssel nem bíró szavak kikerültek a további vizsgálatokból. Szerepelt stop szavak száma: 181 (16 991 16 810) (megtalált-stopszavak.txt) Nem szerepelt stopszavak száma: 32 (213-181) A következő stopszavak szerepeltek a kiindulási (rendezett.txt) fájlban: a csak ha ma ne ugyanis ahhoz de hanem maga nem utolsó ahogy e hiszen magát nincs után ahol ebben hogy majd néhány vagy aki eddig hogyan meg nélkül vagyis akik egy hát mellett oda valaki akkor egyes ide mely olyan valami akár egyetlen igen melyek ott valamint alatt egyik ill mert pedig való amely egyre illetve mi persze van amelyek egyéb ilyen miatt például vannak amelyet egész inkább mikor rá vele amelynek ehhez is milyen s viszont ami ekkor ismét minden saját volna amikor el itt mindenki sem volt amit ellen jó mindent sok voltak amíg első jól mindig sokat által annak elég kell mint sokkal általában arra elő keresztül mintha szemben át az először kívül mit szerint én azok előtt között miért szinte éppen azon ennek közül most számára és azonban erre le már szét így azt ezek legalább más talán ön azzal ezen legyen másik tehát össze be ezt lehet még teljes úgy belül ezzel lenne míg tovább új benne ezért lenni nagy továbbá újabb bár fel lesz nagyobb több újra 7

cikk felé lett nagyon túl ő ők 5. táblázat. A dokumentumokban szereplő stop szavak A következő stopszavak nem szerepeltek a fájlban: abban emilyen mivel te amelyekben ez mondta ti amelyeket ill. nekem utána amolyan ilyenkor neki vagyok arról ison néha vissza aztán jobban ő voltam azután kellett ők voltunk azért keressünk őket őket cikkek ki semmi cikkeket lehetett stb. 6. táblázat. A dokumentumokban nem szereplő stop szavak 7. LEMMATIZÁLÁS HATÁSA A VEKTORTÉR MÁTRIXRA A stopszavaknelkul.txt fájlban lévő szavakra (16 810 darab szó) megnéztem, hogy melyik szerepel a corpus.lex fájlban. Amelyik szerepelt, azt a lemmájával helyettesítettem. (Lemmatizált-nyers.txt) A vizsgálat eredménye: corpus.lex fájl sorainak a száma: 133 386 stopszavaknelkul.txt-ből beolvasott sorok száma: 16 810 Ennyi szóhoz talált lemmát: 7069 Vagyis a 16 810 szóból 7069 szóhoz talált lemmát. (42%) Kimeneti fájl: Lemmatizált-nyers.txt (Ez is természetesen 16 810 db sort tartalmaz.) Szavak rendezése-egyediek megtartása: Mivel több szónak is van azonos lemmája, pl. házakban, házakból, házakhoz, házakkal,. => ház ezért a Lemmatizált-nyers.txt fájlban vannak azonos sorok. Ezért ezt a fájlt rendeztem, és az egyedi szavakat magtartottam. (Lemmatizált.txt) Ennek eredménye: A stopszavaknelkul.txt és a Lemmatizált-nyers.txt fájlok sorainak a száma: 16 810 Lemmatizált.txt sorainak a száma: 13 873 A kettő aránya vezet a lemmatizálás hatásfokához: 13 873 / 16 810 = 0,82 Így a Lemmatizálás 18%-al csökkentette a Vektortér mátrix sorainak a számát. 8

8. DOKUMENTUMOK OSZTÁLYOZÁSA A VEKTORTÉR MODELL SEGÍTSÉGÉVEL 8.1 Az osztályozás elmélete A dokumentumok visszakereshetőségét nagy mértékben segíti, ha rendszerezve tároljuk őket. Például, ha hierarchikus rendszerbe, un. taxonómiába rendszerezzük. Itt a tartalom szerinti besorolást vizsgáljuk. A dokumentumok tartalom szerinti rendszerezésének automatizálása az egyik legalapvetőbb szövegbányászati feladat, amelyet osztályozásnak neveznek. Az osztályozás célja szöveges dokumentumok előre definiált halmazból vett tematikus kategóriacímkékkel való ellátása. Az alkalmazások spektruma igen széles, pl. a rögzített tárgyszó-halmaz alapú dokumentumannotálás, a dokumentumszűrés (pl. kéretlen leveleké), webes dokumentumgyűjtemények feltöltése, vélemények értékelése stb. A gépi tanulási (machine learning) módszernél tanítóadatok alapján készül el a kategóriák jellegzetességeit felismerni képes osztályozó. Az emberi erőforrásra csak a kategóriákból és a hozzájuk rendelt dokumentumokból álló tanító környezet előállításánál van szükség, ettől eltekintve az osztályozó létrehozása teljesen automatizálható. A szövegosztályozás bármely területen való sikeres alkalmazásának előfeltétele a megfelelő minőségű tanítókörnyezet megteremtése. Az osztályozás feladata dokumentumok kategóriacímkékkel való ellátása. Formálisan egy Ф: D 2 C osztályozófüggvény megalkotása a cél, amely a D dokumentumtér elemeihez a C={ c 1,,c C } kategóriarendszerből vett kategóriák (más néven osztályok) halmazát rendeli. A Ф függvényt osztályozónak nevezzük. Az osztályozót ismert kategóriájú dokumentumokból kinyert információk alapján építjük fel. Ezeket tanítódokumentumoknak nevezik. A tanítódokumentumok a hozzájuk rendelt osztályokat jól jellemző mintaadatok. Az osztályozó tanulóalgoritmusa a tanítódokumentumok alapján megtanulja az egyes osztályok jellegzetességeit, ebből modellt készít, amellyel becslés adható ismeretlen kategóriájú dokumentumok címkéjére. A tanulásnak ezt a fajtáját felügyelt tanulásnak (supervised learning) nevezik, ahol a szakértő az általa megadott tanítóadatokon keresztül felügyeli a tanulás folyamatát. A bináris osztályozás esetén csak két osztályunk van. Ahhoz, hogy a felépített osztályozó hatékonyságát meghatározhassuk, szükség van tesztadatokra. Ennek érdekében a kiinduló D dokumentumgyűjteményt két diszjunkt halmazra bontjuk, tanító- és teszthalmazra (training/test set). D Train D Test =0, és D Train U D Test =D Az osztályozót a D Train dokumentumain megfigyelt jellemzők alapján induktív következtetéssel hozzuk létre. A D Test teszthalmaz elemeit az osztályozó hatékonyságának megállapítására használjuk. A tesztadatok nem használhatóak fel az osztályozó felépítésénél. 8.2 Rocchio osztályozó A lineáris osztályozók építésének egyik módja a kategóriát reprezentáló c j kategóriavektornak a dokumentumtér elemeként való meghatározása. A dokumentum és a kategória hasonlósága ekkor egyszerűen meghatározható a két vektor koszinusz-távolságaként. 9

s d i, c j = M k =1 w ik w jk M w 2 M k =1 ik w 2 k =1 jk (2) Ez az érték a dokumentum- és a kategóriavektorok által bezárt szög koszinuszát adja meg. A koszinusz távolság kiszámítása a két vektor skaláris szorzatából következik: a*b = a * b *cos α (3) cos α = Két vektor távolságának jellemzésére koszinusz-távolság pontosabb értéket ad, mint a Manhattan vagy az Euklidészi távolság: a b a b N Manhattan távolság (x, y) = i=1 x i y i (5) Euklidészi távolság (x, y) = N i=1 (x i y i ) 2 (6) Az osztályozás folyamata a következőképpen történik: Minden dokumentumot ahhoz a kategóriához rendelünk,a melyikre a koszinusz-távolság nagyobb lesz. Mivel cos 0 = 1 és cos 90 = 0, ezért minél kisebb a távolság két dokumentum között, annál nagyobb a bezárt szög koszinusza. A legegyszerűbb módszer a c j kategóriavektorok meghatározására a centroidok használata. A c j osztály centroidját az osztályba tartozó dokumentumvektorok átlagaként definiáljuk: (4) c j = 1 Pos j di Pos d i (7) j d i : a dokumentumvektorok Pos j : a c j kategóriába tartozó tanítódokumentumok Az osztályozás lépései tehát az alábbiak lesznek: tanulás: a tanítóadatok átlagaként határozzuk meg minden c j kategória centroidját. tesztelés: a d i dokumentum osztályozásakor számítsuk ki a koszinusztávolságot a dokumentum és a centroid között az összes kategóriára, és válasszuk ki azt a kategóriát, amelyikre a koszinusz-távolság a legnagyobb. [2] 8.3 Az osztályozás megvalósítása a Vektortér mátrixszal Kiválasztottam az Ingatlanhirdetések közül 1000 darabot, ami családi házakra és 1000 darabot, ami panel-lakásokra vonatkozott. Ennek módszere: Ezekben az Internetes hirdetési fájlokban van egy kis táblázat, amiben az ingatlan fontosabb adatai össze vannak foglalva. Például: 10

Az ingatlan típusa (pl. Családi ház, Panel, Társasházi) is itt található a Típus szó után. A HTML fájlban ennek a helyét megkeresve látható, hogy a Típus a <th>típus</th> kódrészletben van, amit követ pl. a <td>családi ház</td> kódrészlet. Így először meg kell keresni a <th>típus</th> kódrészletet. Majd az ezt követő <td> és </td> közötti részt kell kiválasztani. Erre a 2 000 dokumentumra is elvégeztem a 3. fejezet lépéseit. Aminek segítségével megkaptam a Vektortér mátrixot. a mátrix sorainak száma: 20 968 oszlopainak száma: 2000 Így a mátrixnak 20 968*2000 = 41 936 000 cellája van Vektorter-tomb.t mérete: nagyobb, mint 167 MB A fájlt becsomagolva: kb. 600 KB Ez is mutatja, hogy a Vektortér mátrix egy ritkán kitöltött mátrix: elemeinek nagy része = 0. 8.4 Centroidok meghatározása (lásd 8.1 fejezet) Tanulás: meghatározzuk mindkét kategória centroidját a tanító adatok alapján Osztályozás: minden új, ismeretlen dokumentumra meghatározzuk a dokumentum a centroidtól való távolságát. Két dokumentum (vektor) távolságának egyik meghatározási lehetősége: a két vektor koszinusz-távolságával. A 2000 dokumentum így 2 osztályra osztható: 1-1000: Családi házak 1001-2000: Panel-lakások Ez a 2000 dokumentum a tanító adat. Az új dokumentumok lesznek a teszt adatok. 11

Mindkét osztályra meghatároztam az osztály centroidját. A Vektortér mátrix sorainak száma: 20 968. Így mindkét centroid egy 20 968 elemű vektor (tömb). A centroid jól jellemzi az adott osztályt. Egy új, a rendszernek ismeretlen dokumentum esetén a két centroiddal hasonlítja öszsze a dokumentum vektorát. Amelyikhez közelebb van, abba az osztályba sorolja a dokumentumot. 8.5 Tesztelés az eredeti 2000 dokumentummal Először megnéztem, hogy a program által ismert 2000 dokumentumra hogyan működik az Osztályozás. Ennél csak rosszabb eredmény várható új, ismeretlen dokumentumokra. A dokumentum vektorához kiszámítottam a koszinusz értéket a két centroidhoz képest. amelyikhez nagyobb a koszinusz érték, abba az Osztályba soroltam az adott dokumentumot. A vizsgálat eredménye: jo1= 991; rossz1= 9; jo2= 991; rossz2= 9 Az 1000 családi házból 991-et jól besorolt a családi házak közé. 9-et rosszul a panellakások közé. Az 1000 panel-lakásból 991-et jól besorolt a panel-lakások közé. 9-et rosszul a családi házak közé. (A rossz1= 9.0 és rossz2= 9.0 egybeesés véletlen.) 8.6 Tesztelés új dokumentumokkal Kiválasztottam új, a rendszer számára ismeretlen 1000-1000 dokumentumot. Elvégeztem ezekre a dokumentumokra is a 3. fejezetben leírt átalakításokat. Elvégeztem a 8.4 pontban leírt tesztelést mind a 2000 új dokumentumra. A vizsgálat eredménye: jo1= 969; rossz1= 31; jo2= 989; rossz2= 11 Az 1000 családi házból 969-et jól besorolt a családi házak közé. 31-et rosszul a panellakások közé. Az 1000 panel-lakásból 989-et jól besorolt a panel-lakások közé. 11-et rosszul a családi házak közé. Az osztályozás eredményei jók lettek! A felidézés a pontosság értékek jól jellemzik egy osztályozás hatékonyságát: Családi házakra: Recall (Felidézés) R= 969 / (969 + 31) = 969 / 1000 =0,969 Precision (Pontosság) P = 969 / (969 + 11) = 969 /980 = 0,988 Panel lakásokra: Recall (Feidézés) R= 989 / (989+11) = 989 / 1000 = 0,989 Precision (Pontosság) P = 989 / (989+31) = 989 / 1020 = 0,970 12

9. A STOPSZÓ SZŰRÉS ÉS LEMMATIZÁLÁS HATÁSA AZ OSZTÁLYOZÁSRA Megvizsgáltam még azt, hogy milyen hatása van annak, ha a bemeneti fájlokra először elvégzem a stopszó szűrést és a lemmatizálást és utána végzem el az osztályozás folyamatát. Azt kaptam, hogy a stopszó szűrés és a lemmatizálás javította az osztályozás eredményét: A Vektortér mátrix mérete most így alakult: Sorok száma: 17.169; Oszlopok száma: 2000 A vizsgálat eredménye: jo1= 991; rossz1= 9, jo2= 990; rossz2= 10 A stopszó szűrés és lemmatizálás nélkül a következő eredmény volt: (lásd 8.5 fejezet ) jo1= 969; rossz1= 31; jo2= 989; rossz2= 11 Családi házakra: Recall (Felidézés) R= 991 / (969 + 9) = 991 / 1000 =0,991 Precision (pontosság) P = 991 / (991 + 10) = 991 /1001 = 0,990 Panel lakásokra: Recall (Felidézés) R= 990 / (990+10) = 990 / 1000 = 0,99 Precision (Pontosság) P = 990 / (990+9) = 990 / 999 = 0,991 Vagyis a stopszó szűrés és a lemmatizálás javította az osztályozás eredményét. 10. ÖSSZEFOGLALÁS TOVÁBBLÉPÉSI LEHETŐSÉGEK Ebben a publikációban először megvizsgáltam a stopszó szűrés és a lemmatizálás hatását a Vektortér modellre. Azt tapasztaltam, hogy segítségükkel ki lehet szűrni a jelentéssel nem bíró szavakat (pl. névelőket) és felhasználásukkal jelentősen csökkenthető a Vektortér mátrix mérete. Majd készítettem egy programot szövegek osztályozására. Az osztályozó tesztelése azt mutatta, hogy a programot jól lehet használni szövegek bináris osztályozására. Majd megvizsgáltam a stopszó szűrés és a lemmatizálás hatását az osztályozásra. Láttuk, hogy felhasználásukkal javult az osztályozás eredménye. Egy következő publikációban tervezem más osztályozó algoritmusok, módszerek vizsgálatát. FELHASZNÁLT IRODALOM [1] Martin Daniel JURAFSKY, James H. MARTIN: Speech and Language Processing: An introduction to natural language processing, computational linguistics, and speech recognition. Stanford, CA: Pearson Prentice Hall, 2009. [2] TIKK Domonkos: Szövegbányászat. Typotex, Budapest, 2007. [3] SUBECZ Zoltán: Szövegfeldolgozási lépések a Vektortér modellig, Economica, A Szolnoki Főiskola Tudományos Közleményei, Szolnok, 2011. 13