2016-07-22 69 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>