python利用多种方式来统计词频(单词个数)
作者:Sinte-Beuve 发布时间:2021-12-23 14:52:32
标签:python,统计词频
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开发之道。
来源:https://www.cnblogs.com/Sinte-Beuve/p/6571717.html


猜你喜欢
- 看python社区大妈组织的内容里边有一篇讲python内存优化的,用到了__slots__。然后查了一下,总结一下。感觉非常有用pytho
- .sh脚本可以自动运行多次实验。Windows系统下实现pycharm运行.sh文件1、安装GitGit官网下载或者点击这里下载默认设置安装
- ASP日期和时间函数我们经常会用到,本文列出了12个常用的asp日期和时间函数的语法及用法以作备忘!1.Now Now() 取
- 本文实例讲述了python协程用法。分享给大家供大家参考。具体如下:把函数编写为一个任务,从而能处理发送给他的一系列输入,这种函数称为协程d
- 最近整理了一下网上关于MySql 链接url 参数的设置,有不正确的地方希望大家多多指教: mysql JDBC URL格式如下: jdbc
- 前端JS中使用XMLHttpRequest 2上传图片到服务器,PC端和大部分手机上都正常,但在少部分安卓手机上上传失败,服务器上查看图片,
- 概述 -------------------------------------------------------------------
- python3用到2个库import itertoolsimport metacomm.combinatorics.all_pairs2 a
- 一、查看存储过程存储过程创建以后,用户可以通过SHOW STATUS语句来查看存储过程的状态,也可以通过SHOW CREATE语句来查看存储
- 方法一:也是最简单的 直接使用pd.to_datetime函数实现data['交易时间'] = pd.to_datetime
- 1.简介介绍-网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息
- 脚本需求:每天备份mysql数据库,保留7天的脚本。存放在/opt/dbbak目录中。脚本名称为database_xxxx-xx-xx.sq
- 一. 官网下载MySQL官方网址:(https://www.mysql.com/) 或者点击这里下载:https://www.jb
- 这是今天在温习lambda表达式的时候想到的问题,众所周知C系列语言中的 三元运算符(?:)是一个非常好用的语句,关于C中的三元运算符表达式
- JavaScript中对象的property有三个属性:1.writable。该property是否可写。2.enumerable。当使用f
- 具体环境:Ubuntu 14.04 Python 2.7.6 Django 1.7.1 Virtualenv name:test Nginx
- BIT[(M)]位字段类型。M表示每个值的位数,范围为从1到64。如果M被省略, 默认为1。TINYINT[(M)] [UNSIGNED]
- 1.启动数据库命令行客户端#linux命令,注意区分大小写mysql2.查询数据库#执行结果:返回所有数据库列表SHOW DATABASES
- 创建main.py文件并粘贴下面代码点击右键运行Debug 'main'后,下方的Debug窗口会出现ImportError
- 原因是dict.keys()的返回结果不再是一个list了Python3的keys(), values(), items()返回的都是迭代器