• 【头歌-Python】8.3 政府工作报告数据提取(project)-第4关


    参考教程:B站视频讲解——https://space.bilibili.com/3546616042621301

    第1关:读取政府工作报告文件

    任务描述

    附件中为2023年政府工作报告,本关要求将报告中所有包含数字字符的语句进行提取,并根据输入的关键词,将报告中与关键词相关联的语句筛选后输出(限于篇幅,本题仅列出部分关联词)。
    为保证评测结果一致性,提交代码中关键字的关联词列表数据必须与下述列表相同。

    education = ['高校','培训','基础研究','学生','扩招','培养','教育']  #教育关联词
    environment = ['清洁','森林','排放','土地','植被','能耗','湿地','能源','水体','公园','颗粒物','发电'] # 环保关联词
    economic = ['就业','消费','市场','失业','工业','农业','费用','债券','土地','措施','汽车','赤字','企业','经济','生产总值','商品','制造','装备','财政','投资','金融','税','支付','销量','外汇','通胀','收入','贫困','预算','贷款','保险','储备','住房','跨境','进口','出口','进出口','自贸','关税','发电']  #经济关联词
    medical = ['卫生','医疗','医学','救助','补助','学科']  #医疗卫生关联词
    transport = ['交通','运输','汽车','公路','铁路','机场','货物']   #交通运输关联词
    science = ['科技','创新','技术','双创','研究','专精特新','学科']  #科技创新关联词
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    编程要求

    输入可能为下列情况:

    • 输入’教育’,将报告中教育相关且包含数字字符的语句输出。
    • 输入’环保’,将报告中环保相关且包含数字字符的语句输出。
    • 输入’经济’,将报告中经济相关且包含数字字符的语句输出。
    • 输入’医疗’或’卫生’,将报告中医疗卫生相关且包含数字字符的语句输出。
    • 输入’交通’或’运输’,将报告中交通运输相关且包含数字字符的语句输出。
    • 输入’科技’或’创新’,将报告中科技创新相关且包含数字字符的语句输出。
    • 输入’数据’,将报告中所有包含数字字符的短句输出。
    • 如果非以上输入,输出’无对应操作’。

    测试说明

    平台会对你编写的代码进行测试:
    按照报告中出现顺序,输出与输入的关键字相关且包含数字的全部语句,每行一句。

    格式示例:

    • 输入1:
    数据 
    
    • 1
    • 输出1:
    ——202335日在第十四届全国人民代表大会第一次会议上
    2022年是党和国家历史上极为重要的一年
    全年国内生产总值增长3%
    城镇新增就业1206万人
    年末城镇调查失业率降到5.5%
    居民消费价格上涨2%
    货物进出口总额增长7.7%
    财政赤字率控制在2.8%
    粮食产量1.37万亿斤
    ... ...
    ... ...
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 输入2:
    环保 
    
    • 1
    • 输出2:
    ... ...
    地级及以上城市细颗粒物(PM2.5)平均浓度下降27.5%
    全国地表水优良水体比例由67.9%上升到87.9%
    森林覆盖率达到24%
    ... ...
    ... ... 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 输入3:
    工作
    
    • 1
    • 输出3:
    无对应操作 
    
    • 1

    解题分析

    本题的前半部分与前面几题类似,只需要将文件数据读取、替换符号、分割,而获取包含数字的语句则可以使用字典的交运算,只要句子内包含了数字字符,则满足条件;其次另一个关键点在于找到包含关键词的句子,本题采用的方法为最容易想到的遍历判断法,也就是将所有句子遍历一遍,每句话分别判断是否包含了对应关键词,将包含关键词的句子提取,最后将其输出即可。

    参考代码

    with open('src/政府工作报告.txt', 'r', encoding='utf-8') as f:
        s = f.read()
    education = ['高校','培训','基础研究','学生','扩招','培养','教育']  #教育关联词
    environment = ['清洁','森林','排放','土地','植被','能耗','湿地','能源','水体','公园','颗粒物','发电'] # 环保关联词
    economic = ['就业','消费','市场','失业','工业','农业','费用','债券','土地','措施','汽车','赤字','企业','经济','生产总值','商品','制造','装备','财政','投资','金融','税','支付','销量','外汇','通胀','收入','贫困','预算','贷款','保险','储备','住房','跨境','进口','出口','进出口','自贸','关税','发电']  #经济关联词
    medical = ['卫生','医疗','医学','救助','补助','学科']  #医疗卫生关联词
    transport = ['交通','运输','汽车','公路','铁路','机场','货物']   #交通运输关联词
    science = ['科技','创新','技术','双创','研究','专精特新','学科']  #科技创新关联词
     
    s = s.replace(',', ' ').replace('。', ' ').replace(';',' ')
    s = s.split()
    n = input()
    num = [str(i) for i in range(10)]
    data = [c for c in s if set(c)&set(num)]
    def get_data(data, infer):
        res = []
        for d in data:
            for i in infer:
                if i in d:
                    res.append(d)
                    break
        return res
    
    if n == '教育':
        data = get_data(data, education)
        print('\n'.join(data))
    elif n=='环保':
        data = get_data(data, environment)
        print('\n'.join(data))
    elif n=='经济':
        data = get_data(data, economic)
        print('\n'.join(data))
    elif n in ['医疗','卫生']:
        data = get_data(data, medical)
        print('\n'.join(data))
    elif n in ['交通','运输']:
        data = get_data(data, transport)
        print('\n'.join(data))
    elif n in ['科技','创新']:
        data = get_data(data, science)
        print('\n'.join(data))
    elif n == '数据':
        print('\n'.join(data))
    else:
        print('无对应操作')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
  • 相关阅读:
    Golang sync.Map大白话解析
    3D Gaussian Splatting文件的压缩【3D高斯泼溅】
    三显智能氮气柜温度、湿度和氧含量控制介绍
    cookies和session模拟学生用户登录
    5款必备的电脑软件
    Dive into TensorFlow系列(1)-静态图运行原理
    实现一个事件总线
    数据结构里的一棵树
    绽放新笑容:儿童换牙期的关怀与注意
    MySQL-基础
  • 原文地址:https://blog.csdn.net/qq_45801887/article/details/131152736