当前位置: 代码网 > it编程>前端脚本>Python > 使用Python实现一个简单实用的文本词频统计分析工具

使用Python实现一个简单实用的文本词频统计分析工具

2025年05月29日 Python 我要评论
前言文本分析是自然语言处理(nlp)中的基础任务,而词频统计则是文本分析的入门级应用。通过词频分析,我们可以快速了解文本的主题倾向、关键信息分布以及语言使用习惯。本文将带你实现一个简单而实用的文本词频

前言

文本分析是自然语言处理(nlp)中的基础任务,而词频统计则是文本分析的入门级应用。通过词频分析,我们可以快速了解文本的主题倾向、关键信息分布以及语言使用习惯。本文将带你实现一个简单而实用的文本词频统计工具,非常适合python初学者练手。

功能特点

支持任意.txt格式文本文件的词频分析

自动处理文本编码问题

使用正则表达式精确提取英文单词(包括带连字符和撇号的单词)

按频率排序并计算每个单词的出现比例

支持查看前n个高频词功能

代码实现

import re
from collections import defaultdict


def word_frequency(file_path, top_n=none):
    """
    统计文本文件中的单词频率
    :param file_path: 文本文件路径
    :param top_n: 显示前n个高频词,默认显示全部
    :return: 排序后的单词频率列表
    """
    # 读取文件内容
    try:
        with open(file_path, 'r', encoding='utf-8') as file:
            text = file.read().lower()  # 转为小写
    except filenotfounderror:
        print(f"错误:文件 {file_path} 未找到")
        return []
    except unicodedecodeerror:
        print("错误:文件编码不支持,请尝试使用其他编码(如gbk)")
        return []

    # 使用正则表达式提取单词(包括带连字符的单词)
    words = re.findall(r"\b[a-za-z'-]+\b", text)

    # 统计词频
    frequency = defaultdict(int)
    for word in words:
        frequency[word] += 1

    # 按频率排序
    sorted_words = sorted(frequency.items(), key=lambda x: x[1], reverse=true)

    # 输出结果
    print(f"\n总共有 {len(words)} 个单词,其中唯一单词 {len(sorted_words)} 个")
    print("排名 | 单词\t\t频率\t占比")
    print("-" * 40)

    total_words = len(words)
    for rank, (word, count) in enumerate(sorted_words[:top_n], 1):
        percentage = (count / total_words) * 100
        print(f"{rank:4} | {word:12} {count:6} \t{percentage:.2f}%")

    return sorted_words


if __name__ == "__main__":
    # 使用示例
    file_path = input("请输入文本文件路径:").strip()
    top_n = input("要显示前多少个高频词(默认全部):").strip()
    top_n = int(top_n) if top_n.isdigit() else none

    word_frequency(file_path, top_n)

代码解析

导入必要模块:

  • re:提供正则表达式支持,用于精确提取单词
  • defaultdict:特殊字典类型,当键不存在时提供默认值,简化词频统计

核心函数设计:

  • 异常处理确保文件打开的健壮性
  • 使用正则表达式\b[a-za-z'-]+\b提取英文单词(包括带连字符和撇号的复杂形式)
  • 采用defaultdict高效统计词频
  • 使用python内置的sorted()函数按词频排序

用户交互:

  • 支持自定义文件路径输入
  • 灵活设置显示的高频词数量

运行效果

将以下文本保存为txt文件,然后运行程序,输入文件路径即可看到分析结果:

应用场景

英文文学作品词汇分析

论文关键词提取

网络文本主题挖掘

语言学习词汇频率研究

进阶改进方向

增加中文分词支持(可结合jieba等分词库)

添加停用词过滤功能

实现数据可视化展示(如词云图)

开发gui界面提升用户体验

支持批量文件分析比较

到此这篇关于使用python实现一个简单实用的文本词频统计分析工具的文章就介绍到这了,更多相关python文本词频统计分析内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com