Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从CPE描述符获取UIMA类型系统_Java_Uima - Fatal编程技术网

Java 从CPE描述符获取UIMA类型系统

Java 从CPE描述符获取UIMA类型系统,java,uima,Java,Uima,如何从CPE描述符XML文件获取(或计算)UIMA类型系统?我已经查看了我在Java中用于加载CPE描述符的类,但是没有看到任何可以让我得到系统类型的东西 我知道CAS有一个getTypeSystem()函数,但我需要在运行CPE管道之前(即在我拥有CAS对象之前)获取System类型。最终找到了实现方法。。。而且不漂亮!下面的代码适用于最终处于类似情况的任何其他人 CpeDescription cpeDesc = UIMAFramework.getXMLParser().parseCpeDes

如何从CPE描述符XML文件获取(或计算)UIMA类型系统?我已经查看了我在Java中用于加载CPE描述符的类,但是没有看到任何可以让我得到系统类型的东西


我知道CAS有一个getTypeSystem()函数,但我需要在运行CPE管道之前(即在我拥有CAS对象之前)获取System类型。

最终找到了实现方法。。。而且不漂亮!下面的代码适用于最终处于类似情况的任何其他人

CpeDescription cpeDesc = UIMAFramework.getXMLParser().parseCpeDescription(new XMLInputSource(cpeFile));
File rootFolder = new File(cpeDesc.getSourceUrl().getFile()).getParentFile();
ArrayList<TypeSystemDescription> typeSystems = new ArrayList<>();

for(CpeCollectionReader collReader : cpeDesc.getAllCollectionCollectionReaders()){
    File descFile = new File(rootFolder + System.getProperty("file.separator") + collReader.getDescriptor().getImport().getLocation());

    CollectionReaderDescription crd = UIMAFramework.getXMLParser().parseCollectionReaderDescription(new XMLInputSource(descFile));

    TypeSystemDescription typeSystem = crd.getCollectionReaderMetaData().getTypeSystem();
    typeSystem.resolveImports();

    typeSystems.add(typeSystem);
}

for(CpeCasProcessor casProcessor : cpeDesc.getCpeCasProcessors().getAllCpeCasProcessors()){
    File descFile = new File(rootFolder + System.getProperty("file.separator") + casProcessor.getCpeComponentDescriptor().getImport().getLocation());

    AnalysisEngineDescription aed = UIMAFramework.getXMLParser().parseAnalysisEngineDescription(new XMLInputSource(descFile));

    TypeSystemDescription typeSystem = aed.getAnalysisEngineMetaData().getTypeSystem();
    typeSystem.resolveImports();

    typeSystems.add(typeSystem);
}

TypeSystemDescription mergedTypeSystem = CasCreationUtils.mergeTypeSystems(typeSystems);
cpescription cpeDesc=UIMAFramework.getXMLParser().parsecpescription(新的XMLInputSource(cpeFile));
File rootFolder=新文件(cpeDesc.getSourceUrl().getFile()).getParentFile();
ArrayList typeSystems=新的ArrayList();
对于(CpeCollectionReader collReader:cpeDesc.getAllCollectionCollectionReaders()){
File descFile=新文件(rootFolder+System.getProperty(“File.separator”)+collReader.getDescriptor().getImport().getLocation());
CollectionReaderDescription crd=UIMAFramework.getXMLParser().parseCollectionReaderDescription(新的XMLInputSource(descFile));
TypeSystemDescription typeSystem=crd.getCollectionReaderMetaData().getTypeSystem();
typeSystem.resolveImports();
添加(typeSystem);
}
对于(CpeCasProcessor CaspProcessor:cpeDesc.getCpeCasProcessors().getAllCpeCasProcessors()){
File descFile=新文件(rootFolder+System.getProperty(“File.separator”)+casProcessor.getCpeComponentDescriptor().getImport().getLocation());
AnalysisEngineDescription aed=UIMAFramework.getXMLParser().parseAnalysisEngineDescription(新的XMLInputSource(descFile));
TypeSystemDescription typeSystem=aed.getAnalysisEngineMetaData().getTypeSystem();
typeSystem.resolveImports();
添加(typeSystem);
}
TypeSystemDescription mergedTypeSystem=CasCreationUtils.mergeTypeSystems(typeSystems);
注意,这只考虑导入,不包括在CPE描述符中