2

我有一个序列化为 xmi 文件的 CAS,当我尝试反序列化 xmi 文件时,输出是 xml 文件应该的纯文本。这就是我正在做的,

            URL myURL = UIMAFramework.class.getResource("TypeSystem.xml");
            TypeSystemDescription tsDesc = UIMAFramework.getXMLParser().parseTypeSystemDescription(new XMLInputSource(myURL));
            CAS cas = CasCreationUtils.createCas(tsDesc, null, null);

            FileInputStream xmiInput = new FileInputStream(args[0]);
            XmiCasDeserializer.deserialize(xmiInput, cas, false);
            JCas jCas = cas.getJCas();
            xmiInput.close();
            logger.info(jCas.getDocumentText());

我在哪里弄错了?

4

1 回答 1

4

如果我理解正确,您想知道为什么 jCas.getDocumentText() 返回纯文本而不是 XMI 使用的 XML 格式。嗯,这就是 XmiCasDeserializer 的重点。它解码 XMI 格式的 XML。存储在 XML 中的文本最终在 jCas.getDocumentText() 中。其余部分作为注释添加到 CAS 数据结构中。

要从 CAS 访问注释,有多种方法,例如:

jCas.getAnnotationIndex().iterator()

简单地遍历所有注释。

寻找文档的其他地方

披露:我是 UIMA 和 uimaFIT 项目的开发人员。

于 2014-07-11T07:16:53.873 回答