Как программно перенастроить движок анализа uima ruta (изменить значения параметров)?

Это продолжение вопроса: Как запускать внешние рута-скрипты из проекта maven, не помещая скрипт или его систему типов в путь к классам?

Пожалуйста, помогите мне перенастроить механизм анализа (путем изменения значений параметров) программно.


person Sindhu Venkatachary    schedule 02.08.2016    source источник


Ответы (1)


Ситуация: у вас есть правильный xml-дескриптор механизма анализа UIMA Ruta, и вы хотите перенастроить его так, чтобы пути указывали на папку URL-адреса файла descriptor.java.

Следующий код иллюстрирует это изменением значений параметров на разных этапах. Требуется только один этап. Какой из них правильный для вас, зависит от вашего кода.

package example;

import java.io.File;
import java.net.URL;

import org.apache.uima.analysis_engine.AnalysisEngine;
import org.apache.uima.analysis_engine.AnalysisEngineDescription;
import org.apache.uima.fit.factory.AnalysisEngineFactory;
import org.apache.uima.resource.metadata.ConfigurationParameterSettings;
import org.apache.uima.ruta.engine.RutaEngine;

public class ReconfigureExample {

  public static void main(String[] args) throws Exception {

    File file = new File("path to descriptor");
    String path = new File(file.toURI()).getParentFile().getAbsolutePath();
    String[] pathsArray = new String[] { path };

    // override the values in the descriptor when creating the description
    AnalysisEngineDescription desc = AnalysisEngineFactory.createEngineDescriptionFromPath(
            file.getAbsolutePath(), RutaEngine.PARAM_SCRIPT_PATHS, pathsArray,
            RutaEngine.PARAM_DESCRIPTOR_PATHS, pathsArray, RutaEngine.PARAM_RESOURCE_PATHS,
            pathsArray);

    // in case the location of the descriptor is not known...
    URL sourceUrl = desc.getSourceUrl();
    path = new File(sourceUrl.toURI()).getParentFile().getAbsolutePath();
    pathsArray = new String[] { path };

    // set the values in the description
    ConfigurationParameterSettings settings = desc.getAnalysisEngineMetaData()
            .getConfigurationParameterSettings();
    settings.setParameterValue(RutaEngine.PARAM_SCRIPT_PATHS, pathsArray);
    settings.setParameterValue(RutaEngine.PARAM_DESCRIPTOR_PATHS, pathsArray);
    settings.setParameterValue(RutaEngine.PARAM_RESOURCE_PATHS, pathsArray);

    // override the values in the descriptor when creating the analysis engine
    AnalysisEngine ae = AnalysisEngineFactory.createEngine(desc, RutaEngine.PARAM_SCRIPT_PATHS, pathsArray,
            RutaEngine.PARAM_DESCRIPTOR_PATHS, pathsArray, RutaEngine.PARAM_RESOURCE_PATHS,
            pathsArray);

    // set the values in the analysis engine and reconfigure it
    ae.setConfigParameterValue(RutaEngine.PARAM_SCRIPT_PATHS, pathsArray);
    ae.setConfigParameterValue(RutaEngine.PARAM_DESCRIPTOR_PATHS, pathsArray);
    ae.setConfigParameterValue(RutaEngine.PARAM_RESOURCE_PATHS, pathsArray);
    ae.reconfigure();

  }

}

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: я разработчик UIMA Ruta

person Peter Kluegl    schedule 05.08.2016