Krajta

Analýza sentimentu s TextBlob a Python

Analýza sentimentu s TextBlob a Python
V této lekci použijeme k vytvoření jednoduchého sentimentálního analyzátoru jeden z vynikajících balíčků Pythonu - TextBlob. Všichni víme, že tweety jsou jedním z oblíbených ukázkových datových souborů, pokud jde o textovou analýzu v oblasti datové vědy a strojového učení. Je to proto, že tweety jsou v reálném čase (v případě potřeby), veřejně dostupné (většinou) a představují skutečné lidské chování (pravděpodobně). To je důvod, proč se tweety obvykle používají při provádění jakéhokoli typu kontroly konceptů nebo cvičení souvisejících se zpracováním přirozeného jazyka (NLP) a analýzou textu.

Používání TextBlob v průmyslu

Stejně jako to zní, TextBlob je balíček Pythonu, který umožňuje provádět jednoduché a složité operace analýzy textu na textových datech, jako je označování řeči, extrakce fráze podstatného jména, analýza sentimentu, klasifikace, překlad a další. Ačkoli pro TextBlob existuje mnohem více případů použití, které bychom mohli pokrýt v jiných blogech, tento pokrývá analýzu tweetů z hlediska jejich sentimentu.

Analýza sentimentů má skvělé praktické využití pro mnoho scénářů:

Začínáme s TextBlobem

Víme, že jste se sem přišli podívat na nějaký praktický kód týkající se sentimentálního analyzátoru pomocí TextBlob. Z tohoto důvodu ponecháme tuto sekci extrémně krátkou pro zavedení TextBlob pro nové čtenáře. Jen poznámka před spuštěním je, že používáme a virtuální prostředí pro tuto lekci, kterou jsme provedli pomocí následujícího příkazu

python -m virtualenv textblob
zdroj textblob / bin / aktivovat

Jakmile je virtuální prostředí aktivní, můžeme nainstalovat knihovnu TextBlob ve virtuálním prostředí, aby bylo možné provést příklady, které vytvoříme dále:

pip install -U textblob

Jakmile spustíte výše uvedený příkaz, není to ono. TextBlob také potřebuje přístup k některým tréninkovým datům, která lze stáhnout pomocí následujícího příkazu:

python -m textblob.download_corpora

Stažením požadovaných dat uvidíte něco takového:

Anacondu můžete také použít ke spuštění těchto příkladů, což je jednodušší. Chcete-li jej nainstalovat na svůj počítač, podívejte se na lekci, která popisuje „Jak nainstalovat Anaconda Python na Ubuntu 18.04 LTS ”a podělte se o svůj názor.

Chcete-li ukázat velmi rychlý příklad pro TextBlob, zde je příklad přímo z jeho dokumentace:

z importu textblob TextBlob
text = "'
Titulární hrozba The Blob na mě vždy působila jako konečný film
monstrum: nenasytná hladová hmota podobná amébám schopná proniknout
prakticky jakýkoli ochranný prostředek, schopný - jako lékař odsouzený k zániku mrazivě
popisuje to - „asimilace masa při kontaktu.
Zatracené srovnání s želatinou je zatraceně, je to koncept nejvíce
devastující potenciální důsledky, ne na rozdíl od scénáře šedé goo
navrhli technologičtí teoretici, kteří se bojí
nekontrolovatelný běh umělé inteligence.

blob = TextBlob (text)
tisk (blob.značky)
tisk (blob.podstatné jméno_fráze)
pro větu v blob.věty:
tisk (věta.sentiment.polarita)
kapka.přeložit (do = "es")

Když spustíme výše uvedený program, dostaneme následující tagová slova a nakonec emoce, které dvě věty v ukázkovém textu ukazují:

Značky slov a emocí nám pomáhají identifikovat hlavní slova, která ve skutečnosti ovlivňují výpočet sentimentu a polaritu věty poskytované. Je to proto, že se význam a sentiment slov mění v pořadí, v jakém jsou používány, takže je třeba vše udržovat dynamické.

Analýza sentimentu založená na lexikonu

Libovolný sentiment lze jednoduše definovat jako funkci sémantické orientace a intenzity slov použitých ve větě. S přístupem k identifikaci emocí v daných slovech nebo větách založeném na lexikonu je každé slovo spojeno se skóre, které popisuje emoce, které slovo vykazuje (nebo se alespoň snaží projevit). Většina slov má obvykle předdefinovaný slovník o jejich lexikálním skóre, ale pokud jde o člověka, vždy existuje sarkazmus, takže na tyto slovníky se nelze spolehnout na 100%. Slovník sentimentu WordStat obsahuje více než 9164 negativních a 4847 pozitivních vzorů slov.

Nakonec existuje další metoda k provedení analýzy sentimentu (mimo rozsah této lekce), která je technikou strojového učení, ale nemůžeme použít všechna slova v algoritmu ML, protože určitě budeme čelit problémům s přeplňováním. Než trénujeme algoritmus, můžeme použít jeden z algoritmů pro výběr funkcí, jako je Chi Square nebo Mutual Information. Diskuse o přístupu ML omezíme pouze na tento text.

