学会python——统计文件中文字出现次数(python实例九)

目录

1、认识Python

2、环境与工具

2.1 python环境

2.2 Visual Studio Code编译

3、统计文本文件中单词频率

3.1 代码构思

3.2 代码示例

3.3 运行结果

4、总结


1、认识Python

Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。

Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字或标点符号,它具有比其他语言更有特色的语法结构。

2、环境与工具

2.1 python环境

在Windows上使用命令行窗口查看所安装的python版本

python --version

 

2.2 Visual Studio Code编译

Visual Studio Code是一款由微软开发且跨平台的免费源代码编辑器。该软件以扩展的方式支持语法高亮、代码自动补全、代码重构功能,并且内置了命令行工具和Git 版本控制系统。

3、统计文本文件中单词频率

3.1 代码构思

对文本文件一行一行的进行遍历,在通过列表生成式吧每一个单词取出放在变量中,内层循环统计每一个单词出现的次数,再对次数进行统计排序,最后函数对排好序的字典按传入的参数值进行切片并返回。注意要在代码目录下新建一个文本文件“test.txt”

3.2 代码示例

import re

# 定义一个类
class CounterWord:
    def __init__(self, file_name):
        # 设置要统计单词的文件名
        self.filename = file_name
        # 初始化字典,用来保存单词出现的次数
        self.dict_count = {}

    # 定义一个统计函数
    def count_word(self):
        try:
            with open(self.filename, 'r', encoding='utf-8') as f:
                # 循环读取每一行
                for line in f:
                    words = [s.lower() for s in re.findall(r'\w+', line)]
                    # 统计单词出现的次数
                    for word in words:
                        self.dict_count[word] = self.dict_count.get(word, 0) + 1
        except FileNotFoundError:
            print(f"文件 {self.filename} 未找到。")
        except Exception as e:
            print(f"读取文件时发生错误:{e}")

    # 取出现次数在num前的单词
    def top_number(self, num):
        return sorted(self.dict_count.items(), key=lambda item: item[1], reverse=True)[:num]

if __name__ == '__main__':
    counter_obj = CounterWord('./part2/test.txt')
    counter_obj.count_word()
    top_num_6 = counter_obj.top_number(6)
    print('test.txt 中出现次数前六的单词有:')
    for word, count in top_num_6:
        print(f"{word} 出现:{count} 次")

3.3 运行结果

4、总结

该代码可以用作文本内容检查,检查高频率用语。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

浅谈逻辑控制器之ForEach控制器

