Szövegbányászat és dokumentum kezelés
3. Előfeldolgozás, klaszterezés
Dr. Kovács László ME GEIAL
A dokumentumok reprezentálása A dokumentum a szavak együttese A dokumentum rendszerben különböző szavak eltérő súlyúak a téma azonosításában atomreaktor
valamint
Adott a szó-dokumentum mátrix: K (BOW modellre igazodik) Antony and Cleopatra
Julius Caesar
The Tempest
Hamlet
Othello
Antony
157
73
0
0
0
Macbeth
0
Brutus
4
157
0
1
0
0 1
Caesar
232
227
0
2
1
Calpurnia
0
10
0
0
0
0
Cleopatra
57
0
0
0
0
0
mercy
2
0
3
5
5
1
worser
2
0
1
1
1
0
Dr. Kovács László ME GEIAL
1
A dokumentumok reprezentálása A szó-dokumentum mátrixból dokumentum reprezentációs vektorok képezhetők A legegyszerűbb eset a bináris reprezentáció: ahol
d i ( d i1 ,..., d iM )
1, ha K ij > 0 d ij = 0
A bináris reprezentáció előnye: - kis költség (gyors, helyigény) - közelítésre alkalmas - a lényeges különbséget meg tudja fogni
Dr. Kovács László ME GEIAL
A dokumentumok reprezentálása A pontosabb mérőszám a súlyozott reprezentáció:
d i ( d i1 ,..., d iM ) d ij = K ij Nem pontos a lényegi különbségek kiemelésében túl nagy súly a nagy gyakorisághoz Sokszor a gyűjteménytámogatottságot is szokás vizsgálni:
cf i = ∑ j K ij
Tompítani kell a nagy értékek szerepét, logaritmikus súlyozás:
1 + log K ij ha K ij > 0 d ij = 0 Dr. Kovács László ME GEIAL
2
A dokumentumok reprezentálása Az eddigi modellek nem veszik figyelembe a dokumentum hosszát, pedig a df=2 érték szerepe más lesz L=6 vagy L=655 esetében Normalizált súlyozás
1 + log K ij ha K ij > 0 d ij = ∑ K ij i 0 d ij = tf ij =
K ij
∑K i
ij
Ezt a mérőszámot nevezik szó gyakoriságnak is (frequency) (TF) Dr. Kovács László ME GEIAL
A szavak fontosságának mérése A szónak a dokumentumbeli fontosságát csak részleges mutatja TF vagy CF. Fontos a szavak eloszlásának ismerete is (minden dokumentumban szerepel vagy csak néhányban) Dokumentum számosság (a befoglaló dokumentumok darabszáma)
df i TF– IDF mérőszám
wij = tf ij ⋅ log(
n ) df j
A fontosság mérése:
Dr. Kovács László ME GEIAL
Jól jellemezze az adott szó megkülönböztető szerepét a dokumentumhalmazban
3
A szavak fontosságának mérése A TF-IDF súlyozás előnyei: - magas lesz azon szavaknál amelyek csak néhány dokumentumban fordulnak elő nagy súllyal - kicsi lesz ott az értéke, ahol a tartalmazó dokumentumok darabszáma igen magas - kicsi lesz ott, ahol a szó csak nagyon ritkán fordul elő a dokumentumban
Normalizált TF-IDF
wij =
tf ij ⋅ log(
∑ (tf i
ij
n ) df j
⋅ log(
n 2 )) df j
Dr. Kovács László ME GEIAL
A lényegtelen szavak eliminálása A feladat szempontjából nem releváns szavak elhagyhatók a rendszerből Stopword: az elhagyható szavakat jelenti A stopword lista témától függően változhat: - egzakt keresés : kis lista (kb 100) - tartalom alapú keresés, kivonatolás: nagy lista (kb. 1000)
a,able,about,across,after,all,almost,also,am,among,an,and,any,are,as,at, be,because,been,but,by,can,cannot,could,dear,did,do,does,either,else,ever,every, for,from,get,got,had,has,have,he,her,hers,him,his,how,however,i,if,in,into, is,it,its,just, least,let,like, likely,may,me,might,most,must,my,neither,no,nor,not,of,off,often,on, only,or,other,our,own, rather,said,say,says,she,should,since,so,some,than,that,the, their, them,then,there,these,they,this,tis,to,too,twas, us,wants,was,we,were,what, when,where,which,while,who,whom,why, will,with,would,yet,you,your Az angol stopword lista Dr. Kovács László ME GEIAL
4
A dokumentum tagolása Az értelmezésnél, a keresésnél lényeges lehet a dokumentum szerkezetének ismerete is - lehet egy megadott részre vonatkoztatni a keresést - lehet az eltérő részeket másképp súlyozni A szerkezet egy hierarchia A szerkezet feltárásának költsége jelentősen függ a formátumtól - LATEX, XML : önleíró szerkezet - PDF: nagyobb munka a darabolás - TXT : tartalom megértés kell hozzá
Dr. Kovács László ME GEIAL
A dokumentum tagolása
Dr. Kovács László ME GEIAL
Igen eltérő dokumentum modellek léteznek
5
A dokumentum tagolása Egyszerűsített szerkezeti hierarchia dokumentum készlet dokumentum metadata
törzs szekció bekezdés mondat kifejezés szó
Dr. Kovács László ME GEIAL
A dokumentum tagolása Szekciókra tagolás Szeparátor elemek: - metaadat tagok - formátum jelek - séma Témakör függő algoritmus Mondatokra tagolás Egyszerűbb feladatnak tűnik, de itt is több buktató léphet fel: - a pont mondat közben is megjelenhet (rövidítések) - nagybetű a mondat közben is megjelenhet - az almondatot nem pont határolja - hiányozhatnak a mondathatároló jelek
Következő megálló a Margit krt. Moszkva tér felőli oldalén lesz Következő megálló a Margit krt. Moszkva térnél van a végállomás. Dr. Kovács László ME GEIAL
6
A dokumentum tagolása Kifejezésekre tagolás Token: egy kifejezés a mondatban Típus: az azonos karaktersorozatot alkotó tokenek csoportja Szeparátor elemek: - szóköz karakterek - mondatvég karakter - soremelés karakter Nehézséget okoznak: - kötőjel (elválasztó jel vagy nem: adatbázis-kezelés) - aposztróf (nemt’om) - egyéb írásjelek (W.C.) - többszavas kifejezések
Dr. Kovács László ME GEIAL
A HUNTOKEN projekt A 2000-es évek elején elkészült magyar nyelvre adaptált tokenizáló program Magyar projket (BME), http://mokk.bme.hu/resources/huntoken Unix alapú környezet (v. cygwin) A bemenő txt file-ból xml kimenetet állít elő <s> mondat <w> szo
irasjel A Flex és C nyelven implementált A szegedi korpuszt 98% pontossággal tokenizálja 68941 mondatból csak 1071 a hibás
Dr. Kovács László ME GEIAL
7
A HUNTOKEN projekt A Huntoken program Flex nyelven írt, csőbe (pipe) kötött szűrőprogramokból áll. A csővezetéket a Huntoken parancs indítja el. A cs!be kötött szűrőprogramok: hun_clean hun_sentence hun_abbrev hun_sentclean hun_token hun_head
karaktereket törli, illetve átalakító szűrő mondatra bontó szűrő a mondatra bontást javító szűrő mondatra bontás eredményét formázó szűrő szavakra bontó és nyitott tokeneket felismerő szűrő XML fej- és láblécet kiíró héjprogram
Dr. Kovács László ME GEIAL
A HUNTOKEN projekt A HUN_CLEAN szűrő A szűrő normalizálja a bemenő szöveges állományokat a következő műveletek elvégzésével: - ismétlődő szóköz értékű karakterek törlése - ismétlődő üres sorok és közbeékelt szóközök törlése - sor eleji és sor végi szóközök törlése - nem törő szóközök szóközzé alakítása - Windows-1250 karakterek ISO-8859-1-es HTML entitássokká alakítása - decimális karakterkódok esetén az alsó ASCII, és a magyar !, ", #, $ karakterré alakítása < és > átalakítása < és &t;-re (a kés!bbi XML kimenet miatt) - … ...-tá alakítása - az összes ISO-8859-2-ben szerepl! ISO-8859-1-es entitás karakterré alakítása (például á á) A HUN_SENTENCE szűrő A szűrő <s> nyitó- és zárócímke közé zárja a felismert mondatokat, vagyis elvégzi a mondatra bontást. Dr. Kovács László ME GEIAL
8
A HUNTOKEN projekt A HUN_ABBREV szűrő A megadott rövidítések,és más beépített szabályok alapján felülbírálja, és szükség esetén módosítja a Hun_sentence által megállapított mondathatárokat, valamint a Hun_token által megállapított szóhatárokat. A következ! helyeken szünteti meg a mondathatárt: - sorszám és nagy kezdőbetűs szavak között - sorszám és utána zárójeles, római számos dátum esetén - ügyiratszám és az azt követő zárójeles dátum esetén - sorszám és paragrafusjel között - monogramok esetén - A megadott rövidítések esetén. (A stb. nincs megadva.)
A HUN_SENTCLEAN szűrő A szűrő paragrafushatárokat illeszt be az üres sorok helyére, illetve minden mondatot külön sorba helyez el. Dr. Kovács László ME GEIAL
A HUNTOKEN projekt A HUN_TOKEN szűrő A szavakat <w> nyitó- és zárócímke közé helyezi. Az eredeti mondatokat meghagyja a <s> nyitócímkével egy sorban is. Az írásjelek a ,,c'' elembe kerülnek. A nyitott tokenosztályba eső tokenek MSD kódja az ,,anav'' elembe kerül. A következ! nyitott tokenek felismerésére kerül sor: - m = toldalékmorfémák (-ság, -t!l/-t!l) - e = elektronikus címek, e-mail, webhely, útvonal, fájlkiterjesztés, egyéb - indexek (trade mark, registered trade mark) - számok: (sport)eredmények, el!jeles egész számok, id!pont, dátum, pontot tartalmazó számok, százalékjelet tartalmazó számok, fokjelet tartalmazó számok, arány (SI mértékegységgel), méret × jellel, képletek - azonosítók (szabvány jelzete, telefonszám, írásm" része,ISBN kód, rendszám - egyéb köt!jellel kezd!d!, vagy végz!d! szavak - számmal és bet"vel jelölt számok
Dr. Kovács László ME GEIAL
9
Java Tokenizer edu.northwestern.at.utils.swing Class DocumentTokenizer java.lang.Object edu.northwestern.at.utils.swing.DocumentTokenizer implements java.util.Iterator Tokenizes document text. A token is defined as text between word separator characters. The separator characters are defined below in the WORD_SEPARATOR_CHARACTERS array.
Document document = textPane.getDocument(); DocumentTokenizer tokenizer = new DocumentTokenizer( document , 0 ); while ( tokenizer.hasNext() ) { String word = tokenizer.next(); System.out.println( word + " starts at " + tokenizer.getStartPos() + ", ends at " + tokenizer.getEndPos() ); } Dr. Kovács László ME GEIAL
10