analizzare i dati di twitter
Twitter è una grande fonte di notizie al giorno d’oggi perché è la fonte più completa di conversazioni pubbliche in tutto il mondo. Le ultime notizie che potrebbero non essere disponibili sui canali di notizie o sui siti Web, ma potrebbero essere di tendenza su Twitter tra le conversazioni pubbliche. Qualsiasi informazione, nonostante sia costruttiva o distruttiva, può essere facilmente diffusa attraverso la rete di Twitter saltando i tagli o le normative editoriali.

A causa di questa natura di Twitter, è anche popolare tra gli analisti di dati che vogliono raccogliere alcune informazioni di tendenza ed eseguire analisi. In questo articolo, impareremo a scaricare e analizzare i dati di Twitter. Impareremo come ottenere tweet correlati a una parola chiave interessante, come pulire, analizzare, visualizzare quei tweet e infine come convertirlo in un frame di dati e salvarlo in un file CSV.

Qui discuteremo un approccio pratico per scaricare e analizzare i dati di Twitter. Importeremo qui tutte le librerie richieste. Assicurati di installare le librerie ‘tweepy’, ‘ textblob ‘ e ‘ wordcloud ‘ usando ‘ pip install tweepy ‘, ‘ pip install textblob ‘ e ‘ pip install wordcloud ‘.

Importing Libraries

import tweepy
from textblob import TextBlob
import panda as
import pp numpy as np
import matplotlib.pyplot as plt
import re
import nltk
nltk.download (‘stopwords’)
da nltk.corpus import stopwords
from nltk.stem.porter import PorterStemmer
from wordcloud importa WordCloud
importa json
dalle collezioni import Counter
Download dei dati da Twitter
Per utilizzare l’ API ‘ tweepy ‘, devi creare un account con Twitter Developer. Dopo aver creato l’account, vai all’opzione “Inizia” e vai all’opzione “Crea un’app”. Dopo aver creato l’app, non in basso le credenziali richieste di seguito da lì.

Authorization e Ricerca tweets

Getting autorizzazione

consumer_key = ‘XXXXXXXXXXXXXXX’
consumer_key_secret = ‘XXXXXXXXXXXXXXX’
access_token = ‘XXXXXXXXXXXXXXX’
access_token_secret = ‘XXXXXXXXXXXXXXX’
auth = tweepy.OAuthHandler (consumer_key, consumer_key_secret)
auth.set_access_token (access_token, access_token_secret)
API = tweepy. API (auth, wait_on_rate_limit = True)
Puoi passare qui la parola chiave di tuo interesse e il numero massimo di tweet da scaricare tramite l’ API tweepy .

Definizione della parola chiave di ricerca e numero di tweet e ricerca di tweet

query = ‘lockdown’
max_tweets = 2000earch_tweets
= [status for status in tweepy.Cursor (api.search, q = query) .items (max_tweets)]
Analizzeremo ora i sentimenti dei tweet che abbiamo scaricato e li visualizzeremo qui.

Analisi del sentimento

Sentiment Analysis Report

Finding Analisi del sentiment (+ ve, -ve e neutral)

pos = 0
neg = 0
neu = 0
per il tweet nei
motori di
ricerca: analysis = TextBlob (tweet.text) se analysis.sentiment [0]> 0:
pos = pos +1
elif analysis.sentiment [0] <0:
neg = neg + 1
altro:
neu = neu + 1
stampa (“Total Positive =”, pos)
print (“Total Negative =”, neg)
print (“Total Neutral = “, neu)

Plotting sentiments

labels = ‘Positive’, ‘Negative’, ‘Neutral’
dimensioni = [257, 223, 520]
colors = [‘gold’, ‘yellowgreen’, ‘lightcoral’]
explode = (0.1, 0, 0) # esplodere prima fetta
plt.pie (dimensioni, esplodere = esplodere, etichette = etichette, colori = colori, autopct = ‘% 1.1f %%’, ombra = True, startangle = 140)
plt.axis (‘uguale’)
plt.show ()

analisi dei dati di twitter; analisi del sentimento
Qui, creeremo un frame di dati di tutti i dati di tweet che abbiamo scaricato. Successivamente tutti i dati elaborati verranno salvati in un file CSV nel sistema locale. In questo modo, possiamo utilizzare questi dati di tweet per altri scopi sperimentali .

Creazione del frame di dati e salvataggio nel file CSV

Creazione di un frame di dati di tweet # Pulizia di tweet

