Twitter-sentimentanalyse ved hjelp av Python

Twitter-sentimentanalyse ved hjelp av Python

Twitter Sentiment Analysis er prosessen med å bruke Python til å automatisk forstå følelsene eller meningene som uttrykkes i tweets. Ved å analysere teksten kan vi klassifisere tweets som positive negative eller nøytrale. Dette hjelper bedrifter og forskere med å spore merkevarens omdømme eller reaksjoner på hendelser i sanntid. Python-biblioteker som TextBlob Tweepy og NLTK gjør det enkelt å samle tweets behandle teksten og utføre sentimentanalyse effektivt. Twitter-sentimentanalyse ved hjelp av Python

Hvordan er Twitter-sentimentanalyse nyttig?

  • Twitter Sentiment Analysis er viktig fordi det hjelper folk og bedrifter å forstå hva publikum tenker i sanntid.
  • Millioner av tweets legges ut hver dag og deler meninger om merkevare-produkter eller sosiale problemer. Ved å analysere denne enorme strømmen av data kan bedrifter måle kundetilfredshet oppdage trender tidlig, håndtere negative tilbakemeldinger raskt og ta bedre beslutninger basert på hvordan folk faktisk har det.
  • Det er også nyttig for forskere og myndigheter å overvåke offentlig stemning under valgkriser eller store begivenheter, da det gjør rå tweets til verdifull innsikt.

Trinn for trinn implementering

Trinn 1: Installer nødvendige biblioteker

Denne blokken installerer og importerer de nødvendige bibliotekene. Den bruker pandaer å laste og håndtere data TfidfVectorizer å gjøre tekst om til tall og sikit lære å trene modell.

Python
   pip   install   pandas   scikit  -  learn   import   pandas   as   pd   from   sklearn.feature_extraction.text   import   TfidfVectorizer   from   sklearn.model_selection   import   train_test_split   from   sklearn.naive_bayes   import   BernoulliNB   from   sklearn.linear_model   import   LogisticRegression   from   sklearn.svm   import   LinearSVC   from   sklearn.metrics   import   accuracy_score     classification_report   

Trinn 2: Last inn datasett

  • Her laster vi inn Sentiment140 datasett fra en zippet CSV-fil kan du laste den ned fra Kaggle.
  • Vi beholder bare polariteten og tweet-tekstkolonnene gir dem nytt navn for klarhet og skriver ut de første radene for å sjekke dataene.
Python
   df   =   pd  .  read_csv  (  'training.1600000.processed.noemoticon.csv.zip'     encoding  =  'latin-1'     header  =  None  )   df   =   df  [[  0     5  ]]   df  .  columns   =   [  'polarity'     'text'  ]   print  (  df  .  head  ())   

Produksjon:

ProduksjonProduksjon

Trinn 3: Behold bare positive og negative følelser

  • Her fjerner vi nøytrale tweets der polariteten er 2 kartlegger etikettene slik at 0 forblir negativ og 4 blir 1 for positiv.
  • Deretter skriver vi ut hvor mange positive og negative tweets som er igjen i dataene.
Python
   df   =   df  [  df  .  polarity   !=   2  ]   df  [  'polarity'  ]   =   df  [  'polarity'  ]  .  map  ({  0  :   0     4  :   1  })   print  (  df  [  'polarity'  ]  .  value_counts  ())   

Produksjon:

Skjermbilde-2025-07-09-092140Produksjon

Trinn 4: Rengjør tweetene

  • Her definerer vi en enkel funksjon for å konvertere all tekst til små bokstaver for konsistens, bruker den på hver tweet i datasettet.
  • Deretter viser de originale og rensede versjonene av de første par tweetene.
Python
   def   clean_text  (  text  ):   return   text  .  lower  ()   df  [  'clean_text'  ]   =   df  [  'text'  ]  .  apply  (  clean_text  )   print  (  df  [[  'text'     'clean_text'  ]]  .  head  ())   

Produksjon:

ProduksjonProduksjon

Trinn 5: Train Test Split

  • Denne koden deler ren_tekst- og polaritetskolonnene inn i trenings- og testsett ved å bruke en 80/20-deling.
  • random_state=42 sikrer reproduserbarhet.
Python
   X_train     X_test     y_train     y_test   =   train_test_split  (   df  [  'clean_text'  ]   df  [  'polarity'  ]   test_size  =  0.2     random_state  =  42   )   print  (  'Train size:'     len  (  X_train  ))   print  (  'Test size:'     len  (  X_test  ))   

Produksjon:

Togstørrelse: 1280000
Teststørrelse: 320 000

