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 3.6 +pyMysql 操作mysql数据库(实例讲解)
Dec 20 Python
Python 删除连续出现的指定字符的实例
Jun 29 Python
python生成以及打开json、csv和txt文件的实例
Nov 16 Python
这可能是最好玩的python GUI入门实例(推荐)
Jul 19 Python
如何利用python给图片添加半透明水印
Sep 06 Python
python库matplotlib绘制坐标图
Oct 18 Python
使用pygame写一个古诗词填空通关游戏
Dec 03 Python
Python多线程实现支付模拟请求过程解析
Apr 21 Python
python和JavaScript哪个容易上手
Jun 23 Python
Python+OpenCV图像处理——图像二值化的实现
Oct 24 Python
详解Java中一维、二维数组在内存中的结构
Feb 11 Python
一文读懂python Scrapy爬虫框架
Feb 24 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后台程序与Javascript的两种交互方式
2009/10/25 PHP
浅谈PHP中的面向对象OOP中的魔术方法
2017/06/12 PHP
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
Autocomplete Textbox Example javascript实现自动完成成功
2007/08/17 Javascript
学习ExtJS Window常用方法
2009/10/07 Javascript
JS 退出系统并跳转到登录界面的实现代码
2013/06/29 Javascript
PHP abstract与interface之间的区别
2013/11/11 Javascript
浅析jquery的作用与优势
2013/12/02 Javascript
使用ngView配合AngularJS应用实现动画效果的方法
2015/06/19 Javascript
详解JavaScript的Polymer框架中的通知交互
2015/07/29 Javascript
HTML5游戏引擎LTweenLite实现的超帅动画效果(附demo源码下载)
2016/01/26 Javascript
javascript之Array 数组对象详解
2016/06/07 Javascript
jQuery给表格添加分页效果
2017/03/02 Javascript
vue监听scroll的坑的解决方法
2017/09/07 Javascript
node下使用UglifyJS压缩合并JS文件的方法
2018/03/07 Javascript
Vue中mintui的field实现blur和focus事件的方法
2018/08/25 Javascript
vue组件之间数据传递的方法实例分析
2019/02/12 Javascript
JavaScript中EventBus实现对象之间通信
2020/10/18 Javascript
Python深入学习之对象的属性
2014/08/31 Python
python实现简单的TCP代理服务器
2014/10/08 Python
python查看zip包中文件及大小的方法
2015/07/09 Python
在Python中的Django框架中进行字符串翻译
2015/07/27 Python
python3 遍历删除特定后缀名文件的方法
2018/04/23 Python
一行python实现树形结构的方法
2019/08/09 Python
python基于三阶贝塞尔曲线的数据平滑算法
2019/12/27 Python
python+selenium+chromedriver实现爬虫示例代码
2020/04/10 Python
PyInstaller的安装和使用的详细步骤
2020/06/02 Python
Html5 Geolocation获取地理位置信息实例
2016/12/09 HTML / CSS
HTML5超炫酷粒子效果的进度条的实现示例
2019/08/23 HTML / CSS
门卫人员岗位职责
2013/12/24 职场文书
学习自我鉴定
2014/02/01 职场文书
洗发露广告词
2014/03/14 职场文书
研究生个人学年总结
2015/02/14 职场文书
杨善洲电影观后感
2015/06/04 职场文书
职工宿舍管理制度
2015/08/05 职场文书
2021-4-5课程——SQL Server查询【3】
2021/04/05 SQL Server