【问题标题】:Save SpaCy PhraseMatcher to disk将 SpaCy PhraseMatcher 保存到磁盘
【发布时间】:2020-01-06 09:00:47
【问题描述】:

我正在使用 SpaCy 创建一个短语匹配器,如下所示:

import spacy
from spacy.matcher import PhraseMatcher

nlp = spacy.load("en")
label = "SKILL"
print("Creating the matcher...")

start = time.time()
matcher = PhraseMatcher(nlp.vocab)
for i in list_skills:
    matcher.add(label, None, nlp(i))

我的list_skills很大,所以matcher的创建需要很长时间,我经常重复使用。有没有办法将匹配器保存到磁盘,并在以后重新加载它而不必每次都重新创建它?

【问题讨论】:

    标签: spacy


    【解决方案1】:

    您最初可以使用nlp.tokenizer.pipe() 处理您的文本来节省一些时间:

    for doc in nlp.tokenizer.pipe(list_skills):
        matcher.add(label, None, doc)
    

    这只是标记化,这比运行完整的en 管道要快得多。如果您将某些attr 设置与PhraseMatcher 一起使用,则可能需要nlp.pipe(),但如果是这种情况,您应该会收到错误消息。

    您可以腌制PhraseMatcher 以将其保存到磁盘。 Unpickling 不是非常快,因为它必须重建一些内部数据结构,但它应该比从头创建 PhraseMatcher 快很多。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-17
      • 2011-04-14
      • 2016-07-22
      • 2013-12-19
      相关资源
      最近更新 更多