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中的元组概念
May 21 Python
python实现将英文单词表示的数字转换成阿拉伯数字的方法
Jul 02 Python
Python使用turtule画五角星的方法
Jul 09 Python
使用Python通过win32 COM打开Excel并添加Sheet的方法
May 02 Python
Python设计模式之装饰模式实例详解
Jan 21 Python
Python中面向对象你应该知道的一下知识
Jul 10 Python
django框架用户权限中的session缓存到redis中的方法
Aug 06 Python
获取Pytorch中间某一层权重或者特征的例子
Aug 17 Python
python实现把二维列表变为一维列表的方法分析
Oct 08 Python
在OpenCV里使用特征匹配和单映射变换的代码详解
Oct 23 Python
Pycharm github配置实现过程图解
Oct 13 Python
OpenCV读取与写入图片的实现
Oct 13 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中利用substr_replace将指定两位置之间的字符替换为*号
2011/01/27 PHP
php实现的简易扫雷游戏实例
2015/07/09 PHP
php自定义函数实现JS的escape的方法示例
2016/07/07 PHP
微信公众号之主动给用户发送消息功能
2019/06/22 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
2019/11/23 PHP
javascript vvorld 在线加密破解方法
2008/11/13 Javascript
原生JavaScript实现异步多文件上传
2015/12/02 Javascript
jquery实现简单的遮罩层
2016/01/08 Javascript
js注入 黑客之路必备!
2016/09/14 Javascript
JS实现倒计时(天数、时、分、秒)
2016/11/16 Javascript
浅谈Vue 数据响应式原理
2018/05/07 Javascript
Vue 表情包输入组件的实现代码
2019/01/21 Javascript
Node.js 路由的实现方法
2019/06/05 Javascript
JavaScript的Proxy可以做哪些有意思的事儿
2019/06/15 Javascript
Typescript 中的 interface 和 type 到底有什么区别详解
2019/06/18 Javascript
Vue的click事件防抖和节流处理详解
2019/11/13 Javascript
Vue实现input宽度随文字长度自适应操作
2020/07/29 Javascript
maptalks+three.js+vue webpack实现二维地图上贴三维模型操作
2020/08/10 Javascript
pymssql ntext字段调用问题解决方法
2008/12/17 Python
收集的几个Python小技巧分享
2014/11/22 Python
python中使用xlrd读excel使用xlwt写excel的实例代码
2018/01/31 Python
Python中按值来获取指定的键
2019/03/04 Python
django中ORM模型常用的字段的使用方法
2019/03/05 Python
opencv转换颜色空间更改图片背景
2019/08/20 Python
python 遍历pd.Series的index和value
2019/11/26 Python
美国婚戒购物网站:Anjays Designs
2017/06/28 全球购物
日本最大的药妆连锁店:Matsukiyo松本清药妆店
2017/11/23 全球购物
英国最受欢迎的母婴精品品牌:JoJo Maman BéBé
2021/02/17 全球购物
软件测试题目
2013/02/27 面试题
医护人员英文求职信范文
2013/11/26 职场文书
英语专业学生的自我评价
2013/12/30 职场文书
2014年元旦促销活动方案
2014/02/22 职场文书
优秀少先队大队辅导员事迹材料
2014/05/04 职场文书
2014年初中班主任工作总结
2014/11/08 职场文书
大雁塔导游词
2015/02/04 职场文书
2019年怎样才能撰写出优秀的自荐信
2019/03/25 职场文书