我正在尝试使用Apache OpenNLP来识别文本中的日期实体。我创建了一个小的Java程序,该程序使用以下格式的日期范围生成标签:
<START:date> {dd/MM/yyyy} <END> .
每个标签都是OpenNLP定义的格式的句子。
我生成了大约40万个条目并训练了模型。培训结束后,我尝试通过命令行使用TokenNameFinder来验证一切是否正常,但是对于每个单词,我键入了将其标识为带日期的实体的查找器。例如,当我键入:
today is 17/04/2017
我得到的是:
<START:date> today <END> <START:date> is <END> <START:date> 17/04/2017 <END>
我以为可能除了日期以外,我没有提供其他任何单词,所以我尝试在标签前后使用随机字符串,但是训练时间却花了很多时间。
谁能告诉我我的训练数据集是否有问题或我必须做的其他事情?
最佳答案
要训练机器学习的名称查找器模型,您需要一个训练语料库,该语料库尽可能接近运行时数据。如果您的约会习惯良好,并且不需要机器学习,则可以尝试基于RegexNameFinder的正则表达式。
如果培训将永远进行,则可能是培训太大,或者您几乎没有空行来标记文档的结尾。有关详细信息,请参见Named Entity Recognition文档。
关于java - Apache OpenNLP名称实体查找器识别错误的单词,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43455916/