Как уменьшить использование памяти лемматизации spaCy? - PullRequest
0 голосов
/ 23 мая 2018

Я относительно новичок в 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())
...