Nlp 它能分辨出一个名词是否指一个人吗?

Nlp 它能分辨出一个名词是否指一个人吗?,nlp,stanford-nlp,pycorenlp,Nlp,Stanford Nlp,Pycorenlp,CoreNLP能否确定一个普通名词(相对于专有名词或专有名称)是否指的是一个开箱即用的人?或者,如果我需要为这项任务培训一个模型,我该怎么做 首先,我不是在寻找共指消解,而是它的构建块。定义上的共指依赖于上下文,而我试图评估一个孤立的词是“人”还是“人”的子集。例如: is_human('effort') # False is_human('dog') # False is_human('engineer') # True 我天真地尝试使用Gensim和spaCy预先训练好的词向量,但未能将“

CoreNLP能否确定一个普通名词(相对于专有名词或专有名称)是否指的是一个开箱即用的人?或者,如果我需要为这项任务培训一个模型,我该怎么做

首先,我不是在寻找共指消解,而是它的构建块。定义上的共指依赖于上下文,而我试图评估一个孤立的词是“人”还是“人”的子集。例如:

is_human('effort') # False
is_human('dog') # False
is_human('engineer') # True
我天真地尝试使用Gensim和spaCy预先训练好的词向量,但未能将“工程师”排在其他两个词之上

import gensim.downloader as api
word_vectors = api.load("glove-wiki-gigaword-100") 
for word in ('effort', 'dog', 'engineer'):
    print(word, word_vectors.similarity(word, 'person'))

# effort 0.42303842
# dog 0.46886832
# engineer 0.32456854
我发现下面的列表很有前途

dcoref.demonym                   // The path for a file that includes a list of demonyms 
dcoref.animate                   // The list of animate/inanimate mentions (Ji and Lin, 2009)
dcoref.inanimate 
dcoref.male                      // The list of male/neutral/female mentions (Bergsma and Lin, 2006) 
dcoref.neutral                   // Neutral means a mention that is usually referred by 'it'
dcoref.female 
dcoref.plural                    // The list of plural/singular mentions (Bergsma and Lin, 2006)
dcoref.singular
这些对我的任务有用吗?如果是,我将如何从网络访问它们?谢谢。

我建议试试看:

  • 如果WordNet和
  • 如果您想要的术语是
    person.n.01
    的下位词
  • 你必须把它扩展一点,以涵盖多种感官,但要点是:

    from nltk.corpus import wordnet as wn
    
    # True
    wn.synset('person.n.01') in wn.synset('engineer.n.01').lowest_common_hypernyms(wn.synset('person.n.01'))
    
    # False
    wn.synset('person.n.01') in wn.synset('dog.n.01').lowest_common_hypernyms(wn.synset('person.n.01'))
    
    

    请参阅NLTK文档中的
    最低\u通用\u超词

    ,这正是我需要的。非常感谢。