Как изменить параметры (обрезку, итерацию) модели обучения Opennlp
Я использую OpenNLP(1.7.2) Token Name finder для анализа неструктурированных данных. Модель строится на параметрах по умолчанию, то есть итерации 100 и обрезании 5. Когда я пытаюсь сделать это следующим образом:
./opennlp TokenNameFinderTrainer -cutoff 8 -lang -en-кодирование utf8 -данные es_corpus_train_persons.txt -model es_ner_person.bin
тогда неправильно
Обнаружены нераспознанные параметры: [-cutoff, 8], но
Поэтому мой вопрос, как я могу изменить параметры (обрезка, итерация).
Заранее спасибо!
3 ответа
Если вы используете командную строку, вы можете создать файл свойств, например, здесь: 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
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);
Это должно сделать это!
Параметры по умолчанию определены как:
`
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