Python 3.12 中文文本数据提取实战:政府工作报告数字短句提取 5 步法
📅 2026/7/10 10:14:39
👁️ 次浏览
Python 3.12 中文文本数据提取实战政府工作报告数字短句提取 5 步法在数据分析与信息挖掘领域中文文本处理一直是个既基础又关键的技能点。不同于英文文本以空格自然分隔单词中文文本的连续性给数据提取带来了独特挑战。本文将以2024年政府工作报告为样本手把手带你构建一个健壮的数字短句提取工具过程中会涉及Unicode标点处理、字符串分割优化和条件筛选等核心技术。1. 环境准备与数据加载工欲善其事必先利其器。我们需要确保Python环境就绪并正确加载文本数据# 确保使用Python 3.12 import sys assert sys.version_info (3, 12), 需Python 3.12或更高版本 # 核心库导入 import re from pathlib import Path文本加载建议使用pathlib进行跨平台路径处理report_path Path(2024_government_report.txt) report_text report_path.read_text(encodingutf-8)注意实际项目中建议添加异常处理如文件不存在时的友好提示try: report_text report_path.read_text(encodingutf-8) except FileNotFoundError: print(f错误文件 {report_path} 未找到) sys.exit(1)2. 中文标点标准化处理中文标点符号的复杂性远超英文我们需要建立完整的标点映射表# 全角标点转半角映射表 FULL_TO_HALF { : , : #, : $, : %, : , : , : (, : ), : *, : , : ,, : -, : /, : :, : ;, : , : , : , : , : [, : \\, : ], : ^, : _, : , : {, : |, : }, : ~, : ⦅, : ⦆, : 「, : 」, : 、, \u3000: , 、: ,, 〃: , 〈: , 〉: , 《: 《, 》: 》, 「: , 」: , 『: , 』: , 【: [, 】: ], 〔: (, 〕: ), 〖: [, 〗: ], 〘: [, 〙: ], 〚: [, 〛: ], 〜: ~, 〝: , 〞: , 〟: , 〰: ~, 〾: 〾, 〿: 〿, –: -, —: -, ‘: , ’: , ‛: , “: , ”: , „: , ‟: , …: ..., ‧: ·, ﹏: _, ﹑: ,, ﹔: ;, ·: ·, : ., : !, : ?, : ., 。: . } def normalize_punctuation(text): 将中文标点转换为英文等效字符 return .join(FULL_TO_HALF.get(char, char) for char in text)处理效果对比示例处理前处理后2023年国内生产总值增长5.2%。2023年, 国内生产总值增长5.2%.粮食产量1.3万亿斤以上粮食产量1.3万亿斤以上!3. 智能文本分割策略简单的split()方法在中文场景下往往表现不佳我们需要更智能的分割方式def smart_split(text): 优化版中文文本分割器 # 标准化标点 normalized normalize_punctuation(text) # 处理连续空格 cleaned re.sub(r\s, , normalized) # 基于空格分割保留有意义片段 return [word for word in cleaned.split() if word]关键改进点处理连续空格避免空字符串过滤无意义的空白片段保留原始词语顺序测试案例sample 全年经济社会发展主要目标任务圆满完成国内生产总值增长5.2% print(smart_split(sample)) # 输出[全年经济社会发展主要目标任务圆满完成, 国内生产总值增长5.2%]4. 数字短句识别引擎识别包含数字的短句需要兼顾多种数字表示形式def contains_number(text): 检测字符串是否包含数字 patterns [ r\d, # 普通整数 r\d\.\d, # 小数 r[一二三四五六七八九十百千万亿], # 中文数字 r\d% # 百分比 ] return any(re.search(pattern, text) for pattern in patterns)常见数字形式识别示例输入文本是否匹配GDP增长5.2%是新增就业1206万人是财政赤字率3%是粮食产量稳定否十四五规划是5. 构建完整处理流水线将各模块组合成端到端解决方案def extract_digital_sentences(text, keywordNone): 主处理函数 sentences smart_split(text) if keyword 数字短句 or (keyword and keyword.isdigit()): return [s for s in sentences if contains_number(s)] elif keyword: results [s for s in sentences if keyword in s] return results if results else 未找到关键词 else: return 请输入有效查询条件 # 示例用法 digital_sentences extract_digital_sentences(report_text, 数字短句) for sentence in digital_sentences: print(sentence)性能优化技巧对大规模文本可考虑生成器表达式添加LRU缓存高频处理结果支持多线程处理超长文本from functools import lru_cache lru_cache(maxsize100) def cached_extract(text_segment): 带缓存的提取函数 return extract_digital_sentences(text_segment, 数字短句)实际项目中可能遇到的典型数字短句示例城镇新增就业1244万人粮食产量1.37万亿斤减税降费超过2万亿元科技进步贡献率超过60%5G用户普及率超过50%处理这类数据时建议后续可以对提取的数字进行单位标准化建立时间序列分析制作可视化趋势图与历史数据进行对比分析
终极指南:如何使用Kinovea开源运动分析软件快速掌握专业视频分析技巧 【免费下载链接】Kinovea Video solution for sport analysis. Capture, inspect, compare, annotate and measure technical performances. 项目地址: https://gitcode.com/gh_mirrors/ki/Ki…
📅 2026/7/10 10:14:39
Java微信支付V2统一下单:XML签名与HTTP客户端性能深度优化指南 在电商和移动支付蓬勃发展的今天,微信支付作为国内主流的支付方式之一,其稳定性和性能直接影响着商户的交易转化率和用户体验。本文将深入探讨Java对接微信支付V2统一下单接口的…
📅 2026/7/10 10:14:39
更多请点击:
https://intelliparadigm.com
第一章:【2024最简AI视觉工作流】核心范式与合规边界 2024年,AI视觉应用正从“模型驱动”转向“场景驱动”,其核心范式聚焦于三要素统一:最小可行模型(MVM&#…
📅 2026/7/10 10:14:39
东方财富股吧数据采集实战:基于Selenium与MongoDB的高效爬虫架构设计在金融数据分析领域,东方财富股吧作为国内活跃的股票讨论社区,蕴含着大量有价值的市场情绪数据。本文将深入讲解如何构建一个高效、稳定的数据采集系统,通过Sel…
📅 2026/7/10 11:20:19
STM32 HAL库定时器回调函数的3个工业级应用场景与优化实践
引言 在嵌入式系统开发中,定时器是最基础却至关重要的外设之一。STM32 HAL库提供的 HAL_TIM_PeriodElapsedCallback 回调函数,为开发者处理周期性任务提供了标准化接口。但大多数教程仅停留在…
📅 2026/7/10 11:20:19
🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 在实际企业技术选型和架构演进中,Agentic AI(智能体AI)正从一个前沿概念迅速转变为可落地的工程实…
📅 2026/7/10 11:20:19
你看到的 // 这类乱码,是因为文件的实际编码(很可能是 GBK 或 GB2312)和 Sublime Text 默认打开的编码(UTF-8)不一致导致的-14。
可以按照下面的方法,按推荐顺序尝试解决。
💡 方法一…
📅 2026/7/10 11:20:19
Python 3.12 类变量与实例变量:5个常见陷阱与内存占用实测1. 类变量与实例变量的本质区别在Python面向对象编程中,类变量和实例变量是两种完全不同的数据存储机制。类变量属于类本身,而实例变量属于具体的对象实例。理解它们的差异对编写高效…
📅 2026/7/10 11:20:19
VNC与XRDP深度对比:Ubuntu服务器远程桌面协议的性能与安全实测 远程桌面协议是服务器管理中不可或缺的工具,尤其在需要图形界面支持的场景下。本文将基于实测数据,对比分析VNC(以TightVNC为例)和XRDP两种主流方案在Ubu…
📅 2026/7/10 11:19:18
一、为什么接口自动化测试,适合用AI赋能?
大家可自行先思考一个问题:
AI赋能测试全流程,为什么优先推荐从接口自动化切入?
有三个典型原因:
接口输入结构化,AI最擅长"吃"
接口有OpenA…
📅 2026/7/10 0:00:53
终极原神FPS解锁器完整指南:轻松突破60帧限制 【免费下载链接】genshin-fps-unlock unlocks the 60 fps cap 项目地址: https://gitcode.com/gh_mirrors/ge/genshin-fps-unlock
原神FPS解锁器是一款专为《原神》玩家设计的开源工具,通过先进的Wri…
📅 2026/7/10 0:00:53
YesPlayMusic:如何用高颜值播放器重塑你的网易云音乐体验?🎵 【免费下载链接】YesPlayMusic 高颜值的第三方网易云播放器,支持 Windows / macOS / Linux :electron: 项目地址: https://gitcode.com/gh_mirrors/ye/YesPlayMusic…
📅 2026/7/10 0:00:53
1. 项目背景与核心需求 在嵌入式系统开发中,快速精确的数据检索是一个常见但极具挑战性的需求。特别是在工业控制、医疗设备和物联网终端等场景下,系统往往需要在毫秒级时间内完成关键参数的读取和写入操作。传统基于Flash存储的方案存在擦写次数有限、操…
📅 2026/7/9 15:10:35
1. 工业电流环信号传输的基础认知在工业自动化领域,4-20mA电流环传输技术已经持续服役超过半个世纪。这种看似简单的信号传输方式之所以能经久不衰,核心在于其独特的抗干扰能力——电流信号在长距离传输时几乎不受线路电阻和电压波动的影响。我曾在化工厂…
📅 2026/7/9 14:14:01
最近在项目里尝试用 YOLO 做目标检测,从环境搭建到模型训练,再到推理部署,整个过程踩了不少坑。网上的资料虽然多,但要么版本老旧,要么步骤零散不成体系,对于刚入门的新手来说,很容易卡在某个环…
📅 2026/7/9 15:10:36
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/9 15:10:36
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/9 15:10:36
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/9 15:10:36