- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 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
)。但是,在我的测试中,没有来自 neg
或 pos
训练集分区的文档分类为 pos
,因此,虽然您可能是对的,但分类器似乎做得不太好 - 至少 pos
训练示例应该分类为 pos
- 您给出的示例并不能很好地衡量这一点。
关于Python nltk 朴素贝叶斯 似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20256806/
我是一名优秀的程序员,十分优秀!