python利用多种方式来统计词频(单词个数)


Posted in Python onMay 27, 2019

python的思维就是让我们用尽可能少的代码来解决问题。对于词频的统计,就代码层面而言,实现的方式也是有很多种的。之所以单独谈到统计词频这个问题,是因为它在统计和数据挖掘方面经常会用到,尤其是处理分类问题上。故在此做个简单的记录。

统计的材料如下:

document = [
  'look', 'into', 'my', 'eyes', 'look', 'into', 'my', 'eyes',
 'the', 'eyes', 'the', 'eyes', 'the', 'eyes', 'not', 'around', 'the',
 'eyes', "don't", 'look', 'around', 'the', 'eyes', 'look', 'into',
 'my', 'eyes', "you're", 'under']

直接使用dict来进行统计(遍历+循环)

word_count = {}
for word in document:
  if word in word_count:
    word_count[word] += 1
 else:
    word_count[word] = 1

更优雅的实现方式

#假如字典中不存在给定的键,则返回参数中提供的默认值;反之,则返回字典中保存的值。
for word in document:
  previous_count = word_count.get(word, 0)
  word_count[word] = previous_count + 1
#可以合并成一行
for word in document:
 word_count[word] = word_count.setdefault(word, 0) + 1

使用defalutdict来实现

# 使用collections中的defalutdict来实现,defalutdict是一种值可以默认设置的dict
from collections import defaultdict
word_count = defaultdict(int)
for word in document:
  word_count[word] += 1

使用Counter

word_counter = Counter(document)

Counter既然是一个计数器,那么它本身也就具有很多统计的方法。例如,最常见的词频统计的排序,可以获得前n个最高的词频。

# 返回前n个最高词频,以字典的形式
word_counter.most_common(n)

显然,使用defalutdict和Counter代码最简洁,更能符合python开发之道。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
centos系统升级python 2.7.3
Jul 03 Python
从Python程序中访问Java类的简单示例
Apr 20 Python
python计算方程式根的方法
May 07 Python
python与php实现分割文件代码
Mar 06 Python
Selenium定时刷新网页的实现代码
Oct 31 Python
python用fsolve、leastsq对非线性方程组求解
Dec 15 Python
Python基础学习之时间转换函数用法详解
Jun 18 Python
python文件转为exe文件的方法及用法详解
Jul 08 Python
python PIL/cv2/base64相互转换实例
Jan 09 Python
Python GUI库PyQt5样式QSS子控件介绍
Feb 25 Python
Win10下用Anaconda安装TensorFlow(图文教程)
Jun 18 Python
Python中三种花式打印的示例详解
Mar 19 Python
numpy中的ndarray方法和属性详解
May 27 #Python
numpy.linspace函数具体使用详解
May 27 #Python
Django利用cookie保存用户登录信息的简单实现方法
May 27 #Python
Django框架设置cookies与获取cookies操作详解
May 27 #Python
numpy下的flatten()函数用法详解
May 27 #Python
详解numpy的argmax的具体使用
May 27 #Python
numpy.random模块用法总结
May 27 #Python
You might like
PHP中的string类型使用说明
2010/07/27 PHP
PHP生成不同颜色、不同大小的tag标签函数
2013/09/23 PHP
Symfony2学习笔记之模板用法详解
2016/03/17 PHP
PHP实现微信提现功能
2018/09/30 PHP
PHP大文件切割上传功能实例分析
2019/07/01 PHP
用showModalDialog弹出页面后,提交表单总是弹出一个新窗口
2009/07/18 Javascript
js取两个数组的交集|差集|并集|补集|去重示例代码
2013/08/07 Javascript
js数组的基本用法及数组根据下标(数值或字符)移除元素
2013/10/20 Javascript
javasctipt如何显示几分钟前、几天前等
2014/04/30 Javascript
删除条目时弹出的确认对话框
2014/06/05 Javascript
使用nodejs、Python写的一个简易HTTP静态文件服务器
2014/07/18 NodeJs
jquery的幻灯片图片切换效果代码分享
2015/09/07 Javascript
JavaScript SHA-256加密算法详细代码
2016/10/06 Javascript
jQuery图片切换动画特效
2016/11/02 Javascript
JS实现物体带缓冲的间歇运动效果示例
2016/12/22 Javascript
浅谈gulp创建完整的项目流程
2017/12/20 Javascript
vue2.0 根据状态值进行样式的改变展示方法
2018/03/13 Javascript
js操作两个json数组合并、去重,以及删除某一项元素
2020/09/22 Javascript
Python Numpy库安装与基本操作示例
2019/01/08 Python
python3实现用turtle模块画一棵随机樱花树
2019/11/21 Python
Python用input输入列表的实例代码
2020/02/07 Python
Python爬虫实现HTTP网络请求多种实现方式
2020/06/19 Python
如何在VSCode下使用Jupyter的教程详解
2020/07/13 Python
Python操作Elasticsearch处理timeout超时
2020/07/17 Python
python类共享变量操作
2020/09/03 Python
CSS3 选择器 属性选择器介绍
2012/01/21 HTML / CSS
HTML5 Canvas中绘制椭圆的4种方法
2015/04/24 HTML / CSS
Oakley西班牙官方商店:太阳眼镜和男女运动服
2019/04/26 全球购物
英国排名第一的冲浪店:Ann’s Cottage
2020/06/21 全球购物
解释下面关于J2EE的名词
2013/11/15 面试题
学习新党章思想汇报
2014/01/09 职场文书
俄语专业职业生涯规划
2014/02/26 职场文书
客房部经理岗位职责
2015/02/02 职场文书
交通事故调解协议书
2015/05/20 职场文书
首都博物馆观后感
2015/06/05 职场文书
sql时间段切分实现每隔x分钟出一份高速门架车流量
2022/02/28 SQL Server