首页 > 编程语言 >Python文档处理操作(1)——统计分析文档内容

Python文档处理操作(1)——统计分析文档内容

时间:2024-06-13 13:00:19浏览次数:23  
标签:文件 统计分析 Python jieba 列表 文档 ls ----- txt

-----案例1:要求-----

读取文件 data1.txt 的内容,统计其中所有不同字符的数量,并输出结果。

-----案例1:代码示例-----

f = open('data1.txt')  # 打开名为 'data1.txt' 的文件,并将文件对象赋值给变量 f
ls = []                # 初始化一个空列表 ls,用于存储文件中出现的不同字符
for line in f:         # 遍历文件对象 f 中的每一行
    for c in line:     # 遍历当前行中的每一个字符
        if c not in ls:  # 如果字符 c 不在列表 ls 中
            ls.append(c)  # 将字符 c 添加到列表 ls 中
f.close()              # 关闭文件
print(len(ls))         # 输出列表 ls 中不同字符的数量

-----案例2:要求-----

统计文件中出现词频最多的前10个长度不小于2个字符的词语,将词语及其出现的词频数按照词频数递减排序后显示在屏幕上,每行显示一个词语,用英文冒号连接词语及其词频。

-----案例2:代码示例-----

import jieba                          # 导入 jieba 库,用于中文分词

f = open('data3.txt')                 # 打开名为 'data3.txt' 的文件,并将文件对象赋值给变量 f
datas = f.read()                      # 读取文件中的所有内容,并将其赋值给变量 datas
data = jieba.lcut(datas)              # 使用 jieba 对文件内容进行分词,结果是一个列表 data,每个元素是一个词

d = {}                                # 初始化一个空字典 d,用于统计每个词的出现次数

for i in data:                        # 遍历分词后的列表 data 中的每个词 i
    if len(i) >= 2:                   # 如果词 i 的长度大于等于 2(过滤掉单个字符的词)
        d[i] = d.get(i, 0) + 1        # 更新字典 d 中词 i 的计数,如果词 i 不在字典 d 中,则添加并设初始值为 1,否则将其计数加 1

ls = list(d.items())                  # 将字典 d 转换为包含键值对的列表 ls,每个元素是一个 (词, 次数) 元组
ls.sort(key=lambda x: x[1], reverse=True)  # 按照词频对列表 ls 进行降序排序,即按每个词的出现次数从高到低排序

for j in ls[:10]:                     # 取排序后列表 ls 的前 10 个元素,遍历每个元素 j(j 是一个 (词, 次数) 元组)
    print('{}:{}'.format(j[0], j[1])) # 打印词和其出现次数,格式为 '词:次数'

f.close()                             # 关闭文件

-----案例2:要求-----

使用 jieba 库对文件 data3.txt 进行中文分词,并统计出现频率最高的词汇,然后将包含该词的句子提取出来,保存到 out.txt 文件中。

-----案例3:代码示例-----

import jieba                          # 导入 jieba 库,用于中文分词

f = open('data3.txt')                 # 打开名为 'data3.txt' 的文件,并将文件对象赋值给变量 f
fo = open('out.txt', 'w')             # 打开名为 'out.txt' 的文件(以写模式打开),并将文件对象赋值给变量 fo

datas = f.read()                      # 读取文件中的所有内容,并将其赋值给变量 datas
data1 = jieba.lcut(datas)             # 使用 jieba 对文件内容进行分词,结果是一个列表 data1,每个元素是一个词

data2 = datas.replace(',', '。')     # 将文件内容中的中文逗号(,)替换为中文句号(。),并将结果赋值给 data2
data2 = data2.split('。')             # 使用中文句号(。)将内容分割成多个句子,结果是一个列表 data2,每个元素是一个句子

d = {}                                # 初始化一个空字典 d,用于统计每个词的出现次数

for i in data1:                       # 遍历分词后的列表 data1 中的每个词 i
    if len(i) >= 2:                   # 如果词 i 的长度大于等于 2(过滤掉单个字符的词)
        d[i] = d.get(i, 0) + 1        # 更新字典 d 中词 i 的计数,如果词 i 不在字典 d 中,则添加并设初始值为 0,否则将其计数加 1

