中文分析jieba简单应用

2019-10-28 16:03:19 浏览数 (1)

版权声明:本文为博主原创文章,遵循 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分词/ 非常/ 好用/ ,/ 可以/ 自定义/ 金融词典/ !

0 人点赞