Pomocí rozhraní Twitter API

Chcete-li začít dostávat tweety přímo z Twitteru, navštivte domovskou stránku vývojáře aplikací zde:

https: // vývojář.cvrlikání.com / en / apps

Zaregistrujte svou přihlášku vyplněním následujícího formuláře:

Jakmile budete mít všechny tokeny dostupné na kartě „Klíče a tokeny“:

Můžeme použít klíče k získání požadovaných tweetů z rozhraní Twitter API, ale musíme nainstalovat jen jeden další balíček Pythonu, který pro nás při získávání dat Twitteru dělá těžké kroky:

pip nainstalovat tweepy

Výše uvedený balíček bude použit pro dokončení veškeré těžké komunikace s Twitter API. Výhodou pro Tweepy je, že nemusíme psát mnoho kódu, když chceme ověřit naši aplikaci pro interakci s daty Twitteru a je automaticky zabalena ve velmi jednoduchém API vystaveném prostřednictvím balíčku Tweepy. Výše uvedený balíček můžeme do našeho programu importovat jako:

importovat tweepy

Poté stačí definovat příslušné proměnné, kde můžeme držet klíče Twitteru, které jsme obdrželi z vývojářské konzoly:

consumer_key = '[consumer_key]'
consumer_key_secret = '[consumer_key_secret]'
access_token = '[access_token]'
access_token_secret = '[access_token_secret]'

Nyní, když jsme v kódu definovali tajemství pro Twitter, jsme konečně připraveni navázat spojení s Twitterem, abychom dostali tweety a posoudili je, myslím, analyzovat je. Samozřejmě je třeba navázat připojení k Twitteru pomocí standardu OAuth a Tweepy balíček přijde vhod k navázání spojení také:

twitter_auth = tweepy.OAuthHandler (consumer_key, consumer_key_secret)

Nakonec potřebujeme spojení:

api = tweepy.API (twitter_auth)

Pomocí instance API můžeme hledat na Twitteru jakékoli téma, které mu předáme. Může to být jedno slovo nebo více slov. Přesto doporučujeme použít co nejméně slov pro přesnost. Zkusme zde příklad:

pm_tweets = api.hledat („Indie“)

Výše uvedené hledání nám dává mnoho tweetů, ale omezíme počet tweetů, které dostaneme zpět, aby volání nezabralo příliš mnoho času, protože je třeba jej později zpracovat také balíčkem TextBlob:

pm_tweets = api.vyhledávání („Indie“, počet = 10)

Nakonec můžeme vytisknout text každého Tweetu a sentiment s ním spojený:

pro tweet v pm_tweets:
tisk (tweet.text)
analýza = TextBlob (tweet.text)
tisk (analýza.sentiment)

Jakmile spustíme výše uvedený skript, začneme získávat posledních 10 zmínek o zmíněném dotazu a každý tweet bude analyzován na hodnotu sentimentu. Tady je výstup, který jsme obdrželi pro stejné:

Všimněte si, že můžete také vytvořit streamovacího robota pro analýzu sentimentu s TextBlob a Tweepy. Tweepy umožňuje navázat streamingové připojení websocket s Twitter API a umožňuje streamovat data z Twitteru v reálném čase.

Závěr

V této lekci jsme se zaměřili na vynikající balíček textové analýzy, který nám umožňuje analyzovat textové nálady a mnohem více. TextBlob je populární kvůli způsobu, jakým nám umožňuje jednoduše pracovat s textovými daty bez jakýchkoli potíží s komplexními voláními API. Integrovali jsme také Tweepy, abychom mohli využívat data z Twitteru. Můžeme snadno upravit použití na streamovací případ použití se stejným balíčkem a velmi malými změnami v samotném kódu.

Sdílejte prosím volně svůj názor na lekci na Twitteru s @linuxhint a @sbmaggarwal (to jsem já!).

Hry Top 10 her k hraní na Ubuntu
Top 10 her k hraní na Ubuntu
Platforma Windows byla jednou z dominujících platforem pro hraní her kvůli velkému procentu her, které se dnes vyvíjejí, aby nativně podporovaly Windo...
Hry 5 nejlepších arkádových her pro Linux
5 nejlepších arkádových her pro Linux
V dnešní době jsou počítače vážné stroje používané k hraní her. Pokud nemůžete získat nové vysoké skóre, budete vědět, co tím myslím. V tomto příspěvk...
Hry Battle For Wesnoth 1.13.6 Vývoj uvolněn
Battle For Wesnoth 1.13.6 Vývoj uvolněn
Battle For Wesnoth 1.13.6 vydané minulý měsíc, je šestým vývojovým vydáním v 1.13.série x a přináší řadu vylepšení, zejména do uživatelského rozhraní,...