浅谈逻辑控制器之ForEach控制器 ForEach控制器是一个非常实用的功能,它允许用户遍历某个变量的所有值,并为每个值执行控制器内的子采样器或逻辑。这对于处理从先前请求(如CSV Data Set Config、JSON Extractor、Regular Expression Extracto…

设计工程师在FMEA团队中的职责是什么?

在复杂多变的工程环境中,FMEA(失效模式与影响分析)已成为确保产品质量、提高系统可靠性和降低潜在风险的关键工具。FMEA团队由多个专业领域的专家组成,其中设计工程师作为团队的重要成员,扮演着至关重要的角色。本文&a…

boost asio异步服务器(4)处理粘包问题tlv

粘包的产生 当客户端发送多个数据包给服务器时,服务器底层的tcp接收缓冲区收到的数据为粘连在一起的。这种情况的产生通常是服务器端处理数据的速率不如客户端的发送速率的情况。比如:客户端1s内连续发送了两个hello world!,服务器过了2s才接…

BP神经网络

BP神经网络 BP神经网络是一种多层前馈神经网络,它通过反向传播算法进行训练,旨在最小化损失函数,从而对输入数据进行精确的分类或回归预测。 背景 BP (Back Propagation) 神经网络是1986年由 Rumelhart 和 McClelland 为首的科学家提出的概…

SAP ABAP 之容器

文章目录 前言一、案例介绍/笔者需求二、自定义容器 a.实例化对象 b.自定义容器效果演示 c.Copy Code 三、自适应容器 a.常用 必须 参数理解 b.METRIC 度量单位 c.RATIO 百分比尺寸 d.STYLE 容器…

商业银行流动性创造指标数据集(2005-2022)

数据简介:中文数据库商业银行流动性创造指标参考邓伟等老师(2022)的做法,常备借贷便利与中期借贷便利数据来源于中国人民银行发布的《中国货币政策执行报告》。银行层面的微观指标主要来源于BankScope数据库和CSMAR数据库&#xf…

Spring Cloud Netflix:构建强大微服务生态系统的利器

Spring Cloud Netflix是一组集成框架,它将Netflix的多个开源组件整合到Spring Boot应用程序中,使得构建云原生应用程序变得更加简单。这些组件包括用于服务发现和注册的Eureka,断路器模式的实现Hystrix,用于API网关的Zuul&#xf…

springboot家乡特色推荐系统 LW +PPT+源码+讲解

3系统需求分析 3.1系统功能 通过前面的功能分析可以将家乡特色推荐系统的功能分为管理员和用户两个部分,系统的主要功能包括首页,个人中心,用户管理,文章分类管理,文章分享管理,系统管理等内容。任何用户…

【c语言】二级指针

1,定义 本质还是从指针的角度去理解,只不过存的指针的值 2,使用方法

第三方软件连接虚拟机

第三方软件连接虚拟机 1 查看本机VM(VMware)虚拟机网段2 开启虚拟机系统,修改网卡配置3 重新打开网络并测试连通性4 打开VM虚拟机网络开关5 通过第三方软件建立连接6 可能遇到的问题 1 查看本机VM(VMware)虚拟机网段 子…

38.控制功能实现

上一个内容:37.添加简易的调试功能 以 37.添加简易的调试功能 它的代码为基础进行修改 效果图: 下图红框位置的功能实现 Dlls项目中添加一个Dialog Dialog如下 然后给它添加一个类,MFC添加的类可能会报错添加 #include "afxdialogex.h…

煤矿智能巡检机器人:推动煤矿行业变革的关键力量

目前我国煤炭资源总量达到了2078.85亿吨,已探明储量为1432亿吨,煤矿能源现阶段还是我国重要的基础能源。而煤矿生产作业存在巨大危险,主要包括高温、高压、燃爆和有毒气体等环境因素,同时机械设备运转过程中潜藏着重大风险。这些危…

【Python/Pytorch - 网络模型】-- 高阶SVD算法

文章目录 文章目录 00 写在前面01 基于Python版本的高阶SVD算代码02 HOSVD 的步骤 00 写在前面 高阶奇异值分解(Higher-Order SVD,HOSVD)是一种将传统的奇异值分解(SVD)扩展到高阶张量的方法。它能够将一个高阶张量分…

【摄像头标定】使用kalibr进行双目摄像头标定(ros1、ros2)

使用kalibr进行双目摄像头标定 前言标定板标定①板端准备和录制②上位机准备和标定 前言 本文不是纯用ros1进行标定,需要ros1和ros2通信。给使用ros2进行开发,但又想用kalibr标定双目摄像头的小伙伴一个教程。本文双目摄像头的数据发布使用ros2&#xf…

fork 是一个创建新进程的系统调用

在计算机科学中,fork 是一个创建新进程的系统调用。具体来说,fork 调用会创建一个与当前进程几乎完全相同的副本,包括父进程的内存布局、环境变量、打开的文件描述符等。这个新的进程被称为子进程,而原始进程被称为父进程。 以下…

Spring+Vue项目部署

目录 一、需要的资源 二、步骤 1.首先要拥有一个服务器 2.项目准备 vue: 打包: 3.服务器装环境 文件上传 设置application.yml覆盖 添加启动和停止脚本 ​编辑 安装jdk1.8 安装nginx 安装mysql 报错:「ERR」1273-Unknown collation: utf8m…

springboot网上商城系统的设计与实现-计算机毕业设计源码08789

摘 要 随着互联网趋势的到来,各行各业都在考虑利用互联网将自己推广出去,最好方式就是建立自己的互联网系统,并对其进行维护和管理。在现实运用中,应用软件的工作规则和开发步骤,采用Java技术建设网上商城系统。 本设…

客户有哪些封装案例,一句克服使用让PCBA工厂泪流满面

作者 | 高速先生成员--王辉东 天空下着雨,萧萧从窗前经过,看窗里。 翠萍那娇艳欲滴的脸上挂着两串泪滴。 萧萧一进去,问啥情况。 翠萍往电脑屏幕一指。 当萧萧看向屏幕一瞬间。 那些曾经以为早已遗忘的伤痛,会在某些时刻如潮…

Gradle学习-2 Groovy

1、Groovy基础语法 1.1、基本数据类型 Groovy支持数据类型:byte, short, int, long, float, double, char (1)创建一个Android Studio项目 (2)在根目录新建一个 leon.gradle,输入以下内容 leon.gradle…

突破Web3红海,DePIN如何构建创新生态系统?

撰文:TinTinLand 本文来源香港Web3媒体Techub News专栏作者TinTinLand 2023 年 DePIN 赛道的火热成为 Web3 行业的重点关注方向,当前如何以可扩展、去中心化、安全方式推动 DePIN 赛道赋能下的 AI 版图建设,寻找更多 Web3 行业创新机遇成为…