> ⚠️ **本文件已归档**：内容已合并至核心规则文件，此处仅作历史备份。请勿直接引用本文件，请使用 `.claude/rules/` 下的核心规则。

# 课评姓名处理规则

> 处理语音输入谐音、课评称呼方式、姓名规范化

---

## 一、语音输入谐音纠正

### 1.1 问题场景
语音输入时，学生姓名可能被识别为谐音词：
- "梁昕乔" → "良心桥"、"亮新巧"
- "钟昀昊" → "中云浩"、"钟运好"
- "李怡瞳" → "李一同"、"黎怡彤"

### 1.2 纠正机制

**Step 1: 建立班级学生名单库**
```
发现世界-周四19点班学生名单：
- 梁昕乔（liang xin qiao）
- 钟昀昊（zhong yun hao）
```

**Step 2: 谐音匹配算法**
当输入姓名无法精确匹配时，使用拼音相似度匹配：
- 提取输入文本的拼音
- 与班级名单进行相似度对比
- 选择相似度>80%的姓名作为纠正目标

**Step 3: 常见谐音对照表**

| 正确姓名 | 常见谐音错误 | 拼音相似 |
|---------|-------------|---------|
| 梁昕乔 | 良心桥、亮新巧、梁新桥 | liang xin qiao |
| 钟昀昊 | 中云浩、钟运好、周云昊 | zhong yun hao |
| 李怡瞳 | 李一同、黎怡彤、李怡桐 | li yi tong |
| 张宇 | 章鱼、张瑜、章雨 | zhang yu |
| 王思琪 | 王思齐、王斯琦、汪思琪 | wang si qi |
| **黄晓瑜** | **小鱼** | **xiao yu → 晓瑜** |
| **罗钧龄** | **君玲** | **jun ling** |
| **简思霖** | **思林** | **si lin** |

### 1.4 语音输入常见误识别模式（新增）

**模式1：同音字替换**
| 正确 | 误识别 | 原因 | 纠正规则 |
|------|--------|------|---------|
| 晓瑜 | 小鱼 | "晓"→"小"，"瑜"→"鱼"同音 | 检测"小+常见字"模式，匹配班级名单 |
| 钧龄 | 君玲 | "钧"→"君"，"龄"→"玲"同音 | 检测常见名字组合 |
| 思霖 | 思林 | "霖"→"林"同音 | 检测"思"+植物相关字 |

**模式2：省略姓氏**
| 正确 | 误识别 | 原因 | 纠正规则 |
|------|--------|------|---------|
| 黄晓瑜 | 晓瑜 | 语音省略姓氏 | 直接匹配给定名字 |
| 梁家铭 | 家铭 | 语音省略姓氏 | 直接匹配给定名字 |

**模式3：连读变音**
| 正确 | 误识别 | 原因 | 纠正规则 |
|------|--------|------|---------|
| 馨宸 | 新城/心晨 | 连读发音变化 | 模糊拼音匹配 |
| 瀚丞 | 韩晨/涵辰 | 连读发音变化 | 模糊拼音匹配 |

**纠正优先级**：
1. 优先匹配班级现有学生名单（完整匹配）
2. 其次匹配去除姓氏后的名字部分
3. 最后进行谐音/模糊音匹配
4. 置信度>90%自动纠正，不提示；70-90%提示确认；<70%要求重新输入

**高置信度（>90%）**：自动纠正，不提示
**中置信度（70-90%）**：生成时提示教师确认
```
⚠️ 检测到可能的谐音输入：
输入："良心桥"
纠正为："梁昕乔"？
[是] [否，保持原样] [手动输入]
```
**低置信度（<70%）**：要求教师重新输入

---

## 二、课评称呼方式

### 2.1 称呼优先级

课评中使用的称呼按以下优先级选择：

| 优先级 | 称呼方式 | 适用场景 | 示例 |
|:------:|---------|---------|------|
| 1 | **小名/昵称** | 画像中有填写 | 乔乔、昊昊、瞳瞳 |
| 2 | **去姓称名** | 双字名，无小名 | 昕乔、昀昊、怡瞳 |
| 3 | **叠字称呼** | 单字名 | 婷婷、浩浩、明明 |
| 4 | **全名** | 特殊场合 | 梁昕乔、钟昀昊 |

### 2.2 处理方式

#### 方式1：小名/昵称（优先）
**条件**：用户画像中"小名/昵称"字段有填写

**示例**：
- 全名：梁昕乔
- 小名：乔乔
- 课评显示："乔乔本节课学习了..."

#### 方式2：去姓称名（双字名）
**条件**：
- 无小名
- 名字为双字（不含复姓）

