0

我创建了一个名为“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()在我的注释器中声明正确,即使没有它也可以正常工作。所以如果你经历过,请在这里给我一些建议!谢谢!

4

1 回答 1

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 代码库中有更多示例。

于 2013-06-04T10:39:25.317 回答