Pytonorm

Sentimentanalys med TextBlob och Python

Sentimentanalys med TextBlob och Python
I den här lektionen kommer vi att använda ett av det utmärkta Python-paketet - TextBlob, för att bygga en enkel sentimental analysator. Vi vet alla att tweets är en av de mest populära exempeluppsättningarna när det gäller textanalys inom datavetenskap och maskininlärning. Detta beror på att tweets är i realtid (om det behövs), allmänt tillgängliga (mestadels) och representerar äkta mänskligt beteende (förmodligen). Det är därför tweets vanligtvis används när man gör någon form av bevis på begrepp eller handledning relaterade till Natural Language Processing (NLP) och textanalys.

Använda TextBlob i branschen

Precis som det låter är TextBlob ett Python-paket för att utföra enkla och komplexa textanalysoperationer på textdata som talmärkning, extraktion av substantivfraser, sentimentanalys, klassificering, översättning och mer. Även om det finns mycket fler användningsfall för TextBlob som vi kan täcka i andra bloggar, täcker den här analysen av tweets för deras känslor.

Analysens känslor har en stor praktisk användning för många olika scenarier:

Komma igång med TextBlob

Vi vet att du kom hit för att se en praktisk kod relaterad till en sentimental analysator med TextBlob. Det är därför vi kommer att hålla det här avsnittet extremt kort för att introducera TextBlob för nya läsare. Bara en anmärkning innan du börjar är att vi använder en virtuell miljö för den här lektionen som vi gjorde med följande kommando

python -m virtualenv textblob
källa textblob / bin / aktivera

När den virtuella miljön är aktiv kan vi installera TextBlob-biblioteket i det virtuella env så att exempel vi skapar nästa kan köras:

pip install -U textblob

När du har kört ovanstående kommando är det inte det. TextBlob behöver också tillgång till vissa träningsdata som kan laddas ner med följande kommando:

python -m textblob.download_corpora

Du ser något liknande genom att ladda ner de data som krävs:

Du kan också använda Anaconda för att köra dessa exempel, vilket är lättare. Om du vill installera den på din maskin, titta på lektionen som beskriver ”Hur man installerar Anaconda Python på Ubuntu 18.04 LTS ”och dela din feedback.

För att visa ett mycket snabbt exempel för TextBlob, här är ett exempel direkt från dess dokumentation:

från textblob importerar TextBlob
text = "'
Det titulära hotet från The Blob har alltid slagit mig som den ultimata filmen
monster: en omättligt hungrig, amoebaliknande massa som kan tränga in
praktiskt taget alla skyddsåtgärder som kan - som en dömd läkare kyligt
beskriver det - "assimilerar kött vid kontakt.
Snide-jämförelser med gelatin är fördömda, det är ett koncept med mest
förödande av potentiella konsekvenser, inte till skillnad från grå goo-scenariot
föreslagits av teknologiska teoretiker rädda för
artificiell intelligens sprider sig.
"'
blob = TextBlob (text)
tryck (blob.taggar)
tryck (blob.substantiv_fraser)
för mening i blob.meningar:
skriva ut (mening.känsla.polaritet)
klick.översätt (till = "es")

När vi kör programmet ovan får vi följande taggord och slutligen de känslor som de två meningarna i exempeltexten visar:

Taggord och känslor hjälper oss att identifiera huvudord som faktiskt påverkar sentimentberäkningen och polariteten i den mening som ges till. Detta beror på att betydelsen och känslan av orden förändras i den ordning de används så att allt detta måste hållas dynamiskt.

Lexikonbaserad sentimentanalys

Varje sentiment kan helt enkelt definieras som en funktion av semantisk orientering och intensitet hos ord som används i en mening. Med ett lexikonbaserat tillvägagångssätt för att identifiera känslor i givna ord eller meningar är varje ord associerat med en poäng som beskriver känslorna som ordet uppvisar (eller åtminstone försöker visa). Vanligtvis har de flesta orden en fördefinierad ordbok om deras lexikala poäng men när det gäller människan är det alltid sarkasm avsedd, så ordböckerna är inte något vi kan lita på 100%. WordStat Sentiment Dictionary innehåller mer än 9164 negativa och 4847 positiva ordmönster.

