如何在OpenNLP中实现一个好的代词解析器算法?

我使用OpenNLP的辅助包解决方案。 所以基本上我有这个输入字符串:

“哈利写信给他的兄弟,他告诉他,他在伦敦遇见了玛丽,他们一起吃午餐。

提及的输出集合如下:

哈利,他,他,他,他,他们

我需要用它的专有名词来代替代词。 我为此写了一个简单的算法,将每个提到的元素添加到列表中,然后遍历列表,同时用第一个提及(“Harry”)替换每个代词。 我的问题是“他的”将是“哈利”而不是“哈利的”。

关于代词解析器的示例/教程并不多。 我已经浏览了OpenNLP API。 要么我看错方向,要么在API中有一个,但我不知道如何使用它。 有人能指导我在正确的方向代词解决或举例说明如何做到这一点? 也许有一种我不知道的更好的方式。


你想要的就是所谓的“共同参考分辨率”。

Linker _linker = null;

try {
   _linker = new DefaultLinker("lib/opennlp/coref", LinkerMode.TEST);

} catch (final IOException ioe) {
   ioe.printStackTrace();
}

这是一个带有代码示例的完美教程:

http://blog.dpdearing.com/2012/11/making-coreference-resolution-with-opennlp-1-5-0-your-bitch/

斯坦福大学CoreNLP也为它提供了一个很好的模型。

http://nlp.stanford.edu/software/dcoref.shtml

链接地址: http://www.djcxy.com/p/73473.html

上一篇: How to implement a good Pronoun Resolver algorithm in OpenNLP?

下一篇: Convert words between verb/noun/adjective forms