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实现的批量下载RFC文档
Mar 10 Python
python选择排序算法实例总结
Jul 01 Python
Python while 循环使用的简单实例
Jun 08 Python
Python实现mysql数据库更新表数据接口的功能
Nov 19 Python
python爬虫 使用真实浏览器打开网页的两种方法总结
Apr 21 Python
python版DDOS攻击脚本
Jun 12 Python
8种用Python实现线性回归的方法对比详解
Jul 10 Python
Django中的cookie和session
Aug 27 Python
Python 3.8 新功能来一波(大部分人都不知道)
Mar 11 Python
Python爬虫爬取杭州24时温度并展示操作示例
Mar 27 Python
解决 jupyter notebook 回车换两行问题
Apr 15 Python
python实现简单遗传算法
Sep 18 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
谏山创故乡大分县日田市水坝将设立《进击的巨人》立艾伦、三笠以及阿尔敏的铜像!
2020/03/06 日漫
DOMXML函数笔记
2006/10/09 PHP
PHP 变量类型的强制转换
2009/10/23 PHP
解析将多维数组转换为支持curl提交的一维数组格式
2013/07/08 PHP
php源码分析之DZX1.5随机数函数random用法
2015/06/17 PHP
php中通过eval实现字符串格式的计算公式
2017/03/18 PHP
laravel-admin 在列表页添加自定义按钮的例子
2019/09/30 PHP
PHP 实现缩略图
2021/03/09 PHP
取得父标签
2006/11/14 Javascript
关于jquery append() html时的小问题的解决方法
2010/12/16 Javascript
JavaScript ECMA-262-3 深入解析.第三章.this
2011/09/28 Javascript
node.js中的fs.chmodSync方法使用说明
2014/12/18 Javascript
javascript中in运算符用法分析
2015/04/28 Javascript
jQuery实现平滑滚动页面到指定锚点链接的方法
2015/07/15 Javascript
jquery ajax分页插件的简单实现
2016/01/27 Javascript
学习vue.js表单控件绑定操作
2016/12/05 Javascript
Vue props 单向数据流的实现
2018/11/06 Javascript
微信小程序日历/日期选择插件使用方法详解
2018/12/28 Javascript
layer.confirm点击第一个按钮关闭弹出框的方法
2019/09/09 Javascript
vue+iview框架实现左侧动态菜单功能的示例代码
2020/07/23 Javascript
[08:44]和酒神一起战斗 DOTA2教你做大人
2014/03/27 DOTA
django-rest-swagger对API接口注释的方法
2019/08/29 Python
Python+Redis实现布隆过滤器
2019/12/08 Python
使用python脚本自动生成K8S-YAML的方法示例
2020/07/12 Python
Python 使用 PyQt5 开发的关机小工具分享
2020/07/16 Python
Python Matplotlib简易教程(小白教程)
2020/07/28 Python
CSS3图片旋转特效(360/60/-360度)
2013/10/10 HTML / CSS
css3 实现圆形旋转倒计时
2018/02/24 HTML / CSS
Html5上传图片 移动端、PC端通用代码
2016/06/08 HTML / CSS
食堂员工工作职责
2013/12/18 职场文书
《胖乎乎的小手》教学反思
2014/02/26 职场文书
企业法人授权委托书
2014/09/25 职场文书
先进个人事迹材料范文
2014/12/30 职场文书
高中数学课堂教学反思
2016/02/18 职场文书
Golang二维数组的使用方式
2021/05/28 Golang
SpringBoot SpringEL表达式的使用
2021/07/25 Java/Android