基于jieba库的词频分析

文章目录

  • 基于jieba库的词频分析
    • 说在前面
    • 1.文章内容的选取
    • 2.文章的预处理
    • 3.用jieba库进行分词
    • 4.统计词频
    • 5.用wordcloud生成词云
    • 附源代码

说在前面

  • 由于前段时间学习任务较重,故所做的一些东西没有及时写博客更新,从今天开始我将会把之前的项目更新到博客。
  • 这次基于jieba库的词频分析是python课上留的一个小作业,主要是熟悉对英文和中文的词频统计并分析得到结论。

1.文章内容的选取

  • 本次选取词频分析的文章是国家发布的一个新冠肺炎疫情社区防控的指导方案,这篇文章主要讲了如何在社区进行疫情防控,首先将这篇文章复制下来,以"utf-8"格式保存为".txt"文件

下面是最终保存的结果图:

2.文章的预处理

  • 从上图也可以看出文章里面有许多标点符号、特殊字符、换行符 “\n” 等,这些字符都会给后面的分词带来影响,所以我们首先要对文章进行预处理,把这些无用字符去掉。
def read_txt(path):'''读文件'''txt = open(path, 'r', encoding='utf-8').read()for x in ' ,。“‘’”:!、《》;? 」「…":':txt = txt.replace(x, "")txt = txt.replace("\n","")return txt
  • 这里使用replace方法将读到的文本中的无用字符用""代替。

3.用jieba库进行分词

  • 之后用jieba进行分词,这里定义了两个列表,分别存取新创的构词和无关的待去掉的构词,比如新添构词:“新冠肺炎”、“社区防控”、“委员会”等,待去掉的构词:“做好”、“对于”、“逐步”、“推动”等;之后遍历这两个列表,分别调用jieba.add_word()加入新增构词、jieba.del_word()删除无关构词;然后调用jieba.lcut()生成分词后的列表。
def get_words(txt):'''用jieba进行分词'''new_words = ['新冠肺炎', '社区防控', '委员会', '组织领导', '医学观察', '精准化', '精细化']del_words = ['做好', '对于', '逐步', '做到', '推动', '根据', '要求', '返回']for i in new_words:jieba.add_word(i)for i in del_words:jieba.del_word(i)words = jieba.lcut(txt)return words

4.统计词频

  • 下面进行词频的统计,这里定义了一个字典,遍历分词之后的列表,判断字符串长度是否大于1(取代单独一个字符的词),调用count()方法统计该词的出现次数,并和该词构成一个键值对存到字典中,这样就完成了词频的统计,接着调用sort()方法以字典的值降序排序,打印出前30个词及词频。
def deal_with_words(words):'''统计词频'''dic = {}for i in words:if len(i) > 1:dic[i] = words.count(i)words_list = list(dic.items())words_list.sort(key= lambda x:x[1], reverse=True)print ('字符\t词频')print ('=============')for i in range(30):word, count = words_list[i]print("{0:<10}{1:>5}".format(word, count))
  • 以下是最终打印出来的结果:前面是分割出来的词,后面是出现的次数。

    字符    词频
    =============
    社区           83
    工作           40
    防控           35
    社区防控         33
    疫情           26
    人员           25
    管理           23
    服务           21
    居民           20
    生活           16
    组织           16
    物资           16
    措施           14
    机制           12
    健康           12
    参与           11
    医学观察         10
    地区           10
    隔离           10
    配送           10
    新冠肺炎          9
    实施            9
    群众            9
    完善            9
    社区服务          9
    机构            8
    志愿者           8
    加强            8
    信息            8
    高风险           8
    

5.用wordcloud生成词云

  • 下面利用wordcloud生成词云,并用matplotlib库对其进行绘图,更加直观展现关键词及重要程度,调用Wordcloud的generate()方法对分词后的字符串进行词云的产生,之后用matplotlib中的imshow()方法绘制词云图,设置坐标轴隐藏,使用show()方法将其显示出来。
def create_word_cloud(words):'''绘制词云'''txt = ' '.join(words)wc = WordCloud(font_path='./fonts/simhei.ttf',width=800, height=600, mode='RGBA', background_color=None).generate(txt)plt.imshow(wc, interpolation='bilinear')plt.axis('off')plt.show()
  • 下面是最终生成的词云图:

  • 通过词云和统计的词频可以发现“社区”、“工作”、“防控”、“居民服务”等关键词比较突出,大致可以总结出这篇文章主要是谈社区防控的,并且对居民生活要有保障物资,各地应该是要有相应的措施,后面的“健康”、“医学观察”、“地区”、“隔离”、“配送”则表明要求关注居民的健康问题,如果发现有人有发热状况要立即进行隔离并进行医学观察,给居民配送物资等,基本上就是社区防控与服务居民的方案指导。

附源代码

