gpt4 book ai didi

java - 参数个数必须始终为偶数 : opennlp

转载 作者:行者123 更新时间:2023-11-30 10:44:29 24 4
gpt4 key购买 nike

我一直在尝试使用命令行界面来训练我的模型,如下所示:

opennlp TokenNameFinderTrainer -model en-ner-pincode.bin -iterations 500 \ -lang en -data en-ner-pincode.train -encoding UTF-8

控制台输出为:

Number of parameters must be always be even
Usage: opennlp TokenNameFinderTrainer[.evalita|.ad|.conll03|.bionlp2004|.conll02|.muc6|.ontonotes|.brat] [-factory factoryName] [-resources resourcesDir] [-type modelType] [-featuregen featuregenFile] [-nameTypes types] [-sequenceCodec codec] [-params paramsFile] -lang language -model modelFile -data sampleData [-encoding charsetName]

如果我不包括迭代次数,它工作正常。有人知道这背后的原因吗?

谢谢!

最佳答案

其实问题是

    -params paramsFile
training parameters file.
-iterations num
number of training iterations, ignored if -params is used.
-cutoff num
minimal number of times a feature must be seen, ignored if -params is used.

如果有人使用params,那么iterationscutoff 将被忽略。因此,对于您的情况,会显示此信息消息。

资源链接:

  1. Tokenizer Training : Training Tool

更新:

所以,请使用 ChunkerTrainerME 而不是 TokenNameFinderTrainer

你的命令应该如下所示

opennlp ChunkerTrainerME -model en-ner-pincode.bin -iterations 500 \ -lang en -data en-ner-pincode.train -encoding UTF-8

UPDATE2:转换数据

我将使用西类牙语数据作为引用,但它与荷兰语的操作相同。您只需要记住将“-lang es”更改为“-lang nl”并使用正确的培训文件即可。所以要将信息转换为 OpenNLP 格式:

$ opennlp TokenNameFinderConverter conll02 -data esp.train -lang es -types per > es_corpus_train_persons.txt

您也可以选择转换训练测试样本。

$ opennlp TokenNameFinderConverter conll02 -data esp.testa -lang es -types per > corpus_testa.txt
$ opennlp TokenNameFinderConverter conll02 -data esp.testb -lang es -types per > corpus_testb.txt

使用西类牙语数据进行训练

为名称查找器训练模型:

\bin\opennlp TokenNameFinderTrainer -lang es -encoding u
tf8 -iterations 500 -data es_corpus_train_persons.txt -model es_ner_person.bin

UPDATE3:转换数据(可选)

将信息转换为 OpenNLP 格式:

$ opennlp TokenNameFinderConverter conll03 -lang en -types per -data eng.train > corpus_train.txt

您也可以选择转换训练测试样本。

$ opennlp TokenNameFinderConverter conll03 -lang en -types per -data eng.testa > corpus_testa.txt
$ opennlp TokenNameFinderConverter conll03 -lang en -types per -data eng.testb > corpus_testb.txt

用英文数据训练

您可以通过这种方式为名称查找器训练模型:

$ opennlp TokenNameFinderTrainer.conll03 -model en_ner_person.bin -iterations 500 \
-lang en -types per -data eng.train -encoding utf8

如果您已经转换了数据,那么您可以通过这种方式训练名称查找器的模型:

$ opennlp TokenNameFinderTrainer -model en_ner_person.bin -iterations 500 \
-lang en -data corpus_train.txt -encoding utf8

关于java - 参数个数必须始终为偶数 : opennlp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37383509/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com