利用jieba进行中文分词并进行词频统计
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进行中文分词并进行词频统计相关推荐
- python利用jieba实现中文分词
jieba是一款强大的python第三方中文分词库.目前jieba已经支持四种分词模式: 精确模式:试图将句子最精确地切开,不存在冗余数据,适合文本分析. 全模式:把句子中所有的可以成词的词语都扫描出 ...
- 【python 走进NLP】利用jieba技术中文分词并写入txt
简单介绍: 近年来,随着NLP自然语言处理技术的日益成熟,开源实现的分词工具也越来越多,比如NLTK:其在英文分词较为成熟,分词效果较好,在处理中文分词方面则显得力不足:在处理中文分词时,Jieba这 ...
- 利用python绘制简易词云图(使用jieba进行中文分词)
词云(wordcloud)图能过滤掉大量的文本信息,使我们能抓住问题的集中点(一般集中点就是经常提到的点,也就是词频数会比较高).其实制作词云没什么技术含量,主要就是将用于绘制词云的所有词都传给软件, ...
- Python第三方库jieba(中文分词)入门与进阶(官方文档)
jieba "结巴"中文分词:做最好的 Python 中文分词组件 github:https://github.com/fxsjy/jieba 特点 支持三种分词模式: 精确模式, ...
- Py之jieba:Python包之jieba包(中文分词最好的组件)简介、安装、使用方法之详细攻略
Py之jieba:Python包之jieba包(中文分词最好的组件)简介.安装.使用方法之详细攻略 目录 jieba简介 jieba安装 jieba使用方法 1.进行分词 jieba简介 jieba应 ...
- python 对excel文件进行分词并进行词频统计_python 词频分析
python词频分析 昨天看到几行关于用 python 进行词频分析的代码,深刻感受到了 python 的强大之处.(尤其是最近自己为了在学习 c 语言感觉被它的语法都快搞炸了,python 从来没有 ...
- [python] 使用Jieba工具中文分词及文本聚类概念
前面讲述了很多关于Python爬取本体Ontology.消息盒InfoBox.虎扑图片等例子,同时讲述了VSM向量空间模型的应用.但是由于InfoBox没有前后文和语义概念,所以效果不是很好,这篇文章 ...
- 手把手教你用Jieba做中文分词
导读:近年来,随着NLP技术日益成熟,开源实现的分词工具越来越多,如Ansj.HanLP.盘古分词等.本文我们选取了Jieba进行介绍. 作者:杜振东 涂铭 来源:大数据DT(ID:hzdashuju ...
- jieba分词_wordcloud词云美化——jieba结巴中文分词(将长句拆分)
大家好,上一篇文章<五行代码上手WordCloud词云--用一个重复的单词做一个单词云>已经带大家初步认识了词云的基本制作流程,本节教大家如何对长句进行拆分制作词云: 首先我们来了解这张图 ...
- [Python知识图谱] 三.Jieba工具中文分词、添加自定义词典及词性标注详解
本系列文章主要结合Python语言实现知识图谱构建相关工程,具有一定创新性和实用性,非常希望各位博友交流讨论,相互促进成长.前面两篇文章详细讲解了哈工大Pyltp工具,包括中文分词.词性标注.实体识别 ...
最新文章
- 慕课堂签到迟到怎么办_线上教学第一周:长安大学精品课程助力“云端课堂”...
- http超文本传输协议的http头部分析
- 开发一个出生年份的下拉选择框供用户选择_你的下拉式菜单设计对了吗?
- 感谢诸君的陪伴,见证微信 SDK 的成长,内含黑科技福利
- DCB(串口的DCB结构)
- CSRF 跨站请求伪造 为什么b网站请求a网站的地址能带上a网站的cookie
- STM32——库函数版——独立按键程序
- cookie的工作原理、cookie的重要性
- 面渣逆袭:HashMap追魂二十三问
- 五种方法教你预防ddos攻击
- 解析|拼多多爆红背后值得借鉴的思路
- 2022年程序员开工第一周,应该收藏这样一份书单
- 二维数组 string[,]
- 第十届全球云计算大会 | 华云数据荣获“2013-2022十周年特别贡献奖”
- 【时序】基于 TCN 的用于序列建模的通用卷积和循环网络的经验评估
- Time Freeze 时间冻结 影子系统
- 微信小程序 扫码 加载图片
- 来自未来的交互设计。当电影中的一切变为现实,设计师要如何进化?
- java计算机毕业设计师资管理系统源代码+数据库+系统+lw文档
- 错误:Element type “select“ must be declared.
热门文章
- linux禁用别人ping自己,linux /etc/sysctl.conf 禁止别人ping自己
- C++ 异常处理(try catch throw)
- JavaScript成都市地图网页代码
- Dynamics AX 2012 Manufacturing (Part 1)
- linux是一个类似unix操作系统,3种与Linux类似的UNIX操作系统
- 《Android 应用案例开发大全(第3版)》——第1.3节Android开发环境的搭建
- android应用开发实战
- IDEA构建Spring源码
- 佳能ir2002g无法扫描到计算机,佳能ir2002g扫描驱动
- 佳能ts9020墨盒不识别_canon佳能TS9010 TS9020清零软件5B00佳能TS9040废墨盒清零1700