Nlp 依赖树到三元组

Nlp 依赖树到三元组,nlp,stanford-nlp,opennlp,Nlp,Stanford Nlp,Opennlp,我偶然发现了这篇文章,它描述了一种从依赖树中提取三元组的方法。这个结果正是我想要的。然而,本文只提到它是一种“后序树遍历”。是否有提取三元组的开源实现?例如,“2016年VRLA在洛杉矶举行。”应生成“VRLA,在洛杉矶举行”和“VRLA,在2016年举行”您可以尝试查看斯坦福OpenIE系统(CoreNLP的一部分): 这将产生(VRLA;在洛杉矶举行)和(VRLA;在2016年举行)的三倍。有关用法的更多文档,请参阅。更一般地说,有许多OpenIE系统可以让你看看。也许是最突出的,来自华盛顿

我偶然发现了这篇文章,它描述了一种从依赖树中提取三元组的方法。这个结果正是我想要的。然而,本文只提到它是一种“后序树遍历”。是否有提取三元组的开源实现?例如,“2016年VRLA在洛杉矶举行。”应生成“VRLA,在洛杉矶举行”和“VRLA,在2016年举行”

您可以尝试查看斯坦福OpenIE系统(CoreNLP的一部分):


这将产生(VRLA;在洛杉矶举行)和(VRLA;在2016年举行)的三倍。有关用法的更多文档,请参阅。更一般地说,有许多OpenIE系统可以让你看看。也许是最突出的,来自华盛顿大学。

OpenIE看起来非常有限。我试图做一件与OP非常相似的事情——基本上从文本中提取三元组,但也保留所有其他信息,如副词、形容词,并将它们作为修饰词添加到单词中。但是斯坦福大学的OpenIE真的不太好用。“我跑得很快。”没有任何关系。是否有其他商业许可信息提取器比斯坦福的更健壮?Ollie看起来很棒,但不是商业许可。我想你描述的是一个依赖解析。OpenIE将提取主语/动词/宾语三元组,并保留参数的依赖结构(从中可以提取副词和形容词)。上面的步骤类似于AMR或依赖项解析。顺便说一句,“我跑得快”不应该提取任何三元组:“快”是一个修饰符,而不是关系“跑”的对象。没错,我错了。我想它不可能返回一个双精度的I-ran,并在ran上加上fast修饰符。但没关系。另一个更复杂的例子。“我的同学对演示感兴趣。”返回很多三元组,使用OpenIE效果很好-但当我将其更改为“我的同学对演示不感兴趣。”只需添加“不感兴趣”,OpenIE就会崩溃,并且不会返回任何结果。所以我同意像AMR这样的东西,我想这就是我想要的。你知道有什么AMR for Java的开源库吗?刚刚意识到也许OpenIE不能解决负面关系?奇怪的是,我最后一次看到的是JAMR()——但它已经有一年的历史了,可能还有更好的。如果你能找到“AMR广泛覆盖CCG语义解析”一文的代码,我相信他们现在已经有了最先进的结果。
new Sentence("VRLA is held at Los Angeles in 2016").openieTriples();