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中字典(Dictionary)用法实例详解
May 30 Python
Python中map和列表推导效率比较实例分析
Jun 17 Python
python3.5 + PyQt5 +Eric6 实现的一个计算器代码
Mar 11 Python
分析经典Python开发工程师面试题
Apr 08 Python
Django框架之登录后自定义跳转页面的实现方法
Jul 18 Python
python图片二值化提高识别率代码实例
Aug 24 Python
Python Gluon参数和模块命名操作教程
Dec 18 Python
Flask缓存静态文件的具体方法
Aug 02 Python
Python调用JavaScript代码的方法
Oct 27 Python
基于python+selenium自动健康打卡的实现代码
Jan 13 Python
利用python实现后端写网页(flask框架)
Feb 28 Python
Pygame如何使用精灵和碰撞检测
Nov 17 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按行读取、处理较大CSV文件的代码实例
2014/04/09 PHP
php使用fopen创建utf8编码文件的方法
2014/10/31 PHP
PHP邮件群发机实现代码
2016/02/16 PHP
PHP将二维数组某一个字段相同的数组合并起来的方法
2016/02/26 PHP
php好代码风格的阶段性总结
2016/06/25 PHP
window.location和document.location的区别分析
2008/12/23 Javascript
使用jQuery判断IE浏览器版本的代码
2014/06/14 Javascript
JQuery表格拖动调整列宽效果(自己动手写的)
2014/09/01 Javascript
JS应用正则表达式转换大小写示例
2014/09/18 Javascript
解决bootstrap中modal遇到Esc键无法关闭页面
2015/03/09 Javascript
javascript中this指向详解
2016/04/23 Javascript
在Vue中使用echarts的实例代码(3种图)
2017/07/10 Javascript
JavaScript严格模式下关于this的几种指向详解
2017/07/12 Javascript
JavaScript实现为事件句柄绑定监听函数的方法分析
2017/11/14 Javascript
微信小程序图片选择区域裁剪实现方法
2017/12/02 Javascript
JavaScript分步实现一个出生日期的正则表达式
2018/03/22 Javascript
使用JSON格式提交数据到服务端的实例代码
2018/04/01 Javascript
AngularJS 应用模块化的使用
2018/04/04 Javascript
小试小程序云开发(小结)
2019/06/06 Javascript
Node中对非阻塞I/O、事件循环的知识点总结
2020/01/05 Javascript
使用Pyinstaller的最新踩坑实战记录
2017/11/08 Python
TensorFlow数据输入的方法示例
2018/06/19 Python
Selenium自动化测试工具使用方法汇总
2020/06/12 Python
如何利用python之wxpy模块玩转微信
2020/08/17 Python
python 绘制正态曲线的示例
2020/09/24 Python
python3爬虫中引用Queue的实例讲解
2020/11/24 Python
英国办公家具网站:Furniture At Work
2019/10/07 全球购物
学习雷锋月活动总结
2014/07/03 职场文书
音乐幼师求职信
2014/07/09 职场文书
机械专业毕业生自我鉴定2014
2014/10/04 职场文书
2014年移动公司工作总结
2014/12/08 职场文书
关于上班时间调整的通知
2015/04/23 职场文书
证婚人婚礼致辞
2015/07/28 职场文书
2016年离婚协议书范文
2016/03/18 职场文书
基于JavaScript实现年月日三级联动
2021/06/22 Javascript
进阶篇之linux环境下安装MySQL数据库
2022/04/09 MySQL