Slutligen finns det en annan metod för att utföra sentimentanalys (utom räckvidden för den här lektionen) som är en maskininlärningsteknik men vi kan inte använda alla ord i en ML-algoritm eftersom vi säkert kommer att möta problem med överanpassning. Vi kan använda en av funktionsvalalgoritmerna som Chi Square eller ömsesidig information innan vi tränar algoritmen. Vi kommer endast att begränsa diskussionen om ML-tillvägagångssättet till denna text.

Använda Twitter API

För att börja få tweets direkt från Twitter, besök apputvecklarens hemsida här:

https: // utvecklare.Twitter.com / sv / appar

Registrera din ansökan genom att fylla i formuläret enligt följande:

När du har alla token tillgängliga på fliken "Keys and Tokens":

Vi kan använda tangenterna för att hämta de nödvändiga tweetsna från Twitter API men vi behöver bara installera ytterligare ett Python-paket som gör det tungt för oss att få Twitter-data:

pip install tweepy

Ovanstående paket kommer att användas för att komplettera all tunglyftande kommunikation med Twitter API. Fördelen med Tweepy är att vi inte behöver skriva mycket kod när vi vill autentisera vår applikation för att interagera med Twitter-data och den förpackas automatiskt i ett mycket enkelt API som exponeras genom Tweepy-paketet. Vi kan importera ovanstående paket i vårt program som:

importera tweepy

Efter detta behöver vi bara definiera lämpliga variabler där vi kan hålla Twitter-nycklarna vi fick från utvecklarkonsolen:

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

Nu när vi definierade hemligheter för Twitter i koden är vi äntligen redo att skapa en anslutning med Twitter för att ta emot tweets och bedöma dem, jag menar, analysera dem. Naturligtvis ska anslutningen till Twitter upprättas med hjälp av OAuth-standarden och Tweepy-paketet kommer att vara till nytta för att upprätta anslutningen också:

twitter_auth = tweepy.OAuthHandler (konsumentknapp, konsumentknappsekret)

Slutligen behöver vi anslutningen:

api = tweepy.API (twitter_auth)

Med hjälp av API-instansen kan vi söka på Twitter efter alla ämnen vi skickar till den. Det kan vara ett ord eller flera ord. Även om vi kommer att rekommendera att använda så få ord för precision som möjligt. Låt oss prova ett exempel här:

pm_tweets = api.sök ("Indien")

Ovanstående sökning ger oss många tweets men vi kommer att begränsa antalet tweets vi får tillbaka så att samtalet inte tar för mycket tid, eftersom det också behöver behandlas senare av TextBlob-paketet:

pm_tweets = api.sök ("Indien", antal = 10)

Slutligen kan vi skriva ut texten för varje tweet och den känsla som är associerad med den:

för tweet i pm_tweets:
skriva ut (tweet.text)
analys = TextBlob (tweet.text)
skriva ut (analys.känsla)

När vi har kört ovanstående skript börjar vi få de sista 10 nämnderna av den nämnda frågan och varje tweet analyseras för sentimentvärde. Här är resultatet vi fick för samma:

Observera att du också kan skapa en streaming-sentimentanalys bot med TextBlob och Tweepy också. Tweepy gör det möjligt att skapa en webbanslutningsströmningsanslutning med Twitter API och gör det möjligt att strömma Twitter-data i realtid.

Slutsats

I den här lektionen tittade vi på ett utmärkt textanalyspaket som låter oss analysera textuella känslor och mycket mer. TextBlob är populärt på grund av hur det gör att vi helt enkelt kan arbeta med textdata utan besvär med komplexa API-samtal. Vi integrerade också Tweepy för att använda Twitter-data. Vi kan enkelt ändra användningen till ett streaming-användningsfall med samma paket och mycket få ändringar i själva koden.

Dela din feedback fritt om lektionen på Twitter med @linuxhint och @sbmaggarwal (det är jag!).

Hur du fångar och strömmar din spelsession på Linux
Tidigare betraktades spel bara som en hobby, men med tiden såg spelindustrin en enorm tillväxt när det gäller teknik och antalet spelare. Spelpubliken...
Bästa spel att spela med handspårning
Oculus Quest introducerade nyligen den fantastiska idén om handspårning utan kontroller. Med ett ständigt ökande antal spel och aktiviteter som utför ...
Hur man visar OSD-överlägg i helskärms Linux-appar och -spel
Att spela helskärmsspel eller använda appar i distraktionsfritt helskärmsläge kan avskärma dig från relevant systeminformation som syns i en panel ell...