如何从uima-ruta脚本创建AnalysisEngineDescriptor以在SimplePipeline中使用

Ger*_*sio 5 java maven uima ruta

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

  1. Uimafit 2.0.0
  2. Uima-ruta 2.0.1
  3. ClearTK 1.4.1
  4. Maven的

而我正在使用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())
);
Run Code Online (Sandbox Code Playgroud)

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

我的脚本是:

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

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

那里有基本的ruta注释,如"SPACE"或"SW",所以RutaEngine正在创建并添加到管道......

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

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

小智 4

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

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

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