【问题标题】:Correct multithreaded lemmatization using spaCy使用 spaCy 纠正多线程词形还原
【发布时间】:2019-06-25 12:36:58
【问题描述】:

我正在尝试使用 spaCy 对我的语料库进行多线程化。继documentation之后,这是我目前的做法:

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 个文档上使用它),这都需要相同的时间,这表明它不是多线程的。

我的实现有错吗?

【问题讨论】:

  • 你能够为 SpaCy lemmatizer 实现多线程吗?您对上述代码做了哪些更改?谢谢。

标签: python nlp spacy lemmatization


【解决方案1】:

n_threads 参数在新版本的 spacy 中已被弃用,并且没有任何作用。请参阅此处的注释:https://spacy.io/api/language#pipe

这是他们使用多处理执行此操作的示例代码:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多