我想知道是否有人可以通过代码片段来帮助我,该代码片段演示了如何使用特征频率方法而不是特征存在来训练朴素贝叶斯分类器.
我认为下面第6章link text中所示的是指使用Feature Presence(FP)创建一个特征集 –
def document_features(document):
document_words = set(document)
features = {}
for word in word_features:
features['contains(%s)' % word] = (word in document_words)
return features
请指教
解决方法:
在您发送的链接中,该功能是功能提取器,它只检查给定文档中是否存在这些单词.
1 all_words = nltk.Freqdist(w.lower() for w in movie_reviews.words())
2 word_features = all_words.keys()[:2000]
3 def document_features(document):
4 document_words = set(document)
5 features = {}
6 for word in word_features:
7 features['contains(%s)' % word] = (word in document_words)
8 return features
在第1行中,它创建了所有单词的列表.
在第2行中,最常用的是2000个单词.
3功能的定义
4转换文档列表(我认为它必须是一个列表)并将列表转换为一个集合.
5宣布一本字典
6迭代所有最常见的2000个单词
7创建一个字典,其中键是’contains(theword)’,值为true或false.如果文档中存在该单词,则为True,否则为false
8返回字典,显示文档是否包含最频繁的2000个单词.
这回答了你的问题了吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。