Americké primárky – analýza sentimentu

Tl;dr

Cílem experimentu bylo porovnat jednoduchý (akademický Lexicoder) a sofistikovaný (komerční Semantria od Lexalytics) nástroj na analýzu sentimentu. Samotnou analýzu jsem dělal nad tweety o Donaldu Trumpovi, Hillary Clinton a Bernie Sandersovi (květen 2016). Lexicoder vrátil na tweetech jasné souhrnné výsledky, které však postrádají podrobnost. Hillary a Bernie mají celkově pozitivní sentiment tweetů (+5%), zatímco Donald negativní (-3%). Tweety o Berniem jsou však celkově o něco méně emocionálně zabarvené než tweety o Donaldovi a Hillary. Semantria od Lexalytics se ukázala nevhodnou pro tento typ datasetu.

Analýza sentimentu

je studie stanovisek, citů, subjektivity, postojů, hodnocení, dojmů, názorů a emocí vyjádřených v textu. Datovým zdrojem může být jakýkoli dokument, pro praktické použití jsou používané především uživatelské recenze, diskusní příspěvky, zprávy, komentáře či příspěvky na sociálních sítích (twitter, facebook).

Dolování nalezených názorů může probíhat buď na úrovni jednotlivých částí textu (dokument, odstavec, věta) nebo na úrovni aspektů, kdy přiřazujeme sentiment určitým entitám v textu.

Dolování sentimentu na úrovni dokumentu

Dolování sentimentu souhrnně z částí textu je založené na jednoduchém principu. Text předzpracujeme na jednotlivé tokeny. Ty pak porovnáváme se slovníkem pozitivních a negativních výrazů pro danou doménu. Celkové zabarvení textu je pak dáno poměrem pozitivních a negativních výrazů. Touto technikou lze určit nejen pozitivitu/negativitu dokumentu, ale i jeho subjektivitu (poměr součtu pozitivních a negativních výrazů vůči celkovému rozsahu dokumentu). Výsledky této metody lze zpřesnit v zásadě trojím způsobem: 1. Použít kvalitnější slovník, lépe přizpůsobený pro danou doménu. 2. Ve slovníku definovat váhy výrazů (např. nedobrý -> špatný -> příšerný). 3. Uvažovat i kontext výrazu a zesilující/zeslabující slova (velmi, opravdu, moc, příliš).

Dolování sentimentu na úrovni aspektů

Pro lepší představu uvažujme příklad recenze mobilního telefonu. Úkolem je nestrukturovaný text strukturovat. Prvním krokem je z textu extrahovat entity a stromovou strukturu jejich aspektů, kterým následně přiřazujeme konkrétní sentiment. V našem příkladu je entitou (kořenovým elementem stromu aspektů) mobilní telefon. První úrovní aspektů může být např. fotoaparát a baterie, listy pak čočka a kvalita fotografií s bleskem (pro rodičovský uzel fotoaparát), respektive velikost baterie a výdrž baterie (pro rodičovský uzel baterie).

Strukturování textu potom spočívá v extrakci uspořádaných pětic informací: (entita, aspekt, sentiment, zdroj názoru, čas názoru). V našem případě taková pětice může vypadat následovně (iPhone 6, obrazovka, +, mobilmania.cz, 12. 5. 2016). V případě politické domény by to například bylo (Donald Trump, vztah k ženám, -, tweet, 12.5.2016).

Vytváření těchto vektorů využívá mnoho známých postupů text miningu. Entity jsou rozpoznávány pomocí NER (rozpoznávání pojmenovaných entit), aspekty pomocí IE (extrakce informací), sentiment pomocí SI (identifikace sentimentu), zdroj a čas názoru potom pomocí DE (extrakce dat). Vytváření těchto vektorů se také potýká s klasickými problémy text miningu jako je řešení koreferencí, problém synonym apod. Pro úspěch je klíčovým faktorem znalost domény a přizpůsobení modelu této doméně.

Dataset

Pro svou práci jsem použil data z probíhajících amerických primárek. Z twitteru jsem pomocí veřejného Twitter streaming API stáhnul obsahy tweetů, filtrované podle následující tabulky:

Filtr datasetu

