首先介绍一下上下文:我正在尝试识别文档语料库中的街道地址,我们认为明显的解决方案是使用NLP(在本例中为Apache OpenNLP)工具来实现这一点,到目前为止,一切看起来都很棒,尽管我们仍然需要用大量文档训练模型,但这不是一个真正的问题。我们通过使用Datamade中的USAddress解析器添加额外的地址验证步骤来改进解决方案。我最大的问题是,如果地址旁边没有位置,地址就没有了,有时位置在文本中指定,我们会认为这种情况经常发生。
我的问题出现了:是否有人使用coreference来关联文本中的实体?或者更好的是,有没有办法在文本中注释任意单词并将它们标识为一个实体?
我一直在关注Apache OpenNLP文档但是......它非常薄,我认为它仍然需要一些工作。
答案 0 :(得分:1)
如果您想对此问题使用共识,可以查看此blog
但更简单的解决方案是使用句子检测器+ RegEx或位置NER +句子检测器(假设地址在一行中)
我认为可以使用正则表达式识别美国地址,一旦正则表达式匹配,您可以使用opennlp的句子检测器来打印整个地址行。
同样,您可以使用opennlp提供的NER模型查找位置并打印您想要的句子。
希望这有帮助!
修改强>
这Github Repo让我们变得简单。看看吧!
答案 1 :(得分:0)
OpenNLP不提供共参考分辨率模块。
您必须使用Stanford或Illinois或Berkeley系统来完成任务。它们可能无法开箱即用,您可能需要进行一些参数调整或监督培训才能达到合理的性能。
<强> @edit 强>
感谢@Alaye指出OpenNLP确实有一个coref模块,有关详细信息,请参阅他的回答。
由于
答案 2 :(得分:0)
好的,几个月后!这不是Coref我追求的......实际上我正在寻找的是关系提取(Information Extraction)。我使用MITIE(BinaryRelation)并且这样做,我使用Brat注释工具训练我自己的模型,我获得了0.81的F1分数。非常整洁......