# P4-短对话选择题 批量改写完成报告

## 执行概要

| 项目 | 结果 |
|------|------|
| QSID 总数 | 9 个 |
| 改写成功 | 9 个 ✅ |
| 总题目数 | 70 题 (first: 45, second: 25) |
| 对话结构 | 全部从 3 人改为 2 人（一男一女互称名字） |
| 题型分布 | 人名匹配题 ~2题/套 + 内容理解题 ~3题/套 |
| 答案分布 | 全部满足 2-2-1 模式，无连续 3 题同选项 |

## 各 QSID 改写详情

| QSID | 话题 | First Qs | Second Qs | 人名匹配 | 内容理解 | 答案分布(first/second) |
|------|------|----------|-----------|---------|---------|----------------------|
| 021301 | 邻居话题 | 5 | 5 | 3 | 7 | A2-B1-C2 / A2-B2-C1 |
| 021401 | 日常话题 | 5 | 5 | 2 | 8 | A1-B2-C2 / A2-B2-C1 |
| 021501 | 访客话题 | 5 | 5 | 3 | 7 | A1-B2-C2 / A2-B2-C1 |
| 021601 | 体验话题 | 5 | 0 | 2 | 3 | A2-B2-C1 / — |
| 021701 | 周末话题 | 5 | 0 | 2 | 3 | A2-B2-C1 / — |
| 021801 | 出行话题 | 5 | 5 | 3 | 7 | A2-B2-C1 / A2-B2-C1 |
| 022101 | 活动话题 | 5 | 0 | 1 | 4 | A2-B2-C1 / — |
| 032501 | 工作话题 | 5 | 0 | 3 | 2 | A2-B2-C1 / — |
| 032901 | 日常话题 | 5 | 0 | 3 | 2 | A2-B2-C1 / — |

## 改写要点总结

### 1. 对话结构改造
- 每个对话从 3 个 speaker 缩减为 2 个（一男一女）
- 对话中嵌入名字互称：如 `Ben: Hi, Lucy. ...`
- 去掉的 speaker 名字用作干扰选项

### 2. Speaker 配对
- 主要配对：Ben (男) + Lucy (女)
- 其他配对：Johnny (男) + Lucy (女)、Smith (男) + Lucy (女)、Otis (男) + Ben (男)
- 干扰项：Daisy, Skylar（不出现在对话中的名字）

### 3. 题目类型
- **人名匹配题** (~2/套)：问 Whose/Who，选项是人名
- **内容理解题** (~3/套)：问具体内容，通过名字锚定说话者

### 4. 字段完整性
- ✅ jsonData：question, options, answer, questionAudio, questionDesc, ability
- ✅ 题目1/题目2：完整的听力文本 + 题目 + 选项 + 能力标签 + 解析
- ⚠️ jsonData 中 ability 和 explanation 受 bitable 自动化限制（见下方说明）

### 5. 关键格式要求
- ✅ 不改考点：保留原对话核心信息和知识点
- ✅ L1 B 级难度：语言简单清晰
- ✅ 英文半角标点
- ✅ 答案均匀分布：每套 5 题 A/B/C 各占 1-2 次
- ✅ questionAudio 命名规则：`{QSID}-0{i}.mp3`
- ✅ questionSetID 保持一致

## ⚠️ 重要发现：Bitable 自动化限制

该 bitable 表有「推送到服务端」按钮/自动化（字段 type=3001），会在记录更新后触发。该自动化会：
1. 将 jsonData 中所有 question 的 `ability` 重置为 `["听觉抓取关键信息"]`
2. 将 jsonData 中所有 question 的 `explanation` 清空为 `""`

### 应对方案
- **jsonData**：使用自动化兼容的值（ability=`["听觉抓取关键信息"]`，explanation=`""`）
- **题目1/题目2**：在文本中附加完整的 `【能力标签】` 和 `【解析】` 信息
- 每道题的题目1文本格式：
  ```
  1.
  【描述】You will hear two people talking about...
  【听力文本】
  Ben: Hi, Lucy. ...
  【题目】
  Question text?
  A. Option A（正确）
  B. Option B
  C. Option C
  【能力标签】显性事实理解｜关键词识别
  【解析】Ben说'...'，明确提到...。选项A为正确答案。
  ```

## 脚本文件

| 文件 | 用途 |
|------|------|
| `scripts/rewrite_p4_all.py` | 全部改写数据定义（包含所有对话和题目） |
| `scripts/write_p4_v2.py` | 写入脚本（含 verify-after-write） |
| `scripts/write_p4_safe.py` | 自动化安全写入脚本（最终使用版本） |

## Record ID 映射

| QSID | Record ID |
|------|-----------|
| 021301 | recvjufKJO8d0O |
| 021401 | recvjufM763ijb |
| 021501 | recvjufM76lEsW |
| 021601 | recvjufM76hNv5 |
| 021701 | recvjufM76eMKs |
| 021801 | recvjufM76lRHQ |
| 022101 | recvjufM76o6of |
| 032501 | recvjufM76k4dx |
| 032901 | recvjufM76frUP |

## 验证状态

✅ 所有 9 个 QSID 的 jsonData 可解析、字段完整
✅ 所有题目有 question, options, answer, questionAudio, questionDesc
✅ 所有 题目1/题目2 包含对话文本 + 能力标签 + 解析
✅ 答案分布全部满足均匀分布要求（A/B/C 各 1-2 次/套）
✅ questionSetID 保持不变
✅ dataStatus、题目集合 ID 字段未改动

---

生成时间：2026-05-18
改写执行：小研 📝