Při použití dat z twitteru je vždy potřeba pamatovat na jejich specifické vlastnosti. Prvním rysem je, že obsahují mnoho zkratek, hovorových a nespisovných výrazů a překlepů, což znamená větší nároky na přípravu slovníku. Druhou zvláštností, která se projevila na mém datasetu, je fakt, že nelze vždy s přesností určit, o kom přesně tweet pojednává, protože ve 140 znacích často chybí slovesa a označeno v něm bývá více kandidátů. Tweetů, kde je označen víc než jeden kandidát, byla v mém datasetu téměř třetina (největší průnik měl pochopitelně Donald Trump a Hillary Clinton). Tyto tweety jsem tak přiřadil k oběma kandidátům.

Lexicoder – výsledky

Z hlediska výše popsaných algoritmů se jedná o nejjednodušší dolování sentimentu na úrovni celého dokumentu bez vah výrazů.

Výsledky programu Lexicoder

Výsledky zpracování sentimentu nejsou překvapující. Hillary Clinton a Bernie Sanders mají celkově pozitivní sentiment, zatímco Donald Trump negativní, Tyto výsledky podle mě dobře odpovídají jejich mediálnímu obrazu. Zajímavým zjištěním je, že tweety o Hillary Clinton a Donaldu Trumpovi jsou přibližně o pětinu emocionálněji zabarvené než tweety o Berniem Sandersovi.

Semantria – výsledky

Komerční program Semantria od Lexalytics funguje jako add-in do programu MS Excel. Nabízí mnohem větší škálu možností – z těch nejčastěji používaných je to, kromě analýzy sentimentu, generování frází, analýza slov, extrakce záměrů, entit, témat, aspektů, generování automatického shrnutí dokumentů, word-cloudů, asociačních pravidel a další.

Pro výpočet sentimentu tweetů jsem tweety sloučil do celků o cca 2000 znacích, což je maximální délka dokumentu v trial verzi Semantria. Například generování summary ze stoznakového tweetu mi nedává logicky smysl, proto mě zajímalo, jak se Semantria vypořádá s dokumentem, tvořeným více tweety.

Výstupy analýzy ze Semantria

Výsledky programu Semantria

V ukázce je vidět, že téma „Raising taxes“ a „Raising everyone“ v jednom z dokumentů bylo hodnoceno pozitivním sentimentem. Část dokumentu, kde se tato slova vyskytují, zní následovně:

„Trump’s Raising taxes on the rich is Code: for raising everyone’s taxes and expanding Big Govt control of the people. NeverTrump“

Ohodnocení sentimentu tématu je tedy evidentně chybné. Zdá se, že hlavním problémem analýzy je to, že věty z twitteru nedávají gramaticky smysl a mnohdy se nedají oddělit, protože nejsou ukončeny tečkou. Proto jsem se rozhodl pro další vyzkoušení práce s programem použít novinové články z US médií, tedy manuálně posoudit článek z Weekly Standard. Jeho hlavním tématem je neschopnost mediálně známé a oblíbené Hillary odpárat z primárek před nedávnem naprosto neznámého „socialistického sedmdesátníka“. Článek se zamýšlí nad důvody této skutečnosti a končí odstavcem:

„At the same time that Sanders dominates Clinton with measures of all the personal attributes, he’s pushed her to a dead heat in nationwide polling and has mounted an unlikely resilient challenge to her coronation as the Democratic nominee. Much of it is because Sanders has tapped into the party base’s rebelliousness, more than any Democratic candidate in any recent election. In so doing, he has exploited Clinton’s support as lukewarm.“

Shrnutí odstavce: Sanders je mnohem rebelštějším kandidátem než kterýkoli demokrat před ním. To je důvod, proč tak ohrozil její vítězství v primárkách („korunovaci kandidátem Demokratů“).

Pokud bych měl extrahovat entity a sentiment s nimi spojený, nejspíš by vyhrál Sanders, díky těmto výrokům: – Sanders dominates Clinton – He pushed her to a dead heat – He has tapped into the party base’s rebelliousness – He exploited her support as lukewarm

Sentiment odstavce a entit: Celkový sentiment odstavce byl označen jako mírně negativní.

Sentiment odstavce z Weekly standard

Z extrahovaných témat byl záporný sentiment přiřazen výrazu „dead heat“ a kladný výrazu „resilient“, sentiment ostatních témat je neutrální.

Extrakci témat hodnotím spíš jako neúspěšnou. Dle mého názoru by měly být tématem odstavce slova: Sanders, Clinton, polling, lukewarm support. Ani v dalších odstavcích se mi extrahovaná témata nezdají vždy správná. U jednodušších případů je však určení sentimentu témat evidentně správné, u složitějších pak rozporné.