【发布时间】:2020-08-03 18:00:51
【问题描述】:
我有一个包含 20K 条推文的 CSV 文件,其中包含所有信息,例如位置、用户名和日期,我想通过 Python 为每条推文分配一个正面/中性/负面标签。 我使用 textblob 库中的以下 Python 代码进行 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:‘äúI,äôll have a Corona...hold the virus!,Äù - 一位父亲现在在佛罗里达州的某个地方度假”
但正如你所理解的,上述推文的情绪应该是负面的。
我怎样才能使它准确?以及如何找到输出的准确性?
【问题讨论】:
标签: python machine-learning deep-learning nlp sentiment-analysis