2016-03-22 43 views
2

我遇到这篇文章http://swrc.kaist.ac.kr/paper/171.pdf,它描述了从依赖树中提取三元组的方法。这个结果正是我想要的。然而这篇论文只提到它是一个“后期树遍历”。是否有任何开源实现提取三元组?例如,“VRLA于2016年在洛杉矶举行。”应当生成和“VRLA,在洛杉矶举行的”“VRLA,举行,在2016年”依赖树到三元组

回答

1

你可以试着考虑看看斯坦福OpenIE系统(CoreNLP的一部分):

new Sentence("VRLA is held at Los Angeles in 2016").openieTriples(); 

这应该为(VRLA;在洛杉矶举行)和(VRLA;在2016年举行)产生三倍。有关使用的更多文档可以在OpenIE Annotator page上找到。更一般地说,有许多OpenIE系统可供您查看。 Ollie也许是华盛顿大学最突出的。

+0

OpenIE似乎非常有限。我试图做与OP非常相似的事情 - 基本上从文本中提取三倍,但也保留所有其他信息,如副词,形容词,并将它们作为修饰词添加到单词中。但斯坦福大学的OpenIE确实效果不佳。 “我跑得快。”没有任何关系。还有其他商业可用的信息提取器是否比斯坦福更强大? Ollie看起来不错 - 但没有商业许可证。 – abagshaw

+1

我认为你所描述的是一个依赖分析。 OpenIE将提取主语/动词/宾语三元组,并保留参数的依赖关系结构(从中可以提取副词和形容词)。上述步骤与AMR或依赖关系解析类似。顺便说一句,“我跑得快”不应该提取任何三元组:“快”是一个修饰词,而不是关系“跑”的对象。 –

+0

是的,我的错。我想它无法在修改器快速运行的情况下返回双重本垒打。但没关系。另一个更复杂的例子。 “我的同学们对演讲很感兴趣。”返回大量的三元组,并且与OpenIE协同工作 - 但是当我将其更改为“我的同学对演示文稿不感兴趣”时。只是简单地添加 - OpenIE分崩离析,不会返回任何内容。所以我同意AMR这样的东西,我认为是我正在寻找的东西。你知道用于Java的AMR的任何开源库吗? – abagshaw