如何加快jieba分词的自定义词库导入时间——无需修改系统配置

背景

最近做jieba分词,需要导入自定义词库用来切词。但是导入一次自定义词库需要耗时0.6s左右,延迟太长。尤其是需要大批量调用切词时,时间上耗时太久。

前言

之前看到一片文章,通过将自定义词库写入jieba自带词库文件中,然后删除系统中词库的cache缓存文件,重启jieba即可实现自定义分词导入。连接如下:
https://www.jianshu.com/p/dbaa4421b4ce
其实这样做的本质,是为了实现:在程序做准备工作时就完成自定义词库的载入,且后期无需反复载入。

1、存在问题

上述作者采取的方法确实能够在本地解决这样的问题。然而,当代码需要自动化部署在服务器上,是无法修改系统文件配置的,且后期自定义词库需要不断更新。

2、解决办法

通过两层嵌套调用的断点测试(Debug),我发现,结巴是可以在外部将自定义词库导入,经过初始化后,底层被调用的分词模块是可以实现自定义分词的。

如何加快jieba分词的自定义词库导入时间——无需修改系统配置_第1张图片
jieba自定义词库外部导入初始化.png

也就是 “Test嵌套.py”文件调用 “test.py”,然后 “test.py”再调用真正的分词模块 “load_lexicon.py”
这里,在 “Test嵌套.py”就实现了jieba自定义词库的导入,而不需要在 “load_lexicon.py”才导入。

结束语

在需要使用jieba自定义词库时,在程序最外层模块中导入词库,初始化后即可。后面反复调用分词模块,并不会反复加载词库文件。且,后期需要更新该文件时,直接追加写入即可。避免了在自动化部署上的麻烦。

注释:

import 模块时,除模块class、def外的代码会被初始化执行一遍(if name == 'main'下的代码不会执行)

你可能感兴趣的:(如何加快jieba分词的自定义词库导入时间——无需修改系统配置)