版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/chengyuqiang/article/details/102736575
1、三种分词模式
代码语言:javascript复制import jieba
msg = '安徽省长江流域!'
seg_list = jieba.cut(msg, cut_all=True)
print('全模式:', '/ ' .join(seg_list))
seg_list = jieba.cut(msg, cut_all=False)
print('精确模式:', '/ '.join(seg_list))
seg_list = jieba.cut(msg)
print('默认精确模式:', '/ '.join(seg_list))
seg_list = jieba.cut_for_search(msg)
print('搜索引擎模式', '/ '.join(seg_list))
输出结果
代码语言:javascript复制全模式: 安徽/ 安徽省/ 省长/ 长江/ 长江流域/ 江流/ 流域/ /
精确模式: 安徽省/ 长江流域/ !
默认精确模式: 安徽省/ 长江流域/ !
搜索引擎模式 安徽/ 安徽省/ 长江/ 江流/ 流域/ 长江流域/ !
2、词性标注
代码语言:javascript复制#词性标准
#词性标准
import jieba.posseg as psg
sent = '中文分词是文本处理不可或缺的一步,没有比jieba更好的中文分词工具了!'
seg_list = psg.cut(sent)
# seg_list是generator类型
# generator是一个函数,返回一个对象(迭代器),可以对其进行迭代
print(seg_list)
result = " ".join(["{0}/{1}n".format(word, flag) for word, flag in seg_list])
print(result)
输出
代码语言:javascript复制<generator object cut at 0x000001D430220E58>
中文/nz
分词/n
是/v
文本处理/n
不可或缺/l
的/uj
一步/m
,/x
没有/v
比/p
jieba/eng
更好/d
的/uj
中文/nz
分词/n
工具/n
了/ul
!/x
说明:
- n 名词
- ns 地名
- nz 其它专名
- v 动词
- vd 副动词
- vn 名动词
- a 形容词
- w 标点符号
- u 助词
- r 代词
- w 标点符号
- d 副词
3、词典应用
代码语言:javascript复制import jieba
#加载系统词典
# 每一行分三部分:词语、词频(可省略)、词性(可省略),用空格隔开,顺序不可颠倒
jieba.set_dictionary('./data/dict.txt.big')
sent = 'jieba分词非常好用,可以自定义金融词典!'
seg_list = jieba.cut(sent)
# str.join(sequence),将序列中的元素以指定的字符连接生成一个新的字符串
print('只加载系统词典:', '/ '.join(seg_list))
jieba.load_userdict('./data/user_dict.utf8')
seg_list = jieba.cut(sent)
print('加载自定义词典后:', '/ '.join(seg_list))
执行结果
代码语言:javascript复制只加载系统词典: jieba/ 分词/ 非常/ 好用/ ,/ 可以/ 自定义/ 金融/ 词典/ !
加载自定义词典后: jieba分词/ 非常/ 好用/ ,/ 可以/ 自定义/ 金融词典/ !