在UIMA Ruta Workbench中使用DKPro Core生成的XMI文件无法打开求助
Fixing DKPro Core Type System Access in UIMA Ruta Workbench
我之前也碰到过一模一样的问题!核心原因就是UIMA Ruta Workbench默认不会自动加载Maven依赖里的外部类型系统,得手动告诉它去哪里找DKPro Core的类型定义。试试下面这些步骤:
1. 确认DKPro Core类型系统文件的位置
DKPro Core的每个功能模块(比如分词、词性标注)都自带对应的类型系统描述文件,Maven已经把这些jar包下载到你的本地仓库了。你可以在Eclipse的Maven Dependencies下找到类似dkpro-core-api-segmentation-*.jar的文件,展开后能看到内部的TypeSystem.xml(路径一般是de/tudarmstadt/ukp/dkpro/core/api/[模块名]/type/)。
2. 把DKPro类型系统导入到项目的类型系统描述符里
- 打开你的Ruta项目,找到
descriptor文件夹下的TypeSystemDescriptor.xml(如果没有,右键项目 → New → UIMA Type System Descriptor快速创建)。 - 切换到「Imported Type Systems」标签页,点击Add...。
- 选择「Browse File System」,定位到Maven本地仓库里的DKPro Core jar包,展开后选中里面的
TypeSystem.xml文件,点击确定添加。 - 重复这个操作,把你用到的所有DKPro Core模块的类型系统都加进去(比如用了词性标注就加
dkpro-core-api-pos的类型系统)。
3. 让Ruta脚本引用这个自定义类型系统
在你的主Ruta脚本开头,确保用TYPESYSTEM指令指向刚才编辑的类型系统描述符,比如:
TYPESYSTEM "../descriptor/TypeSystemDescriptor.xml";
如果之前用的是默认类型系统,直接替换成这个路径就行。
4. 清理重建后测试
- 先执行**Project → Clean...**清理项目,避免缓存问题。
- 重新运行你的Ruta脚本生成新的XMI文件。
- 现在尝试在注释浏览器中打开这个XMI,应该就能正常识别所有DKPro Core生成的注释类型了。
更省心的Maven自动合并方案
如果你的项目是Maven管理的,可以用uima-maven-plugin自动收集所有依赖的类型系统,生成一个合并后的描述文件,不用手动一个个导入:
在pom.xml的<build><plugins>里添加:
<plugin> <groupId>org.apache.uima</groupId> <artifactId>uima-maven-plugin</artifactId> <version>3.3.2</version> <executions> <execution> <goals> <goal>aggregate-type-systems</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/generated-resources/uima</outputDirectory> <outputFileName>mergedTypeSystem.xml</outputFileName> </configuration> </execution> </executions> </plugin>
运行mvn compile后,插件会在target/generated-resources/uima下生成合并的类型系统文件,然后把Ruta脚本里的TYPESYSTEM指向这个文件即可。
内容的提问来源于stack exchange,提问作者Julien
相关产品推荐
相关产品推荐

