Apache OpenNLP Name Entity Finder 识别错误的单词

Apache OpenNLP Name Entity Finder identifing wrong words

我正在尝试使用 Apache OpenNLP 识别文本中的日期实体。我创建了一个 java 小程序,它使用以下格式的日期范围生成标签:

<START:date> {dd/MM/yyyy} <END> .

每个标签都是一个句子,采用 OpenNLP 定义的格式。

我生成了大约 40 万个条目并训练了模型。培训结束后,我尝试通过命令行使用 TokenNameFinder 来验证是否一切正常,但对于每个单词,我都输入了 finder 将其识别为日期实体。例如,当我输入:

today is 17/04/2017

我得到的是:

<START:date> today <END> <START:date> is <END> <START:date> 17/04/2017 <END>  

我认为可能是我除了日期之外没有提供任何词,所以我尝试在标签前后使用随机字符串,但训练时间一直在持续。

谁能告诉我这是我的训练数据集有问题还是我必须做的其他事情?

要训练机器学习 Name Finder 模型,您需要一个尽可能接近运行时数据的训练语料库。如果你的日期表现良好并且你不需要机器学习,你可以尝试基于正则表达式的 RegexNameFinder.

如果训练持续很长时间,要么是它太大了,要么是你没有多少空行来标记文档的结尾。有关详细信息,请参阅 Named Entity Recognition 文档。