Python实例分析——文本词频统计

本文通过Python分析了数字文本pi、英文文本《哈姆雷特》和中文文本《三国演义》的词频统计。在数字文本部分,统计了pi小数点后1000位中各数字的出现频率;英文文本中,提取并展示了《哈姆雷特》的前10个高频词;中文文本部分,统计了《三国演义》中出场次数最多的15位人物。文章详细阐述了词频统计的思路和步骤,包括文本预处理、计数、排序等关键操作,并提供了完整代码。
摘要由CSDN通过智能技术生成

基于中国大学mooc网嵩天老师的《Python语言程序设计》课程实例

文章目录

一、数字文本 pi

问题描述:
统计并输出圆周率pi小数点后1000位中各数字出现频率并排序

完整代码:

txt = open('pi1000.txt', 'r').read()    # 获取文本文件
counts = {}    # 创建空字典

for num in txt:
    if num == ' ':    # 排除数字文本中可能出现的空格
        continue
    else:
        counts[num] = counts.get(num, 0) + 1  # 统计词频并在字典中创建键值对
items = list(counts.items())       # 将无序的字典类型转换为可排序的列表类型
items.sort(key=lambda x: x[1], reverse=True)   # 以元素的第二列进行从大到小排序

for i in range(10):
    num, count = items[i]
    print("{:<5}:{:>5}".format(num, count))    # 格式化输出排序结果

结果展示:
在这里插入图片描述

二、英文文本 Hamlet

问题描述:
输出 Hamlet 中前10个高频词语及其次数

实例分析:
从思路上看,词频统计只是累加问题

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用Python实现中文文本词频统计,可以按照以下步骤进行: 1. 导入必要的库,包括`jieba`用于中文分词。 2. 定义一个函数,命名为`word_frequency`,该函数接受一个中文文本字符串作为参数。 3. 在函数内部,使用`jieba`库对文本进行分词,得到词语列表。 4. 初始化一个空字典`freq_dict`用于存储词频统计结果。 5. 遍历词语列表,对每个词语进行统计: - 如果词语已经在`freq_dict`中,将其计数加1; - 如果词语不在`freq_dict`中,将其添加到`freq_dict`并设置计数为1。 6. 返回词频统计结果`freq_dict`。 以下是用Python实现中文文本词频统计的代码示例: ```python import jieba def word_frequency(text): word_list = jieba.lcut(text) # 中文分词 freq_dict = {} for word in word_list: if word in freq_dict: freq_dict[word] += 1 else: freq_dict[word] = 1 return freq_dict ``` 你可以调用`word_frequency`函数并传入一个中文文本字符串来进行测试,例如: ```python text = "今天天气真好,出去玩了一天。明天继续努力学习!" freq_result = word_frequency(text) print(freq_result) ``` 输出结果将为: ``` {'今天': 1, '天气': 1, '真好': 1, ',': 1, '出去': 1, '玩': 1, '了': 1, '一天': 1, '。': 1, '明天': 1, '继续': 1, '努力': 1, '学习': 1, '!': 1} ``` 这样就完成了使用Python实现中文文本词频统计的过程。请注意,在进行中文分词时,你可能需要提前安装`jieba`库,并且需要下载`jieba`的中文分词词库。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值