5

我无法在我的简单管道中运行 uima ruta 脚本。我正在使用下一个库:

  1. Uimafit 2.0.0
  2. Uima-ruta 2.0.1
  3. 清除TK 1.4.1
  4. 马文

我正在使用一个org.apache.uima.fit.pipeline.SimplePipeline

SimplePipeline.runPipeline(
    UriCollectionReader.getCollectionReaderFromDirectory(filesDirectory), //directory with text files
    UriToDocumentTextAnnotator.getDescription(),
    StanfordCoreNLPAnnotator.getDescription(),//stanford tokenize, ssplit, pos, lemma, ner, parse, dcoref

    AnalysisEngineFactory.createEngineDescription(RUTA_ANALYSIS_ENGINE),//RUTA script

    AnalysisEngineFactory.createEngineDescription(//
        XWriter.class, 
        XWriter.PARAM_OUTPUT_DIRECTORY_NAME, outputDirectory,
        XWriter.PARAM_FILE_NAMER_CLASS_NAME, ViewURIFileNamer.class.getName())
);

我要做的是使用 StandfordNLP 注释器(来自 ClearTK)并应用 ruta 脚本。目前,一切运行都没有错误,并且默认的 ruta 注释被添加到 CAS,但我的规则创建的注释没有被添加到 CAS。

我的脚本是:

PACKAGE edu.isistan.carcha.concern;
TYPESYSTEM org.cleartk.ClearTKTypeSystem; 
DECLARE persistence
Token{FEATURE("lemma","storage") -> MARK(persistence)};

查看带注释的文件: 在此处输入图像描述

诸如“SPACE”或“SW”之类的基本 ruta 注释在那里,因此正在创建 RutaEngine 并将其添加到管道中......

如何正确创建 AnalysisEngineDescriptor 来运行 Ruta 脚本?

注意: RUTA_ANALYSIS_ENGINE它是我从 RUTA 工作台复制的引擎描述符。

4

1 回答 1

4

尝试在声明后添加一个半列,并为Token注解使用完全限定名称:

PACKAGE edu.isistan.carcha.concern;
TYPESYSTEM org.cleartk.ClearTKTypeSystem; 
DECLARE persistence;
org.cleartk.token.type.Token{FEATURE("lemma","storage") -> MARK(persistence)};

RUTA 中的类型别名有点过于激进。即使您没有在脚本中导入它们,您的管道已知的每种类型都可以通过其短名称获得。如果您的管道有多个Token可用的类型,目前无法知道将选择哪一个(请参阅https://issues.apache.org/jira/browse/UIMA-3322?filter=-2)。

于 2013-12-02T15:07:08.403 回答