python统计文档词数

题目1

莎士比亚的经典悲剧Hamlet,获取该故事的文本文件,保存为hamlet.txt,统计该故事的英文词频。
提示:
(1)处理文本,统一格式。英文单词一般以空格、标点符号或特殊符号进行分割,可以将标点符号或特殊符号都替换成空格(使用 .replace()方法),之后进行单词提取。(注意英文单词字母大小写问题 .lower())
(2)对单词进行计数。使用字典count,其键值分别为单词word及出现的次数,统计次数可使用count[word] = count.get(word,0) + 1
(3)对单词统计值从高到低排序输出,例如,输出qian10个高频词。字典美欧顺序,可借助列表结构,使用sort()方法配合lambda函数实现排序。

Items = list(count.items()) #将字典转换为列表,思考下该列表元素的结构

Item.sort(key = lambda x: x[1], reverse = True) #以记录的第二列即次数进排序

编写程序,观察输出结果,高频单词中虚词居多,为了能够体现文章含义,可以建立一个排除库excludes,将虚词排除掉,再观察输出结果。

# 定义需要排除的虚词列表
excludes = {'the', 'and', 'of', 'to', 'in', 'a', 'that', 'is', 'for', 'it', 'with', 'on', 'as', 'was', 'by', 'at', 'an','be', 'this', 'which', 'or', 'from', 'but', 'not', 'are', 'have', 'they', 'you', 'one', 'had', 'all', 'we','can', 'her', 'has', 'there', 'been', 'if', 'more', 'when', 'will', 'would', 'who', 'so', 'out', 'up','their', 'what', 'about', 'into', 'than', 'its', 'some', 'could', 'them', 'these', 'may', 'other', 'then','do', 'only', 'time', 'new', 'like', 'any', 'now'}def count_words(file_name):# 打开文件并读取内容with open(file_name, 'r') as file:text = file.read()# 将所有非字母字符替换为空格,并转换为小写text = text.lower().replace(',', ' ').replace('.', ' ').replace('!', ' ').replace('?', ' ').replace(':',' ').replace(';', ' ').replace('-', ' ').replace('_', ' ').replace('(', ' ').replace(')', ' ').replace('[', ' ').replace(']',' ').replace('{', ' ').replace('}', ' ').replace('"', ' ').replace("'", ' ')# 分割文本为单词列表words = text.split()# 统计单词出现次数,排除虚词count = {}for word in words:if word not in excludes:count[word] = count.get(word, 0) + 1return countdef print_top_words(count, num=10):# 将字典转换为列表并按值排序items = list(count.items())items.sort(key=lambda x: x[1], reverse=True)# 输出前num个高频词for word, freq in items[:num]:print(f'{word}: {freq}')# 主程序
if __name__ == "__main__":hamlet_count = count_words('hamlet.txt')print("Top 10 words in Hamlet (excluding common words):")print_top_words(hamlet_count, 10)
题目2

中文词频统计。《三国演义》人物出场统计。
(1)使用jieba库进行分词
(2)进行词频统计
观察程序运行结果,排除与人名无关的词。对程序进行完善,同一人物有不同的名字,需要整合处理。

import jieba
from collections import Counter# 假设我们有一个简化版的人物别名映射
name_aliases = {"刘备": ["玄德", "刘玄德"],# ...其他人物及其别名
}# 读取文本文件
with open('三国演义.txt', 'r', encoding='utf-8') as file:text = file.read()# 使用jieba分词
words = jieba.lcut(text)# 初始化Counter对象
word_counts = Counter(words)# 整合人物别名
for name, aliases in name_aliases.items():for alias in aliases:word_counts[name] += word_counts.pop(alias, 0)# 排除一些常见非人名词语
exclude_words = {"的", "在", "了", "和", "是", "有", "我", "他", "这", "那", "不", "一个", "人", "说"}
word_counts = Counter({word: count for word, count in word_counts.items() if word not in exclude_words})# 获取前10个高频词(确保word_counts仍然是Counter对象)
top_characters = word_counts.most_common(10)# 输出结果
print("人物出场统计(前10名):")
for character, count in top_characters:print(f"{character}: {count}次")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/877214.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TCP/IP协议——使用Socket套接字实现

目录 Socket 使用Socket实现TCP客户端和服务器的过程 使用Socket搭建TCP服务器 线程优化 向客户端发送消息 连接的断开 客户端主动断开 服务端主动断开 服务器完整的程序 使用Socket编写客户端程序连接TCP服务器 Socket Socket是一种网络通信协议,它允许…

x-cmd pkg | yazi - 超快终端文件管理器

目录 简介快速入门功能特点竞品和相关项目进一步阅读 简介 yazi 是由 github.com/sxyazi 用 Rust 开发的终端文件管理器,支持预览文本文件、pdf 文件、图像、视频,内置代码高亮功能。在内部,它使用 Tokio 作为其异步运行时,以非阻…

【Vue3】watch 监视多种类型数据

【Vue3】watch 监视多种类型数据 背景简介开发环境开发步骤及源码 背景 随着年龄的增长,很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来,技术出身的人总是很难放下一些执念,遂将这些知识整理成文,以纪念曾经努力学习奋斗…

大数据-53 Kafka 基本架构核心概念 Producer Consumer Broker Topic Partition Offset 基础概念了解

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

实战:Zookeeper 简介和单点部署ZooKeeper

Zookeeper 简介 ZooKeeper是一个开源的分布式协调服务,它是Apache软件基金会下的一个项目,旨在解决分布式系统中的协调和管理问题。以下是ZooKeeper的详细简介: 一、基本定义 ZooKeeper是一个分布式的、开放源码的分布式应用程序协调服务&a…

系统架构师考点--系统架构设计(下)

