Files
gaokao-volunteer-system/docs/CROWD_DB_DATA_QUALITY.md
Hermes Agent 94200960b2
Some checks failed
CI / pytest (Python 3.10) (push) Has been cancelled
CI / pytest (Python 3.11) (push) Has been cancelled
CI / pytest (Python 3.12) (push) Has been cancelled
docs(design): tighten X-02/X-03/X-05/X-08 design docs and add CROWD_DB_DATA_QUALITY
2026-06-15 15:14:27 +08:00

4.0 KiB

CROWD_DB_DATA_QUALITY

最后更新: 2026-06-14 适用范围: data/crowd_db/*.json + skills/gaokao-spec-checker/scripts/... 反扎堆模块


1. 设计目标

data/crowd_db 当前有 27 省的结构化 JSON 文件。本设计目标:

  • 区分“结构覆盖”与“高置信推荐数据覆盖”。
  • 在不出现误导的前提下,允许其它省份逐步补齐。
  • 报告、portal、咨询输出都必须显式声明该省的 data completeness level。

2. 字段约定

data/crowd_db/<province>.json 推荐数据:

{
  "province": "湖南",
  "data_completeness": "high",
  "confidence": 0.85,
  "score_buckets": [
    {"score": 500, "rank_estimate": 20000, "schools": [{"name": "...", "majors": [...]}]}
  ],
  "source": {"type": "official", "url": "...", "year": 2025},
  "last_updated": "2026-06-01"
}

字段说明:

  • data_completeness (required): 4 档之一
    • high : 高置信, 推荐输出可作为强结论
    • medium: 中置信, 推荐输出可作为参考结论
    • low : 低置信, 推荐输出只能作为弱提示
    • skeleton: 仅骨架, 不允许对外推荐结论
  • confidence (required, 0.0-1.0): 与 data_completeness 一致
  • source.type (required): 4 档之一
    • official : 考试院 / 阳光高考
    • report : 第三方权威报告
    • estimate : 内部估算
    • placeholder: 暂存占位, 不允许用于结论
  • source.year (required): 数据年份
  • last_updated (required, ISO8601)

3. 高置信数据完整性矩阵

省份 data_completeness confidence 当前状态 推荐输出
湖南 high ≥ 0.8 实际数据, 多分数段 强结论
北京 medium 0.5-0.8 骨架, 部分数据 弱提示
上海 medium 0.5-0.8 骨架, 部分数据 弱提示
广东 medium 0.5-0.8 骨架, 部分数据 弱提示
浙江 medium 0.5-0.8 骨架, 部分数据 弱提示
其它 22 省 skeleton < 0.5 仅省份规则 不允许推荐结论

4. 报告输出文案规则

skills/gaokao-spec-checker / 反扎堆报告 / gaokao_visual_report 输出:

  • data_completeness == high : 直接给出推荐结论
  • data_completeness == medium : 在结论前必须加 [置信度: 中] 标签
  • data_completeness == low : 只给弱提示, 禁止结论
  • data_completeness == skeleton: 报告必须写明“暂无该省的高质量推荐数据”

5. 强制不变量

  • data_completenessconfidence 必须一致
    • high ⇒ confidence >= 0.80
    • medium ⇒ confidence >= 0.50
    • low ⇒ confidence < 0.50
    • skeleton ⇒ confidence < 0.20
  • source.typedata_completeness 必须一致
    • officialdata_completeness in {high, medium}
    • placeholderdata_completeness == skeleton
  • last_updated 必须在 source.year 之后 (或同一年)
  • 高置信省 (high) 的 score_buckets 必须至少覆盖 5 个分数段

6. 实现侧

data/orders/loader.pydata/crowd_db/crowd_detector.py 加载时:

  1. 校验 data_completenessconfidence 一致
  2. 校验 source.typedata_completeness 一致
  3. data_completeness 暴露给报告渲染器

7. 测试锁死

tests/test_crowd_db_data_quality.py 必须锁死:

  1. data/crowd_db/湖南.jsondata_completeness == high, 至少 5 个 score_buckets
  2. 其它 26 省的 data_completeness in {medium, skeleton}
  3. 任何省的 data_completenessconfidence 数值必须满足第 5 节不变量
  4. 报告渲染器在 data_completeness == skeleton 时必须输出 “暂无该省的高质量推荐数据”

8. 后续工作

  • 持续补充中等置信省份的数据
  • gaokao_visual_report 改造成在结论前自动插入置信度标签
  • 在反扎堆报告中显式标出该省份的 data_completeness