Анализа расположења на Твиттер-у користећи Питхон

Анализа расположења на Твиттер-у користећи Питхон

Анализа расположења на Твиттер-у је процес коришћења Питхон-а за аутоматско разумевање емоција или мишљења изражених у твитовима. Анализом текста можемо класификовати твитове као позитивно негативне или неутралне. Ово помаже предузећима и истраживачима да прате репутацију бренда расположеног у јавности или реакције на догађаје у реалном времену. Питхон библиотеке попут ТектБлоб Твеепи и НЛТК олакшавају прикупљање твитова, обрађују текст и ефикасно врше анализу расположења. Анализа расположења на Твиттер-у користећи Питхон

Како је корисна анализа расположења на Твитеру?

  • Анализа расположења на Твиттер-у је важна јер помаже људима и предузећима да разумеју шта јавност мисли у реалном времену.
  • Сваки дан се објављују милиони твитова у којима се деле мишљења о догађајима брендова или друштвеним питањима. Анализом овог огромног тока података компаније могу да измере задовољство купаца уочавају трендове рано да се изборе са негативним повратним информацијама и донесу боље одлуке на основу тога како се људи заправо осећају.
  • Такође је корисно за истраживаче и владе да прате расположење јавности током изборних криза или великих догађаја јер претвара сирове твитове у вредне увиде.

Корак по корак имплементација

Корак 1: Инсталирајте потребне библиотеке

Овај блок инсталира и увози потребне библиотеке. It uses панде за учитавање и руковање подацима ТфидфВецторизер да се текст претвори у бројеве и сцикит леарн да обуче модел.

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   

Корак 2: Учитајте скуп података

  • Овде учитавамо Сентимент140 сет података из зиповане ЦСВ датотеке можете је преузети са Каггле-а.
  • Задржавамо само поларитет и колоне текста твита преименујемо их ради јасноће и штампамо првих неколико редова да бисмо проверили податке.
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  ())   

Излаз:

ИзлазИзлаз

Корак 3: Задржите само позитивна и негативна осећања

  • Овде уклањамо неутралне твитове где је поларитет 2 мапира ознаке тако да 0 остаје негативно, а 4 постаје 1 за позитивно.
  • Затим исписујемо колико је позитивних и негативних твитова остало у подацима.
Python
   df   =   df  [  df  .  polarity   !=   2  ]   df  [  'polarity'  ]   =   df  [  'polarity'  ]  .  map  ({  0  :   0     4  :   1  })   print  (  df  [  'polarity'  ]  .  value_counts  ())   

Излаз:

Сцреенсхот-2025-07-09-092140Излаз

Корак 4: Очистите твитове

  • Овде дефинишемо једноставну функцију за претварање целог текста у мала слова ради доследности и примењује га на сваки твит у скупу података.
  • Затим приказује оригиналне и очишћене верзије првих неколико твитова.
Python
   def   clean_text  (  text  ):   return   text  .  lower  ()   df  [  'clean_text'  ]   =   df  [  'text'  ]  .  apply  (  clean_text  )   print  (  df  [[  'text'     'clean_text'  ]]  .  head  ())   

Излаз:

ИзлазИзлаз

Корак 5: Траин Тест Сплит

  • Овај код дели цлеан_тект и колоне поларитета у скупове за обуку и тестирање користећи поделе 80/20.
  • рандом_стате=42 обезбеђује поновљивост.
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  ))   

Излаз:

Величина воза: 1280000
Величина теста: 320000

Корак 6: Извршите векторизацију

  • Овај код креира ТФ ИДФ векторизатор који претвара текст у нумеричке карактеристике користећи униграме и биграме ограничене на 5000 карактеристика.
  • Он уклапа и трансформише податке о обуци и трансформише податке теста, а затим штампа облике резултујућих ТФ ИДФ матрица.
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  )   

Излаз:

ТФ-ИДФ облик (воз): (1280000 5000)
ТФ-ИДФ облик (тест): (320000 5000)

Корак 7: Обучите Бернулијев наивни Бајесов модел

  • Овде тренирамо а Бернули наивни Бајес класификатор о карактеристикама ТФ ИДФ-а из података о обуци.
  • Предвиђа осећања за податке теста, а затим штампа тачност и детаљан извештај о класификацији.
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  ))   

Излаз:

ИзлазИзлаз

Корак 9: Модел векторске машине за подршку воза (СВМ).

  • Овај код обучава а Машина за векторску подршку (СВМ) са максимално 1000 итерација на ТФ ИДФ карактеристикама.
  • Предвиђа тестне налепнице, а затим штампа тачност и детаљан извештај о класификацији који показује колико је СВМ добро прошао.
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  ))   

Излаз:

ИзлазИзлаз

Корак 10: Обучите модел логистичке регресије

  • Овај код обучава а Логистичка регресија модел са до 100 итерација на ТФ ИДФ карактеристикама.
  • Он предвиђа ознаке осећања за податке теста и штампа тачност и детаљан извештај о класификацији за процену модела.
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  ))   

Излаз:

ИзлазИзлаз

Корак 11: Направите предвиђања на узорцима твитова

  • Овај код узима три узорка твита и трансформише их у ТФ ИДФ карактеристике користећи исти векторизатор.
  • Затим предвиђа њихово расположење користећи обучени БерноуллиНБ СВМ и моделе логистичке регресије и штампа резултате за сваки класификатор.
  • Где 1 значи позитивно, а 0 негативно.
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  ))   

Излаз:

ИзлазИзлаз

Изворни код можете преузети овде - Анализа расположења на Твиттер-у користећи Питхон

Креирај квиз