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删除列表中重复记录的方法
Apr 28 Python
numpy中的ndarray方法和属性详解
May 27 Python
Python+PyQT5的子线程更新UI界面的实例
Jun 14 Python
python模拟键盘输入 切换键盘布局过程解析
Aug 15 Python
python3的url编码和解码,自定义gbk、utf-8的例子
Aug 22 Python
python实现批量文件重命名
Oct 31 Python
浅谈spring boot 集成 log4j 解决与logback冲突的问题
Feb 20 Python
Python sorted排序方法如何实现
Mar 31 Python
解决keras模型保存h5文件提示无此目录问题
Jul 01 Python
简单的命令查看安装的python版本号
Aug 28 Python
PyTorch 导数应用的使用教程
Aug 31 Python
使用Python操作MySQL的小技巧
Sep 10 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邮件发送,php发送邮件的类
2011/03/24 PHP
PHP通过session id 实现session共享和登录验证的代码
2012/06/03 PHP
快速解决PHP调用Word组件DCOM权限的问题
2017/12/27 PHP
Laravel5.7 数据库操作迁移的实现方法
2019/04/12 PHP
JQuery制作的放大效果的popup对话框(未添加任何jquery plugin)分享
2013/04/28 Javascript
jQuery函数的等价原生函数代码示例
2013/05/27 Javascript
JavaScript使用shift方法移除素组第一个元素实例分析
2015/04/06 Javascript
jQuery实现模拟marquee标签效果
2015/07/14 Javascript
AngularJS使用ngMessages进行表单验证
2015/12/27 Javascript
AngularJS中如何使用$http对MongoLab数据表进行增删改查
2016/01/23 Javascript
Js遍历键值对形式对象或Map形式的方法
2016/08/08 Javascript
微信小程序Server端环境配置详解(SSL, Nginx HTTPS,TLS 1.2 升级)
2017/01/12 Javascript
Ionic项目中Native Camera的使用方法
2017/06/07 Javascript
Angular4集成ng2-file-upload的上传组件
2018/03/14 Javascript
JavaScript反射与依赖注入实例详解
2018/05/29 Javascript
浅谈Vue路由快照实现思路及其问题
2018/06/07 Javascript
React Native中Mobx的使用方法详解
2018/12/04 Javascript
如何根据业务封装自己的功能组件
2019/04/19 Javascript
JavaScript实现打字游戏
2021/02/19 Javascript
[00:34]拔城逐梦,热血永恒!2020(秋)完美世界城市挑战赛报名开启
2020/10/09 DOTA
全面解读Python Web开发框架Django
2014/06/30 Python
python使用线程封装的一个简单定时器类实例
2015/05/16 Python
Python实现的将文件每一列写入列表功能示例【测试可用】
2018/03/19 Python
python画一个玫瑰和一个爱心
2020/08/18 Python
Python爬虫小技巧之伪造随机的User-Agent
2018/09/13 Python
python单向链表的基本实现与使用方法【定义、遍历、添加、删除、查找等】
2019/10/24 Python
python 中的[:-1]和[::-1]的具体使用
2020/02/13 Python
Python编程快速上手——Excel到CSV的转换程序案例分析
2020/02/28 Python
Python爬虫中Selenium实现文件上传
2020/12/04 Python
Eyeko美国:屡获殊荣的睫毛膏、眼线笔和眉妆
2018/07/05 全球购物
全球性的在线商店:Vogca
2019/05/10 全球购物
大学教师年终总结的自我评价
2013/10/29 职场文书
投标人廉洁自律承诺书
2014/05/26 职场文书
三八节活动简报
2015/07/20 职场文书
2015质检员个人年终工作总结
2015/10/23 职场文书
使用Python拟合函数曲线
2022/04/14 Python