首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HeidelTime:语言参数指定为NULL

HeidelTime:语言参数指定为NULL
EN

Stack Overflow用户
提问于 2019-11-14 00:17:25
回答 1查看 42关注 0票数 0

我正在尝试将HeidelTime包含到我的uimaFIT-Pipeline中。

以下是我的工作流程:

代码语言:javascript
复制
AggregateBuilder builder = new AggregateBuilder();

CollectionReaderDescription reader = createReaderDescription(TextReader.class,
        TextReader.PARAM_SOURCE_LOCATION, dateTimePath, TextReader.PARAM_LANGUAGE, "en",
        TextReader.PARAM_PATTERNS, "*.txt");

AnalysisEngineDescription treeTagger = createEngineDescription(TreeTaggerWrapper.class,
        TreeTaggerWrapper.PARAM_LANGUAGE, "english",
        TreeTaggerWrapper.PARAM_ANNOTATE_PARTOFSPEECH, true,
        TreeTaggerWrapper.PARAM_ANNOTATE_SENTENCES, true, 
        TreeTaggerWrapper.PARAM_ANNOTATE_TOKENS, true);
builder.add(treeTagger);

AnalysisEngineDescription heidelTime = createEngineDescription(HeidelTime.class);
builder.add(heidelTime);

AnalysisEngineDescription intervalTagger = createEngineDescription(IntervalTagger.class);
builder.add(intervalTagger);

AnalysisEngineDescription xmiWriter = createEngineDescription(XmiWriter.class,
        XmiWriter.PARAM_TARGET_LOCATION, outputPath, 
        XmiWriter.PARAM_OVERWRITE, true);
builder.add(xmiWriter);

SimplePipeline.runPipeline(reader, builder.createAggregateDescription());

但是当我执行它时,我得到了以下异常:

代码语言:javascript
复制
Language parameter was specified as NULL.
org.apache.uima.resource.ResourceInitializationException: Initialization of annotator class "de.unihd.dbs.uima.annotator.heideltime.HeidelTime" failed.  (Descriptor: <unknown>)
    at org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.initializeAnalysisComponent(PrimitiveAnalysisEngine_impl.java:268)
    at org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.initialize(PrimitiveAnalysisEngine_impl.java:175)
    at org.apache.uima.impl.AnalysisEngineFactory_impl.produceResource(AnalysisEngineFactory_impl.java:94)
    at org.apache.uima.impl.CompositeResourceFactory_impl.produceResource(CompositeResourceFactory_impl.java:62)
    at org.apache.uima.UIMAFramework.produceResource(UIMAFramework.java:279)
    at org.apache.uima.UIMAFramework.produceAnalysisEngine(UIMAFramework.java:407)
    at org.apache.uima.analysis_engine.asb.impl.ASB_impl.setup(ASB_impl.java:256)
    at org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.initASB(AggregateAnalysisEngine_impl.java:435)
    at org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.initializeAggregateAnalysisEngine(AggregateAnalysisEngine_impl.java:379)
    at org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.initialize(AggregateAnalysisEngine_impl.java:192)
    at org.apache.uima.impl.AnalysisEngineFactory_impl.produceResource(AnalysisEngineFactory_impl.java:94)
    at org.apache.uima.impl.CompositeResourceFactory_impl.produceResource(CompositeResourceFactory_impl.java:62)
    at org.apache.uima.UIMAFramework.produceResource(UIMAFramework.java:279)
    at org.apache.uima.UIMAFramework.produceAnalysisEngine(UIMAFramework.java:407)
    at org.apache.uima.analysis_engine.asb.impl.ASB_impl.setup(ASB_impl.java:256)
    at org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.initASB(AggregateAnalysisEngine_impl.java:435)
    at org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.initializeAggregateAnalysisEngine(AggregateAnalysisEngine_impl.java:379)
    at org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.initialize(AggregateAnalysisEngine_impl.java:192)
    at org.apache.uima.impl.AnalysisEngineFactory_impl.produceResource(AnalysisEngineFactory_impl.java:94)
    at org.apache.uima.impl.CompositeResourceFactory_impl.produceResource(CompositeResourceFactory_impl.java:62)
    at org.apache.uima.UIMAFramework.produceResource(UIMAFramework.java:279)
    at org.apache.uima.UIMAFramework.produceResource(UIMAFramework.java:331)
    at org.apache.uima.UIMAFramework.produceAnalysisEngine(UIMAFramework.java:448)
    at org.apache.uima.fit.pipeline.SimplePipeline.runPipeline(SimplePipeline.java:166)
...
Caused by: java.lang.NullPointerException
    at de.unihd.dbs.uima.annotator.heideltime.resources.Language.getLanguageFromString(Language.java:65)
    at de.unihd.dbs.uima.annotator.heideltime.HeidelTime.initialize(HeidelTime.java:141)
    at org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.initializeAnalysisComponent(PrimitiveAnalysisEngine_impl.java:261)
    ... 80 more

如何在流水线中设置语言和所有其他参数?我还没有找到一种方法。当我使用HeidelTime的独立版本时,我可以在构造函数中指定参数,它工作得很好。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-15 04:03:57

我通过从GitHub下载heideltime-master并将以下文件夹放在我的/src/main/resources文件夹中解决了这个问题:

代码语言:javascript
复制
desc.annotator
desc.comsumer
desc.reader
desc.type

之后,我创建了AnalysisEngineDescriptions,如下所示:

代码语言:javascript
复制
AnalysisEngineDescription heidelTime = createEngineDescriptionFromPath(
            "src/main/resources/desc/annotator/HeidelTime.xml");
            builder.add(heidelTime);

AnalysisEngineDescription intervalTagger = createEngineDescriptionFromPath(
            "src/main/resources/desc/annotator/IntervalTagger.xml");
            builder.add(intervalTagger);

这样,我的管道终于可以工作了,我可以在Ruta工作台中看到我的xmi文件中的Timex3注释。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58841277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档