Python 3.12 中文文本数据提取实战:政府工作报告数字短句提取 5 步法 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%处理这类数据时建议后续可以对提取的数字进行单位标准化建立时间序列分析制作可视化趋势图与历史数据进行对比分析

相关新闻

最新新闻

RAGFlow、LangChain、LlamaIndex框架选型实战指南

RAGFlow、LangChain、LlamaIndex框架选型实战指南

1. 项目概述:这不是选框架,是选“工作方式”RAGFlow、LangChain、LlamaIndex——这三个词最近在技术群、招聘JD、内部立项文档里出现的频率,已经快赶上“微服务”和“中台”了。但很多人点开 GitHub、跑完 Quick Start,心里反而更…

2026/7/10 10:59:18
基于MA12070与STM32L496ZG的高保真音频系统设计

基于MA12070与STM32L496ZG的高保真音频系统设计

1. 项目概述:构建基于MA12070和STM32L496ZG的高保真音频系统 在音频设备开发领域,如何平衡功率输出、音质表现和系统效率一直是工程师面临的挑战。MA12070作为英飞凌推出的高效D类音频放大器IC,与STM32L496ZG这款高性能ARM Cortex-M4微控制器…

2026/7/10 10:59:18
MATLAB R2024a 图像分割实战:5大算子边缘检测效果与性能对比分析

MATLAB R2024a 图像分割实战:5大算子边缘检测效果与性能对比分析

MATLAB R2024a 图像分割实战:5大算子边缘检测效果与性能对比分析 在数字图像处理领域,边缘检测作为图像分割的核心技术之一,其效果直接影响后续特征提取和目标识别的准确性。MATLAB R2024a版本针对边缘检测算法进行了多项优化,本文…

2026/7/10 10:59:18
系统工具健康检查:一个 `/health` 端点比看起来重要得多

系统工具健康检查:一个 `/health` 端点比看起来重要得多

系统工具健康检查:一个 /health 端点比看起来重要得多 一、不是所有 /health 端点都一样 很多人对健康检查的理解停留在"返回一个 200 就行了"。这种健康检查我叫它"存活性检查(liveness)"——只告诉你进程还活着&…

2026/7/10 10:59:18
【限时解密】Midjourney未公开权重机制:官方文档未披露的“隐式权重继承链”与多关键词竞争算法(仅剩最后217份内部测试报告)

【限时解密】Midjourney未公开权重机制:官方文档未披露的“隐式权重继承链”与多关键词竞争算法(仅剩最后217份内部测试报告)

更多请点击: https://codechina.net 第一章:Midjourney关键词权重设置的底层认知革命 传统图像生成提示词思维将关键词视为并列要素,而Midjourney v6 的权重机制彻底重构了人机语义协商的底层逻辑——它不再解析“什么”,而是响应…

2026/7/10 10:59:18
STM32H723 ADC多路DMA配置:28通道CubeMX实战,含BDMA与Cache处理

STM32H723 ADC多路DMA配置:28通道CubeMX实战,含BDMA与Cache处理

STM32H723多ADC协同采集实战:28通道DMA配置与Cache一致性处理 在工业控制、医疗设备和精密测量等领域,高通道数模拟信号采集是常见需求。STM32H7系列凭借其高性能Cortex-M7内核和多ADC架构,成为这类应用的理想选择。本文将深入解析STM32H723Z…

2026/7/10 10:54:18

月新闻