AnalysisEngine和CAS Consumer之间究竟有什么区别?

时间:2015-06-10 10:15:03

标签: nlp uima

我正在学习UIMA,我可以创建基本的分析引擎并获得结果。但我发现很难理解的是使用CAS消费者。同时我想知道它与AnalysisEngine有多么不同?从我看过的很多例子中,CAS消费者并不是真的需要(?)。 CAS消费者从大型应用程序的角度来看是非常重要的,还是我们可以不使用它?

3 个答案:

答案 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吗?