[主意
我正在收集有关11月担任美国总统职位的三大候选人的推文。在收集了来自不同州的推文之后,我将对这些推文进行评分,然后在各个方面分析每个候选人的关注者/支持者。
问题
我确定应该使用哪种方法对推文进行分类,以产生合理的结果。更确切地说,我不知道如何判断一条推文是否支持或反对特定候选人。
我尝试了什么
我尝试使用名为textblob的库。给定一条推文,它将返回一个形式为Sentiment(极性,主观性)的元组。极性是一个浮动值,范围为[-1,1],其中1表示肯定陈述,-1表示否定陈述。应用此方法根本不会返回合理的结果。例如,给定类似“唐纳德·特朗普很恐怖!我仍然支持他。”的推文,它返回的极性为[[-1.0(负),根本没有任何意义。
进一步研究
我查找了更多示例并找到了this。在该示例中,作者使用了心情词汇表(来自互联网),随后为每个推文分配了心情。我打算仔细阅读该文章并应用其中使用的方法。我的问题
您权衡推文极性的方法是正确的。由于您又有3个不同的候选人。标签,这是一个更有趣的问题。
我将为每个推文存储一个长度为3的情感数组,以便为每个候选人计算权重。例如;这样的推文:“ A不好。B会做得更好!但是C也可能呢?”可能会产生[-1,0.8,0.4]。
为此,您需要corpus。数据集即您的数据集应包含每个推文的推文和标签,以便您的机器学习模型可以从这些推文中学习。
[有很多方法可以建立机器学习模型并将其与数据集一起训练。那是数据科学的话题。数据科学家试图改善一些性能指标,以改善其模型。
最简单的方法是,从tweet中解析出所有单词,在带有标签的哈希图中增加其值并进行规范化。现在,您有了一个包含每个单词的情感值的哈希图。
但是实际上,这不能很好地解决,因为离群值和缺乏数据集会影响您的结果。因此,您需要查看数据,问题并选择正确的机器学习模型。查看此article,以了解有关构建情感分类器的更多信息。