python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python文本词频统计分析

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

作者:笨笨轻松熊

文本分析是自然语言处理(NLP)中的基础任务,而词频统计则是文本分析的入门级应用,本文就来为大家介绍如何实现一个简单而实用的文本词频统计工具吧,非常适合Python初学者练手

前言

文本分析是自然语言处理(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)

代码解析

导入必要模块:

核心函数设计:

用户交互:

运行效果

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

应用场景

英文文学作品词汇分析

论文关键词提取

网络文本主题挖掘

语言学习词汇频率研究

进阶改进方向

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

添加停用词过滤功能

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

开发GUI界面提升用户体验

支持批量文件分析比较

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

您可能感兴趣的文章:
阅读全文