这更多是关于最佳/常见做法的问题。
我们在生产系统中使用Spacy。在测试期间,很多时候我们不得不下载完整的spacy模型(解析器+单词向量),这可能非常慢(〜30分钟)并且令人沮丧。也许更好的策略可能是创建一个自定义的轻量级spacy模型进行测试,例如仅使用1000个单词vocab和较小的解析模型。
使用适用于此场景的大数据模型进行测试时,是否有建议的策略/最佳实践?
最佳答案
这基本上取决于您需要测试的内容和方式。
您可能真的不需要或不想测试spacy本身,而是想依赖于spacy的结果来测试函数,而一种好的做法是模拟来自spacy的响应并测试代码,以确保spacy正常工作(它确实有测试;))。在我们的环境中,导入spacy时会加载模型,因此我们必须模拟导入的模块才能不加载这些数据。
当然,可以选择创建模型的轻量级版本,但这不是一个简单的情况,它可能需要对每个spacy版本进行更改,并且您必须记住其他开发人员应该能够在测试后更新模型。 /需求变更。
如果您实际上需要模型,而最大的问题是等待下载它们,请考虑对数据使用缓存。许多CI环境都可以为您缓存模型,并且在引入新版本的spacy之前它们将一直有效。
关于testing - 使用小型Spacy模型创建测试环境,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42399476/