Python

Sentimentanalyse med TextBlob og Python

Sentimentanalyse med TextBlob og Python
I denne lektion bruger vi en af ​​den fremragende Python-pakke - TextBlob, til at opbygge en simpel sentimental analysator. Vi ved alle, at tweets er et af de foretrukne datasæt, når det kommer til tekstanalyse inden for datalogi og maskinindlæring. Dette skyldes, at tweets er i realtid (hvis nødvendigt), offentligt tilgængelige (for det meste) og repræsenterer ægte menneskelig adfærd (sandsynligvis). Derfor bruges tweets normalt under udførelse af enhver form for bevis på koncepter eller tutorials relateret til Natural Language Processing (NLP) og tekstanalyse.

Brug af TextBlob i industrien

Ligesom det lyder, er TextBlob en Python-pakke til at udføre enkle og komplekse tekstanalysefunktioner på tekstdata som talemærkning, substantivudtrækning, sentimentanalyse, klassificering, oversættelse og mere. Selv om der er mange flere brugssager til TextBlob, som vi måske dækker i andre blogs, dækker denne analyse af tweets for deres følelser.

Analysesentimenter har en fantastisk praktisk anvendelse til mange antal scenarier:

Kom godt i gang med TextBlob

Vi ved, at du kom her for at se en praktisk kode relateret til en sentimental analysator med TextBlob. Derfor holder vi dette afsnit ekstremt kort til introduktion af TextBlob til nye læsere. Bare en note før start er, at vi bruger en virtuelt miljø til denne lektion, som vi lavede med følgende kommando

python -m virtualenv tekstblob
kilde tekstblob / bin / aktiver

Når det virtuelle miljø er aktivt, kan vi installere TextBlob-biblioteket i den virtuelle env, så eksempler, vi opretter næste, kan udføres:

pip install-U tekstblob

Når du har kørt ovenstående kommando, er det ikke det. TextBlob har også brug for adgang til nogle træningsdata, som kan downloades med følgende kommando:

python-m tekstblob.download_corpora

Du kan se noget som dette ved at downloade de krævede data:

Du kan også bruge Anaconda til at køre disse eksempler, hvilket er lettere. Hvis du vil installere det på din maskine, skal du se på lektionen, der beskriver “Sådan installeres Anaconda Python på Ubuntu 18.04 LTS ”og del din feedback.

For at vise et meget hurtigt eksempel på TextBlob er her et eksempel direkte fra dokumentationen:

fra tekstblob importerer TextBlob
tekst = "'
Den titulære trussel om The Blob har altid slået mig som den ultimative film
monster: en umættelig sulten, amøbe-lignende masse, der er i stand til at trænge ind
stort set enhver beskyttelsesforanstaltning, der er i stand til - som en dømt læge koldt
beskriver det - "assimilerende kød ved kontakt.
Snide sammenligninger med gelatine skal forbandes, det er et koncept med mest
ødelæggende af potentielle konsekvenser, ikke i modsætning til grå goo-scenariet
foreslået af teknologiske teoretikere bange for
kunstig intelligens løber voldsomt.
"'
blob = TextBlob (tekst)
print (klat.tags)
print (klat.substantiv_ sætninger)
for sætning i klat.sætninger:
udskrive (sætning.følelse.polaritet)
klat.oversæt (til = "es")

Når vi kører ovenstående program, får vi følgende tagord og til sidst de følelser, de to sætninger i eksemplet viser:

Mærkeord og følelser hjælper os med at identificere de vigtigste ord, der faktisk har indflydelse på følelsesberegningen og polariteten af ​​den sætning, der gives til. Dette skyldes, at betydningen og følelsen af ​​ordene ændres i den rækkefølge, de bruges, så alt dette skal holdes dynamisk.

Leksikonbaseret sentimentanalyse

Ethvert sentiment kan simpelthen defineres som en funktion af semantisk orientering og intensitet af ord brugt i en sætning. Med en leksikonbaseret tilgang til identifikation af følelser i et givet ord eller sætninger er hvert ord forbundet med en score, der beskriver den følelse, ordet viser (eller i det mindste forsøger at udvise). Normalt har de fleste ord en foruddefineret ordbog om deres leksikale score, men når det kommer til mennesker, er der altid sarkasme beregnet, så disse ordbøger er ikke noget, vi kan stole på 100%. WordStat Sentiment Dictionary indeholder mere end 9164 negative og 4847 positive ordmønstre.

