把分散的公开信息变成可核验的项目档案:水务系统的证据链设计
结论先说: 做行业情报系统,抓数据只占一小半。更重要的是三件事:每条结论都能追回原文;没把握的,标成「待核验」而不是猜;缺数据的维度不打分,而不是按零分算。这篇讲我的北京环保水务系统是怎么把这三件事做进规则里的。
问题:信息都公开,但散在各处
做环保水务的人都知道,一个项目从立项到招标,会在不同地方留下痕迹:发改委的批复、采购意向公开、公共资源交易平台的招标公告,还有水务局的项目信息。每一条都是公开的,但分散在不同网站,格式各不相同,更新时间也不一样。
靠人盯,漏是常态。我想要的是一个能每天自动扫一遍、把同一个项目的痕迹串起来的系统。目前接入的来源有:公共资源交易平台、水务局、发改委批复、采购意向;各区的重点工程计划只接入了一部分。
原则一:先存原文,再下结论
采集到的每一条信息,先把原文保存下来,再做判断。项目档案里每个阶段、每个事件都挂着来源链接,点进去就是官方原页面。
自动确认只做最有把握的一类:能唯一对应到某个项目的交易公告,按规则自动确认。更正公告、前后矛盾的信息、前期的综合性文件,一律进人工复核队列,不让程序自己拍板。
这意味着复核队列会越积越多。写这篇时队列里还有一百多条待看,页面上也如实显示着这个数字。积压难看,但比让程序乱确认强。
原则二:阶段要有证据,没证据就封顶
每个项目都会标一个阶段,比如设计、招采准备、正式招标。阶段是评分里权重最高的一项,所以规则也最严:
- 没有确认过的阶段证据,总分最高 49 分。 目前 128 个项目里有 20 个属于这种情况,页面上显示为「阶段待核验」。
- 最近一条阶段证据超过一年,总分最高 59 分。 一年前在设计阶段,不代表现在还在设计。
封顶的意思是:证据不够,分数再高也不可信,干脆别让它排到前面。
原则三:缺数据不打零分,也不假装有
评分一共 7 个维度:项目成熟度、业务匹配度(各 20 分)、信号强度、介入窗口(各 15 分)、投资规模、资金确定度、区域战略价值(各 10 分)。
很多项目的公告里查不到投资额或资金来源。这时候系统不给零分,而是把这个维度标成「无输入」,同时写明:「基于 5/7 个维度(权重覆盖 80%),只有覆盖度相近的项目之间,分数才可比」。零分会把「不知道」变成「很差」,这是两回事。
每一项得分旁边都写着理由,而且会把容易被误读的地方提前说破,比如:
- 区域战略价值:「人工配置的区域偏好,不是市场规模」
- 业务匹配度:「赛道规则匹配,不代表资格审查通过」
- 竞争强度:「没有历史记录,不代表没有竞争」
原则四:权重由人改,改了要留痕
评分权重是我按行业经验定的初始假设,不是算出来的真理。所以系统里写死了几条规矩:
- 权重只在人工复核后调整,程序不自己改;
- 每次调整都要写明依据,生成新版本,并保留调整前后的评分快照;
- 每季度复核一次;负面反馈累积到一定比例时,提前复核。
还有一条我很看重:样本不到 20 个,就不输出「命中率」。 现在已经有结果的样本只有 1 个,这时候算命中率只会误导人,所以页面上直接写「样本不足,不输出」。
原则五:拿不到的,不硬拿
环评受理信息的官方查询接口会拒绝程序自动访问。我没有去绕过它,只在系统里保留了人工查询入口,并标明「已拦截,未绕过访问限制」。
公开数据的价值在于合规、可追溯。为了多抓几条去绕限制,会把这个价值一起丢掉。
你能拿走什么
- 先存原文,再下结论。 任何一条结论都要能一键追回来源。
- 自动化只做最有把握的部分,其余交给人。 队列积压要如实展示。
- 「不知道」和「很差」要分开。 缺失的维度不打分,并标明覆盖度。
- 证据不足就封顶。 别让证据薄弱的对象排到前面。
- 规则要版本化。 权重谁改的、为什么改、改前改后分别是什么,都要能查。
- 样本太少时,不给结论。
相关作品:北京环保水务产业智能系统