在UIMA RUTA中使用UIMAFIT的Pos Tag



我试图通过Uima Ruta实现OpenNlpTagger。该过程无一例外地运行。当我尝试打开输出文件时,它显示编辑器无法初始化。

错误信息:

由以下原因引起:XCASParsingException:从源代码解析XCAS或XMI-CAS时出错,列:未知类型:de.tudarmstadt.ukp.dkpro.core.api.metadata.type.TagsetDescription。at org.apache.uima.cas.impl.XmiCasDeserializer$XmiCasDeserializerHandler.createException(XmiCasDeserializer.java:1635(

示例代码:

PACKAGE uima.ruta.example;
IMPORT PACKAGE de.tudarmstadt.ukp.dkpro.core.api.lexmorph.type.pos 
FROM desc.type.POS AS pos;
IMPORT de.tudarmstadt.ukp.dkpro.core.api.segmentation.type.Lemma FROM 
desc.type.LexicalUnits;
UIMAFIT de.tudarmstadt.ukp.dkpro.core.opennlp.OpenNlpSegmenter;
UIMAFIT de.tudarmstadt.ukp.dkpro.core.opennlp.OpenNlpPosTagger;
uima.tcas.DocumentAnnotation{-CONTAINS(pos.POS)} -> {
uima.tcas.DocumentAnnotation{-> SETFEATURE("language", "en")};
EXEC(OpenNlpSegmenter);
EXEC(OpenNlpPosTagger);   
};

[!在此处输入图像描述][1]][1]

org.apache.uima.UIMARuntimeException
at org.apache.uima.util.CasIOUtils.load(CasIOUtils.java:368)
at org.apache.uima.util.CasIOUtils.load(CasIOUtils.java:312)
at org.apache.uima.util.CasIOUtils.load(CasIOUtils.java:193)
at org.apache.uima.util.CasIOUtils.load(CasIOUtils.java:218)
at org.apache.uima.caseditor.editor.DocumentUimaImpl.setContent(DocumentUimaImpl.java:248)
at org.apache.uima.caseditor.editor.DocumentUimaImpl.<init>(DocumentUimaImpl.java:100)
at org.apache.uima.caseditor.ide.DefaultCasDocumentProvider.createDocument(DefaultCasDocumentProvider.java:405)
at org.apache.uima.caseditor.editor.TextDocumentProvider.createDocument(TextDocumentProvider.java:78)
at org.eclipse.ui.texteditor.AbstractDocumentProvider.createElementInfo(AbstractDocumentProvider.java:333)
at org.apache.uima.caseditor.editor.TextDocumentProvider.createElementInfo(TextDocumentProvider.java:110)
at org.eclipse.ui.texteditor.AbstractDocumentProvider.connect(AbstractDocumentProvider.java:400)
at org.eclipse.ui.texteditor.AbstractTextEditor.doSetInput(AbstractTextEditor.java:4233)
at org.eclipse.ui.texteditor.StatusTextEditor.doSetInput(StatusTextEditor.java:237)
at org.apache.uima.caseditor.editor.AnnotationEditor.doSetInput(AnnotationEditor.java:837)
at org.eclipse.ui.texteditor.AbstractTextEditor$19.run(AbstractTextEditor.java:3220)
at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:463)
at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:371)
at org.eclipse.ui.internal.WorkbenchWindow$14.run(WorkbenchWindow.java:2181)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2177)
at org.eclipse.ui.texteditor.AbstractTextEditor.internalInit(AbstractTextEditor.java:3238)
at org.eclipse.ui.texteditor.AbstractTextEditor.init(AbstractTextEditor.java:3265)
at org.apache.uima.caseditor.editor.AnnotationEditor.init(AnnotationEditor.java:594)
at org.eclipse.ui.internal.EditorReference.initialize(EditorReference.java:361)
at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.create(CompatibilityPart.java:319)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:56)
at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:898)
at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:879)
at org.eclipse.e4.core.internal.di.InjectorImpl.inject(InjectorImpl.java:121)
at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:345)
at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:264)
at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:162)
at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:104)
at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:73)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:669)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:608)
at org.eclipse.equinox.launcher.Main.run(Main.java:1515)
at org.eclipse.equinox.launcher.Main.main(Main.java:1488)
Caused by: XCASParsingException: Error parsing XCAS or XMI-CAS from source <unknown> at line <unknown>, column <unknown>: unknown type: de.tudarmstadt.ukp.dkpro.core.api.metadata.type.TagsetDescription.
at org.apache.uima.cas.impl.XmiCasDeserializer$XmiCasDeserializerHandler.createException(XmiCasDeserializer.java:1635)

de.tudarmstadt.ukp.dkpro.core.api.metadata.type.TagsetDescription类型由以下 Maven 工件提供:

DKPro 核心版本>= 1.11.0:

<dependency>
<groupId>org.dkpro.core</groupId>
<artifactId>dkpro-core-api-metadata-asl</artifactId>
<version>2.0.0</version> <!-- adjust version to DKPro Core version you are using -->
</dependency>

DKPro 核心版本 <1.11.0:

<dependency>
<groupId>de.tudarmstadt.ukp.dkpro.core</groupId>
<artifactId>de.tudarmstadt.ukp.dkpro.core.api.metadata-asl</artifactId>
<version>1.10.0</version> <!-- adjust version to DKPro Core version you are using -->
</dependency>

我希望如果您将其提供给您的 Ruta 项目,则例外应该消失。

导致异常的原因是,CAS 文件中存在的所有类型的注释在用于创建 CAS 对象的类型系统描述中都不可用。这只是与UIMA Ruta间接相关。

有几个选项可以避免此问题:

  • 您可以在Ruta脚本中导入类型系统描述,以便包含在生成的脚本类型系统描述中,该脚本将自动用于在CAS编辑器中打开XMI文件。
  • 您可以使用不同类型的系统描述,例如使用 uimaFIT 生成,其中包含包括 TagsetDescription 在内的所有类型。
  • 您可以激活宽松加载以忽略未知类型:首选项 -> UIMA CAS 编辑器 -> 注释编辑器 -> 轻松加载 CAS

最新更新