gpt4 book ai didi

Python nltk 朴素贝叶斯 似乎不起作用

转载 作者:行者123 更新时间:2023-12-01 05:31:12 24 4
gpt4 key购买 nike

我正在使用 nltk 书 - Natural Language Processing with Python(2009) 并查看朴素贝叶斯分类器。特别是我的版本中第 228 页的示例 6-3。训练集是电影评论。

classifier = nltk.NaiveBayesClassifier.train(train_set)

我查看信息最丰富的功能 -

classifier.show_most_informative_features(5)

对于标记为“积极”的句子,我将“杰出”、“花木兰”和“精彩”列为排名最高的句子。

所以,我尝试以下 -

in1 = 'wonderfully mulan'
classifier.classify(document_features(in1.split()))

我得到了“否定”。现在这毫无意义了。这些应该是最重要的功能。

document_features函数直接取自书中 -

def document_features(document): 
document_words = set(document)
features = {}
for word in word_features:
features['contains(%s)' % word] = (word in document_words)
return features

最佳答案

请注意,该示例中的特征向量由“整个语料库中 2000 个最常见的单词”组成。因此,假设语料库是全面的,定期审查可能会包含相当多的这些单词。 (在最新的《Jackass》电影和《达拉斯买家具乐部》的真实评论中,我分别获得了 26/2000 和 28/2000 个功能。)

如果您向其提供仅包含“wonderically mulan”的评论,则生成的特征向量只有 2/2000 个特征设置为 True。基本上,你给它一个伪审查,几乎没有任何它知道或可以做任何事情的信息。对于该向量,很难判断它将预测什么。

特征向量应该健康地填充有朝正方向倾斜的向量,以便输出pos。也许看看信息最丰富的,比如 500 个特征,看看哪些特征是积极的,然后只用这些特征创建一个字符串?这可能会让您更接近 pos,但不一定。

train_set中的一些特征向量分类为pos。 (有趣的是,我发现其中一个有 417 个特征等于 True)。但是,在我的测试中,没有来自 negpos 训练集分区的文档分类为 pos,因此,虽然您可能是对的,但分类器似乎做得不太好 - 至少 pos 训练示例应该分类为 pos - 您给出的示例并不能很好地衡量这一点。

关于Python nltk 朴素贝叶斯 似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20256806/

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