自定义NER模型 - 失败

时间:2016-09-21 18:23:47

标签: nlp opennlp named-entity-recognition

我是NLP场景的新手,正在使用OpenNLP 1.5开始使用。

我仔细阅读了文档中给出的一些命令: https://opennlp.apache.org/documentation/manual/opennlp.html
(我正在使用命令行界面开始)

我使用已有的样本模型来试验不同的工具,最后决定创建一个自定义NER模型

我按照上述链接中的说明进行操作。

将给定的示例句子复制到.train文件中(我只是创建了一个带有该扩展名的新文件并将内容粘贴到其中):

<START:person> Pierre Vinken <END> , 61 years old , will join the board as a nonexecutive director Nov. 29 .
Mr . <START:person> Vinken <END> is chairman of Elsevier N.V. , the Dutch publishing group .

我使用以下命令制作模型:

bin/opennlp TokenNameFinderTrainer -model en-ner-person2.bin -lang en -data en-ner-person2.train -encoding UTF-8

问题在于,即使模型正在创建,它似乎也无法正常工作。通过使用新创建的模型进行测试: bin/opennlp TokenNameFinder en-ner-person2.bin

但是当我输入Pierre Vinken时,它并没有被识别为一个人。我还尝试从具有完全相同内容的.txt文件创建模型,但这也失败了。

我做错了什么?

TIA。

1 个答案:

答案 0 :(得分:4)

简而言之 - 您不能期望统计模型只能从两个句子中学习。再加上14,998,你很高兴。

  

训练数据应包含至少15000个句子以创建表现良好的模型

CRF(条件随机场)是这样的统计模型,他们确实需要很多数据来计算游戏规则,他们不是简单地“记住”他们在训练阶段看到的内容因此,即使你从试验集中要求某些东西 - 他们也无法提供答案。