Нужно ли нам создавать 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.

Другие вопросы по тегам