Зависание соответствия токена spaCy + проблема с памятью - PullRequest
0 голосов
/ 23 апреля 2020

У меня проблема с сопоставлением токенов spaCy. Когда я пытаюсь запустить его на документах, он начинает зависать.

Обратите внимание: когда я пытаюсь разбить документы на предложения, затем запускаю Matcher для предложений, и я получаю ту же проблему.

Вот мои настройки:

import spacy
from spacy.matcher import Matcher

nlp = spacy.load("en_core_web_sm")

matcher = Matcher(nlp.vocab)


pattern = [
            {"POS": "PROPN", "OP": "*"},
            {"DOBJ": "NSUBJ", "OP": "*"},
            {"LEMMA": {"IN": ["ask","order","require","command","mandate", "urge"]}, "POS": "VERB"},
            {"POS": "NOUN", "OP": "*"},
            {"POS": "PART", "OP": "*"},
            {"POS": "VERB", "OP": "*"},
            {"POS": "ADJ", "OP": "*"},
            {"LEMMA": {"IN": ["mask", "cover", "face"]}}
          ]

matcher.add("MaskFinder", None, pattern)

Тогда у меня есть множество газетных статей под названием texts. Когда я обрабатываю только один текст с:

doc = nlp(texts[0])
matches = matcher(doc)

, у меня нет проблем. Но когда я пытаюсь обработать более одного за раз:

for t in texts:
    doc = nlp(t)
    matches = matcher(doc)

spaCy зависает после 3-й или 4-й статьи, и использование моей системной памяти начинает резко возрастать.

Любые очевидные идеи о том, что может продолжаться?

...