Trinn 6: Utfør vektorisering

  • Denne koden lager en TF IDF-vektorisering som konverterer tekst til numeriske funksjoner ved å bruke unigram og bigram begrenset til 5000 funksjoner.
  • Den passer og transformerer treningsdataene og transformerer testdataene og skriver deretter ut formene til de resulterende TF IDF-matrisene.
Python
   vectorizer   =   TfidfVectorizer  (  max_features  =  5000     ngram_range  =  (  1    2  ))   X_train_tfidf   =   vectorizer  .  fit_transform  (  X_train  )   X_test_tfidf   =   vectorizer  .  transform  (  X_test  )   print  (  'TF-IDF shape (train):'     X_train_tfidf  .  shape  )   print  (  'TF-IDF shape (test):'     X_test_tfidf  .  shape  )   

Produksjon:

TF-IDF form (tog): (1280000 5000)
TF-IDF form (test): (320 000 5000)

Trinn 7: Tren Bernoulli Naive Bayes-modell

  • Her trener vi a Bernoulli Naive Bayes klassifiserer på TF IDF-funksjonene fra treningsdataene.
  • Den forutsier sentimenter for testdataene og skriver deretter ut nøyaktigheten og en detaljert klassifiseringsrapport.
Python
   bnb   =   BernoulliNB  ()   bnb  .  fit  (  X_train_tfidf     y_train  )   bnb_pred   =   bnb  .  predict  (  X_test_tfidf  )   print  (  'Bernoulli Naive Bayes Accuracy:'     accuracy_score  (  y_test     bnb_pred  ))   print  (  '  n  BernoulliNB Classification Report:  n  '     classification_report  (  y_test     bnb_pred  ))   

Produksjon:

ProduksjonProduksjon

Trinn 9: Train Support Vector Machine (SVM) modell

  • Denne koden trener en Support Vector Machine (SVM) med maksimalt 1000 iterasjoner på TF IDF-funksjonene.
  • Den forutsier testetiketter og skriver deretter ut nøyaktigheten og en detaljert klassifiseringsrapport som viser hvor godt SVM presterte.
Python
   svm   =   LinearSVC  (  max_iter  =  1000  )   svm  .  fit  (  X_train_tfidf     y_train  )   svm_pred   =   svm  .  predict  (  X_test_tfidf  )   print  (  'SVM Accuracy:'     accuracy_score  (  y_test     svm_pred  ))   print  (  '  n  SVM Classification Report:  n  '     classification_report  (  y_test     svm_pred  ))   

Produksjon:

ProduksjonProduksjon

Trinn 10: Tren logistisk regresjonsmodell

  • Denne koden trener en Logistisk regresjon modell med opptil 100 iterasjoner på TF IDF-funksjonene.
  • Den forutsier sentimentetiketter for testdataene og skriver ut nøyaktigheten og den detaljerte klassifiseringsrapporten for modellevaluering.
Python
   logreg   =   LogisticRegression  (  max_iter  =  100  )   logreg  .  fit  (  X_train_tfidf     y_train  )   logreg_pred   =   logreg  .  predict  (  X_test_tfidf  )   print  (  'Logistic Regression Accuracy:'     accuracy_score  (  y_test     logreg_pred  ))   print  (  '  n  Logistic Regression Classification Report:  n  '     classification_report  (  y_test     logreg_pred  ))   

Produksjon:

ProduksjonProduksjon

Trinn 11: Lag spådommer på eksempel Tweets

  • Denne koden tar tre eksempler på tweets og forvandler dem til TF IDF-funksjoner ved å bruke den samme vektoriseringen.
  • Den forutsier deretter følelsene deres ved å bruke de trente BernoulliNB SVM- og Logistic Regression-modellene og skriver ut resultatene for hver klassifiserer.
  • Der 1 står for positiv og 0 for negativ.
C++
   sample_tweets     =     [  'I love this!'       'I hate that!'       'It was okay not great.'  ]   sample_vec     =     vectorizer  .  transform  (  sample_tweets  )   print  (  '  n  Sample Predictions:'  )   print  (  'BernoulliNB:'       bnb  .  predict  (  sample_vec  ))   print  (  'SVM:'       svm  .  predict  (  sample_vec  ))   print  (  'Logistic Regression:'       logreg  .  predict  (  sample_vec  ))   

Produksjon:

ProduksjonProduksjon

Vi kan se at modellene våre fungerer bra og gir samme spådommer selv med forskjellige tilnærminger.

Du kan laste ned kildekoden herfra- Twitter-sentimentanalyse ved hjelp av Python

Lag quiz