**规则**：
- 单姓+双字名：去掉姓氏
  - 梁昕乔 → 昕乔
  - 钟昀昊 → 昀昊
  - 李怡瞳 → 怡瞳
- 复姓+双字名：保留复姓或去姓
  - 欧阳明 → 阳明 或 明明
  - 司马昊 → 马昊 或 昊昊

#### 方式3：叠字称呼（单字名）
**条件**：
- 无小名
- 名字为单字

**规则**：
- 单字名叠字化
  - 张昊 → 昊昊
  - 李婷 → 婷婷
  - 王明 → 明明
- 避免尴尬叠字
  - 张丹 → 丹丹（正常）
  - 王鹏 → 鹏鹏（正常）
  - 避免：史真 → 真真（可以）

#### 方式4：全名（特殊）
**使用场景**：
- 家长明确要求使用全名
- 正式报告/证书
- 学生本人喜欢被叫全名

### 2.3 称呼示例表

| 全名 | 小名 | 课评称呼 | 说明 |
|------|------|---------|------|
| 梁昕乔 | 乔乔 | 乔乔 | 优先使用小名 |
| 梁昕乔 | 无 | 昕乔 | 去姓称名 |
| 钟昀昊 | 昊昊 | 昊昊 | 小名就是叠字 |
| 钟昀昊 | 无 | 昀昊 | 去姓称名 |
| 李怡瞳 | 瞳瞳 | 瞳瞳 | 小名叠字 |
| 李怡瞳 | 无 | 怡瞳 | 去姓称名 |
| 张昊 | 无 | 昊昊 | 单字名叠字 |
| 王婷 | 婷婷 | 婷婷 | 小名叠字 |
| 刘明 | 明明 | 明明 | 小名叠字 |
| 陈小雨 | 小雨 | 小雨 | 小名（非叠字）|
| 陈小雨 | 无 | 小雨 | 去姓称名 |

---

## 三、姓名处理流程

```
输入处理流程：

1. 接收教师输入
   ↓
2. 提取疑似姓名词汇
   ↓
3. 谐音纠正（匹配班级名单）
   ├─ 高置信度 → 自动纠正
   ├─ 中置信度 → 提示确认
   └─ 低置信度 → 要求重输
   ↓
4. 查询用户画像
   ├─ 有小名？→ 使用小名
   ├─ 双字名？→ 去姓称名
   └─ 单字名？→ 叠字称呼
   ↓
5. 生成课评（使用处理后的称呼）
```

---

## 四、特殊处理规则

### 4.1 复姓处理

| 复姓 | 全名 | 建议称呼 | 说明 |
|------|------|---------|------|
| 欧阳 | 欧阳明 | 阳明/明明 | 避免"欧欧" |
| 司马 | 司马昊 | 马昊/昊昊 | |
| 上官 | 上官婷 | 官婷/婷婷 | |
| 诸葛 | 诸葛亮 | 葛亮/亮亮 | |
| 东方 | 东方明 | 方明/明明 | |

### 4.2 生僻字处理

- 如果名字中有生僻字，优先使用小名
- 无小名时，可使用"去姓称名"中易读的字
- 或询问家长希望如何称呼

### 4.3 外籍/少数民族姓名

- 优先使用家长指定的小名/英文名
- 或使用名字的后半部分（如：David → David或大卫）
- 尊重家庭习惯

### 4.4 双胞胎处理

- 必须分别建立档案
- 小名要区分（如：大宝/小宝，哥哥/弟弟）
- 避免在课评中直接对比

---

## 五、用户画像更新（新增字段）

### 5.1 新增字段

```markdown
## 一、基础信息

| 项目 | 内容 |
|------|------|
| **姓名（全名）** | （用于档案管理）|
| **小名/昵称** | （课评中优先使用）|
| **称呼方式** | □ 小名 □ 去姓称名 □ 叠字 □ 全名 |
```

### 5.2 建档时询问

**问题11（新增）**：
> 孩子平时在家怎么称呼？（小名/昵称）
> - 如：乔乔、昊昊、瞳瞳、小雨等
> - 如果没有特别的小名，我们就用"昕乔""昀昊"这样的方式称呼

**问题12（新增）**：
> 希望课评中怎么称呼孩子？
> 1. 使用小名/昵称（最亲切）
> 2. 去姓称名（如：昕乔、昀昊）
> 3. 叠字称呼（如：昊昊、婷婷）
> 4. 使用全名（正式）

---

## 六、课评生成时的姓名处理

### 6.1 处理逻辑代码示例

