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实现跨文件全局变量的方法
Jul 07 Python
python多重继承实例
Oct 11 Python
Swift中的协议(protocol)学习教程
Jul 08 Python
Django使用详解:ORM 的反向查找(related_name)
May 30 Python
Python使用pickle模块报错EOFError Ran out of input的解决方法
Aug 16 Python
python生成九宫格图片
Nov 19 Python
Python 获取指定文件夹下的目录和文件的实现
Aug 30 Python
Pytorch使用MNIST数据集实现基础GAN和DCGAN详解
Jan 10 Python
如何使用python传入不确定个数参数
Feb 18 Python
keras自动编码器实现系列之卷积自动编码器操作
Jul 03 Python
详解Python流程控制语句
Oct 28 Python
python如何利用paramiko执行服务器命令
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
网站当前的在线人数
2006/10/09 PHP
php入门学习知识点三 PHP上传
2011/07/14 PHP
9个经典的PHP代码片段分享
2014/12/18 PHP
php使用fullcalendar日历插件详解
2019/03/06 PHP
在javascript中关于节点内容加强
2013/04/11 Javascript
javascript检测对象中是否存在某个属性判断方法小结
2013/05/19 Javascript
Javascript常用小技巧汇总
2015/06/24 Javascript
FullCalendar日历插件应用之数据展现(一)
2015/12/23 Javascript
深入学习JavaScript的AngularJS框架中指令的使用方法
2016/03/05 Javascript
javascript HTML5文件上传FileReader API
2020/03/27 Javascript
angularjs 源码解析之scope
2016/08/22 Javascript
JS实现滑动门效果的方法详解
2016/12/19 Javascript
详解jQuery lazyload 懒加载
2016/12/19 Javascript
JS实现table表格内针对某列内容进行即时搜索筛选功能
2018/05/11 Javascript
webpack结合express实现自动刷新的方法
2019/05/07 Javascript
在Vue中使用icon 字体图标的方法
2019/06/14 Javascript
JS监听组合按键思路及实现过程
2020/04/17 Javascript
Vue如何基于es6导入外部js文件
2020/05/15 Javascript
[03:00]DOTA2-DPC中国联赛1月18日Recap集锦
2021/03/11 DOTA
Python中标准库OS的常用方法总结大全
2017/07/19 Python
基于Python实现的ID3决策树功能示例
2018/01/02 Python
详谈Python中列表list,元祖tuple和numpy中的array区别
2018/04/18 Python
Python socket套接字实现C/S模式远程命令执行功能案例
2018/07/06 Python
结合OpenCV与TensorFlow进行人脸识别的实现
2019/10/10 Python
python用tkinter实现一个简易能进行随机点名的界面
2020/09/27 Python
python 制作网站小说下载器
2021/02/20 Python
英国最大的奢侈珠宝和手表网站:C W Sellors
2017/02/10 全球购物
Bench加拿大官方网站:英国城市服装品牌
2017/11/03 全球购物
工商管理专业实习生自我鉴定
2013/09/29 职场文书
物流管理专业应届生求职信
2013/11/21 职场文书
化妆师职业生涯规划书
2014/02/16 职场文书
销售口号大全
2014/06/11 职场文书
道路运输企业安全生产责任书
2014/07/28 职场文书
2015年政协委员工作总结
2015/05/20 职场文书
学校趣味运动会开幕词
2016/03/04 职场文书
面试分析分布式架构Redis热点key大Value解决方案
2022/03/13 Redis