python统计一篇文章汉字中的高频词

先处理文章,去掉空格,标点符号,及非汉字内容。

程序一:

复制代码
import re
import os
from collections import Counter


path = r"D:\stzf"
os.chdir(path)  # 修改工作路径

# 读取Word文档内容
with open('abc.txt', 'r', encoding='utf-8') as file:
    content = file.read()

# 提取所有汉字
pattern = re.compile('[\u4e00-\u9fff]+')  # 匹配所有汉字
chinese_words = pattern.findall(content)

# for i in chinese_words:
#     print(i)
#
# print('==========================================')

# 统计单个汉字的出现次数
char_counter = Counter(''.join(chinese_words))

# 统计词组的出现次数,可根据需要设定词组长度
word_counter = Counter(chinese_words)

# 输出高频出现的单个汉字
print('高频出现的单个汉字:')
for char, count in char_counter.most_common(10):  # 输出出现次数最频繁的前10个汉字
    print(char, count)

# 输出高频出现的词组
print('高频出现的词组:')
for word, count in word_counter.most_common(10):  # 输出出现次数最频繁的前10个词组
    if len(word) > 1:
        print(word, count)

程序二,使用jieba分词。

先安装jieba分词,pip install jieba --upgrade

复制代码
import os
import jieba
from collections import Counter

path = r"D:\stzf"
os.chdir(path)  # 修改工作路径
with open('ABC.txt', 'rb') as file:
    content = file.read()
# 分词并记录所有汉字
seg_list = jieba.cut(content)
chinese_words = []
for word in seg_list:
    for char in word:
        if '\u4e00' <= char <= '\u9fff':
            chinese_words.append(char)
# 统计单个汉字的出现次数
char_counter = Counter(chinese_words)
# 统计词组的出现次数,根据需要设定词组长度
word_counter = Counter([''.join(chinese_words[i:i+2]) for i in range(len(chinese_words)-1)])
# 输出高频出现的单个汉字
print('高频出现的单个汉字:')
for char, count in char_counter.most_common(200):
    print(char, count)
# 输出高频出现的词组
print('高频出现的词组:')
for word, count in word_counter.most_common(200):
    print(word, count)
相关推荐
BK贝壳4 小时前
亿级用户签到位图选型复盘:用 bool-hybrid-array 扛冷启动打卡,也把它和 Roaring/Redis 的边界测清楚了
数据结构·python·性能优化·numpy
2601_966949655 小时前
如何根据研究的起止时间截取分钟级行情?Python 实战与 QuantDash 数据处理指南
开发语言·python·pandas·量化交易·1024程序员节·股票数据·quantdash
晨曦中的暮雨7 小时前
限流算法——固定窗口、滑动窗口、漏桶、令牌桶
java·开发语言·算法
喵了几个咪8 小时前
GoWind CMS 拆解:在 Go 里给 TipTap 搭一套 Yjs 协同后端
开发语言·后端·golang
程序员清风8 小时前
数据处理脚本工程化:日志、配置、命令行与测试
服务器·开发语言·数据库
在世修行9 小时前
智学文枢:页面切换与跨页数据预填
python·桌面应用·signal·1024程序员节·pyside·跨页跳转·状态预填
2601_9628857210 小时前
如何用 Python 把 K 线重采样成任意周期?
开发语言·python
打工仔折腾 AI10 小时前
在 Ubuntu ARM64 部署 Q1 V3.0 MuJoCo 模型:加载、单步推理与执行器响应解析
linux·运维·人工智能·python·深度学习·ubuntu·性能优化
Wang's Blog10 小时前
Java 项目实战: 交友项目 - 圈子功能实现:总结
java·开发语言·交友
信誓旦旦的程序猿11 小时前
【Python量化实战宝典 #21】北向资金跟随手册:聪明钱择时信号(Python 可跑)
python·1024程序员节·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口