I am a teacher!

导航

习题解析之:2024政府工作报告数据提取

【问题描述】

附件中为2024年政府工作报告,本题要求将报告中所有包含数字字符的短句(*)进行提取。

输入一个关键词key

如果该关键词key在报告中出现,则统计输出该关键字key在报告中出现的次数,并按照报告中出现顺序依次输出包含该关键词key所有短句,以换行间隔。
如果输入的关键词为数字短句,则输出所有包含数字的短句,以换行间隔。
除以上情况外如果输入的关键词在报告中没有出现过,则输出 未找到关键词
示例:

输入:
卫生

输出:
5
医药卫生
提高医疗卫生服务能力
扩大基层医疗卫生机构慢性病
精神卫生
深入开展健康中国行动和爱国卫生运动

【编程思路】

        按题目的要求补充相应的程序代码即可。补充完善后的源程序如下:

import string

def Read_report(name):  #本函数已定义完整
    #读取报告原文,返回字符串,本函数勿修改。
    with open(name,'r',encoding='UTF-8') as f:
        return f.read()

#下方为待完成区域
def Short(s):  
    #定义函数,判断字符串s中是否包含数字字符
    for ch in s:
        if ch in '0123456789':
            return True
    return False    

def Sign_delete(s):  
    #定义函数,将报告字符串中的所有中文标点符号替换成英文空格,以便后续分割列表。
    sign = ['"', '#', '$', '%', '&', ''', '(', ')', '*', '+', ',', '-', '/', ':', ';', '<', '=', '>', '@', '[', '\', ']', '^', '_', '`', '{', '|', '}', '~', '⦅', '⦆', '「', '」', '、', '\u3000', '、', '〃', '〈', '〉', '《', '》', '「', '」', '『', '』', '【', '】', '〔', '〕', '〖', '〗', '〘', '〙', '〚', '〛', '〜', '〝', '〞', '〟', '〰', '〾', '〿', '–', '—', '‘', '’', '‛', '“', '”', '„', '‟', '…', '‧', '﹏', '﹑', '﹔', '·', '.', '!', '?', '。', '。']
    # 继续完成函数定义
    for ch in sign:
        s = s.replace(ch,' ')
    return s

name = 'step6/2024政府工作报告.txt'
report  = Read_report(name)   #读取报告文件
report  = Sign_delete(report) #替换报告中符号,以便后续分隔
key = input()  #输入关键词
# 下方继续后续流程设计代码
ls = report.split()
if key == '数字短句':
    for x in ls:
        if  Short(x):
            print(x)
else:
    ans = []
    for x in ls:
        if key in x:
            ans.append(x)
    if len(ans) != 0:
        print(len(ans))
        for t in ans:
            print(t)
    else:
        print('未找到关键词')  

posted on 2025-12-03 16:44  aTeacher  阅读(1)  评论(0)    收藏  举报