ls = list(d.items())                  # 将字典 d 转换为包含键值对的列表 ls,每个元素是一个 (词, 次数) 元组
ls.sort(key=lambda x: x[1], reverse=True)  # 按照词频对列表 ls 进行降序排序,即按每个词的出现次数从高到低排序

for j in data2:                       # 遍历分割后的句子列表 data2 中的每个句子 j
    if ls[0][0] in j:                 # 如果最高频词(即 ls 列表第一个元素的第一个值)出现在句子 j 中
        fo.write(j.strip('\n') + '\n')# 将句子 j 去除行尾的换行符后写入到文件 fo 中,并附加一个换行符

f.close()                             # 关闭文件 data3.txt
fo.close()                            # 关闭文件 out.txt

标签:文件,统计分析,Python,jieba,列表,文档,ls,-----,txt
From: https://blog.csdn.net/weixin_68085527/article/details/139604129

相关文章

  • python数据分析-房价数据集聚类分析
    一、研究背景和意义随着房地产市场的快速发展,房价数据成为了人们关注的焦点。了解房价的分布特征、影响因素以及不同区域之间的差异对于购房者、房地产开发商、政府部门等都具有重要的意义。通过对房价数据的聚类分析,可以深入了解房价的内在结构和规律,为相关决策提供科学依据......
  • [1007] Getting Started with PDF Extract API (Python)
    ref:GettingStartedwithPDFExtractAPI(Python)Inthiscase,IplantousethemethodofcompressingPDFtoshrinkthesizeofsomePDFfiles.ButthismethodfromtheAdobeAcrobatAPIdoesn'tworkverywellcomparedthetoolwithintheAdobe......
  • 软件开发文档汇总(开发&实施&运维&安全&交付)
       前言:在软件项目管理中,每个阶段都有其特定的目标和活动,确保项目的顺利进行和最终的成功交付。以下是软件项目管理各个阶段的详细资料:软件项目管理部分文档清单: 工作安排任务书,可行性分析报告,立项申请审批表,产品需求规格说明书,需求调研计划,用户需求调查单,用户需求说明......
  • Python对象序列化库之dill使用详解
    概要在Python编程中,序列化(Serialization)和反序列化(Deserialization)是处理对象持久化和数据传输的常见任务。Python提供了内置的 pickle 模块用于对象序列化,但它在处理复杂对象(如带有lambda函数、生成器和闭包的对象)时存在一定局限性。dill 库是 pickle 的一个扩展......
  • 【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 团队派遣(100分) - 三语言AC题解(Py
    ......
  • 【2024最新华为OD-C/D卷试题汇总】[支持在线评测] LYA与朋友们的石头剪刀布游戏(100分
    ......
  • 深入Python网络编程:从基础到实践
    Python,作为一种被广泛使用的高级编程语言,拥有许多优势,其中之一就是它的网络编程能力。Python的强大网络库如socket,requests,urllib,asyncio,等等,让它在网络编程中表现优秀。本文将深入探讨Python在网络编程中的应用,包括了基础的socket编程,到高级的异步IO网络编程,以及我们如......
  • 机器学习python实践——关于ward聚类分层算法的一些个人心得
    最近在利用python跟着参考书进行机器学习相关实践,相关案例用到了ward算法,但是我理论部分用的是周志华老师的《西瓜书》,书上没有写关于ward的相关介绍,所以自己网上查了一堆资料,都很难说清楚ward算法,幸好最后在何晓群老师的《多元统计分析》这本书找到了比较清晰的说法,所以总结出......
  • CP AUTOSAR标准中文文档链接索引(更新中)
    AUTOSAR标准的核心组件包括通信、诊断、安全等,这些组件通过模块化结构进行组织。系统被划分为多个模块,每个模块负责特定的功能。模块之间通过接口进行通信,接口定义了模块之间的交互规则。AUTOSAR标准支持模块的配置,可以根据不同的需求进行定制和优化。应用程序接口通信驱......
  • python 中的多态
    多态的基本思想是相同的操作可以作用于不同的对象。这个概念可以通过方法重写和鸭子类型来实现。方法重写(MethodOverriding)在继承体系中,子类可以重写(覆盖)父类的方法,从而提供子类特有的实现。这样,即使不同的对象实现了不同的方法,它们仍然可以通过相同的接口进行调用。示例:方......