从依赖树中提取关系

时间:2016-03-23 20:13:42

标签: java nlp stanford-nlp information-extraction

我试图从句子中提取关系(三元组),并试图手动筛选来自斯坦福大学CoreNLP的依赖解析,并以这种方式拉出主语 - 动词 - 对象关系。

问题是你超越一个简单的句子,例如"我很高兴",同位语短语,ccompxcomp复合动词和conj连词,发现关系变得更加复杂。

示例:"我的老师,鲍勃是一位好老师" (我的老师,是,伟大的老师)& (我的老师,是,鲍勃)

"我的朋友和我不喜欢跑步或跳跃。" (我的朋友,不喜欢,跑步)& (我的朋友,不喜欢,跳跃)& (我,不喜欢,跑步)& (我,不喜欢,跳跃)

斯坦福大学的OpenIE在这些场景中确实不能很好地工作(它很好地解决了第一个例子,但是没有得到第二个例子)。

我的问题是:是否有任何可以执行此关系提取的Java开源库 - 直接来自文本或依赖解析?

我确实来过:https://github.com/knowitall/ollie看起来非常有前景 - 但Ollie严禁用于商业用途,我需要能够在未来将该库用于商业用途。

另一个想法:我对机器学习技术并不是很熟悉 - 但我在想,我能以某种方式将句子的依赖解析传递给我想要的ML模型训练算法输出如上例所示,并训练一个可以为我做这种关系提取的模型?

1 个答案:

答案 0 :(得分:0)

鉴于您已经拥有(或可以构建)依赖树并且需要在商业环境中使用它,我认为最简单的方法是手动编码特殊情况规则以创建三元组,例如,用于处理像你的例子,看看这对你来说是否足够好[1]。

除了“斯坦福OpenIE”之外,还有更多网络规模的开放式关系提取开放式信息提取(虽然我更喜欢更精确的术语 [谓词]三元组提取)研究[2,3],最着名的是ReVerb [4]本身(来自与Ollie,BTW相同的KnowItAll根源),但这也是严格非商业性的......

然而,引用类似问题的类似回复:“”请注意“要求我们推荐或找到工具,库或最喜欢的场外资源的问题是Stack Overflow的主题,因为它们往往会吸引固执己见的答案和垃圾邮件相反,描述问题以及到目前为止已经完成的工作来解决它。“要求图书馆这样做是在这里偏离主题。”“”

[1] http://www.nist.gov/tac/publications/2013/participant.papers/UWashington.TAC2013.proceedings.pdf

[2] http://www.cs.washington.edu/research/projects/aiweb/media/papers/etzioni-ijcai2011.pdf

[3] http://nlp.stanford.edu/pubs/2015angeli-openie.pdf

[4] http://reverb.cs.washington.edu/

相关问题