Python

Sentimentanalyse med TextBlob og Python

Sentimentanalyse med TextBlob og Python
I denne leksjonen vil vi bruke en av den utmerkede Python-pakken - TextBlob, til å bygge en enkel sentimental analysator. Vi vet alle at tweets er et av favorittdatasettene når det gjelder tekstanalyse innen datavitenskap og maskinlæring. Dette er fordi tweets er sanntid (om nødvendig), offentlig tilgjengelige (for det meste) og representerer ekte menneskelig atferd (sannsynligvis). Derfor brukes tweets vanligvis mens du gjør noen form for bevis på konsepter eller veiledninger relatert til Natural Language Processing (NLP) og tekstanalyse.

Bruke TextBlob i industrien

Akkurat som det høres ut, er TextBlob en Python-pakke for å utføre enkle og komplekse tekstanalyseoperasjoner på tekstdata som talemerking, substantivuttrykk, sentimentanalyse, klassifisering, oversettelse og mer. Selv om det er mange flere bruksområder for TextBlob som vi kan dekke i andre blogger, dekker denne analysen av tweets for deres følelser.

Analysesentimenter har stor praktisk bruk for mange antall scenarier:

Komme i gang med TextBlob

Vi vet at du kom hit for å se noen praktiske koder knyttet til en sentimental analysator med TextBlob. Derfor vil vi holde denne delen ekstremt kort for å introdusere TextBlob for nye lesere. Bare et notat før du starter er at vi bruker en virtuelt miljø for denne leksjonen som vi laget med følgende kommando

python -m virtualenv tekstblob
kildetekstblokk / søppel / aktiver

Når det virtuelle miljøet er aktivt, kan vi installere TextBlob-biblioteket i det virtuelle miljøet slik at eksempler vi oppretter neste kan utføres:

pip install -U tekstblob

Når du har kjørt kommandoen ovenfor, er det ikke det. TextBlob trenger også tilgang til noen treningsdata som kan lastes ned med følgende kommando:

python-m tekstblokk.nedlasting_korpora

Du vil se noe slikt ved å laste ned dataene det krevde:

Du kan også bruke Anaconda til å kjøre disse eksemplene, noe som er enklere. Hvis du vil installere den på maskinen din, kan du se på leksjonen som beskriver “Slik installerer du Anaconda Python på Ubuntu 18.04 LTS ”og del din tilbakemelding.

For å vise et veldig raskt eksempel for TextBlob, her er et eksempel direkte fra dokumentasjonen:

fra textblob importerer TextBlob
tekst = "'
Den titulære trusselen om The Blob har alltid slått meg som den ultimate filmen
monster: en umettelig sulten, amoebalignende masse som er i stand til å trenge gjennom
praktisk talt enhver verneutstyr, i stand til - som en dømt lege kjølende
beskriver det - "assimilere kjøtt ved kontakt.
Snide sammenligninger med gelatin blir forbannet, det er et konsept med mest
ødeleggende for potensielle konsekvenser, ikke ulikt det grå goo-scenariet
foreslått av teknologiske teoretikere redd for
kunstig intelligens lønner seg.
"'
blob = TextBlob (tekst)
utskrift (blob.tagger)
utskrift (blob.substantiv_fraser)
for setning i klatt.setninger:
utskrift (setning.følelse.polaritet)
klatt.oversette (til = "es")

Når vi kjører programmet ovenfor, får vi følgende merkeord og til slutt følelsene de to setningene i eksemplet viser:

Merkord og følelser hjelper oss med å identifisere hovedordene som faktisk påvirker sentimentberegningen og polariteten til setningen som er gitt til. Dette er fordi betydningen og følelsen av ordene endres i rekkefølgen de brukes, så alt dette må holdes dynamisk.

Leksikonbasert sentimentanalyse

Ethvert sentiment kan ganske enkelt defineres som en funksjon av semantisk orientering og intensitet av ord som brukes i en setning. Med leksikonbasert tilnærming for å identifisere følelser i et gitt ord eller setninger, er hvert ord assosiert med en poengsum som beskriver følelsene ordet viser (eller i det minste prøver å vise). Vanligvis har de fleste ordene en forhåndsdefinert ordbok om deres leksikale poengsum, men når det gjelder mennesker, er det alltid sarkasme ment, så ordbøkene er ikke noe vi kan stole på 100%. WordStat Sentiment Dictionary inneholder mer enn 9164 negative og 4847 positive ordmønstre.

