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模式可以将一些有关联的词语分成一个
词性编码 | 词性名称 | 注 解 |
---|---|---|
Ag | 形语素 | 形容词性语素。形容词代码为 a,语素代码g前面置以A。 |
a | 形容词 | 取英语形容词 adjective的第1个字母。 |
ad | 副形词 | 直接作状语的形容词。形容词代码 a和副词代码d并在一起。 |
an | 名形词 | 具有名词功能的形容词。形容词代码 a和名词代码n并在一起。 |
b | 区别词 | 取汉字“别”的声母。 |
c | 连词 | 取英语连词 conjunction的第1个字母。 |
dg | 副语素 | 副词性语素。副词代码为 d,语素代码g前面置以D。 |
d | 副词 | 取 adverb的第2个字母,因其第1个字母已用于形容词。 |
e | 叹词 | 取英语叹词 exclamation的第1个字母。 |
f | 方位词 | 取汉字“方” |
g | 语素 | 绝大多数语素都能作为合成词的“词根”,取汉字“根”的声母。 |
h | 前接成分 | 取英语 head的第1个字母。 |
i | 成语 | 取英语成语 idiom的第1个字母。 |
j | 简称略语 | 取汉字“简”的声母。 |
k | 后接成分 | |
l | 习用语 | 习用语尚未成为成语,有点“临时性”,取“临”的声母。 |
m | 数词 | 取英语 numeral的第3个字母,n,u已有他用。 |
Ng | 名语素 | 名词性语素。名词代码为 n,语素代码g前面置以N。 |
n | 名词 | 取英语名词 noun的第1个字母。 |
nr | 人名 | 名词代码 n和“人(ren)”的声母并在一起。 |
ns | 地名 | 名词代码 n和处所词代码s并在一起 |
nt | 机构团体 | “团”的声母为 t,名词代码n和t并在一起。 |
nz | 其他专名 | “专”的声母的第 1个字母为z,名词代码n和z并在一起。 |
o | 拟声词 | 取英语拟声词 onomatopoeia的第1个字母 |
p | 介词 | 取英语介词 prepositional的第1个字母。 |
q | 量词 | 取英语 quantity的第1个字母。 |
r | 代词 | 取英语代词 pronoun的第2个字母,因p已用于介词。 |
s | 处所词 | 取英语 space的第1个字母。 |
tg | 时语素 | 时间词性语素。时间词代码为 t,在语素的代码g前面置以T。 |
t | 时间词 | 取英语 time的第1个字母。 |
u | 助词 | 取英语助词 auxiliary |
vg | 动语素 | 动词性语素。动词代码为 v。在语素的代码g前面置以V。 |
v | 动词 | 取英语动词 verb的第一个字母。 |
vd | 副动词 | 直接作状语的动词。动词和副词的代码并在一起。 |
vn | 名动词 | 指具有名词功能的动词。动词和名词的代码并在一起。 |
w | 标点符号 | |
x | 非语素字 | 非语素字只是一个符号,字母 x通常用于代表未知数、符号。 |
y | 语气词 | 取汉字“语”的声母。 |
z | 状态词 | 取汉字“状”的声母的前一个字母。 |
un | 未知词 | 不可识别词及用户自定义词组。取英文Unkonwn首两个字母。(非北大标准,CSW分词中定义) |