首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >StanfordNLP OpenIE:获得匹配演示的最佳三元组

StanfordNLP OpenIE:获得匹配演示的最佳三元组
EN

Stack Overflow用户
提问于 2018-08-05 15:01:53
回答 1查看 1.1K关注 0票数 2

我使用StanfordNLP OpenIE从更复杂的句子中提取更简单的句子,方法是使用OpenIE识别三元组。为了提高下游NLP答疑任务的性能,需要使用更简单的句子。

以下是我的默认属性:

属性=‘{“注释者”:“记号化,ssplit,pos,引理,ner,depparse,natlog,openie","outputFormat":"json"}’

这是我的试题:

text =“病人被置于左侧位置,并通过心电图追踪、脉搏血氧监测和直接观察持续监测。”

无论是使用docker服务器还是从下载的Java发行版中运行,我都会得到以下结果(这很有意义):

病人在侧方位置

病人连续监护连续心电图追踪

病人脉搏血氧监测

病人被置于左侧位置

病人被安置

病人被放置在左侧位置

病人经监测的连续心电图追踪

病人的位置

但是,如果我在http://corenlp.run/的演示页面上运行相同的测试语句,Brat可视化将返回一组更简洁的三胞胎:

病人连续监护连续心电图追踪

病人脉搏血氧监测

病人被置于左侧位置

我试验了这里列出的每个OpenIE注释选项:

https://nlp.stanford.edu/software/openie.html#Questions,但未能产生更简洁的结果。

有这个选项吗?如果没有,任何算法获得这一结果将不胜感激。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2018-08-08 04:54:34

当我尝试corenlp.run时,如果您悬停在每个实体上,就会得到相同的扩展的三元组:

但是,只要采用尽可能宽的subject+object+relation作用域,就可以将它们折叠成更少的三元组。有几种方法可以做到这一点:

  1. 最灵活的方法是:如果您以编程方式调用OpenIE注释器,关系三元组将保留其每个参数的sentence+token偏移量,您可以使用它来确定每个提取的关系的最宽的生成参数。
  2. 启发式地,您可以简单地忽略关系提取,它是其他提取的子集。
  3. QA_SRL输出格式实际上将为您执行选项(1),以符合惩罚“重复”关系提取的评估。

然而,在许多情况下,保持更多的提取也是无害的/可取的。每一个摘录都应该是“正确的”,因为它们是从源句中提取出来的--有些比另一些更具体。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51695442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档