推文的 TF-IDF 截止百分比

机器算法验证 机器学习 分类 Python 朴素贝叶斯 自然语言
2022-04-04 20:33:58

我目前正在尝试使用 Python 中的 NLTK 库分析推文并将它们分类为正面、负面或中性。

我可以看到我正在采用的方法有潜力,但是,我的特征选择过程遇到了麻烦。

事实上,来自 Twitter 的输入并不完全是传统的,因此使用 TF-IDF 删除 Tweets 中不感兴趣的单词的例子并不多。

我的算法实现工作正常,但我现在不知道我应该根据 TF-IDF 分数从我的特征列表中删除多少单词:25%?15%?30%?

此外,这是主要问题,因为 Tweets 与普通英语不同,许多无趣的词,例如“the”和“is”,不会经常出现,因此 TF-IDF 算法会给予高分.

现在,我知道我可以使用停止列表,但如果我可以避免它,我会很高兴(我有很多理由使用停止列表)。

那么,总而言之,有没有什么办法可以规避无趣单词在 TF-IDF 中获得高分的问题?

编辑:我使用的是朴素贝叶斯分类器。

2个回答

可能最有效(但也很耗时)的方法是手工挑选一组你知道是积极的、消极的和中性的例子。然后,您可以在这些示例上训练分类器(朴素贝叶斯、SVM、Fisher Discriminant 或其他)(因为您使用 3 个类,您将需要进行多类分类,尽管开始它可能会将您的问题简化为只看在 +ve/-ve 并稍后介绍中性类)。您应该确保您有足够的示例,以便您可以有效地执行分类器超参数的k 折交叉验证您拥有的训练示例越多,您的阈值估计就越好。

如果没有任何训练示例,您将不得不求助于不太可能稳健的临时规则。

对于培训,如果可能的话,寻找发推文大多是正面的用户(如名人、政治家等)和其他一些发推文大多是负面的用户(现在没有例子),并相应地使用他们的推文。训练数据会出现一些错误计算,但您可以使用这种技术获得大量数据。