2016-07-22 71 views
0

我的問題是有點含糊,但我的問題是具體的。Junit:單元測試大數據自然語言處理

問題

任何人都可以點我消息靈通的文檔瞭解如何進行單元測試大數據的自然語言處理系統?

CONTEXT

大的數據處理系統通常是多線程的,也是高度寬容異常狀態。很多時候,例外被捕獲並且不被拋出以允許「雜亂」的數據。

但是,在對這些系統進行單元測試時,嚴格等級應該高於生產條件。這種嚴格的等級允許開發人員至少了解哪種情況會導致異常。

問題是這樣的系統吸收了異常,所以junit測試不會接受它們。在這種情況下,我正在尋找一種簡單的單元測試設計。不想重新發明車輪。因此尋找相關的文件。

回答

0

沒有人能夠向您指出任何「關於如何對大數據自然語言處理系統進行單元測試的充分知情文檔」,因爲消息靈通的觀點是沒有特殊的文檔需要存在。原因是如果你的函數是正確的,你的單元測試(即使在大的NLP系統中)都應該全部通過並且快速運行。

我認爲你想要問的是更多與集成測試有關的問題,以及在凌亂(測試或生產)數據集上實際運行這些系統。我的大多數集成測試都是在固定的數據集上運行的,我希望它們能夠一直通過,除非存在網絡/數據庫故障或其他無法控制系統的事件。

對於不斷變化的數據集或實際在生產環境中運行的集成測試,您必須查看所使用的基礎架構/框架的文檔。我使用基於UIMA的體系結構,並且可以明確設置錯誤率閾值等內容 - 請參閱下面有關從UIMA文檔複製的示例。我相信GATE,Deeplearning4Java或其他酷派孩子現在使用的其他功能都有類似的功能,但據我所知,它是特定於框架的。

<casProcessor deployment="integrated" name="Person"> 
    <descriptor> 
    <include href="[descriptor]"/> 
    </descriptor> 
    <deploymentParameters/> 
    <errorHandling> 
    <errorRateThreshold action="terminate" value="100/1000"/> 
    <maxConsecutiveRestarts action="terminate" value="30"/> 
    <timeout max="100000"/> 
    </errorHandling> 
    <checkpoint batch="100" time="1000ms"/> 
</casProcessor>