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)
相关推荐
数据知道21 分钟前
反序列化漏洞:Java、PHP、Python 三条线各讲透
java·网络·python·安全·网络安全·php
果果燕37 分钟前
C++ 学习笔记(二):类与对象—— 构造函数与析构函数
开发语言·c++
江畔柳前堤39 分钟前
Function Calling 与 Tool Calling:从认知到工程的全景深度解析
开发语言·网络·人工智能·深度学习·算法·机器学习·php
2601_949950631 小时前
Java 面试准备,用练题簿把“背过八股”变成“真正会答”
java·开发语言·面试·刷题·小程序推荐
努力的小Qin1 小时前
梯度下降如何实现参数优化:从线性回归到 Sigmoid 分类
人工智能·python·神经网络
strength_zhou20131 小时前
Python检查MongoDB索引列中的字段是否存在
python·mongodb
老洋葱Mr_Onion1 小时前
【C++】信息学奥赛CSP通关之路——CSP-J/S第一轮原创全真模拟试卷集(2026)卷四全卷解析
开发语言·c++
zander2581 小时前
LeetCode 739:每日温度——为什么单调栈要持续弹出
开发语言·python·算法
無限進步D1 小时前
Java 函数式编程(Lambda)
java·开发语言
xzlAwin1 小时前
Win10安装Go语言多版本管理器g工具
开发语言·golang