Nlp 可以在WordNet数据集上获取类吗?

Nlp 可以在WordNet数据集上获取类吗?,nlp,dataset,nltk,wordnet,Nlp,Dataset,Nltk,Wordnet,我正在玩WordNet并尝试解决NLP任务 我想知道是否有任何方法可以获得一些大集合的单词列表,例如动物,如狗、猫、牛等,国家,电子产品等 我相信,应该可以通过利用超词来获得这个列表 附加问题:除了名词、形容词和动词之外,你知道还有什么其他方法可以把单词划分成大类吗?例如,类,如介词、连词等。是的,您只需检查该类别是否是给定单词的超词 from nltk.corpus import wordnet as wn def has_hypernym(word, category): # As

我正在玩WordNet并尝试解决NLP任务

我想知道是否有任何方法可以获得一些大集合的单词列表,例如动物,如狗、猫、牛等,国家,电子产品等

我相信,应该可以通过利用超词来获得这个列表


附加问题:除了名词、形容词和动词之外,你知道还有什么其他方法可以把单词划分成大类吗?例如,类,如介词、连词等。

是的,您只需检查该类别是否是给定单词的超词

from nltk.corpus import wordnet as wn

def has_hypernym(word, category):
    # Assume the category always uses the most popular sense
    cat_syn = wn.synsets(category)[0]

    # For the input, check all senses
    for syn in wn.synsets(word):
        for match in syn.lowest_common_hypernyms(cat_syn):
            if match == cat_syn:
                return True
    return False

has_hypernym('dog', 'animal') # => True
has_hypernym('bucket', 'animal') # => False
如果此处类别中较宽的词是最低的常用超义词,这意味着它是查询词的直接超义词,因此查询词位于类别中


关于你的奖金问题,我不知道你的意思。也许你应该看看NER或打开一个新问题。

是的,你只需检查类别是否是给定单词的超字母缩略词

from nltk.corpus import wordnet as wn

def has_hypernym(word, category):
    # Assume the category always uses the most popular sense
    cat_syn = wn.synsets(category)[0]

    # For the input, check all senses
    for syn in wn.synsets(word):
        for match in syn.lowest_common_hypernyms(cat_syn):
            if match == cat_syn:
                return True
    return False

has_hypernym('dog', 'animal') # => True
has_hypernym('bucket', 'animal') # => False
如果此处类别中较宽的词是最低的常用超义词,这意味着它是查询词的直接超义词,因此查询词位于类别中


关于你的奖金问题,我不知道你的意思。也许你应该看看NER或者打开一个新问题。

在polm23的帮助下,我找到了这个解决方案,它利用了单词之间的相似性,并防止在类名不明确时出现错误结果。 这个想法是WordNet可以用来比较一个列表单词和字符串动物,并计算相似性分数。从nltk.org网页:

Wu Palmer相似度:根据两个词义在分类学中的深度及其最不常见的子词义和最具体的祖先节点的深度,返回一个表示两个词义有多相似的分数

例如,如果单词_list=[“狗”、“车”、“火车”、“恐龙”、“伦敦”、“奶酪”、“氡”],相应的分数为:

0.875
0.4444444444444444
0.5
0.7
0.3333333333333333
0.3076923076923077
0.3076923076923077

这可以很容易地用来生成动物列表,通过设置适当的相似度值\u thr

在polm23的帮助下,我找到了这个解决方案,它利用了单词之间的相似度,并防止在类名不明确时出现错误结果。 这个想法是WordNet可以用来比较一个列表单词和字符串动物,并计算相似性分数。从nltk.org网页:

Wu Palmer相似度:根据两个词义在分类学中的深度及其最不常见的子词义和最具体的祖先节点的深度,返回一个表示两个词义有多相似的分数

例如,如果单词_list=[“狗”、“车”、“火车”、“恐龙”、“伦敦”、“奶酪”、“氡”],相应的分数为:

0.875
0.4444444444444444
0.5
0.7
0.3333333333333333
0.3076923076923077
0.3076923076923077

通过设置适当的相似度值,可以轻松地生成动物列表。\u thr

Hi,感谢您的解决方案。这与我想做的非常接近,但没有返回动物列表。然而,我相信它可以用来以某种方式创建一个动物列表,但我没有设法找到它。它帮助我找到了自己的解决方案,取而代之的是利用相似性。我投了更高的票,这是一个很好的答案。对不起,我需要更好地解释我自己。您的解决方案实际上非常适用于类animal,只需在has_hypernym上循环即可获得动物列表。然而,有些类可能比animal更模糊,因此二进制分类可能不准确。在这些情况下,我用其他类型的类做了一些测试。嗨,谢谢你的解决方案。这与我想做的非常接近,但没有返回动物列表。然而,我相信它可以用来以某种方式创建一个动物列表,但我没有设法找到它。它帮助我找到了自己的解决方案,取而代之的是利用相似性。我投了更高的票,这是一个很好的答案。对不起,我需要更好地解释我自己。您的解决方案实际上非常适用于类animal,只需在has_hypernym上循环即可获得动物列表。然而,有些类可能比animal类更加模糊,因此二进制分类可能不准确。在这些情况下,我用其他类型的类做了一些测试。