Nlp 我可以自动定义实体类型吗?

Nlp 我可以自动定义实体类型吗?,nlp,stanford-nlp,information-retrieval,text-analysis,information-extraction,Nlp,Stanford Nlp,Information Retrieval,Text Analysis,Information Extraction,我正在尝试开发软件,根据实体类型为实体名称获取合适的属性 例如,如果我有医生、护士、员工、客户、患者、讲师、捐赠者、用户、开发人员、设计师、司机、乘客和技术人员等实体,他们都有诸如姓名、性别、出生日期、电子邮件地址、家庭地址和电话号码等属性,因为他们都是人 第二个示例单词,如大学、学院、医院、酒店和超市,可以共享名称、地址和电话号码等属性,因为它们都可以是组织 是否有任何自然语言处理工具和软件可以帮助我实现我的目标。 我需要将实体类型标识为个人或发起人,然后根据实体类型附加适当的属性 我曾经研究

我正在尝试开发软件,根据实体类型为实体名称获取合适的属性

例如,如果我有医生、护士、员工、客户、患者、讲师、捐赠者、用户、开发人员、设计师、司机、乘客和技术人员等实体,他们都有诸如姓名、性别、出生日期、电子邮件地址、家庭地址和电话号码等属性,因为他们都是人

第二个示例单词,如大学、学院、医院、酒店和超市,可以共享名称、地址和电话号码等属性,因为它们都可以是组织

是否有任何自然语言处理工具和软件可以帮助我实现我的目标。 我需要将实体类型标识为个人或发起人,然后根据实体类型附加适当的属性

我曾经研究过名称实体识别(NER)工具,比如斯坦福名称实体识别器,它可以提取实体,比如人、地点、组织、金钱、时间、日期和百分比,但它并没有真正的用处

我可以通过建立我自己的地名录来做到这一点,但是我不愿意选择这个选项,除非我无法自动做到这一点


任何帮助、建议和想法都将不胜感激

如果我理解正确,您主要感兴趣的是知道给定的单词是否可以映射到人类、组织等的一般类别

您应该使用,它提供了一般英语词汇的完整层次结构。在用户界面中尝试一下,了解一下它是如何工作的

WordNet对单词之间的关系进行编码。其中一个关系是,一个花哨的词,意思是从一般到特殊的关系

一些例子:

  • Vehicle是船的缩写
  • 汽车是汽车的一个重要组成部分
  • “人”是工人的缩写,而“管道工”是工人的缩写
上下义是上义的逆关系:

  • 船是交通工具的下义词
  • Car是vehicle的下义词
  • 管道工是工人的下称,其本身就是人类的下称
这些关系是可传递的,因此在我的最后一个示例中,
管道工
也是
人类
的下义词。这就为您的问题提供了解决方案:任何以“人”为超级名称的单词都应该映射到“人”并具有“人”属性

有一些库可以从和以及许多其他语言访问WordNet。是将WordNet与NLTK Python模块一起使用的文档

判断一个词是否为“人”的下义词的一个简短示例
from nltk.corpus import wordnet as wn

human = wn.synset('person.n.01')
hyponyms_of_human = set(x for x in human.closure(lambda s:s.hyponyms())
fireman = wn.synsets('fireman')
salad = wn.synsets('salad')
print(any(x in hyponyms_of_human for x in fireman))  # outputs True
print(any(x in hyponyms_of_human for x in salad))  # outputs False