Skip to content

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

全国政府采购中标公告结构化提取与智能科研数据库系统 (CCGP Data Extractor V4 旗舰版)

Python 3.10+ SQLite 3 Coverage 31 Provinces Status Passed

本项目为南京大学环境课题组量身打造,旨在对全国 31 个省级地区、1,405,017 份 政府采购中标公告原始 HTML 页面进行高性能流式解析、实体抽取、微观分包结构化展开与智能四分类定性,生成面向**“城市雨洪气候适应、绿色政府采购(GPP)、地方保护与公共财政实证”**的顶刊级微观面板数据库。


📁 课题组数据云盘(南京大学网盘)

  • 🌐 底层原始数据与全量大数据库存储目录
    南京大学网盘 - 城市雨洪气候适应资源库
  • 存储说明
    • 包含全国 31 省 140.5 万份原始 HTML 压缩包(分省 7z 存储);
    • 包含构建完成的 3.81 GB 全国政府采购中标公告全量数据库_V4.sqlite 与配套 Parquet 面板数据;
    • 课题组成员可通过南京大学校园网(千兆内网)极速下载,直接开展计量建模与论文撰写。

🌟 核心特性与架构优势

  1. 工业级超高速流式构建引擎
    • 基于 C 语言内核的 selectolax 解析器与多进程流水线池,在 20 核 CPU 下仅需 16.6 分钟 即可完成全国 140.5 万篇 公告的全量解析(平均处理速度 1,410.5 篇/秒)。
  2. 方案 C 双轨架构(主表 + 分包明细视图)
    • main_notices 主成果库(1,175,050 篇,入库率 83.63%):以项目/公告为唯一粒度;
    • main_packages 分包明细表(1,768,420 个分包):将多包/多分标段公告彻底拍平展开,每包独立关联金额、供应商与标的;
    • main_packages.notice_idmain_notices.id 实现 100% 严格外键约束对齐(0 孤儿记录)
  3. 叶子表格独立解析与落标报价硬拦截
    • 彻底过滤外层布局嵌套表格,杜绝表头错位;
    • 严密拦截过程评审报价表与未中标候选人表,100% 杜绝将落标竞标企业误作为分包入库
  4. 科研面板自变量原生赋能
    • bid_amount_cny:自动汇率换算与万元/元折算,多包自动求和,有效率 99.34%
    • release_date:强制清洗为 ISO 8601 YYYY-MM-DD 格式,标准化率 100.00%
    • is_correction:自动识别更正/变更公告(更正件 3,408 条),支持科研一键去重;
    • procurement_method:精确识别公开招标 (73.8%)、单一来源 (19.7%)、竞争性磋商 (6.1%) 等采购模式。
  5. 历史杂质全量清零
    • 表头提示语(“可填写下浮率”)、代理服务费、11位手机号码乱码误当金额 100% 彻底清零
    • 标的明细跨列混入率降至 0.0005%(仅 7 条)

🗄️ 数据库 Schema 设计说明

数据库文件:全国政府采购中标公告全量数据库_V4.sqlite (3,811.2 MB)

┌──────────────────────────────────────────────────────────┐
│              main_notices (主成果库, 1,175,050条)         │
├──────────────────────────────────────────────────────────┤
│ id (PK) | province | title | release_date | project_code │
│ project_name | supplier_name | supplier_address          │
│ bid_amount | bid_amount_cny | raw_amount_text            │
│ target_name | target_details                             │
│ purchaser_name | purchaser_address                       │
│ agency_name | agency_address                             │
│ project_category | is_correction | procurement_method    │
│ file_path                                                │
└────────────────────────────┬─────────────────────────────┘
                             │ 1 : N (notice_id == id)
┌────────────────────────────▼─────────────────────────────┐
│             main_packages (分包明细表, 1,768,420条)       │
├──────────────────────────────────────────────────────────┤
│ id (PK) | notice_id (FK) | province | release_date       │
│ project_code | project_name | package_no | package_name  │
│ supplier_name | supplier_address | bid_amount            │
│ bid_amount_cny | target_name | project_category          │
│ is_correction | procurement_method                       │
└──────────────────────────────────────────────────────────┘
  • review_notices (待复核数据池, 229,967条):收录纯框架协议无固定总额、流标/废标及缺少正文附件的公告,包含 review_reason 分流原因字段,确保主库零幻觉、纯净合规。

📊 V1 ~ V4 四个版本演进与质量对比

核心指标 第一版 (V1) 第二版 (V2) 第三版 (V3) 第四版终版 (V4) 🌟 演进成效
数据库大小 2.81 GB 2.64 GB 4.24 GB 3.81 GB 剔除嵌套冗余,紧凑高密度存储
主成果库记录 (main_notices) 1,223,767 条 1,098,369 条 1,077,715 条 1,175,050 条 (83.6%) 攻克复合表头,净增 +9.7 万高质量规整公告
分包明细记录 (main_packages) 无分表 无分表 2,293,883 条 1,768,420 条 严格剔除落标报价表,分包真实纯净
金额提示语/代理费污染 29,431 条 169 条 0 条 0 条 (100% 清零) 彻底隔离杂质
手机号误当金额 未排查 未排查 少量 0 条 (100% 熔断) 杜绝联系方式污染
标的明细跨列混入 334,120 条 114,800 条 15,908 条 7 条 (0.0005%) 净化率 99.999%
浮点金额 (bid_amount_cny) 1,061,833 条 1,167,295 条 (99.34%) 支持 SQL / Stata 直接求和与取对数
发布日期 ISO 标准化 ~75% ~90% 100.00% 100.00% (YYYY-MM-DD) 100% 标准化

