facebook
Tematické sekce
 
Branžové sekce
Přehledy
 
Tematické seriály
 

GDPR

General Data Protection Regulation zásadně mění zpracování osobních údajů a zavádí nové povinnosti...

články >>

 

Jak uřídit IT projekt a nezbláznit se

Užitečné tipy a nástroje pro řešení problémů řízení inovací a vývoje produktů...

články >>

 

Industry 4.0

Průmysl 4.0

Jaký vliv bude mít čtvrtá průmyslová revoluce na výrobu a výrobní firmy?

články >>

 

Komplexní svět eIDAS

O nařízení eIDAS již bylo mnoho řečeno i napsáno. A proto jediné, o čem...

články >>

 

Trendy v CRM

Systémy pro řízení vztahů se zákazníky (CRM) prochází v posledních letech výraznou změnou. Zatímco dříve...

články >>

 

Příručka úspěšného IT manažera

Dnes je řada IT manažerů opomíjena. Úspěšní bývají brouci Pytlíci a Ferdové...

články >>

 
Partneři webu
Dialog 3000Skylla
IT SYSTEMS 10/2013 , AI a Business Intelligence

Business analytics: porozumí stroje textu?



SASV současné době rezonují ve světě business analytics dvě hlavní témata: big data a analýza nestrukturovaných dat, tj. především textů. Automatické analýzy obrázků, audio a video nahrávek se prozatím uplatňují jen ve velmi specifických případech, například v kriminalistice. O fenoménu s názvem big data psal na stránkách červnového IT Systems kolega Vladimír Kyjonka, dnes se proto podíváme na druhé téma – analýzu textových dat. Tedy na oblast, kolem níž se během posledních několika let vyrojilo mnoho zájmu, nadějí, ale také mýtů a pochybností.


V současné době rezonují ve světě business analytics dvě hlavní témata: big data a analýza nestrukturovaných dat, tj. především textů. Automatické analýzy obrázků, audio a video nahrávek se prozatím uplatňují jen ve velmi specifických případech, například v kriminalistice. O fenoménu s názvem big data psal na stránkách červnového IT Systems kolega Vladimír Kyjonka, dnes se proto podíváme na druhé téma – analýzu textových dat. Tedy na oblast, kolem níž se během posledních několika let vyrojilo mnoho zájmu, nadějí, ale také mýtů a pochybností.

Běžné typy analýz

S trochou nadsázky by se dalo říci, že vlastně všechno ve světě výpočetní techniky je tak trochu jako dítě – když je „malé“, sotva na světě, přizpůsobuje se okolní svět jemu, a teprve jak postupně dospívá, začíná si osvojovat „neupravenou“ realitu. Krásně je to vidět například na postupném vývoji programovacích jazyků. Kolik dnešních programátorů ještě umí například Assembler? Naprosté minimum, protože počítače od dob Assembleru dospěly natolik, že již rozumí řeči, která je lidem mnohem bližší.

V oblasti business analytics to funguje úplně stejně. Klasické analytické metody byly vymyšleny dávno před nástupem počítačů a výpočetní technika vlastně stále jenom postupně „dospívá“ a nalézá tak širší uplatnění. Klasické analýzy proto využívají především strukturovaná data, tedy data upravená do takové podoby, aby jim počítače vybavené analytickým softwarem dokázaly snadno porozumět a zpracovat je. Do databází tak sice můžeme ukládat číselné i znakové položky, ale pro zpracování jsou čísla jaksi pohodlnější – běžný analytický software jim na rozdíl od textu rozumí. A když už je opravdu potřeba nenumerické informace použít, děje se tak nejčastěji skrze číselníky nebo umělé, tzv. dummy proměnné (viz dále).

