新增学习资料生成器模块(learner),从权威库生成多维日语学习资料: - 拼音/假名/汉字/熟字训四类索引,带拼音↔假名↔汉字交叉跳转 - 逐字音训分类(KANJIDIC2 精确查表 + 启发式回退 + 排序键) - 音变标注体系:浊化(連濁)、半浊化、促音变(促音便)、连声(れんじょう) 独立配色 + 合并逻辑 + 音变规律说明 - 显式标注表:rendaku_marks(连用形连浊)、renjou_marks(连声) - 每索引独立例词数配置(jlearn.toml + --config) - HTML 单页应用 + 静态 HTML + PDF(playwright) 清洗工具增强: - 拼音校验器(pinyin_checker)集成到 jclean - 多音字拼音校正、ます形サ変動詞转原型 数据: - 权威库补充连声词(反応/天皇/陰陽/観音/因縁/三位/輪廻/安穏) - KANJIDIC2 音训分类表、拼音校正字典 整理 .gitignore:忽略生成产物(output/study_materials)、词典数据库、 任务运行日志、备份文件
242 lines
7.3 KiB
Markdown
242 lines
7.3 KiB
Markdown
# Review 确认指南
|
||
|
||
清洗任务处理完毕后,含多音字、分割失败、动词形式等需人工确认的条目会进入 **review 桶**(`review_pinyin` / `review_split` / `review_verb` / `review_special`)。你需要确认这些条目后才能继续合并到最终库。
|
||
|
||
## 两种交互方式
|
||
|
||
### 方式1:交互式逐条确认(少量条目)
|
||
|
||
适合 review 桶条目较少(几十条以内)时使用。
|
||
|
||
```bash
|
||
jclean review <task_id> --bucket pinyin
|
||
```
|
||
|
||
进入交互界面,逐条显示待确认条目:
|
||
|
||
```text
|
||
[12/236] 議|会 : ぎ|かい : yi|hui # 多音字(会),请确认
|
||
Enter=确认 / 输入新拼音=修正 / s=跳过 / q=存盘退出
|
||
>
|
||
```
|
||
|
||
**操作**:
|
||
|
||
- **Enter** — 当前拼音正确,确认通过 → 移入 `auto_done`
|
||
- **输入新拼音** — 如 `yi|kuai` → 用新拼音移入 `auto_done`,**自动写入拼音字典**
|
||
- **s** — 暂时跳过 → 留在 review 桶(下次 review 继续显示)
|
||
- **q** — 存盘退出 → 已确认的生效,未确认的保留
|
||
|
||
**修正拼音格式**:
|
||
|
||
- 与汉字段对应,用 `|` 分隔
|
||
- 非汉字段(假名/字母)留空
|
||
- 例: `議|会` → `yi|hui`, `積|み|重|ねる` → `ji||chong|`
|
||
|
||
修正后自动写入 `pinyin_dict.toml` 的 `[word_override]` 区(整词覆盖,优先级最高),未来批次自动生效。
|
||
|
||
**禁止写入字典**(仅本次生效):
|
||
|
||
```bash
|
||
jclean review <task_id> --bucket pinyin --no-dict
|
||
```
|
||
|
||
### 方式2:文件标注批量处理(大量条目)
|
||
|
||
适合 review 桶条目较多(上百条)时使用。直接编辑 review 文件,通过**行尾注释**表达意图。
|
||
|
||
#### 标注约定
|
||
|
||
| 你的编辑 | 含义 | jclean 识别 |
|
||
|---|---|---|
|
||
| 保留 `# ...请确认` | 待确认,暂不处理 | 跳过,留在桶里 |
|
||
| **删掉** `# ...` 注释 | 当前拼音无误 | 确认,移入 auto_done |
|
||
| **改第3段拼音 + 删注释** | 修正拼音 | 用新拼音移入 auto_done |
|
||
| **行首加 `#`**(整行注释) | 删除此条 | 丢弃不处理 |
|
||
|
||
#### 示例
|
||
|
||
**编辑前**(jclean 生成的 `review_pinyin.txt`):
|
||
|
||
```text
|
||
L11 あっという|間:あっという|ま:|jian # 多音字(間),请确认
|
||
L80 議|会:ぎ|かい:yi|hui # 多音字(会),请确认
|
||
L90 責|任:せき|にん:ze|ren # 多音字(責),请确认
|
||
L100 銀|行:ぎん|こう:yin|xing # 多音字(行),请确认
|
||
```
|
||
|
||
**编辑后**(你的标注):
|
||
|
||
```text
|
||
L11 あっという|間:あっという|ま:|jian
|
||
L80 議|会:ぎ|かい:yi|hui # 多音字(会),请确认
|
||
L90 責|任:せき|にん:ze|ren2
|
||
# L100 銀|行:ぎん|こう:yin|xing # 多音字(行),请确认
|
||
```
|
||
|
||
- **L11** — 删掉注释 → **确认**,拼音 `jian` 无误
|
||
- **L80** — 保留注释 → **跳过**,仍需确认
|
||
- **L90** — 改拼音 `ze|ren` → `ze|ren2` + 删注释 → **修正**
|
||
- **L100** — 行首加 `#` → **删除**
|
||
|
||
#### 应用标注
|
||
|
||
编辑完毕后执行:
|
||
|
||
```bash
|
||
jclean review <task_id> --bucket pinyin --apply
|
||
```
|
||
|
||
jclean 读取你的标注,一次性处理所有裁决:
|
||
|
||
```text
|
||
--------------------------------------------------
|
||
确认: 1 修正: 1 跳过: 1 删除: 1
|
||
剩余 review 总数: 1
|
||
任务状态: reviewing
|
||
|
||
还有 1 条,继续: jclean review <task_id> --bucket <name>
|
||
```
|
||
|
||
结果:
|
||
- L11 → `auto_done` (拼音 `jian`)
|
||
- L80 → 留在 `review_pinyin`
|
||
- L90 → `auto_done` (拼音 `ze|ren2`)
|
||
- L100 → 丢弃
|
||
|
||
**注意**: 文件标注方式**不自动写入字典**,需要手工编辑 `pinyin_dict.toml` 或下次遇到同词时通过交互式修正。
|
||
|
||
## 拼音字典
|
||
|
||
### 位置和格式
|
||
|
||
- **文件**: 与 `jclean.toml` 同目录的 `pinyin_dict.toml`
|
||
- **格式**: TOML
|
||
|
||
```toml
|
||
[word_override]
|
||
"会計" = "kuai|ji" # 整词覆盖,优先级最高
|
||
"銀行" = "yin|hang" # 银行读 háng
|
||
|
||
[kana_hint]
|
||
"長|なが" = "chang" # 假名提示:なが → cháng
|
||
"長|ちょう" = "zhang" # 假名提示:ちょう → zhǎng
|
||
```
|
||
|
||
### 两种覆盖方式
|
||
|
||
1. **`[word_override]`** — 整词汉字 → 完整拼音
|
||
- 精确匹配整个汉字段(如 `会計`)
|
||
- 优先级最高,命中后跳过多音字标记
|
||
- 拼音用 `|` 分段,与汉字逐字对应
|
||
|
||
2. **`[kana_hint]`** — "汉字|假名前缀" → 该字拼音
|
||
- 用假名读音辅助消歧(如 `長` 有 なが/ちょう 两种读音)
|
||
- 整词未命中时,逐字尝试假名提示
|
||
- 键格式: `"汉字|假名前缀"`(如 `"長|なが"`)
|
||
|
||
### 自动写入
|
||
|
||
交互式确认修正拼音时,自动写入 `[word_override]` 区:
|
||
|
||
```bash
|
||
jclean review task1 --bucket pinyin
|
||
# 输入新拼音 → 自动追加到 pinyin_dict.toml
|
||
```
|
||
|
||
未来批次遇到同词自动生效,无需重复确认。
|
||
|
||
### 手工编辑
|
||
|
||
你也可以直接编辑 `pinyin_dict.toml`:
|
||
|
||
1. 打开文件,在对应区块添加条目
|
||
2. 保存后,重跑 review 桶立即生效:
|
||
|
||
```bash
|
||
jclean run task1 --bucket pinyin
|
||
```
|
||
|
||
文件会规整化(写回时重新生成,保留固定说明头,条目按字典序排列)。
|
||
|
||
## 工作流完整示例
|
||
|
||
```bash
|
||
# 1. 创建任务
|
||
jclean create batch1 --source data/sources/xinbiaori_1.txt --start 1 --count 500
|
||
|
||
# 2. 处理源文件
|
||
jclean run batch1
|
||
# 输出: 进入 reviewing 状态,236 条进入 review_pinyin,93 条进入 review_split...
|
||
|
||
# 3a. 交互式确认 pinyin 桶
|
||
jclean review batch1 --bucket pinyin
|
||
# 逐条确认/修正/跳过...
|
||
|
||
# 3b. 或文件标注批量处理
|
||
# 编辑 tasks/batch1/review_pinyin.txt(删注释/改拼音/标记删除)
|
||
jclean review batch1 --bucket pinyin --apply
|
||
|
||
# 4. 确认其他桶(split/verb/special)
|
||
jclean review batch1 --bucket split --apply
|
||
|
||
# 5. 所有 review 清零后,合并到最终库
|
||
jclean run batch1
|
||
# 输出: 任务状态 ready,合并到 vocabulary.txt / skipped.txt,状态变为 merged
|
||
```
|
||
|
||
## 常见问题
|
||
|
||
### Q: review 桶里的拼音大部分都对,只是被多音字黑名单拦下来的,如何快速放行?
|
||
|
||
**A**: 用文件标注方式,批量删除 `# ...请确认` 注释:
|
||
|
||
```bash
|
||
# 用编辑器正则替换(VSCode 等)
|
||
查找: \s+#\s+多音字.*,请确认
|
||
替换为: (空)
|
||
|
||
# 应用标注
|
||
jclean review batch1 --bucket pinyin --apply
|
||
```
|
||
|
||
确认无误的全部进 `auto_done`,有疑问的行保留注释即可。
|
||
|
||
### Q: 修正后想立即验证,怎么重跑单个 review 桶?
|
||
|
||
**A**: 修改字典/规则后,用 `--bucket` 参数重跑:
|
||
|
||
```bash
|
||
# 修改 pinyin_dict.toml 后
|
||
jclean run batch1 --bucket pinyin
|
||
```
|
||
|
||
该桶内容会重新用更新后的字典/规则处理,重新分流。
|
||
|
||
### Q: 文件标注方式会自动写入字典吗?
|
||
|
||
**A**: **不会**。只有交互式确认修正拼音时才自动写入。文件标注适合批量"当前批次一次性处理",不改字典。如果想让修正在未来批次也生效,需要手工编辑 `pinyin_dict.toml`。
|
||
|
||
### Q: 能否混用两种方式?
|
||
|
||
**A**: 可以。先用文件标注批量处理明显正确的,再用交互式逐条处理需要修正的。
|
||
|
||
### Q: 删除(行首 `#`)的条目去哪了?
|
||
|
||
**A**: 直接丢弃,不进 `auto_done` 也不进 `skip`,最终库里不会出现。
|
||
|
||
### Q: 拼音校验不通过怎么办?
|
||
|
||
**A**: `--apply` 执行时会校验修正后的行格式,不通过的会退回 review 桶并打印失败原因:
|
||
|
||
```text
|
||
[!] 1 条校验未通过,已退回 review 桶:
|
||
分段长度不匹配(汉字2/假名2/拼音1): 破|損:は|そん:broken
|
||
```
|
||
|
||
检查拼音段数是否与汉字段对应,修正后重新 `--apply`。
|
||
|
||
---
|
||
|
||
**下一步**: 所有 review 清零后,继续工作流 → [WORKFLOW.md](design/WORKFLOW.md)
|