我有以下两套。这个想法是能够根据我提供的一些元标签对新闻文章进行分类。例如,当我收到一篇有“法官”“5 年”的文章时,它应该被归类为犯罪故事
train = [
('Honda', 'cars'),
('Ford', 'cars'),
('Volkswagen', 'cars'),
('Courthouse', 'crime'),
('Police', 'crime'),
('Taurus', 'cars'),
('Chevrolet', 'cars'),
('Sonic', 'cars'),
('Judge', 'crime'),
('Jail', 'crime')
]
test = [
('Porsche', 'cars'),
('Toyota', 'cars'),
('Arrest', 'crime'),
('Prison', 'crime')
]
cl = NaiveBayesClassifier(train)
问题是当我运行这个时:
for a, b in test:
print a, cl.classify(a)
它将所有东西都归类为“汽车”
我确定我在这里错过了语义相似性比较。我尝试通过文本 blob 使用 WordNet。
我跑了
word = Word("Volkswagen")
for each in word.definitions:
print each
但它没有给我任何结果。
现在的问题是:
我如何让 WordNet 说大众汽车是一辆汽车,将其集成到分类器中,以便它意识到现代也是一辆汽车并正确分类?
最佳答案
WordNet® 是一个大型英语词汇数据库,汽车品牌名称不属于 WordNet 的一部分,因此您无法从 WordNet 知道大众汽车是汽车。为了将单词分类到类别中,您必须为每个训练和测试示例构建一个特征向量。
关于python - NLTK 分类和 WordNet 与 Text Blob,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21612779/