Mezi analýzy, které dnes pokládáme za zcela běžné až rutinní a obvykle je označujeme souhrnným pojmem data mining, patří zcela jistě segmentace, klasifikace a prediktivní modelování spolu se skóringem. Segmentací zde nemíníme expertní nastavení několika parametrů (např. v bankách klasické dělení klientů podle příjmu nebo obratu na účtech), ale analytické hledání souvislostí a vzorců chování. Zvolený algoritmus, nejčastěji k-means algoritmus nebo nějaká hierarchická metoda, pak vytváří segmenty slučováním záznamů, které jsou si nějak podobné – neříkáme přesně jak nebo čím, to za nás vyzkoumá počítač. Nastavením algoritmu tak můžeme ovlivnit jen míru podobnosti, a tím i výsledný počet skupin-segmentů, nikdy ale úplně neovlivníme finální podobu segmentů. Výstupem ze segmentace je pak pouze strohé rozdělení dat do segmentů a chceme-li tento výstup přeložit zpět do lidské řeči, musíme segmenty tzv. vyprofilovat, tj. slovně popsat jejich hlavní rysy. V pojišťovnictví se potom často objevují segmenty klientů například podle typů uzavřených smluv a objemu hlášených škod, segmenty v telekomunikacích bývají tvořeny podle poměru využití volání, SMS, MMS a dalších služeb, v obchodě podle útraty za jednotlivé kategorie zboží, v bankovnictví podle využívání platebních karet, poboček atd. Pokud si předchozí větu pročteme znovu, případně si vzpomeneme na jiné používané segmentace, které jsme kdy potkali, zjistíme, že většina dat použitých pro vytvoření a popis segmentů jsou numerické informace (počty, obraty, poměry atd.). Po textu ani stopy.

Klasifikací rozumíme zařazování objektů do daných kategorií, například pomocí rozhodovacích stromů. Stejné rozhodovací stromy potkáme spolu s regresními modely, modely neuronových sítí a mnoha dalšími algoritmy také u prediktivního modelování. Zde se snažíme modelovat závislost nějaké vysvětlované charakteristiky označované jako target (nákup daného produktu nebo služby, odchod klienta ke konkurenci, odhad platební morálky, …) na skupině jiných charakteristik, prediktorů. Analytický software obvykle umožňuje použít několik typů modelů, porovnat jejich kvalitu a nejlepší pak využívat k hodnocení nových případů, tzv. skóringu. Některé algoritmy dokáží zapracovat jednoduchou textovou informaci (např. již zmíněné rozhodovací stromy mohou obsahovat pravidla, která pracují přímo s regiony, pohlavím a podobně), jiné jako regrese nebo neuronové sítě vyžadují jako vstup pouze numerické proměnné. Znakové proměnné se proto obvykle obchází tak, že se jednotlivé úrovně reprezentují jako čísla, případně se z jedné proměnné vyrobí několik umělých „dummy“ proměnných. Muži a ženy se tak například pomocí umělé indikátorové proměnné převádějí na nuly a jedničky (případně jiné kódování), aby mohl regresní algoritmus nebo neuronová síť informaci o pohlaví zpracovat a použít.

Text?

Obecně platí, že dataminingové metody a nástroje dokáží s textovou informací pracovat jen velmi omezeně. Přesto se používají a přinášejí nemalou hodnotu, hlavně díky automatizaci zpracování. Pokud bychom je ale dokázali doplnit tak, aby plně využívaly nestrukturovaná data, bude jejich přínos logicky ještě vyšší. Mnohé metody pro analýzu textů přitom opravdu můžeme chápat jako přímé rozšíření klasických postupů. Proč se tedy zatím příliš nevyužívají? Důvodů může být více, například jejich relativní mládí a s tím spojená nedůvěra nebo jazykové bariéry (text je často svázaný s daným jazykem a pro jeho analýzu je třeba uplatňovat pravidla platná pro daný jazyk). K problémům jistě přispívá i fakt, že oblast analýzy textu je opravdu široká (v tomto článku si představíme pouze tři nejběžnější typy analýz). Někdy vídáme i argumentaci nedostupností speciálního softwaru nebo nutností vyšších implementačních nákladů, ale to v dnešní době můžeme označit spíše za zástupné důvody – počítače a software již v tomto směru do značné míry dospěly.

