logo

ניתוח סנטימנטים של טוויטר באמצעות Python

ניתוח סנטימנטים של טוויטר הוא תהליך השימוש ב-Python כדי להבין את הרגשות או הדעות המובעים בציוצים באופן אוטומטי. על ידי ניתוח הטקסט נוכל לסווג ציוצים כשליליים חיוביים או ניטרליים. זה עוזר לעסקים ולחוקרים לעקוב אחר המוניטין של מותג מצב הרוח הציבורי או התגובות לאירועים בזמן אמת. ספריות Python כמו TextBlob Tweepy ו- NLTK מקלות על איסוף ציוצים לעבד את הטקסט ולבצע ניתוח סנטימנט ביעילות. ניתוח סנטימנטים של טוויטר באמצעות Python

כיצד ניתוח סנטימנטים של טוויטר שימושי?

  • ניתוח סנטימנטים בטוויטר חשוב מכיוון שהוא עוזר לאנשים ועסקים להבין מה הציבור חושב בזמן אמת.
  • מיליוני ציוצים מתפרסמים מדי יום וחולקים דעות על אירועי מותגים או נושאים חברתיים. על ידי ניתוח זרם נתונים עצום זה, חברות יכולות למדוד את מגמות שביעות רצון לקוחות מוקדם לטפל במשוב שלילי במהירות ולקבל החלטות טובות יותר על סמך איך אנשים מרגישים בפועל.
  • זה גם שימושי לחוקרים ולממשלות לעקוב אחר מצב הרוח הציבורי במהלך משברי בחירות או אירועים גדולים שכן זה הופך ציוצים גולמיים לתובנות חשובות.

יישום צעד אחר צעד

שלב 1: התקן את הספריות הדרושות

בלוק זה מתקין ומייבא את הספריות הנדרשות. זה משתמש פנדות לטעון ולטפל בנתונים TfidfVectorizer להפוך טקסט למספרים ו סקיט ללמוד להכשיר מודל.

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: טען מערך נתונים

  • כאן אנו טוענים את מערך נתונים של Sentiment140 מקובץ CSV דחוס אתה יכול להוריד אותו מ- Kaggle.
  • אנו שומרים רק על הקוטביות ועמודות הטקסט של הציוץ משנים את שמותיהם לצורך הבהירות ומדפיסים את השורות הראשונות כדי לבדוק את הנתונים.
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: פיצול מבחן הרכבת

  • קוד זה מפצל את עמודות ה-clean_text והקוטביות לקבוצות אימון ובדיקות באמצעות פיצול של 80/20.
  • random_state=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: בצע וקטוריזציה

  • קוד זה יוצר וקטורייזר TF IDF הממיר טקסט לתכונות מספריות באמצעות אוניגרמות וביגרמות מוגבלות ל-5000 תכונות.
  • זה מתאים והופך את נתוני האימון והופך את נתוני הבדיקה ולאחר מכן מדפיס את הצורות של מטריצות TF IDF המתקבלות.
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) 

תְפוּקָה:

צורת TF-IDF (רכבת): (1280000 5000)
צורת TF-IDF (בדיקה): (320000 5000)

שלב 7: הרכבת דגם ברנולי נאיבי בייס

  • כאן אנו מאמנים א ברנולי נאיב בייס מסווג על תכונות TF צה"ל מנתוני האימונים.
  • הוא חוזה סנטימנטים עבור נתוני הבדיקה ולאחר מכן מדפיס את הדיוק ודוח סיווג מפורט.
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: הרכבת דגם מכונה וקטור תמיכה (SVM).

  • קוד זה מאמן את א תמיכה ב-Vector Machine (SVM) עם מקסימום 1000 איטרציות על תכונות TF IDF.
  • הוא מנבא תוויות בדיקה ואז מדפיס את הדיוק ודוח סיווג מפורט המציג את ביצועי ה-SVM.
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 איטרציות על תכונות TF IDF.
  • הוא מנבא תוויות סנטימנט עבור נתוני הבדיקה ומדפיס את דוח הדיוק והסיווג המפורט להערכת המודל.
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: בצע תחזיות על ציוצים לדוגמה

  • קוד זה לוקח שלושה ציוצים לדוגמה והופך אותם לתכונות TF IDF באמצעות אותו וקטורייזר.
  • לאחר מכן, הוא חוזה את הסנטימנט שלהם באמצעות המודלים המיומנים של BernoulliNB SVM ושל רגרסיה לוגיסטית ומדפיס את התוצאות עבור כל מסווג.
  • כאשר 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=תְפוּקָה

אנו יכולים לראות שהמודלים שלנו עובדים מצוין ונותנים תחזיות זהות אפילו עם גישות שונות.

אתה יכול להוריד את קוד המקור מכאן- ניתוח סנטימנטים של טוויטר באמצעות Python

צור חידון