1、并行分词原理
将目标文本按行分隔后,把各行文本分配到多个 Python 进程并行分词,然后归并结果,从而获得分词速度的可观提升,基于 python 自带的 multiprocessing
模块,目前暂不支持 Windows。
2、并行分词用法
jieba.enable_parallel(4): # 开启并行分词模式,参数为并行进程数
jieba.disable_parallel(): # 关闭并行分词模式
使用示例:
import sys
import time
sys.path.append("../../")
import jieba
jieba.enable_parallel()
url = sys.argv[1]
content = open(url,"rb").read()
t1 = time.time()
words = "/ ".join(jieba.cut(content))
t2 = time.time()
tm_cost = t2-t1
log_f = open("1.log","wb")
log_f.write(words.encode('utf-8'))
print('speed %s bytes/second' % (len(content)/tm_cost))
性能测试结果:
在 4 核 3.4GHz Linux 机器上,对金庸全集进行精确分词,获得了 1MB/s 的速度,是单进程版的 3.3 倍。
注意:
并行分词仅支持默认分词器 jieba.dt
和 jieba.posseg.dt
。