Python

Analiza sentimenta z TextBlob in Python

Analiza sentimenta z TextBlob in Python
V tej lekciji bomo za izdelavo preprostega sentimentalnega analizatorja uporabili enega od odličnih paketov Python - TextBlob. Vsi vemo, da so tviti eden najljubših primerov naborov podatkov, ko gre za analizo besedila v znanosti o podatkih in strojnem učenju. To je zato, ker so tviti v realnem času (po potrebi), javno dostopni (večinoma) in predstavljajo resnično človeško vedenje (verjetno). Zato se tviti običajno uporabljajo pri kakršnem koli dokazovanju konceptov ali vaj, povezanih z obdelavo naravnega jezika (NLP) in analizo besedila.

Uporaba TextBlob v industriji

Tako kot se sliši, je TextBlob paket Python za izvajanje preprostih in zapletenih operacij analize besedila besedilnih podatkov, kot so označevanje govora, ekstrakcija samostalniških besednih zvez, analiza sentimenta, klasifikacija, prevod in še več. Čeprav obstaja veliko več primerov uporabe za TextBlob, ki bi jih lahko pokrivali v drugih spletnih dnevnikih, ta zajema analiziranje tweetov glede njihovih čustev.

Občutki analize se zelo dobro uporabljajo v številnih scenarijih:

Uvod v TextBlob

Vemo, da ste prišli sem, da bi videli nekaj praktičnih kod, povezanih s sentimentalnim analizatorjem z TextBlob. Zato bomo ta odsek skrajšali za uvedbo TextBloba za nove bralce. Samo opozorilo pred začetkom je, da uporabljamo virtualno okolje za to lekcijo, ki smo jo naredili z naslednjim ukazom

python -m virtualenv textblob
izvor textblob / bin / activate

Ko je navidezno okolje aktivno, lahko v navidezno env namestimo knjižnico TextBlob, tako da lahko izvajamo primere, ki jih ustvarimo naslednjič:

pip install -U textblob

Ko zaženete zgornji ukaz, to ni to. TextBlob potrebuje tudi dostop do nekaterih podatkov o vadbi, ki jih lahko prenesete z naslednjim ukazom:

python -m textblob.prenesi_korpora

Nekaj ​​takega boste videli s prenosom potrebnih podatkov:

Anakondo lahko uporabite tudi za zagon teh primerov, kar je lažje. Če ga želite namestiti na svoj računalnik, si oglejte lekcijo, ki opisuje »Kako namestiti Anaconda Python na Ubuntu 18.04 LTS «in delite svoje povratne informacije.

Če želite prikazati zelo hiter primer za TextBlob, je tukaj primer neposredno iz njegove dokumentacije:

iz uvoza textblob TextBlob
text = "'
Titularna grožnja Bloba se mi je vedno zdela vrhunski film
pošast: nenasitno lačna, amebi podobna masa, ki lahko prodre
skoraj vsak zaščitni ukrep, ki lahko - kot obsojen zdravnik ohlajeno
opisuje - "asimiliranje mesa ob stiku.
Snide primerjave z želatino so prekleti, to je koncept z največ
uničujoče potencialne posledice, za razliko od scenarija sive goo
predlagali teoretiki tehnologije, ki se jih bojijo
umetna inteligenca divja.
"'
blob = TextBlob (besedilo)
tiskanje (blob.oznake)
tiskanje (blob.samostalniške fraze)
za stavek v blobu.stavki:
natis (stavek.čustva.polarnost)
blob.prevedi (v = "es")

Ko zaženemo zgornji program, bomo dobili naslednje besedne oznake in na koncu čustva, ki jih prikazujeta dva stavka v primeru:

Besedne besede in čustva nam pomagajo prepoznati glavne besede, ki dejansko vplivajo na izračun sentimenta in polarnost stavka,. Razlog za to je, da se pomen in občutek besed spreminjata v vrstnem redu njihove uporabe, zato mora biti vse to dinamično.

Analiza sentimenta na osnovi leksikona

Vsako Sentiment lahko preprosto definiramo kot funkcijo pomenske usmerjenosti in intenzivnosti besed, uporabljenih v stavku. Z leksikonskim pristopom za prepoznavanje čustev v danih besedah ​​ali stavkih je vsaka beseda povezana z partituro, ki opisuje čustva, ki jih beseda kaže (ali vsaj poskuša pokazati). Običajno ima večina besed vnaprej določen slovar o njihovi leksikalni oceni, toda ko gre za človeka, je vedno namenjen sarkazem, zato ti slovarji niso nekaj, na kar se lahko zanašamo 100%. Slovar WordStat Sentiment vključuje več kot 9164 negativnih in 4847 pozitivnih vzorcev besed.

Na koncu obstaja še ena metoda za izvedbo analize sentimenta (ki je izven obsega te lekcije), ki je tehnika strojnega učenja, vendar ne moremo uporabiti vseh besed v algoritmu ML, saj se bomo zagotovo soočili s težavami s prekomerno opremljenostjo. Pred treningom algoritma lahko uporabimo enega od algoritmov za izbiro lastnosti, kot je Chi Square ali Vzajemne informacije. Razpravo o pristopu ML bomo omejili samo na to besedilo.

