Сохранить SpaCy PhraseMatcher на диск - PullRequest
0 голосов
/ 06 января 2020

Я создаю разговорник с 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))

Мои списочные навыки очень велики, поэтому создание совпадений занимает много времени, и я очень часто его использую. Есть ли способ сохранить устройство сопоставления на диск и позже перезагрузить его, не создавая заново каждый раз?

1 Ответ

1 голос
/ 06 января 2020

Изначально вы можете сэкономить время, используя nlp.tokenizer.pipe() для обработки ваших текстов:

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

Это просто токенизация, что намного быстрее, чем запуск полного конвейера en. Если вы используете attr настройки с PhraseMatcher, вам может потребоваться nlp.pipe() вместо этого, но в этом случае вы должны получить ошибку.

Вы можете выбрать PhraseMatcher для сохранения это на диск. Разборка не очень быстрая, потому что она должна реконструировать некоторые внутренние структуры данных, но она должна быть немного быстрее, чем создавать PhraseMatcher с нуля.

...