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 16 Python
python中os操作文件及文件路径实例汇总
Jan 15 Python
Python通过正则表达式选取callback的方法
Jul 18 Python
Scrapy-redis爬虫分布式爬取的分析和实现
Feb 07 Python
python如何在循环引用中管理内存
Mar 20 Python
Python实现判断并移除列表指定位置元素的方法
Apr 13 Python
python3+PyQt5+Qt Designer实现堆叠窗口部件
Apr 20 Python
Python中collections模块的基本使用教程
Dec 07 Python
使用Python爬虫库requests发送请求、传递URL参数、定制headers
Jan 25 Python
在Ubuntu 20.04中安装Pycharm 2020.1的图文教程
Apr 30 Python
浅析Python中字符串的intern机制
Oct 03 Python
一篇文章带你搞懂Python类的相关知识
May 20 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学习之数组值的操作
2011/04/17 PHP
php curl 伪造IP来源的实例代码
2012/11/01 PHP
PHP容易忘记的知识点分享
2013/04/30 PHP
PHP将Excel导入数据库及数据库数据导出至Excel的方法
2015/06/24 PHP
PHP支付系统设计与典型案例分享
2016/08/02 PHP
jquery关于页面焦点的定位(文本框获取焦点时改变样式 )
2010/09/10 Javascript
火狐4、谷歌12不支持Jquery Validator的解决方法分享
2011/06/20 Javascript
JavaScript自定义事件介绍
2013/08/29 Javascript
Ajax同步与异步传输的示例代码
2013/11/21 Javascript
javascript初学者常用技巧
2014/09/02 Javascript
JavaScript列表框listbox全选和反选的实现方法
2015/03/18 Javascript
深入浅析search 搜索框的写法
2016/08/02 Javascript
jQuery实现的网页换肤效果示例
2016/09/20 Javascript
JavaScript三种绑定事件方式及相互之间的区别分析
2017/01/10 Javascript
微信小程序 两种为对象属性赋值的方式详解
2017/02/23 Javascript
JavaScript装饰器函数(Decorator)实例详解
2017/03/30 Javascript
jQuery实现div跟随鼠标移动
2020/08/20 jQuery
详解webpack分包及异步加载套路
2017/06/29 Javascript
vue组件父子间通信详解(三)
2017/11/07 Javascript
Node.js 使用jade模板引擎的示例
2018/05/11 Javascript
JavaScript HTML DOM元素 节点操作汇总
2019/07/29 Javascript
Python3.2中的字符串函数学习总结
2015/04/23 Python
通过5个知识点轻松搞定Python的作用域
2016/09/09 Python
Python django框架应用中实现获取访问者ip地址示例
2019/05/17 Python
python3跳出一个循环的实例操作
2020/08/18 Python
Python 必须了解的5种高级特征
2020/09/10 Python
python基于pygame实现飞机大作战小游戏
2020/11/19 Python
python二维图制作的实例代码
2020/12/03 Python
YSL圣罗兰美妆官方旗舰店:购买YSL口红
2018/04/16 全球购物
Europcar澳大利亚官网:全球汽车租赁领域的领导者
2019/03/24 全球购物
SQL中where和having的区别
2012/06/17 面试题
电脑教师的教学自我评价
2013/11/26 职场文书
银行先进个人事迹材料
2014/05/11 职场文书
中学生教师节演讲稿
2014/09/03 职场文书
2014年团员学习十八大思想汇报
2014/09/13 职场文书
Nginx已编译的nginx-添加新模块
2021/04/01 Servers