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 分钟前
第105篇:三维特效-流动图片墙体效果——让箭头沿墙长滚,它俩竟是同一份代码
开发语言·javascript·ecmascript·gis·webgl·材质·cesium
xiaoye-duck43 分钟前
《C++ 项目:手写大模型接入 SDK》会话模块整合:内存 SessionManager 与 DataManager 持久化联动
开发语言·数据库·c++·语言模型
2601_967979121 小时前
Python第七十四讲 异常处理完全精通 try-except零基础保姆级教程
python·异常处理·编程教程·错误处理·try-except
wuyk5551 小时前
Spider-第07讲-JSON接口与正则提取
爬虫·python·json
2601_967987372 小时前
Sqlite参考手册
数据库·python·sqlite·api·教程
Funlang2 小时前
龙芯上的 Fun:从跑起来到机器码
开发语言·龙芯
总要学点什么2 小时前
第104篇:三维特效-流动墙体效果——让贴图沿墙流动,它却只肯走一条对角线
开发语言·javascript·ecmascript·gis·webgl·材质·cesium
旖旎夜光2 小时前
【C++ 基础入门】C++11 新特性(中):右值引用、移动语义与完美转发
开发语言·c++·笔记·学习
用户019027581613 小时前
A 股到价提醒机器人:AlphaFeed + 飞书/钉钉 Webhook
python
ShineWinsu3 小时前
对于Qt:QTabWidget常见属性的解析
开发语言·数据库·c++·qt·浏览器·qtabwidget·标签页