У меня есть CSV-файл из 20K твитов со всей информацией, такой как местоположение, имя пользователя и дата, которой я хочу назначить ярлык положительный / нейтральный / отрицательный для каждого твита по Python. Я использовал следующий Python код из библиотеки textblob для Tweets Sentiment Analysis .
import csv
from textblob import TextBlob
import sys
# Do some version specific stuff
if sys.version[0] == '3':
from importlib import reload
sntTweets = csv.writer(open("sentimentTweets.csv", "w", newline=''))
if sys.version[0] == '2':
reload(sys)
sys.setdefaultencoding("utf-8")
sntTweets = csv.writer(open("sentimentTweets.csv", "w"))
alltweets = csv.reader(open("Corona.csv", 'r'))
for row in alltweets:
blob = TextBlob(row[2])
print (blob.sentiment.polarity)
if blob.sentiment.polarity > 0:
sntTweets.writerow([row[0], row[1], row[2], row[3], blob.sentiment.polarity, "positive"])
elif blob.sentiment.polarity < 0:
sntTweets.writerow([row[0], row[1], row[2], row[3], blob.sentiment.polarity, "negative"])
elif blob.sentiment.polarity == 0.0:
sntTweets.writerow([row[0], row[1], row[2], row[3], blob.sentiment.polarity, "neutral"])
этот код отлично работает и создает файл sentimentTweets.csv. Мне нравится идея, что для каждого твита он дает мне две метки: число от -1 до 1, а также классифицирует твит как отрицательный / нейтральный / положительный.
, но он не является точным. например, для следующего твита, он присваивает позитив с номером: 0,285714285714285. "RT @eliyudin:" У меня есть Корона ... держите вирус! "- папа сейчас в отпуске где-то во Флориде"
но, как вы понимаете, чувство вышеуказанный твит должен быть отрицательным. Как я могу сделать это точно? и как я могу найти точность моего вывода?