Python词频统计

在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_tokenize

nltk.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')确保我们已经下载了所需的分词和停用词数据集。

相关推荐
.YM.Z6 分钟前
C++——【红黑树】原理详解:定义、性质、插入变色与旋转实现
开发语言·c++
明如正午11 分钟前
用 Python 一键把 ASC 文件转成 BLF(基于 python-can)
python·can·blf·asc
leisoo80971 小时前
融资融券数据怎么查两融指标含义与杠杆观察方法 IG50免费开源股票数据API接口
开发语言·jvm·数据库·python·json
霸道流氓气质1 小时前
多Agent通信机制与协议设计完全指南:从FIPA-ACL到A2A/MCP的Java生产级实战
java·开发语言
Patrick在香港1 小时前
同一份脚本,mac 正常 Windows 乱码:open() 默认编码实测(附 3.15 终局)
utf-8·windows·python·macos·跨平台·编码·标准库
weixin_419658311 小时前
CANoe 使用指南:从输出窗口到数据回放的完整实战教程
开发语言·功能测试·车载系统·自动化·汽车
当青春邂逅吉米多维奇1 小时前
C#图解教程(第5版) 同步方法
开发语言·c#
骇客野人1 小时前
Java BIO / NIO / AIO 完整详解 + 编程技巧
java·开发语言·nio
霸道流氓气质1 小时前
OpenTelemetry 入门与实战:Java Agent、Spring Boot Starter与LLM调用追踪示例
java·开发语言·spring boot