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

使用OpenNLP链接多个名称查找器实体,nlp,opennlp,Nlp,Opennlp,首先是一点背景:我试图在一个文档库中识别街道地址,我们决定,显而易见的解决方案是使用NLP(本例中为ApacheOpenNLP)工具来实现这一点,到目前为止,一切看起来都很好,尽管我们仍然需要使用大量文档来训练模型,但这不是一个真正的问题。我们通过使用DataMake中的解析器,为地址验证添加了额外的步骤,从而改进了解决方案。我最大的问题是,如果地址旁边没有一个位置,地址本身就什么都不是,有时位置是在文本中指定的,我们假设这种情况经常发生 我的问题来了:是否有某种方法可以使用共指来关联文本中的实

首先是一点背景:我试图在一个文档库中识别街道地址,我们决定,显而易见的解决方案是使用NLP(本例中为ApacheOpenNLP)工具来实现这一点,到目前为止,一切看起来都很好,尽管我们仍然需要使用大量文档来训练模型,但这不是一个真正的问题。我们通过使用DataMake中的解析器,为地址验证添加了额外的步骤,从而改进了解决方案。我最大的问题是,如果地址旁边没有一个位置,地址本身就什么都不是,有时位置是在文本中指定的,我们假设这种情况经常发生

我的问题来了:是否有某种方法可以使用共指来关联文本中的实体?或者更好的是,有没有一种方法可以注释文本中的任意单词,并将它们标识为一个实体

我一直在看ApacheOpenNLP文档,但是…它非常薄,我认为它仍然需要一些工作

OpenNLP不提供共指消解模块。
您必须使用或或系统来完成任务。它们可能无法开箱即用,您可能需要进行一些参数调整或监督培训,以实现合理的性能

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


谢谢

如果您想使用协同引用解决此问题,您可以查看此

但更简单的解决方案是使用句子检测器+正则表达式或位置检测器+句子检测器(假定地址在一行中)

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

同样,您可以使用opennlp提供的NER模型查找位置并打印所需的句子

希望这有帮助

编辑


这对我们来说很简单。看看

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

你说的“位置”是什么意思?一个地址和一个相关位置的例子是什么?让我们举一个例子:“位于洛杉矶发展密集的文娱中心次级市场的西坦普尔街909号,社区总共526个单元。”在这种情况下,洛杉矶将是一个位置。所以“洛杉矶”是一个“位置”?在这种情况下是的。我想说的是,我们必须区分不同类型的实体,我想在它们之间建立一种关系。一个实体是地址,另一个是位置,我需要的是它们之间的关系。我很好奇我是否能用OpenNLP做到这一点。OpenNLP有共同引用解析,参考这一点,我们已经可以识别街道地址,我们还可以识别位置(通过Clavin)。问题是,我必须将一个地址与一个位置相链接。一个简单的解决方案是混合和匹配地址和位置,并对它们进行地理编码,但这可能会产生误报。街道地址是否有pincode?你可以从右边得到位置??如果位置和地址在同一句话中,你可以做一些简单的if条件。但是试着相互参照,告诉我们它是否有效。谢谢,我会先找个位置。协同引用似乎有点问题,尤其是因为OpenNLP手册中没有相关文档。@TudorMarghidanu查看我在编辑中提到的repo。希望有帮助!