根据文档中的指南,我正在尝试测试一些数据上的培训OpenNLP的名称查找器。但是,我遇到了错误:Unsupported language: en
,这似乎没有任何意义。
我运行的命令是:opennlp TokenNameFinderTrainer.conll03 -model model.bin -lang en -types per,loc,org,misc -data train.txt -encoding UTF-8
我从https://opennlp.apache.org/download.html下载了OpenNLP 1.9.0。 OPENNLP_HOME
环境变量似乎已正确设置,并且基本文件夹中的lang
文件夹包含一个en
文件夹。
编辑:这似乎与CoNLL2003格式有关。如果我尝试直接运行培训师而不指定.conll2003
,那么它可以工作。但是,我的输入数据为CoNLL 2003格式。运行TokenNameFinderConverter
会给我同样的错误。即使在官方示例https://github.com/apache/opennlp/blob/master/opennlp-tools/src/test/resources/opennlp/tools/formats/conll2003-en.sample上尝试也行不通。
答案 0 :(得分:0)
显然,在1.5.3
之后的某个版本中,用于CoNLL-2003相关命令,OpenNLP将语言代码从两个字符更改为三个字符,即一个字符应该传递{ {1}},而不是eng
。但是文档从未对此进行更新。 (文档中有许多过时的部分。)我想弄了两个小时才设法弄清楚!我进行了公关以修复文档。