我正在使用OpenNLP(1.7.2)令牌名称查找器来解析非结构化数据。模型建立在默认参数上,即迭代100和截止5。 当我尝试这样的cmd:
./ opennlp TokenNameFinderTrainer -cutoff 8 -lang en -encoding utf8 -data es_corpus_train_persons.txt -model es_ner_person.bin
然后错了:
遇到无法识别的参数:[ - cutoff,8],但
所以我的问题是,如何修改参数(截止,迭代)。
提前致谢!
答案 0 :(得分:0)
TrainingParameters tp = new TrainingParameters();
tp.put(TrainingParameters.CUTOFF_PARAM, "1");
tp.put(TrainingParameters.ITERATIONS_PARAM, "100");
TokenNameFinderFactory tnff = new TokenNameFinderFactory();
model = NameFinderME.train(language, modelName, sampleStream, tp, tnff);
应该这样做!
答案 1 :(得分:0)
如果您使用命令行,您可以创建一个属性文件,如下所示:https://github.com/apache/opennlp/tree/master/opennlp-tools/lang/ml
.bin/opennlp TokenNameFinderTrainer -params PerceptronTrainerParams.txt -lang en -encoding utf8 -data es_corpus_train_persons.txt -model es_ner_person.bin
答案 2 :(得分:0)
默认参数定义为:
`
public static TrainingParameters defaultParams() {
TrainingParameters mlParams = new TrainingParameters();
mlParams.put(TrainingParameters.ALGORITHM_PARAM, "MAXENT");
mlParams.put(TrainingParameters.TRAINER_TYPE_PARAM, EventTrainer.EVENT_VALUE);
mlParams.put(TrainingParameters.ITERATIONS_PARAM, 100);
mlParams.put(TrainingParameters.CUTOFF_PARAM, 5);
return mlParams;
}
您可以按照Nuwanda描述的方法进行调整