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 相关文章推荐
python实现图片批量剪切示例
Mar 25 Python
python脚本实现统计日志文件中的ip访问次数代码分享
Aug 06 Python
Python线性回归实战分析
Feb 01 Python
pandas的object对象转时间对象的方法
Apr 11 Python
Python中使用遍历在列表中添加字典遇到的坑
Feb 27 Python
Python高级特性与几种函数的讲解
Mar 08 Python
Python scipy的二维图像卷积运算与图像模糊处理操作示例
Sep 06 Python
在Django下创建项目以及设置settings.py教程
Dec 03 Python
解决tensorboard多个events文件显示紊乱的问题
Feb 15 Python
Python 如何展开嵌套的序列
Aug 01 Python
python类共享变量操作
Sep 03 Python
python实现Thrift服务端的方法
Apr 20 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
无限级别菜单的实现
2006/10/09 PHP
Ajax+PHP快速上手及简单应用说明
2013/07/24 PHP
JavaScipt基本教程之前言
2008/01/16 Javascript
javascript背投广告代码的完善
2008/04/08 Javascript
javascript学习笔记(八)正则表达式
2014/10/08 Javascript
jQuery中noconflict函数的实现原理分解
2015/02/03 Javascript
JavaScript将数组转换成CSV格式的方法
2015/03/19 Javascript
javascript实现全局匹配并替换的方法
2015/04/27 Javascript
jQuery实现强制cookie过期方法汇总
2015/05/22 Javascript
AngularJS实现元素显示和隐藏的几个案例
2015/12/09 Javascript
Javascript HTML5 Canvas实现的一个画板
2020/04/12 Javascript
angularJS Provider、factory、service详解及实例代码
2016/09/21 Javascript
vue 计时器组件的实现代码
2017/09/14 Javascript
代码详解Vuejs响应式原理
2017/12/20 Javascript
Vue服务器渲染Nuxt学习笔记
2018/01/31 Javascript
vue2.0 使用element-ui里的upload组件实现图片预览效果方法
2018/09/04 Javascript
create-react-app使用antd按需加载的样式无效问题的解决
2019/02/26 Javascript
ES6知识点整理之模块化的应用详解
2019/04/15 Javascript
vue使用localStorage保存登录信息 适用于移动端、PC端
2019/05/27 Javascript
[14:56]教你分分钟做大人:巫医
2014/10/30 DOTA
详细解析Python中__init__()方法的高级应用
2015/05/11 Python
修复CentOS7升级Python到3.6版本后yum不能正确使用的解决方法
2018/01/26 Python
Python检查和同步本地时间(北京时间)的实现方法
2018/12/03 Python
python实现对列表中的元素进行倒序打印
2019/11/23 Python
如何基于Python实现自动扫雷
2020/01/06 Python
python程序如何进行保存
2020/07/03 Python
日本热销NO.1胶原蛋白冻:Aishitoto爱希特多
2019/06/20 全球购物
什么是Smarty变量操作符?如何使用Smarty变量操作符
2014/07/18 面试题
PHP中如何创建和修改数组
2012/05/02 面试题
中班开学寄语
2014/04/04 职场文书
歌颂祖国的演讲稿
2014/05/04 职场文书
奥巴马的演讲稿
2014/05/15 职场文书
购房委托书范本
2014/09/18 职场文书
2015年教师新年寄语
2014/12/08 职场文书
Python 循环读取数据内存不足的解决方案
2021/05/25 Python
如何用H5实现好玩的2048小游戏
2022/07/23 HTML / CSS