Strojové zpracování a analýza textových dat
Jakub Ščavnický
Bi8700 Vybrané kapitoly ze zpracování,
analýzy a vizualizace dat
Obsah
- Textové dáta
- Web scraping
- Modelový príklad 1
- Modelový príklad 2
- Samostatná práca
Text
- Textové dáta v dnešnej dobe internetu sú všade
- google
- wikipedia
- sociálne siete
- články
- fóra
- …
- Typ zdroja dát
- štruktúrovaný (tabuľka, databáza)
- neštruktúrovaný (kus textu)
Textové vyhľadávanie
- Štruktúrovaný zdroj
- v DB dotaz:
“SELECT * FROM books WHERE
author_name = ‘J.R.R. Tolkien’”
- v Exceli filter
- výsledky exaktné podľa povahy DB
- Neštruktúrovaný zdroj
- funkcia Find
- na webe: google search
“J.R.R. Tolkien books”
- problémy: jazyk, sémantika, preklepy,
interpunkcia, diakritika, ...
Chcem nájsť knihy, ktoré napísal Tolkien.
Získavanie textu z online zdrojov
- Kopírovanie a vloženie
- Využitie aplikačného rozhrania pre sťahovanie dát (API)
- Facebook, Twitter, NASA, reddit, ...
- HTML (Hypertext Markup Language)
- štandard pre tvorbu webových stránok a aplikácií
- obsahuje dáta vo forme textu → dokument
- Stiahnutie (rôzne formáty)
- Komunikácia s webovým serverom
HTML
- Hypertextový značkovací jazyk
- V pozadí webových stránok je vždy nejaká forma HTML
HTML
- Webový prehliadač prekladá HTML do vizuálnej podoby
pomocou HTML tagov
-
, , , až ,
, , …
- Portál Matematická Biologie
*https://en.wikipedia.org/wiki/HTML
HTML
- HTML dokument je štruktúrovaný
- Text v HTML tagoch nemusí byť štruktúrovaný
Vedie na strojové spracovanie textu z online zdrojov s cieľom
získať štruktúrovanú podobu dát.
Web scraping
- Strojová technika extrahovania informácií z webových stránok
prostredníctvom HTML kódu
- Vhodný pre:
- veľké množstvo dát
- dáta z viacerých stránok
- opakovanie v čase
Scraping vs. crawling
- Web scraper
- program, ktorý pomocou dotazov
na server získa dáta a následne si ich
uloží bokom
- bez prehliadača
- vedie na parsing a text mining
*https://en.wikipedia.org/wiki/Web_scraping
- Web crawler
- program, ktorý systematicky prechádza
množinu webových stránok typicky
za účelom indexovania
- vedie na skúmanie štruktúry webu
a mapovanie obsahu
*https://en.wikipedia.org/wiki/Web_crawler
Právne normy a etika
- Scraping - všeobecne negatívny pohľad
- šedá zóna, no nie je nelegálny – dotýkajú sa ho rôzne zákony
- stránky verejné → dáta verejné ?
- business, súkromné účely, výskum, edukačné aktivity, ...
- Pravidlá
- rešpektovať podmienky použitia a tzv. “robots.txt” súbor (príklad 1, príklad 2)
- rešpektovať autorské práva (copyright infringement)
- s dátami nakladať legálne
- nezaťažovať server (trespass to chattels)
- vždy sa môžete opýtať na povolenie autorov webu
- v prípade zverejnenia výstupu – agregovať, neduplikovať, nepredávať a uviesť zdroj
- Etika
- nepriame odhalenie niekoho osobnej identity
- nepriame odhalenie niekoho know-how
- znižovanie výnosov stránok z reklám
- znehodnotenie štatistík google analytics
*https://www.researchgate.net/publication/324907302_Legality_and_Ethics_of_Web_Scraping
Google
Crawling, scraping, spracovanie, indexácia, vypisovanie
vykopírovaných informácií ...
- Googlebot – crawler, ktorý neustále prechádza weby
- Má cieľový URL list, ktorý sa v čase mení
- Obsah sťahuje a predkladá ďalším službám na spracovanie
a indexáciu
- Rešpektuje robots.txt a využíva aj sitemap.xml
- Je to etické a v súlade so zákonom?
*https://www.gdata.in/blog/seo/how-google-indexes-your-website-using-googlebot
Web crawling
*https://en.wikipedia.org/wiki/Web_crawler
Web crawling
Aplikácie
- Prieskum trhu
- Dáta zo sociálnych sietí
- Komentáre z fóra
- Výskumné účely
- Edukačné účely
- How a Math Genius Hacked OkCupid to Find True Love
- "I think that what I did is just a slightly more algorithmic, large-scale, and
machine-learning-based version of what everyone does on the site," McKinlay says.
Everyone tries to create an optimal profile—he just had the data to engineer one.
Technológie
- Jazyk
- python, R, PHP, JavaScript, ...
- Knižnice
- python – urllib, re, BeautifulSoup, nltk
- R – rvest, tm, stringr, tidytext
Text mining
- Proces získavania nových informácií z textových dát
- Natural Language Processing
- Semantical Analysis
- Frequency Analysis
- Similarity Analysis
- …
- Stemming
- Tokenization
- Lemmatization
- Parts of speech identification
- Stop words list
- …
- Vizualizácie
- wordcloud, barchart, bubblechart, network charts, dendrogramy, ...
*https://www.fosteropenscience.eu/content/text-mining-101
CRISP-DM
*https://www.dataproduct.at/methodology.html
Prestávka
Modelový príklad 1
Aké je zloženie zamestnancov vo FN Brno v areáli Bohunice
v závislosti na type oddelení, pozícii či pohlaví zamestnanca?
- Aké dáta potrebujem získať?
- Kde dáta nájdem?
- Obsahujú dáta všetky potrebné informácie?
- Môžem dáta stiahnuť a použiť?
Modelový príklad 1 – postup
Ako by ste postupovali?
1. Web scraping
2. Čistenie dát
4. Agregácia, vizualizácia
3. Štrukturalizácia dát
5. Kontrola, evaluácia
Modelový príklad 1 – dáta
www.fnbrno.cz
Modelový príklad 1 – scraping
Modelový príklad 1 – technológie
- python (knižnice urllib3, BeautifulSoup, re)
- SQLite (knižnica sqlite3)
- jupyter-notebook (knižnice pandas, plotly)
Prestávka
Analýza textu online
- Nástroj Voyant Tools
- Online, open-source, školský projekt
- UI vo viacerých jazykoch
- Analýzy sú jazykovo nezávislé (až na niektoré procedúry)
- Vstup – textové dokumenty (1 a viac...)
- Výstup – interaktívny dashboard s vizualizáciami, tabuľkami,
porovnaniami, ...
*https://voyant-tools.org/docs/#!/guide/about
Modelový príklad 2
- The Italian Cook Book The Art of Eating Well
- eKnihy zdarma – Project Gutenberg
Samostatná práca
1. Vytvorte 3 skupiny
2. Vyberte si zdroj dát:
- Harry Potter and the Philosopher's Stone (EN book)
- The Lord of the Rings: The Fellowship of the Ring (EN book)
- Star Wars IV, V, VI (EN subtitles)
- Game of Thrones – Book One of A Song of Ice and Fire (EN book)
- Forrest Gump (EN book)
3. Pomocou online nástroja Voyant Tools “vydolujte” zaujímavé
informácie a na základe výstupov “prerozprávajte” príbeh
vybraného diela