2013-06-04 3 views
0

Im создание аннотатора под названием «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() в моем комментатора, даже он может отлично работает и без него. Так что, пожалуйста, дайте мне несколько советов, если вы испытали это! Спасибо!

ответ

0

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 codebase.

+0

Так можно ли не объявлять getDescription()? но все же можете добавить мой аннотатор в конец вышеуказанного конвейера (после POSTaggerAnnotator)? Я видел вашу ссылку, большинство из них не имеют функции getDescription(). И для моего, никаких аргументов для обеспечения. В моей функции process(), в конце, я установлюPos(), чтобы получить результат процесса там, и может получить результат этого процесса с помощью getPos(), аналогично POSTaggerAnnotator. – user1314404

+0

Я пробовал это: 'public static AnalysisEngineDescription createDescriptor() throws ResourceInitializationException { ТипСистемы Тип описанияСистемаDescription = ТипSystemDescriptionFactory .createTypeSystemDescription(); return AnalysisEngineFactory.createPrimitiveDescription (NewAnnotator.class, typeSystemDescription);} 'тогда в конвейере я добавляю:' aggregate.add (NewAnnotator.createDescriptor()); ', но выглядит по-прежнему не так. Все еще было много ошибок. – user1314404

+0

Да, можно не объявлять getDescription(), это просто удобный метод для создания этого описания аннотатора – Renaud

 Смежные вопросы

  • Нет связанных вопросов^_^