python实现简单中文词频统计示例


Posted in Python onNovember 08, 2017

本文介绍了python实现简单中文词频统计示例,分享给大家,具体如下:

任务

简单统计一个小说中哪些个汉字出现的频率最高

知识点

1.文件操作
2.字典
3.排序
4.lambda

代码

import codecs
import matplotlib.pyplot as plt
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['FangSong'] # 指定默认字体
mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题

word = []
counter = {}

with codecs.open('data.txt') as fr:
 for line in fr:
  line = line.strip()
  if len(line) == 0:
   continue
  for w in line:
   if not w in word:
    word.append(w)
   if not w in counter:
    counter[w] = 0
   else:
    counter[w] += 1

counter_list = sorted(counter.items(), key=lambda x: x[1], reverse=True)

print(counter_list[:50])

label = list(map(lambda x: x[0], counter_list[:50]))
value = list(map(lambda y: y[1], counter_list[:50]))

plt.bar(range(len(value)), value, tick_label=label)
plt.show()

统计了一个11M的小说,结果如下:

[(',', 288508), ('。', 261584), ('的', 188693), ('陈', 92565), ('欢', 92505), ('不', 91234), ('是', 90562), ('了', 86931), ('一', 79059), ('着', 77997), ('他'
, 71695), ('这', 63580), ('人', 61210), ('“', 59719), ('”', 59115), ('有', 56054), ('就', 52862), ('个', 49097), ('都', 46850), ('你', 45400), ('来', 42659),
 ('我', 40057), ('在', 37676), ('们', 36966), ('到', 36351), ('说', 35828), ('还', 35260), ('么', 32601), ('下', 31742), ('地', 30692), ('得', 29904), ('上', 2
9627), ('看', 28408), ('没', 28333), ('出', 27937), ('道', 27732), ('大', 27012), ('?', 26729), ('那', 26589), ('要', 26076), ('子', 25035), ('自', 24012), ('
点', 23942), ('好', 21345), ('想', 21242), ('里', 20915), ('面', 20661), ('她', 20313), ('过', 20304), ('话', 20110)]

 python实现简单中文词频统计示例

使用jieba先对中文文档进行分词处理

import sys 
reload(sys) 
sys.setdefaultencoding("utf-8") 
 
import jieba 
import jieba.analyse 
 
wf = open('clean_title.txt','w+') 
for line in open('/root/clean_data/clean_data.csv'): 
 
  item = line.strip('\n\r').split('\t') //制表格切分 
  # print item[1] 
  tags = jieba.analyse.extract_tags(item[1]) //jieba分词 
  tagsw = ",".join(tags) //逗号连接切分的词 
  wf.write(tagsw) 
 
wf.close()

输出的clean_title.txt内容
邮轮,地中海,深度,罗马,自由纳西,柏林签证,步行,三天,批准申根,手把手,签证,申请,如何赞爆,法兰,穿越,葡萄酒,风景,河谷,世界欧洲颜色,一种,国家,一个水族箱,帕劳,七日,上帝奥林匹亚,跑步圣托, 
里尼,文明古国,探访,爱琴海,魅力,希腊 

2、统计词频

#!/usr/bin/python 
# -*- coding:utf-8 -*- 
 
word_lst = [] 
word_dict= {} 
with open('/root/clean_data/clean_title.txt') as wf,open("word.txt",'w') as wf2: //打开文件 
 
  for word in wf: 
    word_lst.append(word.split(',')) //使用逗号进行切分 
    for item in word_lst: 
       for item2 in item: 
        if item2 not in word_dict: //统计数量 
          word_dict[item2] = 1 
        else: 
          word_dict[item2] += 1 
 
  for key in word_dict: 
    print key,word_dict[key] 
    wf2.write(key+' '+str(word_dict[key])+'\n') //写入文档

结果:

最后 4 
欧洲幽蓝 1 
集美 1 
葡萄牙法多 1 
工地 1 
知道湖光山色 1 
神圣 7 
欧洲少女瑞士加游 1 

根据词汇数量排序查看:

cat word.txt |sort -nr -k 2|more

神圣 7 
最后 4 
欧洲幽蓝 1 
集美 1 
葡萄牙法多 1 
工地 1 
知道湖光山色 1 
欧洲少女瑞士加游 1 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
详解Python的Django框架中Manager方法的使用
Jul 21 Python
Python导入模块时遇到的错误分析
Aug 30 Python
使用Python实现从各个子文件夹中复制指定文件的方法
Oct 25 Python
pygame游戏之旅 添加icon和bgm音效的方法
Nov 21 Python
基于python历史天气采集的分析
Feb 14 Python
把JSON数据格式转换为Python的类对象方法详解(两种方法)
Jun 04 Python
Django用户认证系统 User对象解析
Aug 02 Python
原生python实现knn分类算法
Oct 24 Python
Python多线程模块Threading用法示例小结
Nov 09 Python
python模拟预测一下新型冠状病毒肺炎的数据
Feb 01 Python
Python2.6版本pip安装步骤解析
Aug 17 Python
python 用struct模块解决黏包问题
Nov 07 Python
python中如何正确使用正则表达式的详细模式(Verbose mode expression)
Nov 08 #Python
python如何使用正则表达式的前向、后向搜索及前向搜索否定模式详解
Nov 08 #Python
Python入门之三角函数全解【收藏】
Nov 08 #Python
Python入门之三角函数tan()函数实例详解
Nov 08 #Python
Python入门之三角函数sin()函数实例详解
Nov 08 #Python
Python入门之三角函数atan2()函数详解
Nov 08 #Python
使用Pyinstaller的最新踩坑实战记录
Nov 08 #Python
You might like
PHP小技巧搜集,每个PHPer都来露一手
2007/01/02 PHP
PHP的fsockopen、pfsockopen函数被主机商禁用的解决办法
2014/07/08 PHP
PHP SOCKET编程详解
2015/05/22 PHP
php微信公众平台开发之微信群发信息
2016/09/13 PHP
thinkPHP框架整合tcpdf插件操作示例
2018/08/07 PHP
tp5框架无刷新分页实现方法分析
2019/09/26 PHP
10个基于浏览器的JavaScript调试工具分享
2013/02/07 Javascript
Ajax请求在数据量大的时候出现超时的解决方法
2014/02/27 Javascript
jQuery的:parent选择器定义和用法
2014/07/01 Javascript
jquery单选框radio绑定click事件实现方法
2015/01/14 Javascript
jquery 中ajax执行的优先级
2015/06/22 Javascript
jQuery 获取跨域XML(RSS)数据的相关总结分析
2016/05/18 Javascript
bootstrap提示标签、提示框实现代码
2016/12/28 Javascript
ajax与json 获取数据并在前台使用简单实例
2017/01/19 Javascript
简化vuex的状态管理方案的方法
2018/06/02 Javascript
用python删除java文件头上版权信息的方法
2014/07/31 Python
Python数据结构与算法之图结构(Graph)实例分析
2017/09/05 Python
Python基于回溯法子集树模板解决马踏棋盘问题示例
2017/09/11 Python
浅谈使用Python内置函数getattr实现分发模式
2018/01/22 Python
python中in在list和dict中查找效率的对比分析
2018/05/04 Python
Python 监测文件是否更新的方法
2019/06/10 Python
Python math库 ln(x)运算的实现及原理
2019/07/17 Python
用python写测试数据文件过程解析
2019/09/25 Python
PyCharm使用Docker镜像搭建Python开发环境
2019/12/26 Python
什么是Deployment descriptors;都有什么类型的部署描述符
2015/07/28 面试题
优秀毕业生事迹材料
2014/02/12 职场文书
销售顾问岗位职责
2014/02/25 职场文书
管理学院毕业生自荐信范文
2014/03/10 职场文书
入股协议书
2014/04/14 职场文书
小学一年级学生评语
2014/04/22 职场文书
代理协议书范本
2014/04/22 职场文书
工商管理本科生求职信
2014/07/13 职场文书
民主评议教师党员自我评价
2015/03/04 职场文书
在校生证明
2015/06/17 职场文书
巾帼建功标兵先进事迹材料
2016/02/29 职场文书
默认网关不可用修复后过一会又不好使了解决方法
2022/04/08 数码科技