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中处理字符串之isdigit()方法的使用
May 18 Python
python基于itchat实现微信群消息同步机器人
Feb 27 Python
详解Python做一个名片管理系统
Mar 14 Python
PyQt5 实现字体大小自适应分辨率的方法
Jun 18 Python
python爬虫 爬取58同城上所有城市的租房信息详解
Jul 30 Python
Python3 合并二叉树的实现
Sep 30 Python
如何将你的应用迁移到Python3的三个步骤
Dec 22 Python
python turtle工具绘制四叶草的实例分享
Feb 14 Python
Python HTMLTestRunner库安装过程解析
May 25 Python
python中round函数如何使用
Jun 19 Python
Python3.8.2安装包及安装教程图文详解(附安装包)
Nov 28 Python
Python基础之元编程知识总结
May 23 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目录操作函数之获取目录与文件的类型
2010/12/29 PHP
ThinkPHP跳转页success及error模板实例教程
2014/07/17 PHP
PHP编程中尝试程序并发的几种方式总结
2016/03/21 PHP
yii2中结合gridview如何使用modal弹窗实例代码详解
2016/06/12 PHP
PHP模糊查询的实现方法(推荐)
2016/09/06 PHP
php版微信支付api.mch.weixin.qq.com域名解析慢原因与解决方法
2016/10/12 PHP
PHP实现的微信APP支付功能示例【基于TP5框架】
2019/09/16 PHP
Thinkphp极验滑动验证码实现步骤解析
2020/11/24 PHP
Packer 3.0 JS压缩及混淆工具 下载
2007/05/03 Javascript
javaScript NameSpace 简单说明介绍
2013/07/18 Javascript
jquery触发a标签跳转事件示例代码
2013/07/21 Javascript
jQuery实现限制textarea文本框输入字符数量的方法
2015/05/28 Javascript
JavaScript地理位置信息API
2016/06/11 Javascript
移动web开发之touch事件实例详解
2018/01/17 Javascript
[01:05:40]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第三场
2014/05/24 DOTA
[01:45]DOTA2新英雄“神谕者”全方位展示
2014/11/21 DOTA
python+django+sql学生信息管理后台开发
2018/01/11 Python
python删除服务器文件代码示例
2018/02/09 Python
详解Python3.6安装psutil模块和功能简介
2018/05/30 Python
Python import与from import使用及区别介绍
2018/09/06 Python
python编程进阶之类和对象用法实例分析
2020/02/21 Python
python实时监控logstash日志代码
2020/04/27 Python
手把手教你从PyCharm安装到激活(最新激活码),亲测有效可激活至2089年
2020/11/25 Python
CSS的pointer-events属性详细介绍(作用和注意事项)
2014/04/23 HTML / CSS
Backcountry旗下的户外商品闪购网站:steep&cheap
2016/09/22 全球购物
十一酒店活动方案
2014/02/20 职场文书
献爱心活动总结
2014/05/07 职场文书
销售求职信范文
2014/05/26 职场文书
小学师德师风演讲稿
2014/09/02 职场文书
2014国庆节幼儿园亲子活动方案
2014/09/16 职场文书
2014年学生会干事工作总结
2014/11/07 职场文书
费用申请报告范文
2015/05/15 职场文书
工作态度怎么写
2015/06/25 职场文书
新西兰:最新留学学习计划书写作指南
2019/07/15 职场文书
python numpy中setdiff1d的用法说明
2021/04/22 Python
HTML5简单实现添加背景音乐的几种方法
2021/05/12 HTML / CSS