V dnešním příspěvku představíme náš MTA (Multicriterial Text Analysis) software. Produkt MTA uživatelům významně usnadňuje rozhodování v oblasti nakupování nejrůznějších produktů či služeb.

Motivace

Produkt si klade za cíl pomoci zákazníkům orientovat se ve velkém množství názorů publikovaných na internetu na konkrétní zboží nebo služby, které by si chtěli zakoupit nebo využít. Uživatelské recenze a hodnocení jsou rozesety na nejrůznějších diskusních fórech, webech pro hodnocení produktů či portálech zabývajících se konkrétní problematikou. Pro běžného uživatele je obtížné a časově náročné  tyto informace vyhledat, zorientovat se v nich a udělat si vlastní názor.

MTA architektura

Sběr dat

Na sběr dat používáme sadu nástrojů (crawlery) pro stahování uživatelských recenzí a článků o vybrané skupině produktů nebo služeb. Tyto crawlery jsou přizpůsobeny struktuře definovaných webů a získávají z nich relevantní data, která mohou při analýze témat a postojů pomoci. Máme připravenou sadu crawlerů, pomocí nichž jsme už stáhli více než milion uživatelských recenzí.

Pre-processing

Při získávání dat čelíme obvykle několika problémům. Jeden z hlavních spočívá v různém způsobu označování produktů na různých webech. Přestože se jedná o identický produkt bývají v názvech odlišnosti, které identifikaci produktů komplikují. Např. produkt “Canon EOS 600D” se skrývá ve všech následujících prodejních názvech:

Důležité je správně rozpoznat, které názvy identifikují stejný produkt a sjednotit k nim publikované recenze. V tomto procesu využíváme metod strojového učení.

Získané recenze je nezbytné dále upravit pro zjednodušení následné analýzy. Nejprve je nutné rozdělit je na jednotlivé větné celky, které obvykle obsahují samostatná témata. Následně  upravujeme slova do základního tvaru a odstraňujeme diakritiku. Dále je vhodné odebrat slova, která nenesou požadovanou informační hodnotu (např. předložky, spojky, apod). K tomu využíváme jednak vlastní POS analyzátor, který přiřazuje slovům ve větě slovní druhy, a také dataset se stop slovy vytvořený vlastními silami.

Takto upravené dokumenty převedeme do do vektorového tvaru s využitím metodiky Tf-idf.

Analýza textu

Pro analýzu velkého množství nestrukturovaných dat využíváme metod strojového učení. Pomocí nich v datech identifikujeme nejvíce diskutovaná témata a určujeme pozitivní nebo negativní postoj recenzentů k jednotlivým vlastnostem produktů. Pomocí shlukovacích metod (k-means) rozdělujeme recenze do shluků se stejnými tématy. Daří se nám identifikovat shluky s vysokou mírou vnitřní integrity, kde se identifikovaná témata týkají hlavních parametrů zkoumaného segmentu produktů. Takto vytvořené shluky pro daný segment, založené na odborných článcích, dále používáme pro klasifikaci recenzí k jednotlivým produktům.

Prezentace výsledků

Nejjednodušší forma prezentace výsledků textové analýzy, kterou využíváme, je statický report. Tento výstup obsahuje názvy produktů, jejich diskutované vlastnosti a statistiku o tom, jak často jsou uvedené vlastnosti vnímané pozitivně respektive negativně.

Příklad

Nikon D850

pozitivní:

* vyborne rozliseni obrazoveho snimace,
* citlivost ostreni je vyborna,
* dobre se drzi ruce,
* bezkonkurencni kvalita obrazu,
* podsviceni zadnich tlacitek,
* 4k uhd video 1920 x 1080 / zpomaleni zaznamu,
* nikon d850 me mile prekvapil,
* vyborne zvladnuty sum hodnoty 6400,
* ergonomie.

negativní:

* cena,
* velka spotreba gb,
* prodrazi optice,
* vyuziti potencialu je potreba mit primerene kvalitni optiku coz znamena nejlepsi mani,
* cena kvalita neni zadarmo.

Aktuálně připravujeme interaktivní webovou aplikaci spolu s aplikací pro mobilní zařízení.
Současně bude dostupné také API s pravidelně aktualizovanými údaji, pro snadnou integraci do již existujících řešení.

Pro další informace nebo poskytnutí zpětné vazby nás neváhejte kontaktovat.

