Python词频统计

ops/2024/9/24 2:48:47/

在Python中进行词频统计是一项基础的文本分析任务,通常涉及以下步骤:

  1. 文本预处理:包括去除标点符号、转换为小写、去除停用词等。
  2. 分词:将文本分割成单词或词汇。
  3. 统计词频:对分词后的结果进行计数。

以下是一个简单的Python脚本,使用collections模块中的Counter类来统计词频:

import re
from collections import Counter# 示例文本
text = "This is a sample sentence. This sentence is really just a sample."# 文本预处理:去除标点符号并转换为小写
cleaned_text = re.sub(r'[^\w\s]', '', text).lower()# 分词
words = cleaned_text.split()# 统计词频
word_counts = Counter(words)# 输出词频统计结果
print(word_counts)# 如果需要按照词频排序
most_common_words = word_counts.most_common()
print(most_common_words)

在这个脚本中,我们首先使用正则表达式re.sub(r'[^\w\s]', '', text)来移除文本中的标点符号,然后使用lower()方法将所有文本转换为小写,以保证词频统计时不区分大小写。

split()方法用于将文本分割成单词列表,然后我们使用Counter来统计每个单词出现的次数。

Counter.most_common()方法可以返回一个包含单词及其对应频率的列表,按照频率从高到低排序。

如果你需要更复杂的文本处理,比如去除停用词(stop words),可以使用nltk库中的stopwords集合:

import nltk
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenizenltk.download('punkt')
nltk.download('stopwords')# 示例文本
text = "This is a sample sentence. This sentence is really just a sample."# 文本预处理:去除标点符号、转换为小写,并分词
tokens = word_tokenize(text)
cleaned_tokens = [word.lower() for word in tokens if word.isalpha()]# 去除停用词
stop_words = set(stopwords.words('english'))
filtered_tokens = [word for word in cleaned_tokens if word not in stop_words]# 统计词频
word_counts = Counter(filtered_tokens)# 输出词频统计结果
print(word_counts)
print(word_counts.most_common())

在这个例子中,我们首先使用nltk库的word_tokenize函数进行分词,然后去除停用词,并再次使用Counter进行词频统计。使用nltk.download('punkt')nltk.download('stopwords')确保我们已经下载了所需的分词和停用词数据集。


http://www.ppmy.cn/ops/32420.html

相关文章

【PowerJob】从源码编译到k8s部署

前言 虽然PowerJob官方说支持JPA各种数据源,但在PG数据库的兼容性上,确实存在小问题,issue也有相关原理描述,官方采用的优雅方式并未真正解决问题,因为只解决了从Lob字段读取的时候,自动建表的时候还是会生…

工作问题记录React(持续更新中)

一、backdrop-filter:blur(20px); 毛玻璃效果,在安卓机上有兼容问题,添加兼容前缀也无效; 解决方案:让设计师调整渐变,不要使用该属性! 复制代码 background: radial-gradient(33% 33% at 100% 5%, #e9e5e5 0%, rgba…

node.js中的fs模块,读写语法讲解

本文分享node.js的入门知识,使用 fs 模块封装的方法读写文件内容 node中的fs 模块:封装了与本机文件系统进行交互的,方法和属性,使用语法如下: 1、加载 fs 模块,得到 fs 对象 const fs require(fs) 2、…

【游戏行业】2024年电子游戏分类,国内游戏产业报告,发展趋势

文章目录 一、电子游戏分类1、传统游戏分类2、混合手游分类3、二次元、开放设计、调查问卷 二、游戏产业报告1、游戏产业数据2、游戏公司名单(独角兽)3、营收与利润(对比互联网、国企) 三、发展趋势1、游戏行业上下游2、游戏行业趋…

Rust入门篇:你好,世界

文章目录 前言编写程序编译运行最后 前言 你好,我是醉墨居士,欢迎回来 对于我们大多数人接触一门新的编程语言时,第一个任务一般是编写一个控制台输出hello world的程序 我们这篇博客也是如此,让我们一起使用rust去和世界打个招…

Unity 性能优化之动态批处理(四)

提示:仅供参考,有误之处,麻烦大佬指出,不胜感激! 文章目录 前言一、动态合批是什么?二、使用动态批处理1.打开动态合批2.满足条件 三、检查动态合批是否成功五、动态合批弊端总结 前言 动态批处理是常用优…

mac安装虚拟机linux系统

需要下载的有:centos8镜像 , 虚拟器 VMware 软件包 , Termius 或者xshell 1. CentOS系统下载 linux系统一般有: CentOS、ubuntu、redhat,选择一种进行安装就可以 CentOS 2024 年开始停止维护和发布 CentOS8的下载与安装(windows下安装) 镜…

RabbiMQ(Docker 单机部署)

序言 本文给大家介绍如何使用 Docker 单机部署 RabbitMQ 并与 SpringBoot 整合使用。 一、部署流程 拉取镜像 docker pull rabbitmq:3-management镜像拉取成功之后使用下面命令启动 rabbitmq 容器 docker run \# 指定用户名-e RABBITMQ_DEFAULT_USERusername \# 指定密码-e R…