1

假设存在,找出连接解析树中两个名词的动词的好策略是什么?例如,在这句话中:

男子回家前给妻子打了电话。

给定输入“男人”和“妻子”,我想得到动词“叫”。OpenNLP 给了我一个解析树:

(TOP(S(NP(DT))(NN男))(VP(VBD叫)(NP(PRP$他)(NN老婆))(PP(IN前)(S(VP(VBG来))(ADVP( RB回来))))))(。家。)))

所以我想这至少部分是一个树导航问题。也许首先隔离所有动词,然后通过递归进行测试,直到最终找到两个名词?

或者尝试找到从一个名词到另一个名词的最短路径并在途中保存动词?

我的问题是我对解析树结构的了解不够,无法制定一个好的策略。或者我应该使用其他(Java)工具吗?

谢谢!

4

1 回答 1

1

您要完成的任务非常复杂。我在这里看到的最大问题是需要“连接两个名词的动词”。这是非常通用的,您可能已经看到解析树可以假设非常不同(甚至是“错误”)的结构。

如果您想要更通用的方法来解决问题,我建议您寻找关系提取。该技术旨在从句子中提取二元(或 n 元)关系。我建议的示例工具是:

以后者为例,您可以从主体-动作-对象形式的句子关系中提取。关于您的问题,如果两个名词分别是短语的主语和宾语,这将起作用。

相反,如果您真的想获得连接两个名称的动词,我认为树的导航是最直接的解决方案,但正如我之前指出的那样,鉴于“不完美”和非标准结构,实现起来确实很困难自然语言短语。

于 2014-03-31T13:44:47.803 回答