Nejobvyklejšími typy textových analýz jsou kategorizace obsahu (content categorization), text mining a analýza sentimentu. Do oblasti analýzy nestrukturovaných dat naopak nespadá například fulltextové vyhledávání, přestože to je obvykle první věc, která člověka v této souvislosti napadne. Samotné vyhledávání totiž stojí a padá s tím, jak přesně zadáme požadovaný dotaz – hledám-li slovo „Prha“, najde vyhledávač všechny dokumenty obsahující slovo „Prha“, inteligentní vyhledávač nabídne možnost hledat slovo „Praha“, protože si zjistí, že „Praha“ je hledaná výrazně častěji než „Prha“. To je ale všechno. Automatická kategorizace obsahu jde mnohem dále – dovoluje pro soubory dokumentů nadefinovat klasifikační strukturu (taxonomii) a dokáže dokumenty zparsovat, zpracovat a s využitím lingvistických technik pak správně zařadit do této struktury. Počítač si tak kromě práce s dokumenty v různých formátech musí poradit také se zákonitostmi jednotlivých jazyků, protože pravidla pro klasifikaci se budou pro každou řeč více či méně lišit. Moderní systémy navíc obsah dokumentů při zpracování indexují a vytvářejí robustní metadata, která poté využívají pro inteligentní vyhledávání souvislostí. Takto nastavený systém pak dokáže vyhledávat informace a vazby, které by člověka často ani nenapadly. Využití takových systémů je celá řada – zcela zřejmé je využití pro kategorizaci elektronické komunikace (stížnosti, podněty, …) jak ve firmách, tak na úřadech, kategorizace interních dokumentů a podobně. Kromě toho ale bývají podobné systémy například jedním z pilířů moderních systémů pro detekci podvodů – hledají se vazby mezi dokumenty, smlouvami, osobami atd.

Obr. 1: Využití definované taxonomie pro identifikaci osoby (jméno, příjmení) v nástroji SAS Enterprise Content Categorization. Při vyhledávání v sadě dokumentů lze potom zadávat dotazy typu „Vyhledat všechna jména, která se objevují v dokumentech, ve kterých se objevuje i číslo smlouvy 123456.“ (využití např. při detekci vazeb mezi subjekty).

Obr. 1: Využití definované taxonomie pro identifikaci osoby (jméno, příjmení) v nástroji SAS Enterprise Content Categorization. Při vyhledávání v sadě dokumentů lze potom zadávat dotazy typu „Vyhledat všechna jména, která se objevují v dokumentech, ve kterých se objevuje i číslo smlouvy 123456.“ (využití např. při detekci vazeb mezi subjekty).

 

Obr. 2: Vytvoření nových proměnných na základě analýzy textových dokumentů v prostředí SAS Text Miner
Obr. 2: Vytvoření nových proměnných na základě analýzy textových dokumentů v prostředí SAS Text Miner


Definice taxonomie je pro úspěšné nasazení automatické kategorizace naprosto klíčová, jedná se v podstatě o mozek celého systému. Moderní systémy proto při jejím vytváření nebo úpravách umožňují spolupráci několika autorů. Dodavatelé softwarových řešení totiž pro jednotlivá odvětví obvykle nabízejí pouze předpřipravené „univerzální“ taxonomie, které představují velmi solidní základ, ale téměř vždy je nutné je přizpůsobit na míru konkrétnímu použití. Příklad využití taxonomie pro identifikaci (extrakci) osoby vidíme na obrázku 1.

Zatímco automatickou kategorizaci můžeme chápat jako úlohu specifickou pro analýzu textů (v číselném světě nic podobného nenajdeme – není to potřeba), vytěžování textů (text mining) můžeme chápat jako přímé rozšíření klasického data miningu. Jeho cílem je totiž transformovat textové dokumenty tak, aby se daly využít klasickými algoritmy – především pro tvorbu segmentací a prediktivních modelů. Základem text miningu je kvalitní parsing dokumentů, který musí být postaven na lingvistických pravidlech. Patří sem například detekce vět a slovních druhů, tokenizace nebo stemming, využívají se samozřejmě slovníky synonym a podobně. Jako dílčí výstup si pro jednoduchost můžeme představit matici, která pro každý dokument a každý slovní kmen udává četnosti výskytů daného kmene v daném dokumentu. Tento výstup se dále upravuje a filtruje tak, aby se snížila jeho dimenze a zároveň aby se do modelování dostala informace agregovaná na rozumnou úroveň. Vytvoří se tak soubor témat (topics), která jsou typicky složená z několika slov (přesněji řečeno slovních kmenů), a pro každé téma a každý dokument se určí relevance daného tématu pro daný dokument. Získáme tak vlastně sadu zcela nových proměnných, které v modelech můžeme použít buď samostatně, nebo v kombinaci s dalšími prediktory. Ukázku vygenerovaných témat a jejich použití vidíme na obrázcích 2 a 3 – rozhodovací strom na obrázku 3 například s využitím dvou nových proměnných predikuje v levém dolním uzlu výrazně větší podíl kladných reakcí.

Angličtina a ti druzí

