我是DKPro核心的新手,甚至在UIMA和uimaFIT也是如此。我正在尝试运行一个项目,但收到错误: JCas类型"de.tudarmstadt.ukp.dkpro.core.discourse.pdtb.DiscourseArgument“在Java代码中使用,但没有在XML类型描述符中声明
在代码中,描述符:
AnalysisEngineDescription preprocessing = createEngineDescription(
createEngineDescription(LanguageToolSegmenter.class),
createEngineDescription(ParagraphAnnotator.class),
createEngineDescription(MateLemmatizer.class, MateLemmatizer.PARAM_LANGUAGE, "en"),
createEngineDescription(SnowballStemmer.class),
createEngineDescription(StanfordParser.class, StanfordParser.PARAM_WRITE_PENN_TREE, true),
createEngineDescription(StanfordSentimentAnnotator.class),
createEngineDescription(PDTBDiscourseAnnotator.class)
);在PDTBDiscourseAnnotator.class中的以下行中使用了de.tudarmstadt.ukp.dkpro.core.discourse.pdtb.DiscourseArgument:
DiscourseArgument discourseArgument = new DiscourseArgument(jCas);错误就是从那里开始的。
据我从uimaFIT文档中了解,使用uimaFIT时,如果我们使用createEngineDescription(class_name),则不需要XML描述符,如果是这样,那么为什么错误显示为:"not declared in the XML type descriptor"。
其他类例如:"SnowballStemmer.class“使用相同类型的调用,如使用jcas参数intantiate另一个类
Stem stemAnnot = new Stem(jcas, fs.getBegin(), fs.getEnd());但在这些情况下不会发生错误。
有关于这个错误的想法或线索吗?我的理解正确吗?
发布于 2019-03-12 21:53:58
这在实践中意味着什么?
如何解决?
您需要遵循一些约定,以便uimaFIT能够detect and load您的自定义类型:
在源文件夹中创建一个文件
META-INF/org.apache.uima.fit/types.txt下输入您的类型描述xml文件的位置,例如classpath*:some/package/my-custom-type-description.xml一旦你这样做了,uimaFIT应该会自动检测到你的类型,错误应该会消失。
为什么它不发生在DKPro核心自己的类中?
因为DKPro核心工件包括允许uimaFIT自动检测类型的META-INF/org.apache.uima.fit/types.txt文件。
https://stackoverflow.com/questions/55119032
复制相似问题