import jieba
from wordcloud import WordCloud
import matplotlib.pyplot as pltdef read_txt(path):'''读文件'''txt = open(path, 'r', encoding='utf-8').read()for x in ' ,。“‘’”:!、《》;? 」「…":':txt = txt.replace(x, "")txt = txt.replace("\n","")return txtdef get_words(txt):'''用jieba进行分词'''new_words = ['新冠肺炎', '社区防控', '委员会', '组织领导', '医学观察', '精准化', '精细化']del_words = ['做好', '对于', '逐步', '做到', '推动', '根据', '要求', '返回']for i in new_words:jieba.add_word(i)for i in del_words:jieba.del_word(i)words = jieba.lcut(txt)return wordsdef deal_with_words(words):'''统计词频'''dic = {}for i in words:if len(i) > 1:dic[i] = words.count(i)words_list = list(dic.items())words_list.sort(key= lambda x:x[1], reverse=True)print ('字符\t词频')print ('=============')for i in range(30):word, count = words_list[i]print("{0:<10}{1:>5}".format(word, count))def create_word_cloud(words):'''绘制词云'''txt = ' '.join(words)wc = WordCloud(font_path='./fonts/simhei.ttf',width=800, height=600, mode='RGBA', background_color=None).generate(txt)plt.imshow(wc, interpolation='bilinear')plt.axis('off')plt.show()def main():'''主函数'''txt = read_txt('疫情指导方案.txt')words = get_words(txt)deal_with_words(words)create_word_cloud(words)if __name__ == '__main__':main()

基于jieba库的词频分析相关推荐

  1. jieba库词频统计_运用jieba库进行词频统计

    Python第三方库jieba(中文分词) 一.概述 jieba是优秀的中文分词第三方库 - 中文文本需要通过分词获得单个的词语 - jieba是优秀的中文分词第三方库,需要额外安装 - jieba库 ...

  2. python jieba库分词_Python基于jieba库进行简单分词及词云功能实现方法

    本文实例讲述了Python基于jieba库进行简单分词及词云功能实现方法.分享给大家供大家参考,具体如下: 目标: 1.导入一个文本文件 2.使用jieba对文本进行分词 3.使用wordcloud包 ...

  3. Python_note6 组合数据类型+jieba库+文本词频统计

    集合类型和操作 集合元素不可修改,由不可变数据类型组成,元素不可重复 a = {"python",123,("python",123)}使用{}建立集合 b = ...

  4. 基于python的中文词频分析

    受http://yixuan.cos.name/cn/2011/03/text-mining-of-song-poems/这篇文章的启发,觉得PYTHON来做文字处理分析应该不错,可以来做个词频分析, ...

  5. python中利用jieba库统计词频,counts[word] = counts.get(word,0)+1的使用

    import jieba txt = open("阿甘正传-网络版.txt","r",encoding ="utf-8").read() w ...

  6. jieba库分词词频统计

    代码已发至github上的python文件 词频统计结果如下(词频为1的词组数量已省略): {'是': 5, '风格': 4, '擅长': 4, '的': 4, '兴趣': 4, '宣言': 4, ' ...

  7. NLP算法-基于 Jieba 的词频统计

    基于 Jieba 的词频统计 什么是词频统计 基于Jieba的词频统计 1.分词器 2.分词后的统计 测试说明 demo 什么是词频统计 在一份给定的文件里,词频(term frequency,TF) ...

  8. jieba库词频统计_用jieba库统计文本词频及云词图的生成

    一.安装jieba库 :\>pip install jieba #或者 pip3 install jieba 二.jieba库解析 jieba库主要提供提供分词功能,可以辅助自定义分词词典. j ...

  9. Python入门与词频分析初步

    一.python与其他语言的区别 1.python作为一门解释性语言,与java.C等语言相比,第一个特点就是python不用编译,可以像脚本一样直接运行.前几天咱们工作室有同学问我,他的编程界面为什 ...

  10. Jieba库使用和好玩的词云

    1.认识jieba库和安装. 主要功能包括分词,添加自定义词典,关键词提取,词性标注,并行分词,Tokenize:返回词语在原文的起始位置,命令行分词等功能. 代码对 Python 2/3 均兼容 全 ...

最新文章

  1. 70个NumPy分级练习:用Python一举搞定机器学习矩阵运算
  2. Jquery让按钮(控件)不可见或者不可用
  3. 完美解决distinct中使用多个字段的方法
  4. python判断远程文件是否存在
  5. Elasticsearch 常见的DSL语法
  6. idea创建文件自定义注释
  7. Android逆向:二进制xml文件解析 之 Start Tag Chunk
  8. Java中this()和super()的注意点
  9. 笔试题--Multicore简答题(下)
  10. ios打包ipa的四种实用方法(.app转.ipa)
  11. 如何让BERT具有文本生成能力
  12. (赠票)2021年佛山敏捷之旅暨第1届佛山DevOps社区Meetup
  13. 存储服务器2012R2系统怎么搞文件共享,server2012r2文件共享局域网权限设置的方法...
  14. Let's talk OOP Again
  15. 学java对年龄有要求吗_Java学习有年龄限制吗,多大年纪就不能学习?
  16. 让你的 Mac 用上最美的屏保,Aerial 使用教程
  17. H106OJ | 第二次练习(查找)
  18. SpringBoot迷你天猫商城系统(附源码)
  19. 华为云IoT设备接入服务全体验
  20. 数学归纳法及例题分析

热门文章

  1. 企业搭建网站主要流程以及六个基本步骤
  2. 小米8连续点击Android版本,极致模式已开启!小米MIUI8隐藏功能大盘点
  3. python少儿编程竞赛_家长必读!国内外含金量最高的编程比赛全在这了!
  4. Magick 使用注意
  5. matlab画雷达目标航迹,基于MATLAB的雷达目标测量仿真分析
  6. 计算机怎样设置默认美式键盘,完美:如何在win10系统中将默认输入法设置为美式键盘...
  7. python换照片底色,20行代码教你用python给证件照换底色的方法示例
  8. 十大编程语言_2020年十大最佳编程语言
  9. 【有利可图网】PS教程:制作变形文字
  10. C# AutoCAD图纸插入块(另一个dwg文件)