1.安装jieba库

在windows的Anaconda环境下如果没有设置环境变量,则从Dos命令先进入...\Anaconda3\Scripts 目录中,然后运行以下命令即可:

pip install jieba

2.分词示例

我们先用一段文本来进行分词并做词频统计:

央视网消息:当地时间11日,美国国会参议院以88票对11票的结果通过了一项动议,允许国会“在总统以国家安全为由决定征收关税时”发挥一定的限制作用。这项动议主要针对加征钢铝关税的232调查,目前尚不具有约束力。动议的主要发起者——共和党参议员鲍勃·科克说,11日的投票只是一小步,他会继续推动进行有约束力的投票。

可以看到,这段文本当中还包含了很多标点符号和数字,显然这不是我们想要的,所以在分词的时候要去掉这些。

2.1 普通分词模式

import jieba
import re
cut_words=[]
for line in open('./text1.txt',encoding='utf-8'):line.strip('\n')line = re.sub("[A-Za-z0-9\:\·\—\,\。\“ \”]", "", line)seg_list=jieba.cut(line,cut_all=False)cut_words.append(" ".join(seg_list))
print(cut_words)>> 结果['央视网 消息 当地 时间 日 美国国会参议院 以票 对票 的 结果 通过 了
一项 动议 允许 国会 在 总统 以 国家 安全 为 由 决定 征收 关税 时 发挥
一定 的 限制 作用 这项 动议 主要 针对 加征 钢铝 关税 的 调查 目前 尚
不 具有 约束力 动议 的 主要 发起者 共和党 参议员 鲍勃 科克 说 日 的
投票 只是 一 小步 他会 继续 推动 进行 有 约束力 的 投票']

2.1 全分词模式

import jieba
import re
cut_words=[]
for line in open('./text1.txt',encoding='utf-8'):line.strip('\n')line = re.sub("[A-Za-z0-9\:\·\—\,\。\“ \”]", "", line)seg_list=jieba.cut(line,cut_all=True)cut_words.append(" ".join(seg_list))
print(cut_words)>> 结果['央视 央视网 视网 消息 当地 时间 日 美国 美国国会 美国国会参议院 国会 参议
参议院 议院 以 票 对 票 的 结果 通过 了 一项 动议 允许 许国 国会 在 总统 以国家 家安 安全 为 由 决定 征收 关税 时 发挥 一定 的 限制 制作 作用 这项
动议 的 主要 发起 发起者 共和 共和党 党参 参议 参议员 议员 鲍 勃 科克 说
日 的 投票 只是 一小 小步 他 会 继续 推动 进行 有 约束 约束力 的 投票']

3.词频统计

做词频统计需要用到另外一个包collection中的Counter计数器(如果没有自行安装,安装方法同jieba一样)。但是需要注意的是,像上面那样分词后的形式不能做词频统计,因为Counter是将list中的一个元素视为一个词,所以在上面要略微修改。

import jieba
import re
from collections import Counter
cut_words=""
for line in open('./text1.txt',encoding='utf-8'):line.strip('\n')line = re.sub("[A-Za-z0-9\:\·\—\,\。\“ \”]", "", line)seg_list=jieba.cut(line,cut_all=False)cut_words+=(" ".join(seg_list))
all_words=cut_words.split()
print(all_words)
c=Counter()
for x in all_words:if len(x)>1 and x != '\r\n':c[x] += 1print('\n词频统计结果:')
for (k,v) in c.most_common(2):# 输出词频最高的前两个词print("%s:%d"%(k,v))>> 结果['央视网', '消息', '当地', '时间', '日', '美国国会参议院', '以票',
'对票', '的', '结果', '通过', '了', '一项', '动议', '允许', '国会','在', '总统', '以', '国家', '安全', '为', '由', '决定', '征收', '主要', '针对', '加征', '钢铝', '关税', '的', '调查', '目前', '尚', '参议员', '鲍勃', '科克', '说', '日', '的', '投票', '只是', '一', '小步', '他会', '继续', '推动', '进行', '有', '约束力', '的', '投票']词频统计结果:
动议:3
关税:2

4.添加自定义分词规则

什么叫添加自定义规则呢? 比如下面这个词:“南京市”。

import jieba
jieba.load_userdict('../data/user_cut_dic.txt')
str = "南京市"
r = jieba.cut(str,cut_all=False)
temp = ' '.join(r)
print(temp)

jieba默认会将它看成一个整体。明显这也是大多数情况下我们期望的结果,但真的就不会有“南京”和“市”这种分词方式吗?

jieba提供了两种方式来解决:

第一种:导入用户自定义的分词样例(就像是自定义停用词一样)的本地文件;
比如在此处,我在../data/user_cut_dic.txt中添加了如下样例:

南京 999999999

得到了如下结果:“南京 市”,其中后面的数字是倾向于这种分词的权重(比重),中间用一个空格隔开。

第二种:在代码中添加分词建议;

import jieba
jieba.suggest_freq(('南京',"市"), True)
str = "南京市"
r = jieba.cut(str,cut_all=False)
temp = ' '.join(r)
print(temp)

更多内容欢迎扫码关注公众号月来客栈!

利用jieba进行中文分词并进行词频统计相关推荐

  1. python利用jieba实现中文分词

    jieba是一款强大的python第三方中文分词库.目前jieba已经支持四种分词模式: 精确模式:试图将句子最精确地切开,不存在冗余数据,适合文本分析. 全模式:把句子中所有的可以成词的词语都扫描出 ...

  2. 【python 走进NLP】利用jieba技术中文分词并写入txt

    简单介绍: 近年来,随着NLP自然语言处理技术的日益成熟,开源实现的分词工具也越来越多,比如NLTK:其在英文分词较为成熟,分词效果较好,在处理中文分词方面则显得力不足:在处理中文分词时,Jieba这 ...

  3. 利用python绘制简易词云图(使用jieba进行中文分词)

    词云(wordcloud)图能过滤掉大量的文本信息,使我们能抓住问题的集中点(一般集中点就是经常提到的点,也就是词频数会比较高).其实制作词云没什么技术含量,主要就是将用于绘制词云的所有词都传给软件, ...

  4. Python第三方库jieba(中文分词)入门与进阶(官方文档)

    jieba "结巴"中文分词:做最好的 Python 中文分词组件 github:https://github.com/fxsjy/jieba 特点 支持三种分词模式: 精确模式, ...

  5. Py之jieba:Python包之jieba包(中文分词最好的组件)简介、安装、使用方法之详细攻略

    Py之jieba:Python包之jieba包(中文分词最好的组件)简介.安装.使用方法之详细攻略 目录 jieba简介 jieba安装 jieba使用方法 1.进行分词 jieba简介 jieba应 ...

  6. python 对excel文件进行分词并进行词频统计_python 词频分析

    python词频分析 昨天看到几行关于用 python 进行词频分析的代码,深刻感受到了 python 的强大之处.(尤其是最近自己为了在学习 c 语言感觉被它的语法都快搞炸了,python 从来没有 ...

  7. [python] 使用Jieba工具中文分词及文本聚类概念

    前面讲述了很多关于Python爬取本体Ontology.消息盒InfoBox.虎扑图片等例子,同时讲述了VSM向量空间模型的应用.但是由于InfoBox没有前后文和语义概念,所以效果不是很好,这篇文章 ...

  8. 手把手教你用Jieba做中文分词

    导读:近年来,随着NLP技术日益成熟,开源实现的分词工具越来越多,如Ansj.HanLP.盘古分词等.本文我们选取了Jieba进行介绍. 作者:杜振东 涂铭 来源:大数据DT(ID:hzdashuju ...

  9. jieba分词_wordcloud词云美化——jieba结巴中文分词(将长句拆分)

    大家好,上一篇文章<五行代码上手WordCloud词云--用一个重复的单词做一个单词云>已经带大家初步认识了词云的基本制作流程,本节教大家如何对长句进行拆分制作词云: 首先我们来了解这张图 ...

  10. [Python知识图谱] 三.Jieba工具中文分词、添加自定义词典及词性标注详解

    本系列文章主要结合Python语言实现知识图谱构建相关工程,具有一定创新性和实用性,非常希望各位博友交流讨论,相互促进成长.前面两篇文章详细讲解了哈工大Pyltp工具,包括中文分词.词性标注.实体识别 ...

最新文章

  1. 慕课堂签到迟到怎么办_线上教学第一周:长安大学精品课程助力“云端课堂”...
  2. http超文本传输协议的http头部分析
  3. 开发一个出生年份的下拉选择框供用户选择_你的下拉式菜单设计对了吗?
  4. 感谢诸君的陪伴,见证微信 SDK 的成长,内含黑科技福利
  5. DCB(串口的DCB结构)
  6. CSRF 跨站请求伪造 为什么b网站请求a网站的地址能带上a网站的cookie
  7. STM32——库函数版——独立按键程序
  8. cookie的工作原理、cookie的重要性
  9. 面渣逆袭:HashMap追魂二十三问
  10. 五种方法教你预防ddos攻击
  11. 解析|拼多多爆红背后值得借鉴的思路
  12. 2022年程序员开工第一周,应该收藏这样一份书单
  13. 二维数组 string[,]
  14. 第十届全球云计算大会 | 华云数据荣获“2013-2022十周年特别贡献奖”
  15. 【时序】基于 TCN 的用于序列建模的通用卷积和循环网络的经验评估
  16. Time Freeze 时间冻结 影子系统
  17. 微信小程序 扫码 加载图片
  18. 来自未来的交互设计。当电影中的一切变为现实,设计师要如何进化?
  19. java计算机毕业设计师资管理系统源代码+数据库+系统+lw文档
  20. 错误:Element type “select“ must be declared.

热门文章

  1. linux禁用别人ping自己,linux /etc/sysctl.conf 禁止别人ping自己
  2. C++ 异常处理(try catch throw)
  3. JavaScript成都市地图网页代码
  4. Dynamics AX 2012 Manufacturing (Part 1)
  5. linux是一个类似unix操作系统,3种与Linux类似的UNIX操作系统
  6. 《Android 应用案例开发大全(第3版)》——第1.3节Android开发环境的搭建
  7. android应用开发实战
  8. IDEA构建Spring源码
  9. 佳能ir2002g无法扫描到计算机,佳能ir2002g扫描驱动
  10. 佳能ts9020墨盒不识别_canon佳能TS9010 TS9020清零软件5B00佳能TS9040废墨盒清零1700