SJ *_*Bey 4 python multithreading nlp pipeline spacy
我正在尝试将Spacy NLP(自然语言处理)规则应用于诸如Wikipedia Dump之类的大文本文件。这是基于Spacy 文档示例的代码:
from spacy.en import English
input = open("big_file.txt")
big_text= input.read()
input.close()
nlp= English()
out = nlp.pipe([unicode(big_text, errors='ignore')], n_threads=-1)
doc = out.next()
Run Code Online (Sandbox Code Playgroud)
Spacy可一次应用所有nlp操作,例如POS标记,去胶化等。就像NLP的管道一样,它一步一步地满足了您的所有需求。应用管道方法可以通过对管道的昂贵部分进行多线程处理来使处理过程更快。但是我看不到速度有什么大的提高,我的CPU使用率大约是25%(只有4个内核之一在工作)。我还尝试以多个块形式读取文件并增加了输入文本的数量:
out = nlp.pipe([part1, part2, ..., part4], n_threads=-1)
Run Code Online (Sandbox Code Playgroud)
但性能仍然相同。无论如何,有什么加快的过程吗?我怀疑应该启用OpenMP功能来编译Spacy以利用多线程功能。但是没有有关如何在Windows上执行操作的说明。
| 归档时间: |
|
| 查看次数: |
4582 次 |
| 最近记录: |