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编程中的for循环语句学习教程
Oct 14 Python
Python爬虫实现爬取京东手机页面的图片(实例代码)
Nov 30 Python
Python实现输出某区间范围内全部素数的方法
May 02 Python
使用Python向C语言的链接库传递数组、结构体、指针类型的数据
Jan 29 Python
Python递归函数实例讲解
Feb 27 Python
python快速编写单行注释多行注释的方法
Jul 31 Python
wxPython实现带颜色的进度条
Nov 19 Python
Python imageio读取视频并进行编解码详解
Dec 10 Python
哈工大自然语言处理工具箱之ltp在windows10下的安装使用教程
May 07 Python
python中os包的用法
Jun 01 Python
详解python的super()的作用和原理
Oct 29 Python
PyCharm常用配置和常用插件(小结)
Feb 06 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
萌王史莱姆”萌王性别尴尬!那“萌战”归女组还是男?
2018/12/17 日漫
《PHP边学边教》(01.开篇――准备工作)
2006/12/13 PHP
php获取字段名示例分享
2014/03/03 PHP
phplot生成图片类用法详解
2015/01/06 PHP
Zend Framework教程之Zend_Registry对象用法分析
2016/03/22 PHP
php处理单文件、多文件上传代码分享
2016/08/24 PHP
php如何利用pecl安装mongodb扩展详解
2019/01/09 PHP
Laravel Validator 实现两个或多个字段联合索引唯一
2019/05/08 PHP
javascript Object与Function使用
2010/01/11 Javascript
Document对象内容集合(比较全)
2010/09/06 Javascript
cnblogs中在闪存中屏蔽某人的实现代码
2010/11/14 Javascript
40个新鲜出炉的jQuery 插件和免费教程[上]
2012/07/24 Javascript
jQuery编辑器KindEditor4.1.4代码高亮显示设置教程
2013/03/01 Javascript
Js判断CSS文件加载完毕的具体实现
2014/01/17 Javascript
leaflet的开发入门教程
2016/11/17 Javascript
基于jQuery Easyui实现登陆框界面
2017/07/10 jQuery
JS点击图片弹出文件选择框并覆盖原图功能的实现代码
2017/08/25 Javascript
windows下更新npm和node的方法
2017/11/30 Javascript
解决jquery的ajax调取后端数据成功却渲染失败的问题
2018/08/08 jQuery
在vue中实现嵌套页面(iframe)
2020/07/30 Javascript
JavaScript中条件语句的优化技巧总结
2020/12/04 Javascript
[01:20]DOTA2上海特级锦标赛现场采访:谁的ID最受青睐
2016/03/25 DOTA
在阿里云服务器上配置CentOS+Nginx+Python+Flask环境
2016/06/18 Python
python子线程退出及线程退出控制的代码
2019/10/16 Python
Python self用法详解
2020/11/28 Python
css3边框_动力节点Java学院整理
2017/07/11 HTML / CSS
使用html2canvas实现浏览器截图的示例代码
2018/01/26 HTML / CSS
瑞典手机壳品牌:Richmond & Finch
2018/04/28 全球购物
路德维希•贝克(LUDWIG BECK)中文官网:德国大型美妆百货
2020/09/19 全球购物
PHP面试题及答案二
2015/05/23 面试题
初一地理教学反思
2014/01/16 职场文书
工作过失检讨书
2014/02/23 职场文书
我们的节日清明节活动总结
2014/04/30 职场文书
幼儿园植树节活动总结
2014/07/04 职场文书
2015年企业员工工作总结范文
2015/05/21 职场文书
windows11怎么查看自己安装的版本号? win11版本号的查看方法
2021/11/21 数码科技