在使用Spacy和使用它的交叉导入功能时,我希望避免重新加载语言模型。
我应该将加载的模型(通常称为nlp())作为参数传递吗?还是有一些更优雅/更有效的事情要做?
例如我今天所拥有的:
nlp = spacy.load('fr_core_news_md') # IMPORTS ONCE (long time...)
def my_function():
... does something with spacy...
return
from module import my_function
nlp = spacy.load('fr_core_news_md') # IMPORTS AGAIN (long time...)
my_function()
感谢您的帮助!
答案 0 :(得分:1)
如果您在应用程序中使用模型,则绝对只想一次加载它,然后传递nlp
对象。这不仅速度更快,而且还确保了一致性:如果您修改管道以添加组件,或者如果词汇表在运行时更新,那么您希望这些更改反映在整个应用程序中。
也就是说,遗憾的是,目前法国的加载时间有点慢,因为它们需要更多的静态数据。希望在即将发布的版本中有所改善。您可以找到更多详细信息和解决方案in this thread。摘要: