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

news/2024/10/18 14:20:32/

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

任务描述

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

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

编程要求

输入可能为下列情况:

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

测试说明

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

格式示例:

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

解题分析

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

参考代码

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)breakreturn resif 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('无对应操作')

http://www.ppmy.cn/news/327715.html

相关文章

SpringBoot-【回顾】

第一个SpringBoot程序 自动装配原理 Springboot的自动装配实际上就是为了从Spring.factories文件中获取到对应的需要进行自动装配的类,并生成相应的Bean对象,然后将它们交给Spring容器来帮我们进行管理 启动器:以starter为标记 EnableAuto…

DHCP是什么?它有什么作用?其工作模式?工作原理?

目录 一、DHCP是什么?二、DHCP的作用?1. 在没有DHCP服务的网络中2. 在有DHCP服务的网络中 三、DHCP的工作模式简介四、DHCP的工作原理五、参考资料 一、DHCP是什么? DHCP是动态主机配置协议(Dynamic Host Configuration Protocol…

算法模板(3):搜索(3):图论提高

图论提高 最小生成树 (1)朴素版prim算法( O ( n 2 ) O(n ^ 2) O(n2)) 适用范围:稠密图易错:注意有向图还是无向图;注意有没有重边和负权边。从一个集合向外一个一个扩展,最开始只…

基本类型转换和引用类型转换

文章目录 前言基本类型转换自动数据类型转换强制数据类型转换 引用数据类型转换向上转型向下转型 前言 提示:这里可以添加本文要记录的大概内容: Java 中的类型转换可以分为基本类型转换和引用类型转换两种。 基本类型转换指的是将一种基本数据类型转换…

【Mircosft Edge】插件推荐

插件推荐 1.推荐插件1.1 油猴 tempermonkey1.2 免费音乐播放器 Listen 1 2.添加插件2.1 打开“Micrsoft Edge 外接程序”2.2 获取新的扩展2.3 搜索插件2.3.1 在Micrsoft Edge 外接程序搜索框中输入tampermonkey,然后点击获取按钮进行安装2.3.2 在Micrsoft Edge 外接…

MongoDB 运行报 code: 31249, MongoError: Path collision at...

MongoDB 版本由 4.2 升级至 5.0,某处查询语句执行后报: MongoError: Path collision at activity_detail.period.start_date remaining portion period.start_date at MessageStream.messageHandler (/usr/src/app/node_modules/mongodb/lib/cmap/connec…

【Flutter 布局】001-Flex 布局

【Flutter 布局】001-Flex 布局 文章目录 【Flutter 布局】001-Flex 布局一、Flex1、概述简介构造函数 2、基本使用代码示例运行结果 3、方向取值范围代码示例 4、水平方向:主轴对齐方式取值范围代码示例运行结果 5、垂直方向:主轴对齐方式代码示例运行结…

参数估计和假设检验的区别与联系

1.参数估计和假设检验的区别与联系 笔记来源: 参数估计与假设检验 参数估计和假设检验有什么区别? 1.1 联系 参数估计和假设检验是推断统计的两个组成部分,它们都是根据样本信息对总体的数量特征进行推断 下图来自《统计学图鉴》 参数估计…