# 清理 / 降权 / 丢弃判定规则

## 三级处置体系

对每条证据，根据其问题类型和严重程度，选择以下三种处置之一：

| 处置 | 含义 | 证据去向 | 是否需要警告 |
|------|------|----------|-------------|
| **Clean** | 保留但修正问题 | → `cleaned_evidence[]` | 仅严重修正时 |
| **Downrank** | 保留但降低权重 | → `downranked_items[]` | 是 |
| **Drop** | 彻底移除 | → `removed_noise[]` | 是 |

---

## Clean — 清理（保留但修正）

适用于证据内容有价值但格式/编码存在可修复问题的情况。

### 适用场景

| 问题类型 | 示例 | 处理方式 |
|----------|------|----------|
| HTML 实体编码 | `GPT&#8209;5` → `GPT-5` | 解码 HTML 实体 |
| 全半角混用 | `ＡＩ技术` → `AI技术` | 统一为半角 |
| 截断文本 | `...模型在测试中` → 标注 `[TRUNCATED]` | 保留并标注 |
| 首尾空白/换行 | 多余空行和空格 | 去除 |
| 编码乱码 | UTF-8 → GBK 转换后的乱码 | 尝试修正编码 |
| 引号格式混乱 | `"..."` `'...'` `「...」` 混用 | 统一为标准引号 |
| 来源信息缺失 | 无 URL 但有标题 | 保留，标注 `[SOURCE_MISSING]` |
| 相似名称混淆 | "中国银行"→"中国人民银行" | 上下文修正并标注 |

### 处理规则

1. **必须保留原始信息**：Clean 操作不得删除任何有语义的文本内容
2. **必须标注修正**：每处修正记录到 `cleaning_actions` 数组
3. **编码修正尝试不超过 2 次**：尝试 UTF-8→GBK→原始字节序，失败则保留原文并标注 `[ENCODING_UNRESOLVED]`

---

## Downrank — 降权（保留但降低权重）

适用于证据有一定价值但来源可靠性或相关性存在疑虑的情况。

### 降权等级

| 等级 | 降权幅度 | 典型场景 |
|------|----------|----------|
| D1 (轻微) | 排序后移 3-5 位 | 缺乏精确时间标注 |
| D2 (中等) | 排序后移 8-10 位 | 匿名来源 / 未认证自媒体 |
| D3 (严重) | 排序后移至末尾或标记为辅助参考 | 二手转载 / 来源信誉度低 |

### 适用场景

| 问题类型 | 降权等级 | 示例 |
|----------|----------|------|
| 缺乏时间标注 | D1 | 文章无发布日期 |
| 部分转载 | D1 | 标注"部分内容转载自XX" |
| 匿名来源 | D2 | "据知情人士透露"无更多佐证 |
| 未认证自媒体 | D2 | 微信公众号无认证标识 |
| 二手转载 | D2 | 内容从原始来源搬运，未注明 |
| 聚合平台搬运 | D3 | 今日头条/百家号搬运自原始来源 |
| 农场号/营销号 | D3 | 批量生成内容的低质量账号 |
| 与主题相关度 60%-80% | D2 | 证据内容与 primary_subject 间接相关 |
| 与主题相关度 < 60% | D3 | 证据内容与 primary_subject 几乎无关 |

### 处理规则

1. **必须记录降权原因**：写入 `downrank_reason` 字段
2. **降权不等于移除**：下游流程（如 freshness-judge）仍可访问降权证据
3. **可叠加降权**：多个降权因素可叠加（如 D1 + D2 = 等效 D3）
4. **生成警告**：每条降权证据自动添加到 `warnings[]`

---

## Drop — 丢弃（彻底移除）

适用于证据无价值或有害的情况。

### 适用场景

