logo

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

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

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

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

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

Корак 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()) 

Излаз:



Излаз' loading='lazy' title=Излаз

Корак 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' loading='lazy' title=Излаз

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

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

Излаз:

Излаз' loading='lazy' title=Излаз

Корак 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=(12)) 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('nBernoulliNB Classification Report:n' classification_report(y_test bnb_pred)) 

Излаз:

Излаз' loading='lazy' title=Излаз

Корак 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('nSVM Classification Report:n' classification_report(y_test svm_pred)) 

Излаз:

једнако јава
Излаз' loading='lazy' title=Излаз

Корак 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('nLogistic Regression Classification Report:n' classification_report(y_test logreg_pred)) 

Излаз:

Излаз' loading='lazy' title=Излаз

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

  • Овај код узима три узорка твита и трансформише их у ТФ ИДФ карактеристике користећи исти векторизатор.
  • Затим предвиђа њихово расположење користећи обучени БерноуллиНБ СВМ и моделе логистичке регресије и штампа резултате за сваки класификатор.
  • Где 1 значи позитивно, а 0 негативно.
C++
sample_tweets = ['I love this!' 'I hate that!' 'It was okay not great.'] sample_vec = vectorizer.transform(sample_tweets) print('nSample Predictions:') print('BernoulliNB:' bnb.predict(sample_vec)) print('SVM:' svm.predict(sample_vec)) print('Logistic Regression:' logreg.predict(sample_vec)) 

Излаз:

Излаз' loading='lazy' title=Излаз

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

Креирај квиз