【问题标题】:what is the accurate Twitter sentiment analysis solution with Python?什么是使用 Python 的准确 Twitter 情绪分析解决方案?
【发布时间】: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


    【解决方案1】:

    TextBlob 根据输入的单词和块的极性来估计极性(此处的代码:https://github.com/sloria/TextBlob/blob/e6cd9791ae42e37b5a2132676f9ca69340e8d8c0/textblob/_text.py#L854)。这种方法很容易在诸如推文之类的嘈杂文本上混淆。这很难改进,因为它取决于底层语言资源的质量。

    我建议使用完全机器学习的模型,例如 Flair:

    import flair
    flair_sentiment = flair.models.TextClassifier.load('en-sentiment')
    s = flair.data.Sentence(sentence)
    flair_sentiment.predict(s)
    total_sentiment = s.labels
    

    在 FastText 中训练您的模型也应该很容易:https://github.com/charlesmalafosse/FastText-sentiment-analysis-for-tweets

    【讨论】:

    • 感谢您的回答。如何安装 FastText?对不起,我很新。你能给我更多的细节吗?
    • 如果你想在 Python 中使用它,只需 pip install fasttext。如果您想要独立的二进制文件或其他绑定,请按照其 GitHub 上的说明进行操作:github.com/facebookresearch/fastText
    • 我使用 Python,我在 Mac 和 Windows 计算机上尝试了 pip install fasttextpip install fastText,但我都得到了错误:``` 错误:fasttext nning setup.py 的构建轮失败clean for fasttext 无法构建 fasttextInstalling 收集的包:fasttext Running setup.py install for fasttext ... [?25lerror 错误:命令出错,退出状态为 1:```
    • 我不知道怎么了。也许是一个错误的 Python 版本?依赖冲突?尝试在 SO 上搜索错误或单独的问题。
    猜你喜欢
    • 2022-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-30
    • 2022-01-10
    • 2018-04-10
    • 2012-01-09
    • 2016-03-15
    相关资源
    最近更新 更多