python - 如何对推文进行分类(支持与不支持)以预测选举结果
问题描述
这个想法
我正在收集有关 11 月美国总统的三位主要候选人的推文。在收集了来自不同州的推文后,我会对这些推文进行评分,然后从各个方面分析每个候选人的关注者/支持者。
问题
我确定应该使用什么方法对推文进行分类以产生合理的结果。更准确地说,我不知道如何判断一条推文是支持还是反对特定候选人。
我试过的
我尝试使用一个名为textblob的库。给定一条推文,它返回一个 Sentiment(polarity,subjectivity) 形式的元组。Polarity 是一个浮点数,位于 [-1,1] 范围内,其中 1 表示肯定陈述,-1 表示否定陈述。此方法在应用时根本不会返回合理的结果。例如,给定一条类似“唐纳德特朗普太可怕了!我仍然支持他”的推文。,它返回-1.0 (负)的极性,这根本没有任何意义。
进一步的研究
我查找了更多示例并找到了这个。在该示例中,作者使用了一个情绪词汇(来自互联网),然后为每条推文分配了一种情绪。我打算仔细看看那篇文章并应用那里使用的方法。
我的问题
- 对这些推文进行分类的正确方法是什么?我应该考虑我在进一步研究部分中提到的那个吗?
- 如果一条推文包含两个名字怎么办?诸如“特朗普将击败拜登”之类的东西。使用特定方法如何对这样的事情进行评分?
解决方案
情感分析是 NLP(自然语言处理)的一个主题。您想知道的是 NLP,它是机器学习的许多有趣分支之一。
您权衡推文极性的方法是正确的。因为你有 3 个不同的候选人。标签,这是一个更有趣的问题。
我会为每条推文存储一个长度为 3 的情感数组,以便计算每个候选人的权重。例如; 类似“A 很糟糕。B 会做得更好!但 C 也可能?”这样的推文 可能会产生 [-1, 0.8, 0.4]。
为此,您需要一个语料库。语料库(即您的数据集)应该包含每条推文的推文和标签,以便您的机器学习模型可以从推文中学习。
有很多方法可以构建机器学习模型并使用您的数据集对其进行训练。那是数据科学的主题。数据科学家试图改进一些性能指标以改进他们的模型。
最简单的方法是,从推文中解析出所有单词,在带有标签的哈希映射中增加它们的值并进行规范化。现在您有了一个包含每个单词的情绪值的哈希图。
但实际上,这不会很好,因为异常值和缺乏数据集会影响您的结果。因此,您需要查看您的数据、问题并选择正确的机器学习模型。查看本文以了解有关构建情感分类器的更多信息。
推荐阅读
- firebase - 在哪里应用 Firebase onAuthStateChanged
- android - FirestoreRecyclerAdapter 不显示新添加的 FireStore 数据
- python - 根据python中的第二个列表从列表中添加项目
- python - Python:使用startswith,endswith和lenght从列表中获取所有出现
- python - 提供 CLI 作为二进制文件的 python3 存储库的 Bitbake 配方
- ios - iPhone Xs Max:添加到 View 的子层时,AVCaptureVideoPreviewLayer 占用的空间小于 iphone x 的安全区域 - 为什么?
- sql - 按查询分组和非按查询分组
- javascript - 获取“TypeError:schema.virtual(...).get 不是函数”
- python-3.x - 如何在 Windows 上安装 pydoc?
- ansible - 无论限制参数强制执行什么,我如何始终使用 ansible 运行一次本地任务?