Python 如何分析列表中的名词

Python 如何分析列表中的名词,python,wordnet,natural-language-processing,synset,Python,Wordnet,Natural Language Processing,Synset,我想知道是否有一种方法可以分析列表中的名词。例如,如果有一个算法可以区分不同的类别,那么就像名词是“动物”、“植物”、“自然”等类别的一部分一样。 我认为用Wordnet可以达到这个效果,但是,如果我没有错的话,Wordnet中的所有名词都被归类为“实体”。以下是我的WordNet分析脚本: lemmas = ['dog', 'cat', 'garden', 'ocean', 'death', 'joy'] hypernyms = [] for i in lemmas: dog = w

我想知道是否有一种方法可以分析列表中的名词。例如,如果有一个算法可以区分不同的类别,那么就像名词是“动物”、“植物”、“自然”等类别的一部分一样。 我认为用Wordnet可以达到这个效果,但是,如果我没有错的话,Wordnet中的所有名词都被归类为“实体”。以下是我的WordNet分析脚本:

lemmas = ['dog', 'cat', 'garden', 'ocean', 'death', 'joy']

hypernyms = []
for i in lemmas:
    dog = wn.synsets(i)[0]
    temp_list = []
    hypernyms_list = ([lemma.name() for synset in dog.root_hypernyms() for lemma in synset.lemmas()])
    temp_list.append(hypernyms_list)
    flat = list(set([item for sublist in temp_list for item in sublist]))
    hypernyms.append(flat)
hypernyms
结果是:['entity'],['entity'],['entity'],['entity'],['entity'],['entity'],['entity']

如果有什么可用的方法,有人能给我推荐一些检索名称所属类别的技术吗?
提前感谢。

我可以建议使用谷歌的NLPAPI。此API具有将词性识别为语法分析的一部分的功能。请参阅此处的文档-


另一个选择是斯坦福大学的NLPAPI。以下是参考文档-

nltk库如何?我会尝试任何东西,您有什么特别的功能吗?谢谢你的帮助!谢谢你的评论,这两个链接非常有趣,尽管它不是我想要的。我想我找到了实现我目标的方法!我计算了我的目标词和语法集中较高级别的词之间的路径_hypernyms()(WordNet),所有的名词都是“实体”,然后我提取第二、第三和第四高的hypernyms,并计算列表中的一些统计数据!