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 不同对象比较大小示例探讨
Aug 21 Python
Python实现子类调用父类的方法
Nov 10 Python
Python实现的归并排序算法示例
Nov 21 Python
python实现随机森林random forest的原理及方法
Dec 21 Python
Python如何生成树形图案
Jan 03 Python
利用Python在一个文件的头部插入数据的实例
May 02 Python
python hbase读取数据发送kafka的方法
Dec 27 Python
PyQt5 加载图片和文本文件的实例
Jun 14 Python
selenium中get_cookies()和add_cookie()的用法详解
Jan 06 Python
QML实现钟表效果
Jun 02 Python
用python写PDF转换器的实现
Oct 29 Python
python 爬虫爬取京东ps4售卖情况
Dec 18 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
为什么夜间收到的中波电台比白天多
2021/03/01 无线电
vBulletin HACK----显示话题大小和打开新窗口于论坛索引页
2006/10/09 PHP
利用static实现表格的颜色隔行显示的代码
2007/09/02 PHP
用PHP读取RSS feed的代码
2008/08/01 PHP
php 获取远程网页内容的函数
2009/09/08 PHP
PHP中使用php5-ffmpeg撷取视频图片实例
2015/01/07 PHP
PHP转换文本框内容为HTML格式的方法
2016/07/20 PHP
laravel-admin select框默认选中的方法
2019/10/03 PHP
cssQuery()的下载与使用方法
2007/01/12 Javascript
js下通过getList函数实现分页效果的代码
2010/09/17 Javascript
Javascript 面向对象编程(coolshell)
2012/03/18 Javascript
从阶乘函数对比Javascript和C#的异同
2012/05/31 Javascript
jquery post方式传递多个参数值后台以数组的方式进行接收
2013/01/11 Javascript
三种取消选中单选框radio的方法
2014/09/09 Javascript
解决js下referer兼容各大浏览器的方法
2014/11/03 Javascript
原生javascript实现DIV拖拽并计算重复面积
2015/01/02 Javascript
JavaScript实现的多个图片广告交替显示效果代码
2015/09/04 Javascript
JavaScript的History API使搜索引擎抓取AJAX内容
2015/12/07 Javascript
JS随机打乱数组的方法小结
2016/06/22 Javascript
javascript用defineProperty实现简单的双向绑定方法
2020/04/03 Javascript
[00:59]PWL开团时刻DAY7——我在赶
2020/11/06 DOTA
python中子类调用父类函数的方法示例
2017/08/18 Python
Python基于回溯法子集树模板解决取物搭配问题实例
2017/09/02 Python
对python中矩阵相加函数sum()的使用详解
2019/01/28 Python
Django实现列表页商品数据返回教程
2020/04/03 Python
opencv 图像轮廓的实现示例
2020/07/08 Python
如何使用python-opencv批量生成带噪点噪线的数字验证码
2020/12/21 Python
MyFrenchPharma中文网:最大的法国药妆平台
2016/10/07 全球购物
Oasis服装官网:时尚女装在线
2020/07/09 全球购物
会计专业自荐信
2014/06/03 职场文书
小学班主任培训方案
2014/06/04 职场文书
我的中国梦演讲稿小学篇
2014/08/19 职场文书
党支部组织生活会整改方案
2014/09/30 职场文书
负责培养人意见
2015/06/05 职场文书
幼儿园庆六一主持词
2015/06/30 职场文书
关于Spring配置文件加载方式变化引发的异常详解
2022/01/18 Java/Android