cercati e conversione in un frame di dati
my_list_of_dicts = []
per each_json_tweet in
seek_tweets : my_list_of_dicts.append (each_json_tweet._json)

con open (‘tweet_json_Data.txt’, ‘w’) come file:
file.write (json.dumps (my_list_of_dicts, indent = 4))

my_demo_list = []
con open (‘tweet_json_Data.txt’, encoding = ‘utf-8’) come json_file:
all_data = json.load (json_file)
per each_dictionary in all_data:
tweet_id = each_dictionary [‘id’]
text = each_dictionary [‘ text ‘]
favorite_count = each_dictionary [‘ favorite_count ‘]
retweet_count = each_dictionary [‘ retweet_count ‘]
Created_at = each_dictionary [‘
Created_at
‘] my_demo_list.append ({‘ tweet_id ‘: str (tweet_id), ‘ text ‘: str (testo), str
‘favorite_count’: int (favorite_count),
‘retweet_count’: int (retweet_count),
‘Created_at’: Created_at,
})
tweet_dataset = pd.DataFrame (my_demo_list, colonne = [‘tweet_id’, ‘text’, ‘favorite_count’, ‘retweet_count’, ‘Created_at’])

#Writing set di dati tweet per file CSV per riferimento futuro
tweet_dataset.to_csv (‘tweet_data.csv’)
Pulizia di testi Tweet tramite operazioni NLP
Dato che ora siamo pronti con il set di dati tweet, analizzeremo il nostro set di dati e puliremo questi dati nei seguenti segmenti.

tweet_dataset.shape

forma dei dati di twitter

tweet_dataset.head ()

tweets

Cleaning Data

Removing @ handle

def remove_pattern (input_txt, pattern):
r = re.findall (pattern, input_txt)
per i in r:
input_txt = re.sub (i, ”, input_txt)
restituisce input_txt

tweet_dataset [‘text’] = np.vectorize (remove_pattern) (tweet_dataset [‘text’], “@ [\ w] *”)

tweet_dataset.head ()

dati tweet

tweet_dataset [ ‘testo’]. Testa ()

dati tweet
Qui, mentre siamo pronti con i dati puliti del tweet, eseguiremo operazioni di PNL sui testi del tweet incluso prendere solo alfabeti, convertire tutto in lettere minuscole, tokenizzazione e stemming. Poiché nei tweet sono presenti retweet, ipertesti, ecc., È necessario rimuovere tutte quelle informazioni non necessarie.

Cleaning Tweets

corpus = []
per i nell’intervallo (0, 1000):
tweet = re.sub (‘[^ a-zA-Z0-9]’, ”, tweet_dataset [‘text’] [i])
tweet = tweet.lower ()
tweet = re.sub (‘rt’, ”, tweet)
tweet = re.sub (‘http’, ”, tweet)
tweet = re.sub (‘https’, ”, tweet )
tweet = tweet.split ()
ps = PorterStemmer ()
tweet = [ps.stem (parola) per parola in tweet se non parola in set (stopwords.words (‘inglese’))]
tweet = ” .join (tweet )
corpus.append (tweet)
Ora, dopo aver eseguito le operazioni NLP, visualizziamo le parole più frequenti nei tweet attraverso una nuvola di parole e usando il termine frequenza.

Visualizzazione delle parole più alte che si verificano utilizzando Word Cloud

Visualization

Word Cloud

all_words = ” .join ([testo per testo in corpus])
wordcloud = WordCloud (larghezza = 800, altezza = 500, random_state = 21, max_font_size = 110) .generate (all_words)
plt.figure (figsize = (10, 7))
plt.imshow (wordcloud, interpolazione = “bilineare”)
plt.axis (‘off’)
plt.show ()

nuvola di parole tweet
Analisi della frequenza dei termini con le parole più alte che si verificano

Term Freuency – TF-IDF

da sklearn.feature_extraction.text import TfidfVectorizer
tfidf_vectorizer = TfidfVectorizer (max_df = 0.90, min_df = 2, max_features = 1000, stop_words = ‘inglese’)
tfidf = tfidf_vectoret’d_fformas ” tfidf ”

Conta le
parole più frequenti Counter = Counter (corpus) most_occur = Counter.most_common (10)
print (most_occur)

frequenza del termine tweet
Soprattutto i termini più frequenti sono comparsi nei dati del tweet. Quindi, questo è il modo in cui possiamo scaricare i tweet, pulire quei tweet, convertirli in frame di dati, salvarli in file CSV e, infine, analizzare quei tweet.

Di ihal