我有以下两套。这个想法是能够根据我提供的一些元标签对新闻文章进行分类。例如,当我收到一篇有“法官”“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/

10-12 20:58