使用 OpenNLP 链接多个名称查找器实体

Linking multiple name finder entities using OpenNLP

首先介绍一下上下文:我正在尝试识别文档语料库中的街道地址,我们决定对此的明显解决方案是使用 NLP(在本例中为 Apache OpenNLP)工具来实现这个和到目前为止一切看起来都很好,虽然我们仍然需要用大量文档来训练模型,但这并不是真正的问题。我们通过使用 Datamade 的 USAddress 解析器添加额外的地址验证步骤来改进解决方案。我最大的问题是地址本身没有位置就什么都不是,有时在文本中指定了位置,我们会假设这种情况经常发生。

我的问题来了:有什么办法可以利用指代来关联文本中的实体吗?或者更好的是,有没有一种方法可以注释文本中的任意单词并将它们识别为一个实体?

我一直在查看 Apache OpenNLP 文档,但是...它非常薄,我认为它仍然需要一些工作。

OpenNLP 不提供共指解析模块。
您必须使用任一 Stanford or Illinois or Berkeley 系统来完成任务。它们可能无法开箱即用,您可能需要进行一些参数调整或监督训练才能达到合理的性能。

@edit
感谢@Alaye 指出 OpenNLP 确实有一个 coref 模块,有关更多详细信息,请参阅他的回答。

谢谢

如果你想对这个问题使用共指,你可以看看这个blog

但更简单的解决方案是使用句子检测器+ RegEx 或位置 NER+ 句子检测器(假设地址在一行中)

我认为美国地址可以使用正则表达式来识别,一旦正则表达式匹配,您可以使用 opennlp 的句子检测器来打印整个地址行。

同样你可以使用opennlp提供的NER模型来查找位置并打印你想要的句子。

希望对您有所帮助!

编辑

Github Repo 让我们变得简单。看看吧!

好的,几个月后!这不是 Coref 我所追求的......我实际上正在寻找的是关系提取(信息提取)。我使用了 MITIE (BinaryRelation) 并且成功了,我使用 Brat 注释工具训练了我自己的模型并且我得到了 0.81 的 F1 分数。很整洁...