我有一个序列化为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());
我在哪里弄错了?
答案 0 :(得分:4)
如果我理解正确,你想知道为什么jCas.getDocumentText()返回纯文本而不是XMI使用的XML格式。嗯,这就是XmiCasDeserializer的重点。它解码XMI格式的XML。存储在XML中的文本最终出现在jCas.getDocumentText()中。其余的作为注释添加到CAS数据结构中。
要从CAS访问注释,有多种方法,例如:
jCas.getAnnotationIndex().iterator()
简单地遍历所有注释。
寻找文件的其他地方
披露:我是UIMA和uimaFIT项目的开发人员。