前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >中文分词库 jieba

中文分词库 jieba

作者头像
用户6021899
发布2019-08-14 17:11:31
1.8K0
发布2019-08-14 17:11:31
举报

使用 python 的 jieba库可以将中文句子分割成一个一个词语, 在机器学习中,可用于生成中文的词向量。我们可以使用 pip 免费安装 jieba 库。

jieba 有三种分词模式:

  • 精确模式

把文本精确的切分开,不存在冗余的词语。是最常用的模式。

  • 全模式

把文本中所有可能的词语都扫描出来,有冗余。

  • 搜索引擎模式

在精确模式的基础上,对长的词语再次切分,有冗余。

代码语言:javascript
复制
import jieba
#lcut()函数返回一个列表类型的分词结果
>>> jieba.lcut("中国是一个伟大的国家") #精确模式.第一次调用时会创建初始的分词词库
Building prefix dict from the default dictionary ...
Loading model from cache c:\Temp\jieba.cache
Loading model cost 0.771 seconds.
Prefix dict has been built succesfully.
['中国', '是', '一个', '伟大', '的', '国家']
代码语言:javascript
复制
>>> jieba.lcut("中国是一个伟大的国家", cut_all =True)#全模式
['中国', '国是', '一个', '伟大', '的', '国家']
#'中国', '国是' 有冗余:‘国’字重复
代码语言:javascript
复制
>>> jieba.lcut_for_search("中华人民共和国是伟大的")#搜索引擎模式,有冗余,长词再次分割
['中华', '华人', '人民', '共和', '共和国', '中华人民共和国', '是', '伟大', '的']

我们还可以向jieba的分词词典加入自定义的词:

代码语言:javascript
复制
>>> jieba.add_word("雨女无瓜")
>>> jieba.lcut("为何带面具?雨女无瓜")
['为何', '带', '面具', '?', '雨女无瓜']

也可以删除分词词典中的某个词语:

代码语言:javascript
复制
>>> jieba.del_word("雨女无瓜")
>>> jieba.lcut("为何带面具?雨女无瓜")
['为何', '带', '面具', '?', '雨女', '无瓜']

下面的例子介绍了如何用结巴库统计《西游记》中各个词语出现的次数,看看谁是主要角色:

代码语言:javascript
复制
#中文词频统计
import jieba
with open(r"e:\西游记.txt", "r", encoding="utf-8") as f:
    txt = f.read()
words = jieba.lcut(txt)
counts = {}
for word in words:
    if len(word) == 1: #忽略标点符号和其它长度为1的词
        continue
    else:
        counts[word] = counts.get(word, 0) +1
items = list(counts.items()) #字典转列表
items.sort(key = lambda x : x[1], reverse=True) #按词频降序排列
N=20
for i in range(N):# top N
    word, count = items[i]
    print("{0:<10}{1:>5}".format(word, count))
from matplotlib import pyplot as plt
plt.bar(range(0, 2*N,2), [x[1] for x in items[:N]], tick_label = [x[0] for x in items[:N]])
plt.title("《西游记》词频统计 \ntop 20", fontsize =18)
plt.show()

通过忽略一些虚词,合并一些同一角色的不同名字 可以对上述代码进行优化。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python可视化编程机器学习OpenCV 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档