福建运营商 · 安全招投标与商机分析

分析过程记录

认证要求「分析过程」证据。本文件记录这次分析实际怎么做的,包括走过的弯路和修正过程。

1. 任务与背景

分析拆成两条线,交叉使用:

宏观线 招投标线
回答 哪个地市值得投入 哪里有真实需求、钱从哪出、谁在竞争
数据 公开统计公报 招投标公告原文
产物 地市优先级得分 商机优先级排序、竞争格局

2. 全流程与 AI 的参与方式

一条命令跑通全流程:

python src\run_all.py
步骤 脚本 AI 做什么 人不放手的部分
0 抓取 fetch_cmcc_notices.py (未用 AI)从中国移动采购与招标网公开接口按 12 个业务关键词检索、取并集抓公告全文 关键词与筛选规则由人定;逐条留存来源 URL + SHA-256
1 取数 fetch_data.py 从公开文本中抽取结构化字段 用确定性正则独立再抽一遍做交叉验证
2 清洗 clean_data.py (未用 AI)类型规整、派生指标、质量校验 校验规则由人定义
3 分析 analyze.py 基于已算好的指标生成洞察叙述 指标与权重由人定义;AI 不参与计算
4 取数 fetch_tenders.py 从每份招投标公告原文抽取字段 同样用正则独立再抽一遍
5 清洗 clean_tenders.py (未用 AI)字段归一化、招标/中标配对 配对规则由人定义
6 分析 analyze_tenders.py 基于已算好的指标生成投标建议 打分口径由人定义;AI 不参与计算
7 口径校对 verify_caliber.py (未用 AI)交叉校验 + 回查 AI 输出数字 全部判定规则由人定义
8 可视化 visualize*.py (未用 AI) 图表选择由人决定
9 报告 build_report.py (未用 AI) 结论与建议由人把关

核心原则:AI 负责取数和表达,计算和判定一律由代码负责。 因此 AI 不可能编造出 一个"看起来很合理"的结论——它只能解释已经算好的数字。

3. 关键决策与取舍

  1. 地市优先级打分口径:把「客户值不值得投入」拆成客户规模(移动电话用户数,0.40)、 客户价值(人均 GDP,0.35)、数字化成熟度(城镇化率,0.25)。选这三个维度是因为它们都有 公开数据可查,可复现、可被质疑。
  2. 商机优先级打分口径:预算规模(0.45)+ 地市优先级(0.35)+ 业务线战略权重(0.20)。 业务线权重体现公司战略:AI 能力开发 1.2 > 网络安全服务 1.0 > 网络安全产品 0.9 > 网络攻防培训 0.8 > 其他 0.5。
  3. 权重是假设而非数据:权重写在 src/config.py 的 ASSUMPTIONS 里显式登记, 并自动输出到《口径校对记录》C 节,避免"用假设冒充事实"。
  4. AI 输出必须可回查:AI 写出来的每个数字都要能在源数据里找到出处,否则标红交人工判断。
  5. 真实数据优先:程序优先读 data/raw/tender_notices/;该目录为空时回退到示例公告, 并在报告顶部强制插入醒目警示,防止示例数据被误当作真实结论引用。

4. 过程中真实遇到的问题与修正

这一节是本次分析最有价值的部分——它证明了"口径经过核对"不是一句空话。 下面 11 个问题全部是实际跑出来的,其中 5 个会直接导致错误结论。 前 6 个在示例数据阶段暴露,问题 7 之后的 5 个只有真实数据才能触发—— 示例数据太干净,根本碰不到。

问题 1:正则漏匹配,导致口径校验误报

问题 2:AI 输出数字核对存在漏检(严重)

问题 3:招标/中标配对失败,导致"竞争对手 0 家"(严重,会直接得出错误结论)

问题 4:校验指标本身失真,把"没有可比内容"算成了"不一致"

问题 5:锚点集合不全 + 值为 0 的锚点被跳过,把合法数字误报为"无依据"

真实数据接入后新暴露的问题(问题 7 至 11)

前 6 个问题在示例数据阶段就出现了。换成 234 份真实公告后,又撞出一批新问题—— 这批更有说服力:它们靠构造得整齐的示例数据根本碰不到。

问题 7:有中标金额的行,业务类别全部丢失(严重,会直接得出错误结论)

问题 8:同一项目重复发布公告,预算被高估(会直接得出错误结论)

问题 9:预算金额的含税口径混用,合计值失去意义

问题 10:实体安全项目把真正的安全商机挤下榜首(会直接得出错误结论)

问题 11:比对指标把"正则抽不到"误计为"AI 抽错"

问题 12:单个关键词召回不全,漏掉主业标的

问题 13:扩词后,通用 AI 平台把市场盘子撑到失真(会直接得出错误结论)

问题 14:范围过滤插在去重之前,统计到的是"行数"而不是"项目数"

问题 6:AI 会把数字四舍五入,不能简单判为"编造"

5. 已知局限(须与结论同时引用)

  1. 样本仅覆盖中国移动:234 份公告全部来自中国移动采购与招标网,不含电信、联通、广电。 结论只能表述为「福建移动口径」,不能外推为福建全部运营商市场。
  2. 中标金额披露率低:110 个项目中仅 15 个披露了中标结果, 竞争格局与金额类结论只能作方向性判断。
  3. 检索仍可能漏标:标题不含 12 个关键词中任何一个的主业项目抓不到; 尤其在「等保测评」「渗透」「大模型」等口语化表述下可能漏召回。
  4. 宏观线 S2 为估算值:分运营商指标置信度低,不得对外引用。
  5. 缺关键字段:未纳入项目联系人、投标窗口期、资质要求等字段, 而这些直接影响"能否参与投标"。
  6. AI 分类存在边界不稳定:对「安全设施改造提升」这类模糊项目, 两次独立抽取给出过不同类别,须人工复核,详见 data/dataset_sources.md。
  7. 预算含税口径未完全统一:部分项目原文只给不含税金额或未标注税别, 跨项目加总时存在少量不可比性(口径校验 T8 项标注)。
  8. 「与长亭业务有关」是人为判定:实体安全与通用 AI 平台项目的剔除基于项目名关键词, 边界项目(如「安全设施改造提升」)建议人工确认。

6. 人机分工原则(可复用)

环节 交给 AI 自己把关
取数 从非结构化文本抽取字段 用第二套方法交叉验证
分析 解释数字、组织语言 定义指标、权重、口径
结论 起草叙述 判断业务合理性、决定是否采纳
校验 — 设计判定规则,签字负责

7. 复现方法

python src\run_all.py

产物见 README.md。所有 AI 调用(提示词、返回原文、耗时)记录在 outputs/ai_logs/ai_calls.jsonl,可逐条追溯。