python中jieba库详解
| 函数 | 描述 |
|---|---|
| jieba.cut(s) | 精确模式,返回一个可迭代的数据类型 |
| jieba.cut(s, cut_all = Ture) | 全模式,输出文本s中所有可能的单词 |
| jieba.cut_for_search(s) | 搜索引擎模式,适合搜索引擎建立索引的分词结果 |
| jieba.lcut(s) | 精确模型,返回一个列表模型,建议使用 |
| jieba.lcut(s, cut_all=Ture) | 全模型,返回一个列表模型,建议使用 |
| jieba.lcut_for_search(s) | 搜索引擎模型,返回一个列表类型,建议使用 |
| jieba.add_word(w) | 向分词词典中添加新词w |
分词返回值类型:
- cut 和 cut_for_search 返回值类型都是一个迭代器(可迭代对象, 使用for可以依次遍历出来)
- lcut 和 lcut_for_search 返回值类型都是一个列表
参数问题:
-
jieba.cut 和 jieba.lcut接受 3 个参数:
-
- 需要分词的字符串(unicode 或 UTF-8 字符串、GBK 字符串)
- cut_all 参数:是否使用全模式,默认值为 False
- HMM 参数:用来控制是否使用 HMM 模型,默认值为 True
-
jieba.cut_for_search和jieba.lcut_for_search 接受 2 个参数:
-
- 需要分词的字符串(unicode 或 UTF-8 字符串、GBK 字符串)
- HMM 参数:用来控制是否使用 HMM 模型,默认值为 True
模式问题:
-
全模式和精确模式:
# 全模式 seg_list = jieba.cut("他来自河北地质大学", cut_all=True) print("【全模式】:" + "/ ".join(seg_list)) # 【全模式】:他/ 来自/ 河北/ 北地/ 地质/ 大学 # 精确模式 seg_list = jieba.cut("他来自河北地质大学", cut_all=False) print("【精确模式】:" + "/ ".join(seg_list)) #【精确模式】:他/ 来自/ 河北/ 地质/ 大学由上面可得:
- 全模式是吧该文档中所有可能组成的词语划分出来
- 精确模式就是单纯的对句子进行划分
-
搜索引擎模式:
# 搜索引擎模式 seg_list = jieba.cut_for_search("我朋友现就读于河北地质大学软件工程专业,现在正在自己搞机器学习,他说有点难") print("【搜索引擎模式】:" + "|".join(seg_list)) #【搜索引擎模式】:我|朋友|就读|现就读|于|河北|地质|大学|软件|工程|软件工程|专业|,|现在|正在|自己|搞|机器|学习|,|他|说|有点|难 # 搜索引擎模式 seg_list = jieba.lcut_for_search("我朋友现就读于河北地质大学软件工程专业,现在正在自己搞机器学习,他说有点难") print(f"【搜索引擎模式】:{seg_list}") # 【搜索引擎模式】:['我', '朋友', '就读', '现就读', '于', '河北', '地质', '大学', '软件', '工程', '软件工程', '专业', ',', '现在', '正在', '自己', '搞', '机器', '学习', ',', '他', '说', '有点', '难']搜索引擎模式由上面可得,就是先把分词写在前面,然后把组合后的词语放在后面,
-
HMM 模式
# 未启用 HMM seg_list = jieba.cut("这是奥运史上独特的一次奥运会", HMM=False) #默认精确模式和启用 HMM print("【未启用 HMM】:" + "/ ".join(seg_list)) #【未启用 HMM】:这/ 是/ 奥运/ 史/ 上/ 独特/ 的/ 一次/ 奥运会 # 启用 HMM seg_list = jieba.cut("这是奥运史上独特的一次奥运会") #默认精确模式和启用 HMM print("【启用 HMM】:" + "/ ".join(seg_list)) #【启用 HMM】:这是/ 奥运/ 史上/ 独特/ 的/ 一次/ 奥运会HMM模式可以将一些有关联的词语分成一个