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两个整数相除得到浮点数值的方法
Mar 18 Python
详解Python中break语句的用法
May 14 Python
快速排序的算法思想及Python版快速排序的实现示例
Jul 02 Python
Python操作csv文件实例详解
Jul 31 Python
python with提前退出遇到的坑与解决方案
Jan 05 Python
浅谈Python中的bs4基础
Oct 21 Python
python 读取文件并把矩阵转成numpy的两种方法
Feb 12 Python
python 实现将Numpy数组保存为图像
Jan 09 Python
python读取文件指定行内容实例讲解
Mar 02 Python
python3+opencv 使用灰度直方图来判断图片的亮暗操作
Jun 02 Python
sqlalchemy实现时间列自动更新教程
Sep 02 Python
python神经网络编程之手写数字识别
May 08 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
PHP4实际应用经验篇(8)
2006/10/09 PHP
PHP autoload与spl_autoload自动加载机制的深入理解
2013/06/05 PHP
php生成唯一数字id的方法汇总
2015/11/18 PHP
jquery tools系列 expose 学习
2009/09/06 Javascript
jQuery插件实现表格隔行换色且感应鼠标高亮行变色
2013/09/22 Javascript
Webpack 实现 Node.js 代码热替换
2015/10/22 Javascript
javascript类型系统 Window对象学习笔记
2016/01/07 Javascript
简单谈谈json跨域
2016/03/13 Javascript
AngularJS 与Bootstrap实现表格分页实例代码
2016/10/14 Javascript
js 将input框中的输入自动转化成半角大写(税号输入框)
2017/02/16 Javascript
nodejs结合Socket.IO实现的即时通讯功能详解
2018/01/12 NodeJs
微信小程序使用swiper组件实现层叠轮播图
2018/11/04 Javascript
mpvue性能优化实战技巧(小结)
2019/04/17 Javascript
微信小程序实现上传word、txt、Excel、PPT等文件功能
2019/05/23 Javascript
解决layui table表单提示数据接口请求异常的问题
2019/09/24 Javascript
javascript实现随机抽奖功能
2020/12/30 Javascript
原生js实现九宫格拖拽换位
2021/01/26 Javascript
js实现鼠标切换图片(无定时器)
2021/01/27 Javascript
[55:26]DOTA2-DPC中国联赛 正赛 Aster vs LBZS BO3 第一场 2月23日
2021/03/11 DOTA
Python的Django框架使用入门指引
2015/04/15 Python
Python之Web框架Django项目搭建全过程
2017/05/02 Python
python 执行shell命令并将结果保存的实例
2018/05/11 Python
python3读取csv和xlsx文件的实例
2018/06/22 Python
Python SMTP发送邮件遇到的一些问题及解决办法
2018/10/24 Python
Python3.8中使用f-strings调试
2019/05/22 Python
django框架基于queryset和双下划线的跨表查询操作详解
2019/12/11 Python
Python数组并集交集补集代码实例
2020/02/18 Python
python GUI库图形界面开发之PyQt5窗口背景与不规则窗口实例
2020/02/25 Python
世界上最好的威士忌和烈性酒购买网站:The Whisky Exchange
2016/11/20 全球购物
德国BA保镖药房韩文网:kr.ba.de
2017/09/04 全球购物
社区清明节活动总结
2014/07/04 职场文书
竞选班长演讲稿400字
2014/08/22 职场文书
党的群众路线教育实践活动个人整改措施
2014/10/27 职场文书
电影开国大典观后感
2015/06/04 职场文书
2015年中学总务处工作总结
2015/07/22 职场文书
MySQL表的增删改查基础教程
2021/04/07 MySQL