大家好。今天总结一下系统架构设计的最后一部分知识点。 一、软件系统的质量属性 软件系统的质量属性 软件系统的质量属性可分为开发期质量属性和运行期质量属性2个部分。 1、开发期质量属性主要指在软件开发阶段所关注的质量属性,主要包含6个方面: …

C++ 关键字与库函数 学习总结

sizeof与strlen 含义 sizeof:是一个操作符,用于计算数据类型或变量的大小(以字节为单位)。在编译时求值strlen: 是一个函数,用于计算字符串的长度(不包括终止符 \0)。在运行时求值不…

【Code】Street-Gaussian代码复现笔记

文章目录 1. EnvironmentBug 1 2. TrainingBug 2Bug 3 1. Environment Follow the original instructions, conda create --name street-gaussians-ns -y python3.8 conda activate street-gaussians-ns pip install --upgrade pippip install torch2.1.2cu118 torchvision0.…

bugku-web-ctf-变量1

<?php error_reporting(0); include "flag1.php"; highlight_file(__file__); if(isset($_GET[args])){$args $_GET[args];if(!preg_match("/^\w$/",$args)){die("args error!");}eval("var_dump($$args);"); } ?> error_r…

扩展------正向代理和反向代理怎么理解?

今天看博客园&#xff0c;突然看到正向代理和反向代理&#xff0c;发现自己还不会就稍微研究了一下。 正向代理----(看做是服务员) 当我们进饭店吃饭&#xff0c;我们不可能会直接去后厨叫厨师给我们做菜&#xff0c;而是通过服务员去通知&#xff0c;这个就叫做正向代理。 再…

当年很流行,现在已经淘汰的Java技术,请不要学了!【建议收藏】

在Java技术的发展历程中&#xff0c;确实有一些曾经流行但现在已经被淘汰或不再推荐使用的技术。了解这些技术可以帮助你避免学习过时的知识&#xff0c;从而更高效地提升自己的技能。 以下是一些曾经流行但现在已经不太推荐学习的Java技术&#xff1a; 1. Servlet 2.x&#x…

AI作图接口要怎么调用呢?

一、什么是AI作图&#xff1f; 基于AI大模型的深度学习算法和大规模的图像数据训练&#xff0c;输入图片和关键词&#xff0c;可生成独特及富有创意的山水风格图片。 二、AI作图使用场景有哪些呢&#xff1f; 1.广告与营销&#xff1a; 为产品制作吸引人的宣传海报、广告图片…

git拉完代码总是自动创建一个新的节点

git拉完代码&#xff0c;总是自动生成弹出这个信息 然后还会在git上面留下一个节点&#xff0c;这个节点没啥用&#xff0c;显示着感觉有点碍事。 而且后续的git push 之后&#xff0c;会覆盖掉自己的git commit 的提示&#xff0c;其他人cr代码的时候看到的是 解决方法&#…

vite + postcss 安装配置

安装 npm install postcss-pxtorem --save-dev配置postcss.config.js 新建 postcss.config.js export default {plugins: {postcss-pxtorem: {rootValue: 16, // 根元素大小&#xff0c;用于转换rem的基准值unitPrecision: 5, // rem的小数位数propList: [*], // 需要转换的…

A股两市继续低开,缩量震荡前行!

今天的A股&#xff0c;让人心情极度炸裂&#xff0c;你们知道是为什么吗&#xff1f;盘面上出现2个重要信号&#xff0c;一起来看看&#xff1a; 1、今天两市低开&#xff0c;让人心情极度炸裂。 2、盘面上出现2个重要信号&#xff1a;一是为了迎接今日上证权益指数问世&#x…

LeetCode刷题笔记第682题:棒球比赛

LeetCode刷题笔记第682题&#xff1a;棒球比赛 题目&#xff1a; 想法&#xff1a; 遍历输入的列表&#xff0c;按照规则将分数和操作依次进行&#xff0c;存储在新建的列表中&#xff0c;最终输出列表中的元素和&#xff0c;代码如下&#xff1a; class Solution:def calPo…

妈吖,看过这个大厂的oracle主键自增,我的信心暴增!信创,国产数据库也能行。

创作不易 只因热爱!! 热衷分享&#xff0c;一起成长! “你的鼓励就是我努力付出的动力” 1.数据库oracle自增主键字段思维导图 在Oracle数据库中&#xff0c;可以通过创建序列&#xff08;SEQUENCE&#xff09;来实现自增功能。但也可以不在数据库中实现&#xff0c;而是通过程…

【Stable Diffusion】(基础篇六)—— embedding

embedding 本系列博客笔记主要参考B站nenly同学的视频教程&#xff0c;传送门&#xff1a;B站第一套系统的AI绘画课&#xff01;零基础学会Stable Diffusion&#xff0c;这绝对是你看过的最容易上手的AI绘画教程 | SD WebUI 保姆级攻略_哔哩哔哩_bilibili 除了大模型和VAE之外…

RewardBench:Evaluating Reward Models for Language Modeling

Leaderboard&#xff1a; https://hf.co/spaces/allenai/reward-bench Code&#xff1a; https://github.com/allenai/reward-bench Dataset&#xff1a; https://hf.co/datasets/allenai/reward-bench 在人类偏好的强化学习&#xff08;RLHF&#xff09;过程中&#xff0c;奖励…

Centos7重装系统保留数据安装方式记录

一、选择手动配置分区 二、选择/分区以后&#xff0c;输入挂载点/&#xff0c;选择标准分区&#xff0c;勾选重新格式化&#xff0c;单击更新设置。这样重装的时候&#xff0c;就格式化/分区内的数据。 三、选择swap分区&#xff0c;勾选重新格式化&#xff0c;单击更新设置…