```python
def get_display_name(student_profile, full_name):
    """
    根据用户画像确定课评中使用的称呼
    """
    # 优先级1：小名/昵称
    nickname = student_profile.get('nickname')
    if nickname:
        return nickname

    # 解析姓名
    surname, given_name = parse_name(full_name)

    # 优先级2：根据名字长度处理
    if len(given_name) == 1:
        # 单字名 → 叠字
        return given_name * 2  # 如：昊 → 昊昊
    else:
        # 双字名 → 去姓称名
        return given_name  # 如：昕乔

def correct_homophone(input_text, class_roster):
    """
    纠正语音输入的谐音错误
    """
    # 提取可能的姓名词汇
    candidates = extract_name_candidates(input_text)

    for candidate in candidates:
        # 拼音相似度匹配
        best_match = find_best_pinyin_match(candidate, class_roster)
        if best_match['confidence'] > 0.8:
            return best_match['name']

    return input_text
```

### 6.2 实际应用示例

**输入**：`良心桥今天搭了三层`

**处理过程**：
1. 提取疑似姓名："良心桥"
2. 拼音：liang xin qiao
3. 匹配班级名单：
   - 梁昕乔（liang xin qiao）→ 相似度100%
4. 纠正为："梁昕乔"
5. 查询画像：
   - 小名：乔乔
6. 课评显示："乔乔今天搭了三层..."

---

## 七、质量检查

### 7.1 姓名相关检查项

- [ ] 课评中使用的称呼正确（小名/去姓/叠字）
- [ ] 没有使用全名（除非家长要求）
- [ ] 谐音姓名已纠正
- [ ] 复姓处理恰当
- [ ] 单字名已叠字化

### 7.2 常见错误

| 错误 | 正确 | 说明 |
|------|------|------|
| 梁昕乔今天... | 乔乔今天... | 应使用小名 |
| 钟昀昊今天... | 昊昊今天... | 应使用小名 |
| 张昊今天... | 昊昊今天... | 单字名应叠字 |
| 良心桥今天... | 乔乔今天... | 谐音未纠正 |

---

## 八、家长沟通

### 8.1 首次建档时说明

> "家长您好，请问孩子平时在家怎么称呼呢？我们课评中希望用孩子最熟悉的称呼，这样更亲切。比如'乔乔'、'昊昊'这样的小名，或者'昕乔'、'昀昊'这样去姓的叫法都可以。"

### 8.2 修改称呼方式

如果家长希望更改课评中的称呼：
1. 更新用户画像中的"小名/昵称"字段
2. 或调整"称呼方式"选项
3. 下次课评自动生效

## 九、姓名处理示例

### 7.1 语音输入 + 谐音纠正 + 小名使用

**场景**：班级：发现世界-周四19点，学生：梁昕乔（画像中小名：乔乔）

**教师输入（语音转文字）**：
```
呃...那个...良心桥啊，今天上课一开始不敢碰，就坐着看...
```

**AI处理**：
1. 谐音纠正："良心桥" → "梁昕乔"
2. 查询画像：小名"乔乔"
3. 课评称呼：全程使用"乔乔"

**效果**：课评中6处提到学生，全部使用"乔乔"

---

### 7.2 双字名 + 去姓称呼

**场景**：学生：钟昀昊（画像中无小名）

**AI处理**：
- 名字结构：双字名（昀昊）
- 处理规则：去姓称名
- 课评显示："昀昊"

---

### 7.3 单字名 + 叠字称呼

**场景**：学生：张昊（画像中无小名）

**AI处理**：
- 名字结构：单字名（昊）
- 处理规则：叠字称呼
- 课评显示："昊昊"

---

### 7.4 批量生成 + 不同称呼方式

| 全名 | 小名 | 处理方式 | 课评显示 |
|------|------|---------|---------|
| 梁昕乔 | 乔乔 | 使用小名 | 乔乔 |
| 钟昀昊 | 无 | 去姓称名 | 昀昊 |
| 张昊 | 无 | 叠字称呼 | 昊昊 |

---

## 十、功能总结

| 功能 | 说明 | 效果 |
|------|------|------|
| **谐音纠正** | "良心桥"→"梁昕乔" | 自动识别正确姓名 |
| **小名优先** | 有填写则使用 | "乔乔"而非"梁昕乔" |
| **去姓称名** | 双字名去姓 | "昀昊"而非"钟昀昊" |
| **叠字称呼** | 单字名叠字 | "昊昊"而非"张昊" |
| **全文一致** | 所有提及处统一 | 提升亲切感 |

---

*版本：v1.1*
*更新日期：2026-04-06*
*（已整合原41-name-examples.md内容）*
