Я относительно новичок в spaCy и пытаюсь токенизировать + лемматизировать 200 МБ текста для проекта НЛП.
Сначала я попробовал nlp = spacy.load('en')
, что привело к MemoryError
.
После некоторых исследований я попытался nlp = spacy.blank('en')
устранить ненужную функциональность, но она все еще занимает все 16 ГБ памяти (и в итоге приводит к MemoryError
).Это кажется мне чрезмерным.
Что я могу сделать, чтобы уменьшить использование памяти spaCy или это невозможно?Спасибо!
Оригинальный код:
nlp = spacy.blank('en')
train['spacy_tokens'] = train['text'].apply(lambda x: nlp(x))
def lemmatize(x):
intermediate_lemmas = [token.lemma_.lower() for token in x
if not token.is_punct]
return [lemma for lemma in intermediate_lemmas
if lemma not in stop_words
and lemma != "-PRON-"
and lemma != " "
]
train['lemmas'] = train['spacy_tokens'].apply(lambda x: lemmatize(x))
print(train.head())