Til slutt er det en annen metode for å utføre sentimentanalyse (utenfor omfanget av denne leksjonen), som er en Machine Learning-teknikk, men vi kan ikke bruke alle ord i en ML-algoritme, da vi helt sikkert vil møte problemer med overmontering. Vi kan bruke en av funksjonsvalgalgoritmen som Chi Square eller gjensidig informasjon før vi trener algoritmen. Vi vil begrense diskusjonen om ML-tilnærming til kun denne teksten.

Bruker Twitter API

For å begynne å få tweets direkte fra Twitter, besøk apputviklerens hjemmeside her:

https: // utvikler.twitter.no / no / apper

Registrer søknaden din ved å fylle ut skjemaet slik:

Når du har alt symbolet som er tilgjengelig i kategorien "Nøkler og tokens":

Vi kan bruke nøklene for å hente de nødvendige tweets fra Twitter API, men vi trenger å installere bare en Python-pakke til som løfter tungt for oss når vi får tak i Twitter-data:

pip install tweepy

Ovennevnte pakke vil bli brukt til å fullføre all tungløftende kommunikasjon med Twitter API. Fordelen for Tweepy er at vi ikke trenger å skrive mye kode når vi vil autentisere søknaden vår for samhandling med Twitter-data, og den blir automatisk pakket inn i en veldig enkel API eksponert gjennom Tweepy-pakken. Vi kan importere pakken ovenfor i vårt program som:

importer tweepy

Etter dette trenger vi bare å definere passende variabler der vi kan holde Twitter-tastene vi mottok fra utviklerkonsollen:

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

Nå som vi definerte hemmeligheter for Twitter i koden, er vi endelig klare til å etablere en forbindelse med Twitter for å motta tweets og bedømme dem, jeg mener, analysere dem. Selvfølgelig skal forbindelsen til Twitter opprettes ved hjelp av OAuth-standarden og Tweepy-pakken vil være nyttig for å opprette forbindelsen også:

twitter_auth = tweepy.OAuthHandler (forbrukernøkkel, forbrukernøkkelhemmelighet)

Endelig trenger vi forbindelsen:

api = tweepy.API (twitter_auth)

Ved hjelp av API-forekomsten kan vi søke på Twitter etter et emne vi sender til det. Det kan være et enkelt ord eller flere ord. Selv om vi vil anbefale å bruke så få ord for presisjon som mulig. La oss prøve et eksempel her:

pm_tweets = api.søk ("India")

Ovennevnte søk gir oss mange tweets, men vi vil begrense antall tweets vi får tilbake, slik at samtalen ikke tar for mye tid, siden den også senere må behandles av TextBlob-pakken:

pm_tweets = api.søk ("India", count = 10)

Til slutt kan vi skrive ut teksten til hver Tweet og følelsen som er knyttet til den:

for tweet i pm_tweets:
skriv ut (tweet.tekst)
analyse = TextBlob (tweet.tekst)
utskrift (analyse.sentiment)

Når vi har kjørt ovennevnte skript, begynner vi å få de siste 10 nevnte spørsmålene, og hver tweet vil bli analysert for sentimentverdi. Her er utgangen vi mottok for det samme:

Merk at du også kan lage en streaming sentimentanalysebot med TextBlob og Tweepy også. Tweepy gjør det mulig å opprette en nettbasert streamingforbindelse med Twitter API og tillater å streame Twitter-data i sanntid.

Konklusjon

I denne leksjonen så vi på en utmerket tekstanalysepakke som lar oss analysere tekstlige følelser og mye mer. TextBlob er populært på grunn av måten det lar oss bare jobbe med tekstdata uten problemer med komplekse API-samtaler. Vi integrerte også Tweepy for å gjøre bruk av Twitter-data. Vi kan enkelt endre bruken til en streaming-case med samme pakke og svært få endringer i selve koden.

Vennligst del din tilbakemelding fritt om leksjonen på Twitter med @linuxhint og @sbmaggarwal (det er meg!).

OpenTTD vs Simutrans
Å lage din egen transportsimulering kan være morsom, avslappende og ekstremt fristende. Derfor må du sørge for at du prøver så mange spill som mulig f...
OpenTTD Tutorial
OpenTTD er et av de mest populære forretningssimuleringsspillene der ute. I dette spillet må du lage en fantastisk transportvirksomhet. Du begynner im...
SuperTuxKart for Linux
SuperTuxKart er en flott tittel designet for å gi deg Mario Kart-opplevelsen gratis på Linux-systemet ditt. Det er ganske utfordrende og morsomt å spi...