У меня проблема с сопоставлением токенов 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-й статьи, и использование моей системной памяти начинает резко возрастать.
Любые очевидные идеи о том, что может продолжаться?