用Python分析hanlp和结巴分词的优劣

新知榜官方账号

2023-09-25 02:26:22

介绍

买过与hanlp配套的书《自然语言处理入门》,自然而然想着就用喊hanlp来做自然语言处理。并且hanlp目前还提供了2.0版本api接口,使用了深度学习这个高大上的工具。呵呵,但效果还要比较了才知道。功能比较下图的hanlp官网的功能界面。功能全面,而且提供的教学视频把各种功能的应用场景也讲清楚了。我就使用了他家api。

分词结果比较-四字词语需要分词的文本如下:这是从晋江文学网下载的小说免费章节部分。使用hanlp的api每次传输大小有限制。把原文本分割后多进程调用api,我已经写成函数了。但是因为网络请求,分词非常慢。而且api调用使用次数限制的,超过后需要付费。

#hanlp中分词,使用api
sp_text=[]
for i in range(math.ceil(len(string)/850)):
    sp_text.append(string[i*850:(i+1)*850])
num_process=10
with multiprocessing.Pool(processes=num_process) as pool:
    results_seg=pool.map(get_seg_hanlp,sp_text)
pool.close()

而结巴分词不需要限制大小。分词的词典加载到cache之后调用非常快。加载词典也就1秒多点。

#结巴分词
seg=get_seg(string)

两者结果分词结果中大小为四字的词比较(hanlp分词使用的是crf.):可以看出crf分词后的结果较结巴分词更宽泛,把很多不是成语或常用组合也分在了一起(之所以是crf因为它家视频教程里面推荐的)。而使用hanlp的标准分词后,分词比结巴还要严格些:

结尾通过以上比较和使用情况,Jieba可以把分词任务处理得恰恰令我满意了,hanlp虽然花样多,但分词粗了,细了都逼人难受。hanlp还有其他分词接口,但我就是试用的几个都不舒服。另外,hanlp1.x的python版可以下载,但是它的一个依赖的版本已经不在pypi了,所以不能直接下载,而且2.x都出来了,还用1.x干嘛,可能都没维护了。

本页网址:https://www.xinzhibang.net/article_detail-13534.html

寻求报道,请 点击这里 微信扫码咨询

关键词

Python hanlp 结巴分词 自然语言处理 分词

分享至微信: 微信扫码阅读

相关工具

相关文章