我正在开发一个Apache UIMA v2
应用程序来注释文档。
我正确开发了process()
方法,因为我获得了正确的注释(已通过debug和UIMA CAS Visual Debugger
测试)。
我的应用程序包含JCas
对象的简单实例化和文档的处理过程,即本例中的简单字符串。这是代码:
public class MainProgram {
public static void main(String[] args) {
try {
XMLInputSource in = new XMLInputSource("desc/dictionaryDescriptor.xml");
ResourceSpecifier specifier = UIMAFramework.getXMLParser().parseResourceSpecifier(in);
AnalysisEngine ae = UIMAFramework.produceAnalysisEngine(specifier);
JCas jcas = ae.newJCas();
jcas.setDocumentText("prova di a@gmail.com, timido, word, excel. ");
ae.process(jcas);
processResults(jcas);
ae.destroy();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvalidXMLException e1) {
e1.printStackTrace();
} catch (ResourceInitializationException e2) {
e2.printStackTrace();
} catch (AnalysisEngineProcessException e3) {
e3.printStackTrace();
}
}
public static void processResults(JCas jcas) {
System.out.println("Done!");
// TODO read annotations from jcas
}
}
如果在processResults()
方法内添加一个断点,我可以看到jcas
的内容和注释列表:
我想访问SubTypes
对象中的AnnotationIndex
列表,不关心类类型。
这是特定类型的示例:
AnnotationIndex<Annotation> programIndex = jcas.getAnnotationIndex(Programma.type);
Iterator programIter = programIndex.iterator();
while(programIter.hasNext()) {
Programma p = (Programma) programIter.next();
}
答案 0 :(得分:0)
您可以使用JCasUtil提取JCas的注释:
JCasUtil.select(jCas, Annotation.class).stream()....
,通过注释的getType()方法,您可以检查注释的类型。