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操作MySQL数据库的三种方法总结
Jan 30 Python
Python实现抢购IPhone手机
Feb 07 Python
对python .txt文件读取及数据处理方法总结
Apr 23 Python
Python wxPython库消息对话框MessageDialog用法示例
Sep 03 Python
实例详解python函数的对象、函数嵌套、名称空间和作用域
May 31 Python
Python实现微信小程序支付功能
Jul 25 Python
Linux下升级安装python3.8并配置pip及yum的教程
Jan 02 Python
selenium 多窗口切换的实现(windows)
Jan 18 Python
keras获得model中某一层的某一个Tensor的输出维度教程
Jan 24 Python
Python流程控制常用工具详解
Feb 24 Python
Django 实现将图片转为Base64,然后使用json传输
Mar 27 Python
python爬虫容易学吗
Jun 02 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代码
2013/03/24 PHP
使用php测试硬盘写入速度示例
2014/01/27 PHP
JS获取并操作iframe中元素的方法
2013/03/21 Javascript
细说javascript函数从函数的构成开始
2013/08/29 Javascript
jquery使用$(element).is()来判断获取的tagName
2014/08/24 Javascript
用原生JS获取CLASS对象(很简单实用)
2014/10/15 Javascript
Javascript递归打印Document层次关系实例分析
2015/05/15 Javascript
使用jQuery Mobile框架开发移动端Web App的入门教程
2016/05/17 Javascript
Angular.js中$apply()和$digest()的深入理解
2016/10/13 Javascript
前端图片懒加载(lazyload)的实现方法(提高用户体验)
2017/08/21 Javascript
SVG动画vivus.js库使用小结(实例代码)
2017/09/14 Javascript
JS使用正则表达式获取小括号、中括号及花括号内容的方法示例
2018/06/01 Javascript
详解Vue开发微信H5微信分享签名失败问题解决方案
2018/08/09 Javascript
微信小程序自定义多列选择器使用详解
2019/06/21 Javascript
Python的time模块中的常用方法整理
2015/06/18 Python
Python出现segfault错误解决方法
2016/04/16 Python
python爬虫爬取网页表格数据
2018/03/07 Python
Python Pexpect库的简单使用方法
2019/01/29 Python
python实现本地批量ping多个IP的方法示例
2019/08/07 Python
Python GUI编程学习笔记之tkinter控件的介绍及基本使用方法详解
2020/03/30 Python
使用matlab 判断两个矩阵是否相等的实例
2020/05/11 Python
python如何从键盘获取输入实例
2020/06/18 Python
Java爬虫技术框架之Heritrix框架详解
2020/07/22 Python
CSS3中的display:grid,网格布局介绍
2019/10/30 HTML / CSS
HTML5 drag和drop具体使用详解
2021/01/18 HTML / CSS
新加坡领先的时尚生活方式零售品牌:CHARLES & KEITH
2018/01/16 全球购物
如何向接受结构参数的函数传入常数值
2016/02/17 面试题
一封普通求职者的求职信
2013/11/20 职场文书
预备党员思想汇报范文
2013/12/29 职场文书
考试没考好检讨书
2014/01/31 职场文书
消防安全管理制度
2014/02/01 职场文书
项目采购员岗位职责
2014/04/15 职场文书
求职信怎么写范文
2014/05/26 职场文书
超市创意活动方案
2014/08/15 职场文书
小学生国庆节演讲稿
2014/09/05 职场文书
创业计划书之酒店
2019/08/30 职场文书