Nikoho pravděpodobně nepřekvapí, že vzhledem k nutnosti kroků jako například parsing nebo hledání slovních kmenů (stemming) se analýzám textu nejlépe daří v jazycích, které jsou gramaticky a slovotvorně jednodušší – typickým příkladem je angličtina. Angličtina zároveň coby mateřský a úřední jazyk pokrývá poměrně velkou část světa a populace a logicky je proto obvykle v softwaru podporována jako první.

Co ale s ostatními jazyky? Odpověď je jednoduchá: vytvořit pro ně vše znovu, stejně jako dříve pro angličtinu. Z pohledu velkých softwarových firem přitom ani nejde o to, že by některý jazyk byl náročnější než jiný – přece jen jednotlivé skupiny jazyků mají společné základy i některá pravidla. Jde spíše o lukrativnost jazyka z pohledu síly trhu, takže ve většině balíků najdeme „defaultně“ podporu španělštiny, němčiny, francouzštiny a ruštiny, z neevropských jazyků pak bývá nejčastěji zastoupena čínština. „Menší“ jazyky jsou, alespoň u větších dodavatelů, k dispozici také, jen typicky vždy o něco později. Rozdíly mezi jazyky se téměř ztrácí v případě odborných textů, kde si analytik i pro neznámý jazyk vystačí s malým množstvím slov a pravidel, naopak nejmarkantnější jsou u internetových zdrojů, jako jsou diskusní fóra, blogy, sociální sítě a podobně. Samostatnou kapitolou je pak získávání těchto zdrojů do systému – součástí řešení pro analýzu textů bývají i nejrůznější crawlery, nástroje pro využití API jednotlivých webových služeb atd.
 

Obr. 3: Použití nových proměnných v prediktivním modelu (rozhodovací strom) v prostředí SAS Text Miner
Obr. 3: Použití nových proměnných v prediktivním modelu (rozhodovací strom) v prostředí SAS Text Miner


S využitím a vytěžením online dat souvisí poslední typ analýzy, o které se dnes zmíníme – tzv. analýza sentimentu, tedy model, který určuje míru (ne)spokojenosti nebo obecně názor veřejnosti na nějaký výrobek, téma, politika apod. Princip je v zásadě velice jednoduchý – posbírají se informace (dokumenty), identifikují se klíčová slova nebo fráze a spočte se poměr kladných a záporných klíčových slov. Polaritu (kladný nebo záporný význam) jednotlivých slov nebo vazeb samozřejmě musí analytik předem nadefinovat pomocí pravidel, zároveň se ale využívá i statistický přístup a vyhodnocování souvislostí – zatímco například výrok „dělá to dobře“ je pozitivní hodnocení, výrok „dělá to až příliš dobře“ už tak jednoznačný není a velká část lidí ho bude vnímat spíše negativně. Výsledné hodnocení například komentáře je potom pozitivní, negativní nebo neutrální.

Princip analýzy sentimentu je tedy jednoduchý, analýza samotná již nikoli – vyžaduje podobné techniky jako ostatní metody pro analýzu textových dat, a navíc ještě počáteční definování polarity a ladění algoritmu, rozpoznávání ironie a podobně. Na druhou stranu, za informace, které dokáže přinést, by v dnešní době každý CRM manažer platil zlatem. Před několika lety přitom byla podobná analýza spíše v rovině akademických úvah.

Rychle se rozvíjející trh

Oblast analýzy nestrukturovaných dat, i speciálně analýzy textů se neustále poměrně bouřlivě rozvíjí. Pro české uživatele je asi nejzásadnější fakt, že čeština (i slovenština) jsou kromě lokálních produktů podporovány i velkými softwarovými dodavateli. Je tedy pouze na vás, kdy se necháte také zlákat a analýzu nestrukturovaných dat si vyzkoušíte.

Petr Klášterecký

Autor působí ve společnosti SAS Institute jako konzultant se zaměřením na analýzy dat, prediktivní modelování a optimalizaci rozhodování. Aplikacím statistiky, data miningu a predikčních modelů se věnuje přes deset let, v SAS od roku 2007, přesto říká, že je stále co vysvětlovat, objevovat a vylepšovat.

Chcete získat časopis IT Systems s tímto a mnoha dalšími články z oblasti informačních systémů a řízení podnikové informatiky? Objednejte si předplatné nebo konkrétní vydání časopisu IT Systems z našeho archivu.