Vytˇ eˇ zov´ an´ı Dat Cviˇ cen´ı 5 – Textmining ˇ Miroslav Cepek, Michael Andˇel 21. 10. 2014
Evropsk´ y soci´ aln´ı fond Praha & EU: Investujeme do vaˇs´ı budoucnosti
ˇ Fakulta elektrotechnick´a, CVUT
1 / 29
Self Organizing Map
Z´akladn´ı kroky pro text mining
1. Z´ısk´an´ı dokument˚ u a nahr´an´ı do Rapidmineru (ˇci jin´eho SW) 2. Tokenizace (rozklad textu na jednotliv´a slova) 3. Odfiltrov´an´ı ˇcast´ych a nezaj´ımav´ych slov 4. Pˇrevod slov na koˇreny slov (stemming) I I I
Pˇrevod na jednotn´a ˇc´ısla Pˇrevod r˚ uzn´ych ˇcasov´an´ı/zp˚ usoby/vidy na infinitivy Pˇrevod mezi r˚ uzn´ymi variantami slov (pˇr´ıslovce, pˇr´ıdavn´a jm´ena ← podstatn´a jm´ena).
5. Vytvoˇren´ı ”word vectoru”. (Pˇrevod slov na ˇc´ısla). 6. Tvorba modelu.
2 / 29
Self Organizing Map
Instalace rozˇs´ıˇren´ı pro Textmining
I
Standardn´ı instalace Rapidmineru neobsahuje rozˇs´ıˇren´ı pro Textmining.
I
Mus´ıte nainstalovat rozˇs´ıˇren´ı, ale naˇstˇest´ı je to velmi jednoduch´e :).
I
Z menu Help vyberte Update RapidMiner. Zde zakliknˇete Text Processing a Web Mining.
I
A kliknˇete na Install.
3 / 29
Self Organizing Map
Z´ısk´an´ı dokument˚ u a nahr´an´ı do Rapidmineru
I
Existuje nˇekolik uzl˚ u, pro nahr´av´an´ı dat do RapidMineru.
I
Pro naˇse u ´ˇcely, kdy m´ame dokumenty r˚ uzn´ych typ˚ u v r˚ uzn´ych sloˇzk´ach, nejl´epe vyhovuje uzel Text Processing > Process Documents from Files.
I
Jedn´a se o super-uzel, kter´y bude obsahovat pod-proud transformuj´ıc´ı dokumenty na ˇc´ıseln´e vektory.
4 / 29
Self Organizing Map
Extrakce text˚ u z HTML
I
Prvn´ı krok je extrakce text˚ u z HTML (resp. odstranˇen´ı HTML tag˚ u).
I
Pro to budete potˇrebovat uzel Extract Content > HTML Processing > Extract Content.
5 / 29
Self Organizing Map
Tokenizace
I
Rozklad na jednotliv´a slova.
I
Slova se rozdˇeluj´ı typicky podle ”ne”p´ısmenek. Takto z´ıskan´a slova se oznaˇcuj´ı jako termy.
I
V Rapidmineru existuje uzel ”Tokenize”, kter´y najdete Text Processing > Tokenization > Tokenize.
I
Moˇznosti rokladu na slova jsou: non-letters, specify-characters, regular expression, linguistic tokens, linguistic token.
6 / 29
Self Organizing Map
Tokenizace (2)
I
Zkuste spustit proud nyn´ı.
I
V´ysledkem bude word objekt, kter´y si m˚ uˇzete prohl´ednout.
I
Uvid´ıte poˇcty slov podle typ˚ u dokument˚ u. A tak´e celkov´y poˇcet slov.
I
Kaˇzd´e slovo nakonec bude reprezentovat vstupn´ı promˇennou.
7 / 29
Self Organizing Map
Filtrov´an´ı ˇcast´ych a nezaj´ımav´ych slov
I
Protoˇze vstupn´ıch promˇenn´ych bude i tak moc, je vhodn´e nˇekter´e z nich eliminovat.
I
Prvn´ı zp˚ usob je filtrov´an´ı obvykl´ych a nezaj´ımav´ych slov.
I
V Rapidmineru se to dˇeje uzlem Text Processing > Filtering > Filter Stopwords (English).
I
T´ım z dokumentu odstran´ıte termy (slova), kter´a se v angliˇctinˇe vyskytuj´ı pˇr´ıliˇs ˇcasto.
I
Napˇr´ıklad spojky, bˇeˇzn´a slovesa, pˇredloˇzky, apod...
I
Uzel v Rapidmineru obsahuje seznam pˇreddefinovan´ych slov.
8 / 29
Self Organizing Map
Filtrov´an´ı ˇcast´ych a nezaj´ımav´ych slov (3)
I
Stejnˇe tak m˚ uˇze (ale nemus´ı) b´yt dobr´y n´apad vyfiltrovat slova, kter´a jsou pˇr´ıliˇs dlouh´a nebo pˇr´ıliˇs kr´atk´a.
I
K tomu slouˇz´ı Text Processing > Filtering > Filter Tokens (by Length).
9 / 29
Self Organizing Map
Pˇrevod slov na koˇreny slov – Stemming
I
Exituje nˇekolik zp˚ usob˚ u, jak naj´ıt koˇren slova.
I
Napˇr´ıklad hrubou silou – tj tabulka mapuj´ıc´ı kaˇzd´e slovo a kaˇzd´y jeho tvar na odpov´ıdaj´ıc´ı koˇren. Jeden z dalˇs´ıch pouˇz´ıvan´ych algoritm˚ u (pro Angliˇctinu) je tzv. Porter˚ uv algoritmus.
I
I I
I
I
Iterativnˇe odeb´ır´a zn´am´e koncovky anglick´ych slov. M´a seznam pˇr´ıpon a ty se pokouˇs´ı postupnˇe odebrat (pokud to lze). Napˇr´ıklad HOPEFULNESS → HOPEFUL → HOPE.
http://tartarus.org/martin/PorterStemmer/def.txt
10 / 29
Self Organizing Map
Pˇrevod slov na koˇreny slov – Stemming (2)
11 / 29
Self Organizing Map
Kombinace slov - N-Grams
I
Nˇekdy se v dokumentech vyskytuj´ı zaj´ımav´e kombinace (po sobˇe jdouc´ıch) slov.
I
N-Gram je term, kter´y obsahuje posloupnost term maxim´aln´ı d´elky N.
I
Uzel Text Processing > Transformation > Generate n-Grams (Terms) vygeneruje vsechny kombinace term˚ u.
12 / 29
Self Organizing Map
Kombinace slov
13 / 29
Self Organizing Map
Vlastnosti uzlu Process Documents from Files I
Jednak umoˇzn ˇuje zahodit m´alo (nebo moc) ˇcasto se vyskytuj´ıc´ı termy (slova a n-gramy).
I
Jednotliv´e moˇznosti vyb´ır´ate combo-boxem Prune method.
I
Dalˇs´ı d˚ uleˇzit´a vˇec je zaˇskrtnout Create word vector.
I
A vybrat vhodnou metodu pro Vector creation.
14 / 29
Self Organizing Map
Vytvoˇren´ı ”word vectoru”
I
Nyn´ı m´ame slova (termy) a jejich poˇcty v jednotliv´ych dokumentech.
I
Pˇred pˇredloˇzen´ım shlukovac´ı (ˇci jak´ekoliv jin´e) metodˇe je potˇreba tyto poˇcty nˇejak pˇretransformovat. V Rapidmineru jsou na v´ybˇer n´asleduj´ıc´ı moˇznosti:
I
I
I I I
Term Frequency – normalizovan´y poˇcet v´yskyt˚ u termu cet v´ yskytu termu ) ( poˇ celkov´ y poˇ cet term˚ u Term Occurences Binary Term Occurences TF-IDF
15 / 29
Self Organizing Map
Term Frequency - Inverse Document Frequency
I
M´ıra ukazuj´ıc´ı, jak moc je term specifick´y pro dan´y dokument.
I
Zahrnuje v sobˇe dvˇe ˇc´asti Term Frequency a Inverse Document Frequency.
I
Term Frequency je definov´an takto: tf (t) =
16 / 29
poˇcet v´yskytu termu celkov´y poˇcet term˚ u
Self Organizing Map
Term Frequency - Inverse Document Frequency (2)
I
Inverse Document Frequency ukazuje, jak ˇcasto se vyskytuje term v ostatn´ıch dokumentech. idf (t) = log
kDk k{d : t ∈ d}k
I
kDk – Celkov´y poˇcet dokument˚ u.
I
k{d : t ∈ d}k – Poˇcet dokument˚ u, ve kter´ych se term t vysktytuje.
17 / 29
Self Organizing Map
Term Frequency - Inverse Document Frequency (3)
I
Term Frequency - Inverse Document Frequency nakonec z´ısk´ame, kdyˇz tyto dvˇe m´ıry vyn´asob´ıme. td − idf (t, d) = tf (t, d) ∗ idf (t)
18 / 29
Self Organizing Map
Export dat do CSV a import do MATLABu
I
V RapidMineru bohuˇzel nejsou ˇz´adn´e vhodn´e shlukovac´ı ˇ pouˇzijeme Matlab a SOM toolbox. metody. Cili
I
K exportu z RapidMineru lze pouˇz´ıt uzel Export > Data > Write CSV
I
Abychom se nemuseli tr´apit v Matlabu s naˇc´ıt´an´ım oˇskliv´ych hodnot, m˚ uˇzeme vyuˇz´ıt uzlu Export > Data > Write CSV k odstranˇen´ı sloupc˚ u, kter´e obhashuj´ı neˇc´ıseln´a a pomocn´a data.
I
V m´em pˇr´ıpadˇe jde o sloupce: Description, Keywords, Language, Robots, Title, label, metadata date, metadata file, metadata path.
I
Pro import pouˇzijeme v MATLABu funkci importdata.
19 / 29
Self Organizing Map
Shlukov´an´ı v SOM toolboxu
I
Vytvoˇren´ı a nauˇcen´ı SOM mapy:
I
map = som make(x.data);
I
Zobrazen´ı UMatice:
I
som show(map, ’umat’,’all’)
I
Jak to dopadlo?
20 / 29
Self Organizing Map
UMatice se zobrazen´ymi tˇr´ıdami dokument˚ u
21 / 29
Self Organizing Map
Zobrazen´ı mapy a dat pomoc´ı PCA projekce
22 / 29
Self Organizing Map
Zad´an´ı dom´ac´ıho u´kolu
I
Je potˇreba zjistit, kter´a f´ ora se odliˇsuj´ı a naopak kter´a jsou tˇeˇzko rozliˇsiteln´a.
I
Pomoc´ı SOM shlukov´an´ı (praktick´e pov´ıd´an´ı bude pˇr´ıˇstˇe) vytvoˇrte shluky dodan´ych dokument˚ u.
I
Dokumenty obsahuj´ı zpr´avy z nˇekolika diskusn´ıch f´or. Kaˇzd´e f´orum m´a jeden adres´aˇr a kaˇzd´a zpr´ava v nˇem je jeden soubor.
I
Ze str´anek pˇredmˇetu (cviˇcen´ı) st´ahnˇete tato data.
I
Z dokument˚ u extrahujte d˚ uleˇzit´a slova a pˇr´ıznakov´e vektory pomoc´ı rozˇs´ıˇren´ı rapidmineru pro textmining.
I
Takto extrahovan´a data uloˇzte do CSV souboru.
23 / 29
Self Organizing Map
Zad´an´ı dom´ac´ıho u´kolu (2)
I
Tento CSV soubor naˇctˇete do MATLABu pomoc´ı funkce dlmread (nebo podobn´e).
I
Pomoc´ı SOM Toolboxu shluknˇete naˇcten´a data a pomoc´ı r˚ uzn´ych vizualizac´ı zobrazte v´ysledky shlukov´an´ı.
I
Za pomoci vizualizac´ı uˇciˇ nte z´avˇery, kter´a f´ ora jsou si podobn´a z pohledu pouˇzit´ych slov (strojovˇe obt´ıˇznˇe odliˇsiteln´a) za pomoci text-miningu a kter´a naopak zle odliˇsit jednoduˇse.
I
uv Pomoc´ı funkce kmeans clusters zjistˇete, kolik segment˚ datech je. A pomoc´ı funkce som cplane si zobrazte, kter´e neurony patˇr´ı do stejn´eho clusteru. Pomoc´ı som hits zobrazte, kter´e typy dokument˚ u jsou ve kter´ych neuronech a pak uˇciˇ nte z´avˇer, kter´e dokumenty jsou si podobn´e.
24 / 29
Self Organizing Map
Nastaven´ı textminingu
I
Tokeny (slova) jsou oddˇeleny znaky, kter´a nejsou p´ısmena.
I
Doporuˇcuji, abyste vyfiltrovali pˇr´ıliˇs kr´atk´a slova (ˇreknˇeme kratˇs´ı neˇz 5 znak˚ u) a ˇcasto se vyskytuj´ıc´ı slova (stopwords) – pˇredloˇzky, spojky, ...
I
Pro hled´an´ı koˇren˚ u slov pouˇzijte Porter˚ uv algoritmus.
I
Volitelnˇe m˚ uˇzete zkusit zkusit zkontruovat n-gramy (tokeny sest´avaj´ıc´ı se z v´ıce slov) – doporuˇcuji maxim´alnˇe 3 slova.
I
Tak´e doporuˇcuji odstranit slova, kter´a se vyskytuj´ı pˇr´ıliˇs ˇr´ıdce (pˇr´ıliˇs m´alo -kr´at).
25 / 29
Self Organizing Map
Obsah zpr´avy
I
Zpr´ava bude obsahovat:
I
I
Popis proudu v Rapidmineru, kter´ym jste vyextrahovali pˇr´ıznaky z dokument˚ u a jeho screenshot (alespoˇ n d˚ uleˇzit´e ˇc´asti). Popis postupu, jak´ym jste vytvoˇrili SOM s´ıt’ a jej´ı vizualizace.
I
Vytvoˇren´e vizualizace a jejich popis.
I
Z´avˇer o tom, zda se diskusn´ı f´ ora podobaj´ı nebo ne (pˇr´ıpadnˇe kter´a).
I
DEADLINE: 11. 11. 2014
26 / 29
Self Organizing Map
Uˇziteˇcn´e zdroje o Textminingu
I
Pokud se chcete pod´ıvat, jak se textmining prov´ad´ı v Rapidmineru, doporuˇcuji n´asleduj´ıc´ı s´erii vide´ı: I I I I I I
I
http://www.youtube.com/watch?v=hpvda_Rfg3s http://www.youtube.com/watch?v=EjD2M4r4mBM http://www.youtube.com/watch?v=vhMzUi-FMy0 http://www.youtube.com/watch?v=ToxzfYECxOU http://www.youtube.com/watch?v=BRvjWLwSScQ http://www.youtube.com/watch?v=9I0BcMuhPe8
Video pˇredn´aˇska o Textminingu http://videolectures.net/ess07_grobelnik_twdmI/
27 / 29
Self Organizing Map
Uˇziteˇcn´e zdroje o Textminingu (2)
I
http://eprints.pascal-network.org/archive/ 00000017/01/Tutorial_Marko.pdf
I
http://www.cs.sunysb.edu/~cse634/presentations/ TextMining.pdf
28 / 29
Self Organizing Map
Uˇziteˇcn´e pˇr´ıkazy SOM Toolboxu
I
som demo1, som demo2, som demo3, som demo4
I
som randinit
I
som make
I
som quality
I
som show
I
Kompletn´ı dokumentaci vˇsech funkc´ı naleznete na http://www.cis.hut.fi/projects/somtoolbox/ package/docs2/somtoolbox.html
29 / 29
Self Organizing Map