jieba结巴分词,分词方法cut和lcut有什么区别?
发布于 作者:苏南大叔 来源:程序如此灵动~

在结巴分词里面,有个.lcut()
还有个.cut()
方法。那么,这两个方法有什么区别呢?按照既往经验trim
和ltrim
的区别来说,l
意思是left
,那么lcut()
中的l
也是left
的意思么?这就是本文中要讨论的问题。

大家好,这里是苏南大叔的程序如此灵动博客,这里记录苏南大叔和计算机代码的故事。本文描述结巴分词中的lcut
函数和cut
函数的区别。本文测试环境:win10
,python@3.6.8
。
测试代码
测试代码如下:
lcut()
函数有两个,一个是“jieba.lcut()”,另外一个是:“jieba.posseg.lcut()”。

结果遍历
普通的cut
的返回值是个generator
,好处是可以节省内存,缺点是只可以遍历一次。而lcut
返回值是个list
,可以多次遍历。但是,如果量大的时候,效果就不如generator
好用了。
但是,遍历的方式,都是一致的。
方案一[for in]【推荐】:
方案二[set add join]【不推荐】:
方案三[list append join]:
函数区别
通过测试结果可以看到,cut
函数和lcut
基本一样,只是返回值不一样。
名字 | 说明 | 返回值 | 遍历 |
---|---|---|---|
jieba.cut | 分词 | generator | 只能遍历一次 |
jieba.posseg.cut | 分词带词性 | generator | 只能遍历一次 |
jieba.lcut | 分词 | list | 可以遍历多次 |
jieba.posseg.lcut | 分词带词性 | list | 可以遍历多次 |
同样,原理cut()
的参数在lcut()
中也是存在的。下面的调用形式也是可以的:
相关文章
苏南大叔写过几篇有关结巴分词的文章了,列表如下:
综述
lcut
中的l
并不是left
的意思,而是返回结果是list
的意思。更多结巴分词的经验文章,请点击苏南大叔的博客文章:


