首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >uimaFIT:构建一个JCas实例列表

uimaFIT:构建一个JCas实例列表
EN

Stack Overflow用户
提问于 2019-12-05 17:32:26
回答 1查看 25关注 0票数 0

对于我的uimaFIT-管道的评估,我希望构建一个JCas实例列表,这些实例由管道注释并写入xmi-文件。在我的评估中,我读取xmi文件,并希望访问每个xmi文件的JCas并将其保存在列表中,以便进一步处理它们。

代码语言:javascript
复制
JCasIterable goldIterable = SimplePipeline.iteratePipeline(xmiReaderGold);
JCasIterator goldIterator = goldIterable.iterator();

ArrayList<JCas> goldJCasList = new ArrayList<JCas>();

while (goldIterator.hasNext()) {
    JCas goldJCas = goldIterator.next().getCas().getJCas();
    goldJCasList.add(goldJCas);
}

问题是,在时间循环的每一次迭代中,在迭代之前添加的列表中的JCas都会被当前的JCas覆盖。如何避免这种情况,以及如何正确地建立我的列表?我尝试用JCas goldJCas = JCasFactory.createJCas()创建一个新的JCas对象,然后调用迭代器上的next()并将JCas添加到列表中。但我还是得到了同样的结果。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-05 18:43:35

由JCas返回的iteratePipeline实例总是相同的--它被重用。这是出于性能原因。

如果你想要一个JCas的列表,你可以这样做。

代码语言:javascript
复制
CollectionReader reader = CollectionReaderFactory.createReader(MyReader.class, <parameters>);
List<JCas> documents = new ArrayList<>();
while (reader.hasNext()) {
   JCas document = JCasFactory.createJCas();
   reader.getNext(document.getCas());
   documents.add(document);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59200446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档