Endelig er der en anden metode til at udføre sentimentanalyse (uden for denne lektion), som er en Machine Learning-teknik, men vi kan ikke bruge alle ord i en ML-algoritme, da vi helt sikkert vil stå over for problemer med overfitting. Vi kan anvende en af ​​funktionsvalgalgoritmen som Chi Square eller gensidig information, inden vi træner algoritmen. Vi begrænser kun diskussionen af ​​ML-tilgangen til denne tekst.

Brug af Twitter API

For at begynde at få tweets direkte fra Twitter skal du besøge app-udviklerens hjemmeside her:

https: // udvikler.twitter.com / da / apps

Registrer din ansøgning ved at udfylde formularen angivet således:

Når du har alle tilgængelige token i fanen "Nøgler og tokens":

Vi kan bruge nøglerne til at hente de krævede tweets fra Twitter API, men vi skal kun installere endnu en Python-pakke, som gør det tunge løft for os at få Twitter-data:

pip install tweepy

Ovenstående pakke vil blive brugt til at fuldføre al den kraftige kommunikation med Twitter API. Fordelen for Tweepy er, at vi ikke behøver at skrive meget kode, når vi vil godkende vores ansøgning til interaktion med Twitter-data, og den indpakkes automatisk i en meget enkel API, der er eksponeret gennem Tweepy-pakken. Vi kan importere ovenstående pakke i vores program som:

importer tweepy

Efter dette skal vi bare definere passende variabler, hvor vi kan holde de Twitter-nøgler, vi har modtaget fra udviklerkonsollen:

forbrugernøgle = '[forbrugernøgle]'
consumer_key_secret = '[consumer_key_secret]'
access_token = '[access_token]'
access_token_secret = '[access_token_secret]'

Nu da vi definerede hemmeligheder for Twitter i koden, er vi endelig klar til at etablere en forbindelse med Twitter for at modtage tweets og bedømme dem, jeg mener, analysere dem. Forbindelsen til Twitter skal naturligvis oprettes ved hjælp af OAuth-standarden og Tweepy-pakke vil være praktisk til at etablere forbindelsen såvel:

twitter_auth = tweepy.OAuthHandler (forbrugernøgle, forbrugernøglehemmelighed)

Endelig har vi brug for forbindelsen:

api = tweepy.API (twitter_auth)

Ved hjælp af API-forekomsten kan vi søge på Twitter efter ethvert emne, vi sender til det. Det kan være et enkelt ord eller flere ord. Selvom vi vil anbefale at bruge så få ord for præcision som muligt. Lad os prøve et eksempel her:

pm_tweets = api.søg ("Indien")

Ovenstående søgning giver os mange tweets, men vi begrænser antallet af tweets, vi får tilbage, så opkaldet ikke tager for meget tid, da det også skal behandles senere af TextBlob-pakken:

pm_tweets = api.søg ("Indien", count = 10)

Endelig kan vi udskrive teksten for hver Tweet og den følelse, der er knyttet til den:

til tweet i pm_tweets:
udskrive (tweet.tekst)
analyse = TextBlob (tweet.tekst)
print (analyse.følelse)

Når vi har kørt ovenstående script, begynder vi at få de sidste 10 omtaler af den nævnte forespørgsel, og hver tweet vil blive analyseret for sentimentværdi. Her er det output, vi modtog for det samme:

Bemærk, at du også kunne lave en streaming-sentimentanalysebot med TextBlob og Tweepy. Tweepy giver mulighed for at etablere en websocket-streamingforbindelse med Twitter API og giver mulighed for at streame Twitter-data i realtid.

Konklusion

I denne lektion kiggede vi på en fremragende tekstanalysepakke, der giver os mulighed for at analysere tekstlige følelser og meget mere. TextBlob er populær på grund af den måde, det giver os mulighed for simpelthen at arbejde med tekstdata uden besvær med komplekse API-opkald. Vi integrerede også Tweepy for at gøre brug af Twitter-data. Vi kan let ændre brugen til en streaming use-case med den samme pakke og meget få ændringer i selve koden.

Del din feedback frit om lektionen på Twitter med @linuxhint og @sbmaggarwal (det er mig!).

Top 5 spiloptagelseskort
Vi har alle set og elsket streaming af gameplay på YouTube. PewDiePie, Jakesepticye og Markiplier er kun nogle af de bedste spillere, der har tjent mi...
Sådan udvikler du et spil på Linux
For et årti siden ville ikke mange Linux-brugere forudsige, at deres foretrukne operativsystem en dag ville være en populær spilplatform til kommercie...
Open Source-porte med kommercielle spilmotorer
Gratis, open source og cross-platform spilmotorgendringer kan bruges til at spille gamle såvel som nogle af de temmelig nylige spiltitler. Denne artik...