Szövegbányászat és dokumentum kezelés 1. Szöveg bányászat alapfogalmai Szövegbányászat Szövegbányászat = szöveg + bányászat Rövid történeti áttekintés: 1958 (Luhn): lényeges szavak kiemelése a szövegből 1961 (Doyle): a szavak gyakoriság alapú elemzése 1980: információ kinyerés (IR) explicit megjelenése 1988 (Swanson): szövegbányászat megjelenése 1995: módszerek kiszélesedése 2000: ipari alkalmazások elterjedése, előkészítési módszerek finomodása 2005: szemantika alapú megközelítés erősödése 2010: hatékonyság javulás Felhasználása: - titkosszolgálat - kutatás - törvénykezés - marketing 1
Szövegbányászat Szerkesztés Dokumentum kezelés Természetes nyelvi feldolgozás Publikálás Szövegbányászati módszerek Megjelenítés Adatbányászat Ontológia Statisztika Metaadatok Mesterséges intelligencia Szövegbányászat Szövegbányászat fogalma Módszerek gyűjteménye a nagy mennyiségű szöveges formátumú Információkból a szabályszerűségek, minták feltárására. - cél a releváns, újszerű szabályok feltárása - nagy tanító halmazt igényel - rendszerint statisztikai alapú módszert alkalmaz - fontos a tanító halmaz megfelelő előkészítése - feldolgozási lépések: - megfelelő minta felépítése - dokumentum előfeldolgozás (transzformáció) - elemzések elvégzése it tries to discover or derive new information from the data (text) which was previously unknown (Hearst) 2
Szövegbányászat Szöveg értelmezése Szűkebb értelemben: természetes nyelvi dokumentum (regény, jelentés, levél,..) Tágabb értelemben: karakter sorozat (DNS, jelsorozat,..) A szöveg lehet strukturálatlan és szemi-strukturált A számítógépen tárolt információk döntő többsége ( 80%) strukturálatlan vagy szemi-strukturált dokumentumokban tárolódik PubMed dokumentum-bázis: - orvosi cikkek gyüjteménye - kb. 16 millió cikk - havonta 40000 új dokumentum Az elemzéshez jól kell ismerni a terület fogalmait (domain knowledge) Dokumentumok ábrázolása Cél a tartalmi elemzés A formátum is hordozhat tartalmi elemeket Dokumentum felépítési szintjei: - karakter (kódolás,..) unigram, bigram, n-gram - szó szóalak, alapszó, ragozás - kifejezés szó vagy szólánc - fogalom áttételes, absztrakt Az alapszint statisztikai alapú, a felső ontológia alapú 3
Dokumentumok ábrázolása Dokumentum modellek halmaz Lista Vektor Betű BOL LOL VOL Szó BOW LOW VOW Kifejezés BOT LOT VOT Fogalom BOC LOC VOC CDM: concept document model VS: vector-space model B: bag of L: list of Szövegbányászat A dokumentum feldolgozás tipikus műveleti: - fogalmak csatolt előfordulásainak megkeresése - fogalmak előfordulási gyakoriságai - fogalmak relevanciái - mintakeresés - kapott szabályok megjelenítése - trend elemezés - véleményelemzés - kivonatolás - eltérés kiemelés - hasonlóság mérése - fogalmak társítása - szótár készítés 4
Szövegfeldolgozó rendszerek architektúrája Modulok: - Előfeldolgozó - Alapműveletek - Megjelenítés - Visszacsatolás Előfeldolgozó: - konvertálás - tisztítás - redukálás Adatstruktúrák: - dokumentum forráskészlet - transzformált dokumentumok - indexek - szótárak - metaadatok (nyelv,..,) Megjelenítés: - GUI - 3D - lényegkiemelés Alapműveletek: - klaszterezés - osztályozás - mintakeresés Visszacsatolás: - módszer értékelése - paraméter korrekció - iteráció Szövegfeldolgozó rendszerek architektúrája séma adatbázisok dokumentum e-mail Dokumentumok begyűjtése Dokumentumok előfeldolgozása Dokumentumok archiválása szöveg Iteratív dialógus kezelés Dokumentumok lekérdezése Feldolgozó alap algoritmusok felhasználó Külső adatbázisok 5
A szöveg feldolgozási eljárások célja: hatékony információ lekérdezés, keresés Különböző szintű lekérdezések: Kérdés1: Keressük azon dokumentumokat, amelyben szerepel a labda szó, de nem szerepel a gól szó Kérdés2: Keressük azon dokumentumokat, amelyben szerepel a labda szó valamely alakja Kérdés3: Keressük azon dokumentumokat, amelyben együtt szerepel a labda és a gyártás szó Kérdés4: Keressük azon dokumentumokat, amely a fociról szól Kérdés5: Keressük azon dokumentumokat, amelyek hasznosak lehetnek a futbalistáknak Egység karakter n-gram szó kifejezés fogalom Szövegbányászat statisztika szemantika Lekérdezés egzakt pozíció alapú közelítő fogalmi Módszer mintakeresés klaszterezés osztályozás értelmezés kivonatolás 6
Term dokument mátrix (BOW) Hatékony indexelésre van szükség Antony and Cleopatra Julius Caesar The Tempest Hamlet Othello Macbeth Antony 0 0 0 1 Brutus 0 1 0 0 Caesar 0 1 Calpurnia 0 1 0 0 0 0 Cleopatra 1 0 0 0 0 0 mercy 1 0 worser 1 0 1 0 Megfelel egy bitmap indexnek Nagy tanító mintáknál kezelhetetlenné válhat - Csak az értékes adatok maradnak meg - Láncolt listás megoldás - pointerek tárolása extra helyigény Brutus Calpurnia Caesar Dictionary 2 4 8 16 32 64 128 1 2 3 5 8 13 21 34 13 16 Postings 7
Dokumentum készlet Friends, Romans, countrymen. Tokenizer Szöveg tokenizálás Tokenek normalizálása. Invertált index Linguistic modules Indexer Friends Romans Countrymen friend roman countryman friend roman countryman 2 4 1 2 13 16 Szövegből a kifejezések kigyűjtése : (term:document) Az kapott lista rendezése kifejezés szerint A kifejezések gyakoriság meghatározása 8
Term Doc # Freq ambitious be brutus brutus capitol caesar caesar 2 2 did enact hath I 1 2 i' it julius killed 1 2 let me noble so the the told you was was with Term N docs Tot Freq ambitious be brutus 2 2 capitol caesar 2 3 did enact hath I 1 2 i' it julius killed 1 2 let me noble so the 2 2 told you was 2 2 with Doc # Freq 2 2 1 2 1 2 Az invertált lista alkalmazható összetett keresések meggyorsítására Kérdés: Keressük azon dokumentumokat, amelyben szerepel a labda szó és szerepel a gól szó 2 8 2 4 8 16 32 64 128 1 2 3 5 8 13 21 34 labda gól A két lista metszetét vesszük Műveletek megfeleltetése: A AND B List (A) metszet List(B) A OR B List (A) union List(B) NOT A komplemens List (A) 9
Összetett feltételek hatékonysági kérdései A AND B AND C AND D A megadott listák metszetét kell képezni. A sorrend meghatározza a költséget A legkisebb hosszúságú listával kell kezdeni Brutus Calpurnia Caesar 2 4 8 16 32 64 128 1 2 3 5 8 13 21 34 13 16 A javasolt sorrend: (Ceasar AND Brutus) AND Calpurnia Összetett feltételek hatékonysági kérdései Az OR művelet költsége - minden tagra a méret meghatározása (gyakoriság) - OR műveletnél a méretek összegét vesszük (tangerine OR trees) AND (marmalade OR skies) AND (kaleidoscope OR eyes) Term Freq eyes 213312 kaleidoscope 87009 marmalade 107913 skies 271658 tangerine 46653 trees 316812 10
Költség jellemzők: N: dokumentum db, M: szó db, L: dokumentum hossz, w: szóhossz, (M > L) Hely: dokumentumok: N*L*w index: M * (N* (L/ M))*w = N*L*w (25%) Idő: Keresés: N*L / M Metszet : 2 * N*L / M Amit nem támogat az alap invertált index: - kifejezések (szóláncok) keresése - pozíció alapú keresés - közelítő keresés - találatok rangsorolása A AND B*C 11
Hatékonyság javítása A szomszédokra lépés helyett nagyobb ugrás a keresénél 16 128 2 4 8 16 32 64 128 8 31 1 2 3 5 8 17 21 31 Skip-lista alkalmazása Skip lista előnye: Ha a szomszéd értéke nagyobb mint a távoli ugráshely értéke, akkor lehet ugorni. Hátránya: plussz vizsgálat + plussz helyköltség (pointer) 16 128 2 4 8 16 32 64 128 8 31 1 2 3 5 8 17 21 31 K listahossz esetén sqrt(k) hosszú ugrés 12
Kifejezésekre történő indexelés: az indexbe szópárok is kerülnek (szomszédos szavak) Tetszőleges szólánc felbontható szópárokra A kifejezés tangerine trees and marmalade skies felbontható az alábbi részekre tangerine trees AND trees and marmalade AND marmalade skies Nem elég rugalmas, költséges L L 2 Pozíciót is tároló indexelés A dokumentumhoz az előfordulási pozíciók is megadásra kerülnek <be: 993427; 1: 7, 18, 33, 72, 86, 231; 2: 3, 149; 4: 17, 191, 291, 430, 434; 5: 363, 367, > Megnövekedett költség (55%-az alap dokumentumnak) Alkalmas közelség alapú keresésre, sorrend alapú keresésre 13
Gyakorlati feladatok F1 : Készítsen gyakoriság számláló algoritmusokat: a: karakter gyakoriság b: 2-gram gyakoriság c: szó gyakoriság (j2am.zip) (00598doc.zip) F2: rajzolja fel a gyakoriság hisztogramot hasonlítsa össze az egyes nyelveket F3 : készítsen invertált index struktúrát a: index felépítése b: AND, OR alapú keresés F4 : készítsen invertált pozíció tároló index struktúrát a: index felépítése b: közelség alapú keresés Tokenizálás Értelmezési problémák: Finland s capital Finland? Finlands? Finland s? Hewlett-Packard Hewlett és Packard két token? San Francisco: egy vagy két token? Hogy lehet eldönteni? Japán, kínai nyelvekben nincs szóköz Az értékek alakjai, formátumai nemzet-függőek (12.11) Egy szó jelentése nyelvfüggő Hangzás alapú hibák kezelése Célszerű a szótövekre bontani a szöveget 14
Szótőkeresés Nyelvfüggő Angol: egyszerűbb szabályok Porter algoritmusa: fix átalakítások rendszere sses ss ies i ational ate tional tion http://facweb.cs.depaul.edu/mobasher/classes/csc575/porter.html Porter_stemer.txt 15