我正在学习UIMA,我可以创建基本的分析引擎并获得结果。但我发现很难理解的是使用CAS消费者。同时我想知道它与AnalysisEngine有多么不同?从我看过的很多例子中,CAS消费者并不是真的需要(?)。 CAS消费者从大型应用程序的角度来看是非常重要的,还是我们可以不使用它?
答案 0 :(得分:3)
主要区别在于默认情况下,分析引擎被配置为允许并行运行,以便它们每个只能看到一些CAS(OperationalProperties multipleDeploymentAllowed = true)。
CAS使用者被配置为禁止并行运行,这意味着他们将看到所有CAS(OperationalProperties multipleDeploymentAllowed = false)。
后者是必要的,例如当您想将所有结果写入单个文件时。
E.g。 CPE引擎尊重这个标志。当配置为多线程执行时,CPE将保留所有分析引擎的多个并行实例,直到它使用multipleDeploymentAllowed = false(通常是使用者)命中管道中的第一个实例。对于所有后续组件(分析引擎,使用者),只创建一个实例。
披露:我正在使用Apache UIMA项目。
答案 1 :(得分:1)
当前版本中它们之间没有区别。从历史上看,CASConsumer根本不会修改CAS,而只是使用CAS中存在的数据(以前由分析引擎添加)来聚合它/准备用于其他系统,例如,在数据库中摄取。
在当前版本中,建议将CASConsumers替换为Analysis Engine组件。
答案 2 :(得分:0)
你可以完全没有它。只需使用分析引擎。顺便说一句,你在使用uimaFIT吗?