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批量提交沙箱问题实例
Oct 08 Python
使用Python中的cookielib模拟登录网站
Apr 09 Python
举例讲解Django中数据模型访问外键值的方法
Jul 21 Python
浅谈django model postgres的json字段编码问题
Jan 05 Python
浅谈Pandas 排序之后索引的问题
Jun 07 Python
Python使用ConfigParser模块操作配置文件的方法
Jun 29 Python
PyQt5实现简单数据标注工具
Mar 18 Python
Python多进程编程multiprocessing代码实例
Mar 12 Python
Pandas缺失值2种处理方式代码实例
Jun 13 Python
python实现自动打卡的示例代码
Oct 10 Python
python线程池 ThreadPoolExecutor 的用法示例
Oct 10 Python
Python中全局变量和局部变量的理解与区别
Feb 07 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
DC的38部超级英雄动画电影
2020/03/03 欧美动漫
juqery 学习之三 选择器 子元素与表单
2010/11/25 Javascript
js中的this关键字详解
2013/09/25 Javascript
php显示当前文件所在的文件以及文件夹所有文件以树形展开
2013/12/13 Javascript
JavaScript中的Math.LN2属性用法详解
2015/06/12 Javascript
jQuery快速实现商品数量加减的方法
2017/02/06 Javascript
vue+vuex+axio从后台获取数据存入vuex实现组件之间共享数据
2017/04/22 Javascript
Three.js利用性能插件stats实现性能监听的方法
2017/09/25 Javascript
webstorm中vue语法的支持详解
2018/05/09 Javascript
vue 解决异步数据更新问题
2019/10/29 Javascript
JS实现压缩上传图片base64长度功能
2019/12/03 Javascript
WEB前端性能优化的7大手段详解
2020/02/04 Javascript
python 合并文件的具体实例
2013/08/08 Python
python爬虫常用的模块分析
2014/08/29 Python
使用Python开发windows GUI程序入门实例
2014/10/23 Python
Python使用Phantomjs截屏网页的方法
2018/05/17 Python
python利用smtplib实现QQ邮箱发送邮件
2020/05/20 Python
python实现排序算法解析
2018/09/08 Python
python实现微信防撤回神器
2019/04/29 Python
python+mysql实现个人论文管理系统
2019/10/25 Python
Tensorflow矩阵运算实例(矩阵相乘,点乘,行/列累加)
2020/02/05 Python
做一个能自适应高度的textarea的示例代码
2019/09/06 HTML / CSS
H&M美国官网:欧洲最大的服饰零售商
2016/09/07 全球购物
世界上最大的字体市场:MyFonts
2020/01/10 全球购物
介绍一下Prototype的$()函数,$F()函数,$A()函数都是什么作用?
2014/03/05 面试题
安全员岗位职责
2013/11/11 职场文书
大学生自我鉴定范文
2013/12/28 职场文书
大学毕业后的十年规划
2014/01/07 职场文书
个人现实表现材料
2014/02/04 职场文书
街道务虚会发言材料
2014/10/20 职场文书
2015年简历自我评价范文
2015/03/11 职场文书
中学生社会实践教育活动总结
2015/05/06 职场文书
校运会宣传稿大全
2015/07/23 职场文书
2016年综治和平安建设宣传月活动总结
2016/04/01 职场文书
创业计划书之零食店(进口)
2019/09/24 职场文书
在Python中如何使用yield
2021/06/07 Python