一、三种模式、两个函数
jieba是一款优秀的Python第三方中文分词库,jieba支持三种分词模式:精确模式、全模式和搜索引擎模式,涉及两个函数(jieba.cut、jieba.cut_for_search),下面是三种模式的特点。
精确模式:试图将语句最精确的切分,不存在冗余数据,适合做文本分析
全模式:将语句中所有可能是词的词语都切分出来,速度很快,但是存在冗余数据
搜索引擎模式:在精确模式的基础上,对长词再次进行切分
示例如下,假设要分割的句子为:seg = '我来到北京清华大学'
精确模式 | jieba.cut(seg ,cut_all=False) | list(jieba.cut(seg ,cut_all=False)) ['我', '来到', '北京', '清华大学'] |
全模式模式 | jieba.cut(seg ,cut_all=True) | list(jieba.cut(seg ,cut_all=True)) ['我', '来到', '北京', '清华', '清华大学', '华大', '大学'] |
搜索引擎模式 | jieba.cut_for_search(seg ) | list(jieba.cut_for_search(seg)) ['我', '来到', '北京', '清华', '华大', '大学', '清华大学'] |
list(jieba.cut('我来到北京清华大学',cut_all=False))
['我', '来到', '北京', '清华大学']
list(jieba.cut('我来到北京清华大学',cut_all=True))
['我', '来到', '北京', '清华', '清华大学', '华大', '大学']
list(jieba.cut_for_search('我来到北京清华大学'))
['我', '来到', '北京', '清华', '华大', '大学', '清华大学']
二、两个函数的列表模式
jieba.cut 以及 jieba.cut_for_search 返回的是一个可迭代对象,可以使用 for 循环来获得分词结果
jieba.lcut 以及 ieba.lcut_for_search 直接返回 list
1、直接使用jieba.cut 和 jieba.cut_for_search
jieba.cut('我来到北京清华大学',cut_all=False)
<generator object Tokenizer.cut at 0x00000134D8B6EAC0>
jieba.cut_for_search('我来到北京清华大学')
<generator object Tokenizer.cut_for_search at 0x00000134D8B6EF90>
要获取其中的分词结果,有多种方法可以获取
for循环获取
result = jieba.cut('我来到北京清华大学',cut_all=False)
for i in result:
print(i)
我
来到
北京
清华大学
用join函数获取
';'.join(jieba.cut('我来到北京清华大学',cut_all=False))
'我;来到;北京;清华大学'
' '.join(jieba.cut('我来到北京清华大学',cut_all=False))
'我 来到 北京 清华大学'
直接使用list
list(jieba.cut('我来到北京清华大学',cut_all=False))
['我', '来到', '北京', '清华大学']
当然,结巴里面直接也有类似的函数,不需要自己去处理了,看下面两个
2、使用jieba.lcut 和 jieba.lcut_for_search
jieba.lcut('我来到北京清华大学',cut_all=False)
['我', '来到', '北京', '清华大学']
jieba.lcut('我来到北京清华大学',cut_all=True)
['我', '来到', '北京', '清华', '清华大学', '华大', '大学']
jieba.lcut_for_search('我来到北京清华大学')
['我', '来到', '北京', '清华', '华大', '大学', '清华大学']
先写这么多,其他的下次在写
↓扫描关注本号↓