Нужно ли нам создавать process() внутри нового аннотатора?
Я создаю аннотатор под названием "NewAnnotator" и пытаюсь заставить его работать в конвейере с другими аннотаторами в ClearTK, такими как: SentenceAnnotator, PosTaggerAnnotator и т. Д. Поэтому я хочу иметь возможность запускать конвейер:
aggregate.add(SentenceAnnotator.getDescription());
aggregate.add(PosTaggerAnnotator.getDescription());
aggregate.add(NewAnnotator.getDescription());
// run the classification pipeline on the new texts
SimplePipeline.runPipeline(reader, aggregate.createAggregateDescription());
Я написал код без ошибок, но при запуске он возвращает много ошибок, которые я думаю из этой части в моем коде NewAnnotator:
public static AnalysisEngineDescription getDescription() throws ResourceInitializationException {
return AnalysisEngineFactory.createPrimitiveDescription(
NewAnnotator.class,
PARAM_POSTAG_MODEL_FILE,
ParamUtil.getParameterValue(PARAM_POSTAG_MODEL_FILE, "/somepath"));
}
public static final String PARAM_POSTAG_MODEL_FILE = ConfigurationParameterFactory.createConfigurationParameterName(
PosTaggerAnnotator.class,
"postagModelFile");
Я почти копирую эту часть из PosTaggerAnnotator, но она не имеет смысла в моем NewAnnotator, я просто добавляю, чтобы я мог использовать:
aggregate.add(NewAnnotator.getDescription());
потому что я не знаю другого способа добавить в совокупность без .getDescription();
и я также не знаю, как объявить правильный getDescription()
в моем аннотаторе, даже он может нормально работать без него. Поэтому, пожалуйста, дайте мне несколько советов здесь, если вы испытали это! Спасибо!
1 ответ
getDescription()
удобный метод для создания описания аннотатора по умолчанию. Оно использует AnalysisEngineFactory.createPrimitiveDescription()
, которому нужно предоставить правильные аргументы, например:
public static AnalysisEngineDescription getDescription() throws ResourceInitializationException {
return AnalysisEngineFactory.createPrimitiveDescription(
NewAnnotator.class,
first_parameter_name, first_parameter_value,
second_parameter_name, second_parameter_value,
... );
}
Есть больше примеров в кодовой базе uimaFIT.