一、准备阶段:
(1)打开cmd,pip安装jieba(pip install jieba)
(2)打开python安装目录的Lib->site-packages->jieba,打开dict.txt,可以看到这是jieba模块的词典:
每三个为一组,分别是:词、词频、词性,关于词性的对照表见附录。
二、编写代码:
1、准备阶段:
import jieba #导入模块
#创建用于分词的文本
sentence="我喜欢上海东方明珠"
2、进行文本分词:
(1)精准模式分词法,根据词频获得句子中的最大词频组合,也是默认的分词方法,下面两种代码实现结果相同:
w1=jieba.cut(sentence,cut_all=False)
w1=jieba.cut(sentence)
(2)全模式分词法,获取句子中的所有组合词:
w2=jieba.cut(sentence,cut_all=False)
(3)搜索引擎分词法,按照搜索引擎的方式进行分词:
w3=jieba.cut_for_search(sentence)
(4)输出分词结果,注意到分词法返回的结果是generator object,因此必须循环输出:
print("精准模式:\n")
for item in w1:
print(item)
print("全模式:\n")
for item in w2:
print(item)
print("搜索引擎模式:\n")
for item in w3:
print(item)
结果:
3、获得分词结果的同时获取词语的词性:需要使用jieba.posseg.cut方法代替原有分词法。
import jieba.posseg
sentence="我喜欢上海东方明珠"
w4=jieba.posseg.cut(sentence)
#.flag词性,.word词语
for item in w4:
print(item.word+"-------"+item.flag)
结果:
4、自定义词典:
(1)测试,在无自定义词典的情况下:
import jieba
sentence="欢迎来到召唤师峡谷"
w5=jieba.cut(sentence)
for item in w5:
print(item)
结果:
“召唤师峡谷”是一个专有名词,想要让其识别需要自定义词典。
(2)新建dict2.txt,在内输入:
(第2和第3参数可以省略),然后保存,注意编码必须为UTF-8。
(3)编写代码读取字典并再次分词:
import jieba
#读取字典
jieba.load_userdict("E:/dict2.txt")
sentence="欢迎来到召唤师峡谷"
w6=jieba.cut(sentence)
for item in w6:
print(item)
结果:
(4)或者通过代码的方式添加词典:
import jieba
#添加词典词语
jieba.add_word("召唤师峡谷")
#同理删除词典词语:jieba.del_word("峡谷")
sentence="欢迎来到召唤师峡谷"
w7=jieba.cut(sentence)
for item in w7:
print(item)
可实现同样的效果。
5、调高词典词频(没有则添加):
import jieba
#调高词典词语的词频,没有则添加
jieba.suggest_freq("召唤师峡谷",True)
sentence="欢迎来到召唤师峡谷"
w7=jieba.cut(sentence)
for item in w7:
print(item)
5、提取关键词:
即提取词频较高的几个词,默认提取前20个,若总词数少于20则输出全部。
import jieba.analyse
sentence3="我喜欢上海东方明珠哈哈东方明珠"
tag=jieba.analyse.extract_tags(sentence3,3)
print(tag)
结果:
6、返回词语位置:
(1)默认情况(精准分词模式)
import jieba.analyse
sentence3="我喜欢上海东方明珠哈哈东方明珠"
w8=jieba.tokenize(sentence3)
for item in w8:
print(item)
结果:
(2)搜索引擎分词模式:
import jieba.analyse
sentence3="我喜欢上海东方明珠哈哈东方明珠"
w9=jieba.tokenize(sentence3,mode="search")
for item in w9:
print(item)
词性 |
表示符号 |
形容词 | a 形容词 |
ad 副形词 | |
an 名形词 | |
ag 形容词性语素 | |
al 形容词性惯用语 | |
区别词 | b 区别词 |
bl 区别词性惯用语 | |
连词 | c 连词 |
cc 并列连词 | |
副词 | d 副词 |
叹词 | e 叹词 |
方位词 | f 方位词 |
前缀 | h 前缀 |
后缀 | k 后缀 |
数词 | m 数词 |
mq 数量词 | |
名词 | n 名词 |
nr 人名 | |
nr1 汉语姓氏 | |
nr2 汉语名字 | |
nrj 日语人名 | |
nrf 音译人名 | |
ns 地名 | |
nsf 音译地名 | |
nt 机构团体名 | |
nz 其它专名 | |
nl 名词性惯用语 | |
ng 名词性语素 | |
拟声词 | o 拟声词 |
介词 | p 介词 |
pba 介词“把” | |
pbei 介词“被” | |
量词 | q 量词 |
qv 动量词 | |
qt 时量词 | |
代词 | r 代词 |
rr 人称代词 | |
rz 指示代词 | |
rzt 时间指示代词 | |
rzs 处所指示代词 | |
rzv 谓词性指示代词 | |
ry 疑问代词 | |
ryt 时间疑问代词 | |
rys 处所疑问代词 | |
ryv 谓词性疑问代词 | |
rg 代词性语素 | |
处所词 | s 处所词 |
时间词 | t 时间词 tg 时间词性语素 |
助词 | u 助词 |
uzhe 着 | |
ule 了 喽 | |
uguo 过 | |
ude1 的 底 | |
ude2 地 | |
ude3 得 | |
usuo 所 | |
udeng 等 等等 云云 | |
uyy 一样 一般 似的 般 | |
udh 的话 | |
uls 来讲 来说 而言 说来 | |
uzhi 之 | |
ulian 连 (“连小学生都会”) | |
动词 | v 动词 |
vd 副动词 | |
vn 名动词 | |
vshi 动词“是” | |
vyou 动词“有” | |
vf 趋向动词 | |
vx 形式动词 | |
vi 不及物动词(内动词) | |
vl 动词性惯用语 | |
vg 动词性语素 | |
标点符号 | w 标点符号 |
wkz 左括号,全角:( 〔 [ { 《 【 〖 〈 半角:( [ { < wky 右括号,全角:) 〕 ] } 》 】 〗 〉 半角: ) ] { > | |
wyz 左引号,全角:“ ‘ 『 | |
wyy 右引号,全角:” ’ 』 | |
wj 句号,全角:。 | |
ww 问号,全角:? 半角:? wt 叹号,全角:! 半角:! | |
wd 逗号,全角:, 半角:, | |
wf 分号,全角:; 半角: ; | |
wn 顿号,全角:、wm 冒号,全角:: 半角: : | |
ws 省略号,全角:…… … | |
wp 破折号,全角:—— -- ——- 半角:— —- | |
wb 百分号千分号,全角:% ‰ 半角:% | |
wh 单位符号,全角:¥ $ £ ° ℃ 半角:$ | |
字符串 | x 字符串 xx 非语素字 xu 网址URL |
语气词 | y 语气词(delete yg) |
状态词 | z 状态词 |