Stanford OpenNLP 仅提取与(已识别)组织相关的那些名称
Stanford OpenNLP extract only those names that are mentioned in relation to (identified) organisation
使用 Stanford NER 标注器,我能够按预期提取所有人员和组织。这是一个简短的片段:
ss=tagger.get_entities(text)
xorg=unique_list(ss.get('ORGANIZATION'))
xper=unique_list(ss.get('PERSON'))
out= (xorg,xperson)
#out is written to database
我的问题是如何只提取那些与指定组织有关系的人名?具体来说,我希望输出为三元组:PERSON、RELATION、ORGANISATION。
对于 "Enron Chairman Kenneth Lay" 或 "Kenneth Lay, Chairman, Enron" 我希望输出读作 (Kenneth Lay) (Chairman) (Enron)。
任何帮助都会有用。
Plain NER 就是找到(命名的)实体并正确标记它们。您的任务称为关系提取。您应该查看以下链接:
Stanford Relation Extractor 提取实体之间的关系:Live_In
、Located_In
、OrgBased_In
、Work_For
和 None
.
Stanford OpenIE 能够从文本中提取任意二元关系。因此,事先没有必要进行 NER。
也许这些工具之一可以帮助您完成任务。
使用 Stanford NER 标注器,我能够按预期提取所有人员和组织。这是一个简短的片段:
ss=tagger.get_entities(text)
xorg=unique_list(ss.get('ORGANIZATION'))
xper=unique_list(ss.get('PERSON'))
out= (xorg,xperson)
#out is written to database
我的问题是如何只提取那些与指定组织有关系的人名?具体来说,我希望输出为三元组:PERSON、RELATION、ORGANISATION。
对于 "Enron Chairman Kenneth Lay" 或 "Kenneth Lay, Chairman, Enron" 我希望输出读作 (Kenneth Lay) (Chairman) (Enron)。
任何帮助都会有用。
Plain NER 就是找到(命名的)实体并正确标记它们。您的任务称为关系提取。您应该查看以下链接:
Stanford Relation Extractor 提取实体之间的关系:Live_In
、Located_In
、OrgBased_In
、Work_For
和 None
.
Stanford OpenIE 能够从文本中提取任意二元关系。因此,事先没有必要进行 NER。
也许这些工具之一可以帮助您完成任务。