Правильная многопоточная лемматизация с помощью spaCy - PullRequest
1 голос
/ 25 июня 2019

Я пытаюсь многопоточность лемматизации моего корпуса, используя spaCy.Следуя документации , на данный момент это мой подход:

import spacy
nlp = spacy.load('en_core_web_sm', disable=['parser', 'ner', 'tagger'])

def lemmatize():
    for doc in nlp.pipe(corpus, batch_size=2, n_threads=10):
        yield ' '.join([token.lemma_ for token in doc])

new_corpus = list(lemmatize())

Однако это занимает одинаковое количество времени независимо от того, используется ли нить 10 или 1 (я использую ее для 100 000 документов),предполагая, что это не многопоточность.

Моя реализация неверна?

1 Ответ

2 голосов
/ 25 июня 2019

Аргумент n_threads устарел в новых версиях spacy и ничего не делает.См. Примечание здесь: https://spacy.io/api/language#pipe

Вот их пример кода для выполнения этого с мультиобработкой вместо:

https://spacy.io/usage/examples#multi-processing

...