2015-06-10 32 views
2

我在學習UIMA,我可以創建基本的分析引擎並獲得結果。但是我發現難以理解的是CAS用戶的使用。同時我想知道它與AnalysisEngine有什麼不同?從我看到的很多例子來看,CAS消費者並不是真的需要(?)。從大型應用程序的角度來看,CAS的消費者是非常重要的,還是我們可以不用它?AnalysisEngine和CAS Consumer之間的區別究竟是什麼?

回答

1

它們在當前版本中沒有區別。歷史上,CASConsumer最好不修改CAS,但只使用CAS中的數據(以前由分析引擎添加)來聚合/準備用於其他系統,例如在數據庫中使用。

在當前版本中,建議將CASConsumers替換爲分析引擎組件。

+0

謝謝。但這個想法聽起來不錯,CAS消費者不會改變CAS,只是「消耗」它....所以,如果我使用它(只是爲了我的清晰度), CASConsumer在當前版本中是否會引起一些問題?您是否有一個特定的原因,您建議CASConsumers被分析引擎取代? –

+0

我也喜歡有一個獨立的組件專用於消費CASes的想法;它會產生一個對稱的體系結構:創建CASes的組件,豐富它們的組件,以及那些消耗它們的組件,如果你希望沿着這條路走下去,而不是現在的版本,那麼沒有問題,但是你應該考慮它們的可能性在未來版本的UIMA中被刪除,因爲除了概念上的對稱外,它們不提供分析引擎之上的任何東西, – Claudiu

+0

謝謝。 –

0

你完全可以沒有它。只需使用分析引擎。順便說一句,你使用uimaFIT了嗎?

+0

嘿,謝謝你的回答。但是,您能否提出CAS消費者會大幅幫助的任何情況?我還沒有使用UIMAfit .. :( –

3

主要區別在於默認情況下,分析引擎配置爲允許並行運行,以便它們每個只能看到一些CASes(OperationalProperties multipleDeploymentAllowed = true)。

CAS使用者被配置爲禁止並行運行,這意味着他們將看到所有CASes(OperationalProperties multipleDeploymentAllowed = false)。

後者是必要的,例如,當你想將所有結果寫入單個文件時。

E.g. CPE引擎尊重這個標誌。當配置用於多線程執行時,CPE將保留所有分析引擎的多個並行實例,直到它通過一個消費者,使用multipleDeploymentAllowed = false到達管道中的第一個分支引擎。對於所有以下組件(分析引擎,消費者),只創建一個實例。

披露:我在Apache UIMA項目。

相關問題