first commit

This commit is contained in:
eeymoo
2026-09-19 12:54:45 +08:00
commit 6fc5b64077
126 changed files with 8601 additions and 0 deletions
@@ -0,0 +1,59 @@
# Spec: analysis-metrics
## ADDED Requirements
### Requirement: 缺陷检出率(Recall)
系统 SHALL 计算缺陷检出率:模型正确指出的预埋缺陷数 ÷ 预埋缺陷总数;模型输出与 Ground Truth 自动比对,位置命中 + 类型匹配视为检出。
#### Scenario: 自动比对计算 Recall
- **WHEN** 一个 run 的输出解析成功
- **THEN** 系统与 Ground Truth 比对并计算该 run 的检出率
### Requirement: 误报率(FPR)
系统 SHALL 计算误报率:模型指出的"问题"中未命中任何预埋缺陷的比例。
#### Scenario: 计算 FPR
- **WHEN** 模型指出了若干问题项
- **THEN** 系统计算其中未命中任何预埋缺陷的比例
### Requirement: 审查覆盖率
系统 SHALL 计算审查覆盖率:模型指出的问题行号对预埋缺陷行号的覆盖程度。
#### Scenario: 计算覆盖率
- **WHEN** 模型输出包含指出问题的行号
- **THEN** 系统计算其对预埋缺陷行号的覆盖程度
### Requirement: 建议可操作性(李克特五级量表)
系统 SHALL 支持研究者按统一 rubric 对每条修复建议人工盲评打分(1 不可操作 / 2 方向性 / 3 部分可操作 / 4 基本可操作 / 5 完全可操作),并按"模型 × 提示词级别"聚合计算算术均值与各等级频数分布。
#### Scenario: 录入并聚合李克特评分
- **WHEN** 研究者在分析页录入某条建议的 1–5 分评分
- **THEN** 系统保存评分并按模型 × 级别聚合输出均值与频数分布
### Requirement: 输出稳定性
系统 SHALL 计算输出稳定性:同一配置三次重复实验输出的一致性度量,具体为三次输出的指出项集合两两(共 3 对)Jaccard 相似度的平均值。
#### Scenario: 三次重复稳定性
- **WHEN** 同一配置的三个独立 run_id 均有结果
- **THEN** 系统计算三个指出项集合两两 Jaccard 相似度并取平均值作为稳定性得分
### Requirement: 统计分析
系统 SHALL 提供描述性统计、方差分析(ANOVA)与配对 t 检验(pandas + scipy)。
#### Scenario: 统计检验输出
- **WHEN** 对实验结果发起统计分析
- **THEN** 系统输出描述性统计、ANOVA 与配对 t 检验结果
### Requirement: 论文用静态图
系统 SHALL 用 matplotlib 生成交叉对比热力图、箱线图、分组柱状图,样式统一、支持中文显示、可直接插入学位论文。
#### Scenario: 生成三类论文图
- **WHEN** 研究者触发论文图表导出
- **THEN** 系统产出热力图、箱线图、分组柱状图三类图片文件
### Requirement: 前端数据接口
系统 SHALL 以 JSON 形式向前端提供与静态图同口径的统计数据,供 ECharts 渲染交互图表;所有指标计算 MUST 在后端完成,前端 MUST NOT 内置业务计算。
#### Scenario: 同口径 JSON 数据
- **WHEN** 前端按模型/提示词级别/语言维度请求统计数据
- **THEN** 后端返回同口径 JSON,前端仅做渲染与筛选交互