Uporaba Twitter API-ja

Če želite začeti prejemati tvite neposredno iz Twitterja, obiščite domačo stran razvijalca aplikacij tukaj:

https: // razvijalec.twitter.com / sl / apps

Prijavite svojo prijavo tako, da izpolnite naslednji obrazec:

Ko imate na kartici »Ključi in žetoni« na voljo ves žeton:

Ključe lahko uporabimo za pridobitev zahtevanih tvitov iz Twitter API-ja, vendar moramo namestiti samo še en paket Python, ki nam težko pomaga pri pridobivanju podatkov Twitterja:

pip namestite tweepy

Zgornji paket bo uporabljen za popolno komunikacijo s Twitter API-jem. Prednost Tweepyja je, da nam ni treba pisati veliko kode, ko želimo preveriti pristnost naše aplikacije za interakcijo s podatki v Twitterju, in je samodejno zavita v zelo preprost API, ki je izpostavljen prek paketa Tweepy. Zgornji paket lahko v naš program uvozimo kot:

uvoz tweepy

Po tem moramo šele določiti ustrezne spremenljivke, v katerih lahko držimo tipke Twitter, ki smo jih prejeli iz razvijalne konzole:

consumer_key = '[potrošniški_key]'
consumer_key_secret = '[potrošniški_key_secret]'
access_token = '[dostop_token]'
access_token_secret = '[access_token_secret]'

Zdaj, ko smo v kodi opredelili skrivnosti za Twitter, smo končno pripravljeni vzpostaviti povezavo s Twitterjem, da bomo prejemali tvite in jih presojali, mislim, analizirali. Seveda je treba povezavo s Twitterjem vzpostaviti z uporabo standardov OAuth in Paket Tweepy vam bo prišel prav za vzpostavitev povezave kot tudi:

twitter_auth = tweepy.OAuthHandler (potrošniški_key, potrošniški_za_sekret)

Končno potrebujemo še povezavo:

api = tweepy.API (twitter_auth)

Z uporabo primerka API lahko v Twitterju poiščemo katero koli temo, ki mu jo posredujemo. Lahko je ena beseda ali več besed. Čeprav vam priporočamo, da uporabite čim manj besed za natančnost. Poskusimo primer tukaj:

pm_tweets = api.iskanje ("Indija")

Zgornje iskanje nam daje veliko tweetov, vendar bomo omejili število tweetov, ki jih dobimo nazaj, tako da klic ne bo vzel preveč časa, saj ga mora pozneje obdelati tudi paket TextBlob:

pm_tweets = api.iskanje ("Indija", število = 10)

Končno lahko natisnemo besedilo vsakega tvita in z njim povezano razpoloženje:

za tweet v pm_tweets:
tiskanje (tweet.besedilo)
analiza = TextBlob (tweet.besedilo)
tisk (analiza.sentiment)

Ko zaženemo zgornji skript, bomo začeli prejemati zadnjih 10 omemb omenjene poizvedbe in vsak tweet bo analiziran glede na vrednost razpoloženja. Tukaj je rezultat, ki smo ga prejeli za isto:

Upoštevajte, da bi lahko tudi s programom TextBlob in Tweepy izdelali bota za analizo pretočnega čustva. Tweepy omogoča vzpostavitev povezave za pretakanje websocket s Twitter API in omogoča pretakanje podatkov Twitter v realnem času.

Zaključek

V tej lekciji smo si ogledali odličen paket za besedilno analizo, ki nam omogoča analizo besedilnih čustev in še veliko več. TextBlob je priljubljen zaradi načina, na katerega nam omogoča preprosto delo z besedilnimi podatki brez kakršnih koli težav s kompleksnimi klici API. Tweepy smo vključili tudi za uporabo Twitterjevih podatkov. Z istim paketom in zelo malo sprememb v sami kodi lahko enostavno spremenimo uporabo v pretočni primer uporabe.

Prosimo, da svoje povratne informacije o lekciji na Twitterju delite z @linuxhint in @sbmaggarwal (to sem jaz!).

10 najboljših iger za igranje v Ubuntuju
Platforma Windows je bila ena izmed prevladujočih platform za igre na srečo zaradi velikega odstotka iger, ki se danes razvijajo za naravno podporo si...
5 najboljših arkadnih iger za Linux
Dandanes so računalniki resni stroji, ki se uporabljajo za igre na srečo. Če ne boste mogli dobiti novega visokega rezultata, boste vedeli, kaj mislim...
Bitka za Wesnoth 1.13.6 Razvoj izdan
Bitka za Wesnoth 1.13.6, ki je izšel prejšnji mesec, je šesta razvojna izdaja v 1.13.x series in prinaša številne izboljšave, predvsem uporabniški vme...