Jan Přichystal

Data pro textovou analýzu bývají často dostupná pouze ve webových prezentacích v nestrukturované podobě. Jak data co nejsnáze získat?

Pro účely stahování textu z webových stránek existují specializované nástroje zvané “scraper” nebo “crawler”. Pro některé programovací jazyky existují frameworky, které značně zjednodušují vytvoření scraper nástroje pro jednotlivé webové stránky. My používáme jeden z nejpopulárnějších frameworků Scrapy, napsaný v jazyce Python.

Jako praktický příklad lze uvést nástroj pro sběr dotačních pobídek jako podkladů pro Dotační manager, největší portál o dotacích v ČR, který sdružuje “výzvy” z nejrůznějších veřejných zdrojů. Nástroj automatizovaně projde strukturu webového portálu, například Agentury pro podnikání a inovace, najde stránku dotační výzvy a danou stránku strojově zpracuje do strukturovaného formátu. Nástroj je možné opakovaně spouštět, aby zachytil i nově publikované výzvy. Celý nástroj včetně zdrojového kódu je dostupný na adrese: http://git.pef.mendelu.cz/MTA/oppik-scraper/.

Uvedený příklad je poměrně jednoduchý, v praxi to bývá složitější. Struktura webových stránek je na každém portále jiná, často není jednotná ani v rámci portálu, mění se v čase atd. Abychom nemuseli znovu a znovu psát podobné nástroje pro každý zdroj dat zvlášť, vyvíjíme vlastní robustní crawler, který dokáže textové údaje získávat automaticky z různých zdrojů.

Vladimír Vacula

As we mentioned in the previous post, our team is working on a project to help you make decisions about buying different products and services. We try to help users create an objective view of the specific items they want to buy by analyzing published reviews of other users. Currently, we’ve downloaded enough reports and product articles in Czech and English language to analyze individual views. In the first phase it was necessary to adapt the obtained texts to the form suitable for analysis.

It was necessary to divide the documents into individual sentences, because users often present more ideas in one document and evaluate more criteria. The next step was to remove insignificant words that do not bring any or just little information value. For example, clutches, prepositions, web addresses, and so on. In this step, we also used our own POS analyzer, which assigns the words in sentence word types, and our own dataset with stop words. In particular, nouns, adjectives and verbs were interesting for us. Subsequently, we worded the words into their basic shapes, by specifying the roots of words.

We have transformed the edited documents into vector shape using tf-ifd and then split them into clusters with the same themes using k-means methods. We have managed to identify approximately diversified clusters with a high degree of internal integrity. Identified topics were related to the main parameters of the product segment surveyed.

The clusters created for the whole segment, based on expert articles, were then used to classify product reviews. From identified clusters for individual reviews, we chose those with the highest predictive value – and are presented as a suitable representative for a given set of reviews. The result of the analysis is shown in the example below.

Jan Přichystal

We will inform you about the milestones we have achieved in analyzing text reviews. Let’s take a look at our research.

Motivation

Our team is currently working on a project to help make decisions about buying different products. A huge amount of opinions and reviews of individual products can be found on the Internet.
These user reviews are distributed across a variety of discussion forums, product rating sites, or specific portals. For a regular user, it’s difficult to find the information needed, get a look at them, and make its own opinion.

Methodology

In order to analyze large amounts of unstructured data, we have decided to use machine learning methods. We want to use these data to identify topics that are important to users and to determine their positive or negative attitudes towards individual product features.

Current status

We are currently working on creating crawlers for downloading user reviews and articles about the selected product group. These crawlers are tailored to the structure of specific sites. Crawlers from these sites get relevant data that can help in analyzing themes and attitudes. So far, we have created eight crawlers, which have helped us to download about half a million user reviews and expert articles about two thousand products in two languages ​​(Czech and English).

Problems solved

We had to deal with several issues when acquiring the data. One of the main ones is the different way of labeling products on different sites. Although it is an identical product, there are differences in names that complicate product pairing. Another problem is limiting the number of accesses to some sites in the form of code captcha. The last issue that needs to be solved is the changing web structure that causes crawlers to fail.

Conclusion

We have a practically closed first phase of the project in which we have defined the task of creating data acquisition tools for subsequent analysis. In the next phase, using machine learning methods, we will work to uncover the topics discussed and attitudes of users.

Jan Přichystal