1

これまでは、AnalysisEngine と CAS を作成し、エンジンを処理することで、maven プロジェクトから ruta スクリプトを実行していました。これを行うために、すべてのスクリプトと記述子ファイル (Engine & TypeSystem) を maven プロジェクトの scr/main/resources フォルダーに配置しました。

ここで、スクリプトと TypeSystem ファイルを外部パスに配置し、そのパスをスクリプトを実行する Java コードに動的に渡したいと考えています。それは可能ですか?もしそうなら、どのように?

ファイル (スクリプトと記述子) を外部パスに配置し、新しいパスを渡して、以下のように AnalysisEngine をインスタンス化しました。

final AnalysisEngine engine = AnalysisEngineFactory.createEngine("home/admin/Desktop/TEST_ScriptFolder/com/textjuicer/ruta/date/Dazzle_ChapRef_UpdatedEngine");

エラー

org.apache.uima.util.InvalidXMLException: インポートを解決できませんでした。「home/admin/Desktop/TEST_ScriptFolder/com/textjuicer/ruta/date/Dazzle_ChapRef_UpdatedEngine.xml」という名前のファイルがクラスパスまたはデータパスに見つかりませんでした。(記述子: ) org.apache.uima.resource.metadata.impl.Import_impl.findAbsoluteUrl(Import_impl.java:117) で org.apache.uima.fit.factory.AnalysisEngineFactory.createEngineDescription(AnalysisEngineFactory.java:869) で.apache.uima.fit.factory.AnalysisEngineFactory.createEngine(AnalysisEngineFactory.java:107) at com.textjuicer.ruta.date.ArtifactAnnotator.getAllAnnotations(ArtifactAnnotator.java:93) at ApplyingStyle.XmiTransformer.parseXMI(XmiTransformerjava:33) ) ApplyingStyle.ApplyStyle.applyStyleOnDocx (ApplyStyle.java:76) で

4

1 に答える 1

1

次の 2 つの層があります。

  1. RutaEngine はスクリプト/リソース/記述子を見つける必要があります
  2. UIMA は、記述子のインポートを解決できる必要があります

Ruta のリソース ルックアップには 2 つの段階があり、構成パラメーターで指定された絶対パスでそれらを検索します。リソースが見つからない場合は、クラスパスで検索します。そのため、構成パラメーターを設定する必要があります。スクリプトは にscriptPaths、記述子は にdescriptorPaths、ワードリストは に配置されresourcePathsます。詳細については、ドキュメントを参照してください。

記述子のインポートに関する問題は、UIMA ResourceManager でデータパスを設定するか、インポートを「名前」ではなく「場所」に変更することで解決できます。データパスは、クラスパスの代わりとして使用できます。ruta-maven-plugin で指定されている場合、Ruta 記述子は場所によるインポートを使用します。

免責事項: 私は UIMA Ruta の開発者です

于 2016-06-13T08:23:13.247 に答える