2017-04-17 62 views
1

我正在尝试使用Apache OpenNLP识别文本中的日期实体。我创建的生成使用日期的范围在下面的格式的标记一点java程序:Apache OpenNLP名称实体发现者识别错误的单词

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

每个标签是在由OpenNLP定义的格式的句子。

我生成了约400k条目并训练了模型。训练结束后,我尝试通过命令行使用TokenNameFinder来验证一切是否正常,但对于每个单词,我键入查找器将其标识为已过期的实体。例如,当我输入:

today is 17/04/2017 

什么,我得到的是:

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

我想这可能是我没有提供任何字除了日期,所以我试图用一个随机字符串在标签之前和之后,但训练时间是永久的。

任何人都可以告诉我,如果这是我的训练数据集或我必须做的其他事情的问题?

+1

你能提供一小段训练数据吗?另外,复制命令行或您用于培训的代码。韩国社交协会。 – wcolen

回答

2

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

如果培训是永久性的,无论是太大还是很少有空行来标记文档的结尾。有关详细信息,请参阅Named Entity Recognition文档。

+0

+1将RegexNameFinder用于日期(由于它们“行为良好”的格式:)。另外,你可以看看使用https://github.com/HeidelTime/heideltime – Igor

相关问题