de Arun Mathew Kurian

Cum să construiești un analizor de sentimente Twitter în Python folosind TextBlob

Acest blog se bazează pe videoclip Analiza sentimentelor Twitter – Aflați Python pentru știința datelor # 2 de Siraj Raval. În această provocare, vom construi un analizor de sentiment care verifică dacă tweet-urile despre un subiect sunt negative sau pozitive. Pentru aceasta vom folosi textblob-ul bibliotecii Python.

Cum sa construiesti un analizor de sentimente Twitter in Python
imagine de pe google

Analiza sentimentelor, numită și minarea opiniei sau AI emoțională, este procesul de determinare a faptului dacă o parte a scrisului este pozitivă, negativă sau neutră. Un caz de utilizare obișnuit pentru această tehnologie este de a descoperi cum se simt oamenii cu privire la un anumit subiect. Analiza sentimentelor este aplicată pe scară largă recenziilor și rețelelor sociale pentru o varietate de aplicații.

Analiza sentimentelor poate fi efectuată în multe moduri diferite. Multe mărci și specialiști în marketing utilizează instrumente bazate pe cuvinte cheie care clasifică datele (social, știri, recenzii, blog etc.) ca pozitive / negative / neutre.

Etichetarea automată a sentimentelor se realizează de obicei prin liste de cuvinte. De exemplu, mențiunile despre „ură” ar fi etichetate negativ.

Pot exista două abordări ale analizei sentimentelor.

ad-banner

1. Metode bazate pe lexic
2. Metode bazate pe învățarea automată.

În această problemă, vom folosi o metodă bazată pe Lexicon.

Metodele bazate pe lexic definesc o listă de cuvinte pozitive și negative, cu o valență – (de exemplu, „frumos”: +2, „bun”: +1, „teribil”: -1,5 etc.). Algoritmul caută un text pentru a găsi toate cuvintele cunoscute. Apoi combină rezultatele lor individuale prin însumare sau medie. Unele extensii pot verifica unele reguli gramaticale, cum ar fi negarea sau modificatorul sentimentului (cum ar fi cuvântul „dar”, care evaluează valorile sentimentului în text diferit, pentru a sublinia sfârșitul textului).

Să construim analizorul acum.

API Twitter

Înainte de a începe codarea, trebuie să ne înregistrăm pentru API-ul Twitter https://apps.twitter.com/. Aici trebuie să înregistrăm o aplicație pentru a genera diverse chei asociate API-ului nostru. API-ul Twitter poate fi utilizat pentru a efectua mai multe acțiuni precum crearea și căutarea.

Acum, după crearea aplicației, putem începe codarea.

Trebuie să instalăm două pachete:

pip instala tweepy

Acest pachet va fi utilizat pentru manipularea API-ului Twitter.

pip instalează textblob

Acest pachet va fi utilizat pentru analiza sentimentelor.

sentiment_analyzer.py

import tweepyfrom textblob import TextBlob

Trebuie să declarăm variabilele pentru a stoca diferitele chei asociate cu API-ul Twitter.

consumer_key = ‘[consumer_key]’
consumer_key_secret = ‘[consumer_key_secret]’
access_token = ‘[access_token]’
access_token_secret = ‘[access_token_secret]’

Următorul pas este de a crea o conexiune cu API-ul Twitter folosind tweepy cu aceste jetoane.

Tweepy

Tweepy acceptă autentificarea OAuth. Autentificarea este gestionată de tweepy.OAuthHandler clasă.

Un OAuthHandler instanța trebuie creată prin trecerea unui jeton de consum și secret.

Pe această instanță de autentificare, vom apela o funcție set_access_token trecând access_token și access_token_secret.

În cele din urmă, ne creăm instanța API tweepy trecând această instanță de autentificare în funcția API a tweepy.

auth = tweepy.OAuthHandler(consumer_key, consumer_key_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)

Acum putem căuta pe Twitter orice subiect folosind metoda de căutare a API-ului.

public_tweets = api.search(‘Dogs’)

Acum vom primi toate tweet-urile legate de subiectul „Câini”. Putem efectua analize de sentiment folosind textblob-ul bibliotecii.

TextBlob

TextBlob este o bibliotecă Python (2 și 3) pentru prelucrarea datelor textuale. Oferă un API simplu pentru scufundări în sarcini comune de procesare a limbajului natural (NLP), cum ar fi etichetarea parțială a vorbirii, extragerea frazelor substantivale, analiza sentimentelor, clasificarea, traducerea și multe altele.

Un textblob poate fi creat în modul următor (exemplu și nu parte a codului original):

example = TextBlob("Python is a high-level, general-purpose programming language.")

Și tokenizare poate fi realizat prin următoarele metode:

cuvinte: returnează cuvintele textului

utilizare:

example.words

propoziții: returnează propozițiile textului

utilizare:

example.sentences

Etichetare în parte a vorbirii

Etichetele cu parti de vorbire pot fi accesate prin Etichete proprietate.

wiki.tags[('Python', 'NNP'), ('is', 'VBZ'), ('a', 'DT'), ('high-level', 'JJ'), ('general-purpose', 'JJ'), ('programming', 'NN'), ('language', 'NN')]

Analiza sentimentelor

Proprietatea sentimentului returnează un tuplu numit de forma Sentiment (polaritate, subiectivitate). Scorul de polaritate este un flotor în interval [-1.0, 1.0]. Subiectivitatea este un flotor în raza de acțiune [0.0, 1.0] unde 0.0 este foarte obiectiv și 1.0 este foarte subiectiv.

Acum reveniți la cod.

Putem itera publice_tweets matrice și verificați sentimentul textului fiecărui tweet pe baza polarității.

for tweet in public_tweets:    print(tweet.text)    analysis = TextBlob(tweet.text)    print(analysis.sentiment)    if analysis.sentiment[0]>0:       print 'Positive'    elif analysis.sentiment[0]<0:       print 'Negative'    else:       print 'Neutral'

Acum rulăm codul folosind următoarele:

python sentiment_analyzer.py

și obținem rezultatul:

1612039326 697 Cum sa construiesti un analizor de sentimente Twitter in Python

Putem vedea că sentimentul tweet-ului este afișat.

Acesta este un exemplu al modului în care analiza sentimentului poate fi făcută pe datele de pe rețelele sociale precum Twitter. Sper să vă fie de folos!

Găsiți codul la https://github.com/amkurian/twitter_sentiment_challenge