| 问题类型 | 示例 | removal_reason |
|----------|------|----------------|
| 纯广告 | "限时优惠！点击领取AI课程优惠券" | `pure_advertisement` |
| 营销软文 | "XX品牌AI鼠标，让你的工作效率提升10倍" | `marketing_content` |
| 完全无关 | 搜索"AI芯片"但结果是"AI菜谱推荐" | `off_topic` |
| 纯 DOM 噪声 | 整段内容都是 HTML 标签和 CSS 代码 | `pure_dom_noise` |
| 伪实体引用 | 引用不存在的人物/机构 | `pseudo_entity` |
| AI 幻觉 | 引用不存在的论文/报告/事件 | `ai_hallucination` |
| 恶意篡改 | 内容与原始来源严重不符（需对比验证） | `tampered_content` |
| 付费墙/空内容 | "登录后查看完整内容" / 空白页面 | `paywall_empty` |

### 处理规则

1. **必须记录移除原因**：写入 `removal_reason` 字段
2. **必须记录原始内容摘要**：写入 `original_snippet` 字段（便于审计）
3. **伪实体/AI幻觉必须生成警告**：加入 `warnings[]`
4. **误判保护**：如果对是否 Drop 存在疑虑，降级为 Downrank D3 而非 Drop

---

## 决策树

```
证据进入清洗流水线
        │
        ▼
┌───────────────────────┐
│ Step 1: DOM噪声剥离    │
│ 是否含 HTML/JS/CSS/   │
│ 导航/页脚/广告残留？   │
└───────┬───────┬───────┘
        │       │
     纯噪声   噪声+内容
        │       │
        ▼       ▼
    [DROP]    剥离噪声，继续
    reason:       │
    pure_dom_     ▼
    noise    ┌───────────────────┐
            │ Step 2: 伪实体检测  │
            │ 含不存在的人/机构/  │
            │ 事件/引用？         │
            └────┬──────┬────────┘
                 │      │
              确认伪  无法确认
              实体    或无伪实体
                 │      │
                 ▼      ▼
             [DROP]   继续
             reason:     │
             pseudo_     ▼
             entity  ┌───────────────┐
                    │ Step 3: 去重   │
                    │ 与其他条目     │
                    │ 高度重复？     │
                    └──┬─────┬──────┘
                       │     │
                     重复   不重复
                       │     │
                       ▼     ▼
                  [MERGE]  继续
                  保留最佳    │
                  版本        ▼
                         ┌───────────────┐
                         │ Step 4: 错域   │
                         │ 来源可靠性/    │
                         │ 相关性如何？    │
                         └──┬─────┬──┬───┘
                            │     │  │
                          高可靠 中等  低
                          高相关       可靠
                            │     │  │
                            ▼     ▼  ▼
                         [KEEP] [DN] [DN/DROP]
                                    │
                                    ▼
                         ┌───────────────┐
                         │ Step 5: 格式  │
                         │ 标准化        │
                         └───────┬───────┘
                                 ▼
                          cleaned_evidence

图例：
KEEP = 直接保留
DN   = Downrank 降权
DROP = Drop 丢弃
MERGE = 合并去重
```

---

## 边界案例处理

### 案例 1: 内容有价值但来源可疑

```
证据："据内部人士透露，公司将在下季度发布新产品"
分析：有信息价值，但来源不可验证
处理：Downrank D2 + Warning "匿名来源，未经独立验证"
```

### 案例 2: 内容与主题间接相关

```
主题：AI芯片
证据："台积电Q3营收创历史新高"
分析：间接相关（台积电是AI芯片代工厂商），有背景价值
处理：Downrank D1，保留为背景材料
```

### 案例 3: 内容正确但格式严重损坏

```
证据：大量 HTML 实体、编码错误、截断
分析：核心信息可辨识但格式极差
处理：Clean（尽力修正编码）+ Warning "[FORMAT_SEVERELY_CORRUPTED]"
```

### 案例 4: 无法判断真伪的声明

```
证据：引用某"专家"的独家预测
分析：无法验证该专家是否存在，也无法验证预测
处理：Downrank D2 + Warning "引用专家身份无法验证"
注意：不直接 Drop，除非确认是伪实体
```

### 案例 5: 部分内容有用但夹杂大量噪声

```
证据：20% 正文 + 80% 广告和推荐
分析：有信息价值，信噪比低
处理：Clean（剥离噪声）→ 如剥离后信息量 < 10%，则 Drop reason: "low_snr_after_cleaning"
```
