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脚本实现格式化css文件
Apr 08 Python
在Django的视图中使用form对象的方法
Jul 18 Python
Python遍历目录中的所有文件的方法
Jul 08 Python
基于ID3决策树算法的实现(Python版)
May 31 Python
Python设计模式之桥接模式原理与用法实例分析
Jan 10 Python
详解PyCharm安装MicroPython插件的教程
Jun 24 Python
python dumps和loads区别详解
Feb 04 Python
Python使用qrcode二维码库生成二维码方法详解
Feb 17 Python
简单的Python人脸识别系统
Jul 14 Python
5个pandas调用函数的方法让数据处理更加灵活自如
Apr 24 Python
Python如何快速找到多个字典中的公共键(key)
Apr 29 Python
python+opencv实现目标跟踪过程
Jun 21 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
为什么《星际争霸》是测试人工智能的理想战场
2019/12/03 星际争霸
Discuz 模板语句分析及知识技巧
2009/08/21 PHP
全世界最小的php网页木马一枚 附PHP木马的防范方法
2009/10/09 PHP
Laravel 5框架学习之用户认证
2015/04/09 PHP
nginx+thinkphp下解决不支持pathinfo模式
2015/07/01 PHP
php代码架构的八点注意事项
2016/01/25 PHP
PHP检测一个数组有没有定义的方法步骤
2019/07/20 PHP
jQuery 注意事项 与原因分析
2009/04/24 Javascript
JS实现自动固定顶部的悬浮菜单栏效果
2015/09/16 Javascript
10个很棒的jQuery代码片段
2015/09/24 Javascript
js事件冒泡、事件捕获和阻止默认事件详解
2016/08/04 Javascript
微信小程序 wxapp内容组件 text详细介绍
2016/10/31 Javascript
Javascript 闭包详解及实例代码
2016/11/30 Javascript
Node.js发送HTTP客户端请求并显示响应结果的方法示例
2017/04/12 Javascript
使用mock.js随机数据和使用express输出json接口的实现方法
2018/01/07 Javascript
浅谈Vue数据绑定的原理
2018/01/08 Javascript
JS判断字符串是否为整数的方法--简单的正则判断
2018/07/23 Javascript
AJAX在JQuery中的应用详解
2019/01/30 jQuery
bootstrap-closable-tab可实现关闭的tab标签页插件
2020/08/09 Javascript
用Python展示动态规则法用以解决重叠子问题的示例
2015/04/02 Python
Python json模块使用实例
2015/04/11 Python
python爬取w3shcool的JQuery课程并且保存到本地
2017/04/06 Python
python 多维切片之冒号和三个点的用法介绍
2018/04/19 Python
Python实现的ftp服务器功能详解【附源码下载】
2019/06/26 Python
django数据关系一对多、多对多模型、自关联的建立
2019/07/24 Python
pytorch 固定部分参数训练的方法
2019/08/17 Python
pandas实现将日期转换成timestamp
2019/12/07 Python
django实现将修改好的新模型写入数据库
2020/03/31 Python
Python+Kepler.gl实现时间轮播地图过程解析
2020/07/20 Python
Python中使用Selenium环境安装的方法步骤
2021/02/22 Python
德国古洛迷亚百货官网:GALERIA Kaufhof
2017/06/20 全球购物
实习老师个人总结的自我评价
2013/09/28 职场文书
酒店总经理职务说明书
2014/02/26 职场文书
关于建议书的格式范文
2014/05/20 职场文书
小学优秀教师材料
2014/12/15 职场文书
2016社区平安家庭事迹材料
2016/02/26 职场文书