gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 05:05:24 25 4
gpt4 key购买 nike

我将如何从 CPE 描述符 XML 文件中获取(或计算)UIMA 类型系统?我已经浏览了我用来加载到 Java 中的 CPE 描述符中的类,但看不到任何可以让我获得类型系统的东西。

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

最佳答案

最终想出了如何做到这一点......它并不漂亮!下面的代码适用于最终处于类似情况的任何其他人。

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);

请注意,这仅考虑导入,而不考虑包含在 CPE 描述符中。

关于java - 从 CPE 描述符获取 UIMA 类型系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15564932/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com