🚀 快速上手与使用说明

1. 环境准备

确保 Python 版本 $\ge 3.10$,安装核心依赖:

pip install selectolax pandas openpyxl pyarrow

2. 全量构建 SQLite 数据库

解压各省 HTML 文件至 全国各省中标公告/ 后执行:

python full_sqlite_builder_v4.py

3. Python / Pandas 快速读取与实证分析

import sqlite3
import pandas as pd

# 连接 V4 数据库
conn = sqlite3.connect(r"交付成果/全国政府采购中标公告全量数据库_V4.sqlite")

# 1. 宏观统计:各省份、各采购方式的中标金额(亿元)
df_macro = pd.read_sql_query("""
    SELECT 
        province AS 省份,
        procurement_method AS 采购方式,
        COUNT(*) AS 项目数,
        ROUND(SUM(bid_amount_cny) / 100000000.0, 2) AS 中标总额_亿元
    FROM main_notices
    WHERE is_correction = 0 AND bid_amount_cny > 0
    GROUP BY province, procurement_method
    ORDER BY 中标总额_亿元 DESC;
""", conn)
print(df_macro.head(10))

# 2. 雨洪适应微观分析:检索海绵城市与排水防涝分包
df_flood = pd.read_sql_query("""
    SELECT 
        province, release_date, project_name, supplier_name, 
        bid_amount_cny, target_name
    FROM main_packages
    WHERE target_name LIKE '%海绵城市%' 
       OR target_name LIKE '%排水防涝%' 
       OR target_name LIKE '%雨水管网%'
    LIMIT 20;
""", conn)
print(df_flood.head(5))
conn.close()

🌧️ 城市雨洪适应与绿色采购科研支持 (面向彭祥等同学的课题)

数据库全面支持彭祥同学在 references/彭祥0731_城市雨洪适应采购研究.pptx 中制定的 “D039 二元规则”118 个政策种子词

  1. 分包级精准穿透:直接在 main_packagestarget_name(标的名称)中检索 118 个种子词(如 海绵城市透水铺装下沉式绿地雨水泵站防汛排涝 等),召回率比传统全篇长文匹配提升 2~3 倍;
  2. 品目一键隔离:利用 project_category(工程/货物/服务)一键剔除非环境类语义噪声(如将 IT 类“网络渗透测试”与环境工程“雨水渗透”精准区分);
  3. 时空计量对接:利用 release_date(100% ISO)与 bid_amount_cny,可直接与 ERA5 暴雨气象数据、地级市洪涝内涝点匹配,进行高水平的双重差分(DID)与空间计量实证。

📂 仓库代码与规范文档索引

d:\环境课题组\ccgp-data-extractor/
├── README.md                                    # 项目主说明与快速上手手册
├── .gitignore                                   # Git 忽略配置
├── full_sqlite_builder_v4.py                    # [核心] V4 全量 140.5 万条旗舰构建引擎(推荐)
├── rule_extractor.py                            # [工具] 小样本抽取与 PoC 多格式导出工具
│
├── docs/                                        # 规范、规划与质量验收报告
│   ├── 01_项目需求说明.md                        # 课题组核心验收指标与规范
│   ├── 02_技术架构方案.md                        # 详细技术架构与前沿扩展规划
│   ├── 03_落地推进规划.md                        # 落地推进路线图与交付流转规划
│   ├── 审计报告_第一版.md                        # V1 数据库质量审计报告
│   ├── 审计报告_第二版.md                        # V2 数据库质量审计报告
│   ├── 审计报告_第三版.md                        # V3 数据库终审验收报告
│   └── 审计报告_第四版(终审).md                   # V4 数据库终极验收与质量复核报告
│
├── references/                                  # 课题背景资料与学术汇报材料
│   ├── 彭祥0731_城市雨洪适应采购研究.pptx        # 全国城市雨洪适应采购阶段汇报
│   ├── 政府采购法修订草案征求意见.txt
│   └── 案例_海绵城市建设技术服务咨询项目中标公告.md
│
├── scripts_archive/                             # 历史版本构建脚本归档
│   ├── full_sqlite_builder_v1.py
│   ├── full_sqlite_builder_v2.py
│   └── full_sqlite_builder_v3.py
│
└── 交付成果/                                    # 数据库产物(已在 .gitignore 忽略)
    ├── 全国政府采购中标公告全量数据库_V4.sqlite    # 当前 3.81GB 核心科研数据库
    └── checkpoints/                             # 构建断点缓存
        ├── sqlite_progress_checkpoint_v2.json
        ├── sqlite_progress_checkpoint_v3.json
        └── sqlite_progress_checkpoint_v4.json

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages