当前位置: 首页 > news >正文

[特殊字符] Python 实战 | 批量统计中文文档词频并导出 Excel

本文展示如何用 Python 脚本:

  • 批量读取文件夹中的多篇中文文档;

  • jieba 分词并统计词频(过滤停用词与单字符);

  • 将各文档词频输出为对应 Excel 文件;

  • 是文本分析、内容审查、报告编写中的实用技巧。


📂 Step 1:批量加载文件夹中文本文件路径

import ospath = '主要业务'
files = [os.path.join(path, f) for f in os.listdir(path)]
  • 使用标准库 os.listdir() 枚举目录中的文件;

  • 生成包含所有待处理文件路径的列表,便于后续遍历读取。


🔤 Step 2:分词 + 词频统计 + 停用词过滤

import jiebafor file in files:txt = open(file, "r", encoding="utf-8").read()words = jieba.lcut(txt)freq = {}for w in words:if len(w) == 1:continuefreq[w] = freq.get(w, 0) + 1stopWords = ["2019", "主要", "企业", "业务", "公司", "产品", "..."]for w in stopWords:freq.pop(w, None)items = sorted(freq.items(), key=lambda x: x[1], reverse=True)
  • 使用 jieba.lcut() 精准分词,是中文文本处理常用方案 pankti0919.medium.com+2thedataschool.co.uk+2stackoverflow.com+2gist.github.com+5breezegeography.wordpress.com+5m.php.cn+5;

  • 自定义长度过滤与停用词列表,保障高频词的质量。


📈 Step 3:导出词频结果至 Excel

import pandas as pddf = pd.DataFrame(items, columns=['词', '次数'])
basename = os.path.splitext(os.path.basename(file))[0]
df.to_excel(f"词频/{basename}.xlsx", index=False)
  • pandas.DataFrame 存储词频词典并导出;

  • stopWords 列表作用类似英文文本中的停用词过滤,使结果更有价值 stackoverflow.com。


🖼️ 结果展示区

✅ 技术亮点与优化建议

  • jieba 分词:适合中文分词处理 pankti0919.medium.com+1thedataschool.co.uk+1;

  • 词频排序:按次数降序排列,可配合 Counter 简化统计 m.php.cn+3stackoverflow.com+3gist.github.com+3;

  • 停用词机制:过滤不具有语义价值的常见词,结果更精炼;

  • 可扩展性

    • 可增加 jieba.analyse.extract_tags() 提取关键词与 tf-idf pankti0919.medium.com+2m.php.cn+2breezegeography.wordpress.com+2;

    • 加入 HTML 或 GUI 操作;

    • 将结果写入数据库或绘制词云图;


📝 总结

通过这个小脚本,你可以高效:

  • 批处理多个文本文件;

  • 自动清洗文本,统计高频词;

  • 导出 Excel 结果,用于报告、分析或展示。

 更多实用案例,代码,素材如下:

自取链接:https://pan.quark.cn/s/a46f30accea2

如果你希望下一步集成词云生成、分组对比分析,或英文与多语种混排文本处理,也可以继续告诉我,我可以为你定制更丰富的教程!

 

 

 

 

http://www.dtcms.com/a/268729.html

相关文章:

  • iOS 出海 App 安全加固指南:无源码环境下的 IPA 加固与防破解方法
  • Spring的Bean原型模式下的使用
  • OpenWebUI(3)源码学习-后端models数据模型模块
  • 【论文撰写】如何把AI生成的文本公式复制在word中,完整的复制公式,拷贝豆包生成的公式
  • 网络安全之注入攻击:原理、危害与防御之道
  • 文件IO day29
  • 代码幽灵5-终局:静默编译
  • Baklib: 用 “技术轻量化” 解决内容管理 “重需求”
  • Linux命令的命令历史
  • 大数据在UI前端的应用创新:基于情感计算的用户体验优化
  • 冠能高端系列真实口碑如何
  • TCP backlog工作机制
  • AI时代,传统票务系统该往哪里使劲?
  • 华为手机如何扫描到SLE设备
  • 如何备份vivo手机中的联系人?
  • “猫攻击”揭示推理模型脆弱性,凸显上下文工程的重要性
  • 存储器介绍
  • React16,17,18,19新特性更新对比
  • 面向智驾的车规级高精度RTK模块UM680A的引脚功能
  • Git在Pycharm中的使用
  • web网页开发,在线%ctf管理%系统,基于html,css,webform,asp.net mvc, sqlserver, mysql
  • 【论文阅读】SASLN:小样本条件下机械故障诊断的信号增强自学习网络
  • Redis常用数据结构以及多并发场景下的使用分析:Set类型
  • react状态管理库 - zustand
  • BitMart“滑点守护计划”二期重磅升级,定义安心交易新纪元
  • Redis哨兵模式之Sentinel模式(二)
  • vue3 强制刷新 forceUpdate
  • 关于使用shiro中Session的使用导致的Java 对象引用问题
  • 【BTC】比特币系统的具体实现
  • 《30天打牢数模基础-第一版》(已完结) 需要自取