本文主要介绍Python中,使用结巴分词(jieba)进行并行分词的方法,以及相关的示例代码。

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.dtjieba.posseg.dt

官方文档https://github.com/fxsjy/jieba

相关文档Python 结巴分词(jieba)使用方法文档及示例代码

推荐文档