gpt4 book ai didi

python - 推文分类器特征选择 NLTK

转载 作者:太空狗 更新时间:2023-10-30 01:30:10 25 4
gpt4 key购买 nike

我目前正在尝试使用 NLTK 中的朴素贝叶斯分类器对推文进行分类。我正在对与特定股票代码相关的推文进行分类,使用“$”前缀(例如:$AAPL)。我的 Python 脚本一直基于这篇博文:Twitter Sentiment Analysis using Python and NLTK .到目前为止,我得到了相当不错的结果。但是,我觉得还有很多很大的改进空间。

在我的词特征选择方法中,我决定实现 tf-idf 算法来选择信息量最大的词。这样做之后,我觉得结果并不那么令人印象深刻。

然后我在以下博客中实现了该技术:Text Classification Sentiment Analysis Eliminate Low Information Features .结果与使用 tf-idf 算法获得的结果非常相似,这促使我更彻底地检查了我的分类器的“信息量最大的特征”列表。那时我意识到我有一个更大的问题:

推文和真实语言不使用相同的语法和措辞。在普通文本中,可以使用 tf-idf 或停用词来挑出许多冠词和动词。然而,在推文语料库中,一些信息量极小的词,例如“the”、“and”、“is”等,与对正确分类文本至关重要的词一样多。我不能只删除所有少于 3 个字母的单词,因为一些无信息的特征比这更大,而一些信息更小。

如果可以的话,我希望不必使用停用词,因为需要经常更新列表。但是,如果这是我唯一的选择,我想我将不得不接受它。

因此,总结一下我的问题,有谁知道如何真正在特定来源(即推文)中获取信息最丰富的词语?

编辑:我试图将其分为三类:积极的、消极的和中立的。另外,我想知道,对于 TF-IDF,我应该只剪掉分数低的词,还是剪掉一些分数高的词?在每种情况下,您会从特征选择过程中排除多少百分比的文本源词汇?

最佳答案

您链接到的博文描述了show_most_informative_features 方法,但是NaiveBayesClassifier还有一个 most_informative_features 方法,它返回特征而不只是打印它们。您可以简单地根据您的训练集设置一个截止点 - 就信息量而言,“the”、“and”和其他不重要的特征将位于列表的底部。

的确,这种方法可能会过度拟合(某些特征在您的训练集中比在您的测试集中重要得多),但对于任何根据您的训练集过滤特征的方法都是如此。

关于python - 推文分类器特征选择 NLTK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8778924/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com