清洗管线重构为严格三层架构:
- tango_analyser.py(底层:单词分析)
- task_processor.py(中层:文件 I/O、桶管理)
- workflow.py(顶层:状态机、任务推进)
- 移除旧的 batch_processor.py
新增配置文件系统:
- config.py:TOML 配置,相对路径相对配置文件目录解析
- 查找优先级 --config > cwd > 项目根 > ~ > 默认值
- count=None 语义为处理到文件末尾
项目目录整理:
- 根脚本归档到 scripts/analysis 与 scripts/legacy
- 文档归档到 docs/{design,history,analysis}
- 临时报告移到 reports/(已 gitignore)
文档质量:
- 新增 .markdownlint.json 与 scripts/mdlint.cmd
- 修复全部 14 个 md 文件的 markdownlint 警告
测试:74 passed(8 cleaner + 31 workflow + 6 tango + 15 validator + 14 config)
Japanese Vocabulary Cleaner
日语词表清理工具 — 半自动处理「汉字 + 假名 + 拼音」三段式词表。
项目简介
本项目用于清理和规范化日语词表数据,将原始格式转换为标准的三段式格式:
输入:日本人:にほんじん:
输出:日|本|人:に|ほん|じん:ri|ben|ren
核心功能:
- 🔍 自动分割 — 汉字/假名智能对齐,管道符分割
- 🔤 拼音生成 — 基于 pypinyin + 多音字规则
- 🤖 智能分类 — 成功/失败/待审核自动分流
- 📋 任务管理 — 批次隔离、状态机、断点续处理
- ⚙️ 配置驱动 — TOML 配置文件,多项目友好
快速开始
安装
# 安装项目(开发模式)
pip install -e .
# 验证安装
jclean --help
创建第一个任务
# 1. 初始化配置文件(可选)
jclean init-config
# 2. 创建清理任务
jclean create my_task --source data/sources/xinbiaori_1.txt
# 3. 运行任务
jclean run my_task
# 4. 查看状态
jclean status my_task
# 5. 人工修正 review 文件后重跑
jclean run my_task --bucket pinyin
详细使用说明见 README_cleaner.md。
项目结构
japanese/
├── src/pl_japanese/
│ ├── cleaner/ # 清理工具核心(三层架构)
│ │ ├── tango_analyser.py # 底层:单词分析
│ │ ├── task_processor.py # 中层:文件 I/O、桶管理
│ │ ├── workflow.py # 顶层:状态机、任务推进
│ │ ├── cli.py # 命令行接口
│ │ ├── config.py # 配置文件管理
│ │ └── ...
│ ├── tango/ # Tango 数据模型(下游)
│ └── dict_utils.py # 词典工具
│
├── tests/ # 测试(74 个)
│ ├── test_cleaner.py # 底层单元测试
│ ├── test_cleaner_workflow.py # 三层集成测试
│ ├── test_config.py # 配置管理测试
│ └── ...
│
├── scripts/
│ ├── analysis/ # 未来要集成的分析工具
│ │ ├── analyze_phonetics.py # 发音规律统计
│ │ └── validate_data.py # 数据质量校验
│ └── legacy/ # 已废弃的旧脚本
│
├── data/
│ ├── db/ # 权威库(最终成果)
│ │ ├── vocabulary.txt # 清理完成的词表
│ │ └── skipped.txt # 跳过的词条
│ └── sources/ # 原始数据源
│
├── tasks/ # jclean 任务目录(每任务一个子目录)
│ └── my_task/
│ ├── task.json # 任务元数据
│ ├── auto_done.txt # 自动处理成功
│ ├── skip.txt # 跳过(无汉字等)
│ └── review_*.txt # 待人工确认
│
├── docs/ # 项目文档
│ ├── design/ # 设计文档
│ ├── history/ # 历史记录
│ └── analysis/ # 分析报告
│
├── reports/ # 临时分析报告
├── jclean.toml # jclean 配置文件
├── pyproject.toml # 项目配置
└── README_cleaner.md # jclean 用户文档
核心特性
三层架构
┌─────────────────────────────────────┐
│ CleanerWorkflow (顶层) │ 状态机、任务推进
│ - run() 统一入口 │
│ - 状态转换:CREATED → PROCESSING │
│ → REVIEWING → READY │
└─────────────────────────────────────┘
↓
┌─────────────────────────────────────┐
│ TaskProcessor (中层) │ 文件 I/O、桶管理
│ - process_source() │ 无状态更新
│ - reprocess_bucket() │
│ - merge_to_authoritative() │
└─────────────────────────────────────┘
↓
┌─────────────────────────────────────┐
│ TangoAnalyser (底层) │ 单词级分析
│ - analyze(kanji, kana) │ 无文件/桶概念
│ - 返回 AnalysisResult │
└─────────────────────────────────────┘
设计细节见 docs/design/WORKFLOW.md。
智能分类
处理结果自动分流到 5 个桶:
| 桶名 | 说明 | 自动处理 |
|---|---|---|
auto_done.txt |
成功:单音字、唯一分割 | ✅ |
skip.txt |
跳过:无汉字、纯假名 | ✅ |
review_pinyin |
多音字:已填最常见读音 | ⚠️ 人工 |
review_split |
分割失败:假名对齐失败 | ⚠️ 人工 |
review_verb |
动词形态:する/でした 结尾 | ⚠️ 人工 |
review_special |
特殊格式:片假名/符号/~ | ⚠️ 人工 |
配置文件驱动
# jclean.toml
[paths]
tasks_root = "tasks"
vocabulary = "data/db/vocabulary.txt"
skipped = "data/db/skipped.txt"
[defaults]
backup_before_merge = true
backup_dir = "data/backup"
[logging]
level = "INFO"
配置文件查找顺序:--config > 当前目录 > 项目根 > ~/.jclean.toml > 默认值
详细说明见 docs/design/CONFIG_FILE_DESIGN.md。
测试
# 运行全部测试(74 个)
pytest tests/ -v
# 按模块测试
pytest tests/test_config.py # 配置管理
pytest tests/test_cleaner_workflow.py # 三层集成
pytest tests/test_cleaner.py # 底层单元
pytest tests/test_validator.py # 格式校验
文档
- 用户文档 → README_cleaner.md — jclean 工具使用指南
- 设计文档 → docs/design/ — 架构、工作流、配置方案
- 历史记录 → docs/history/ — 重构总结、变更日志
- 分析报告 → docs/analysis/ — 数据分析、Review 桶统计
完整文档索引见 docs/README.md。
开发
环境搭建
# 克隆项目
git clone <repo>
cd japanese
# 创建虚拟环境
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# 安装依赖(开发模式)
pip install -e .
pip install pytest
# 运行测试
pytest tests/
目录约定
src/— 源代码(src-layout)tests/— 测试(pytest,pythonpath = ["src"])tasks/— jclean 任务工作目录(git ignore)data/db/— 权威库(最终成果,git 跟踪)data/sources/— 原始数据源(git 跟踪)docs/— 项目文档scripts/— 工具脚本
版本历史
v0.3.0 (当前)
- ✅ 配置文件系统(TOML 格式,多项目支持)
- ✅ 配置简化(移除不必要的默认值)
- ✅ UTF-8 BOM 容错
- ✅ 项目目录清理(脚本归档、文档整理)
v0.2.0
- ✅ 三层架构重构(底层/中层/顶层职责分离)
- ✅ 任务化管理(批次隔离、状态机)
- ✅ CLI 简化(统一
jclean run命令) - ✅ 73 个测试覆盖
v0.1.0
- 🗑️ 单文件 500+ 行脚本(已废弃)
- 🗑️ 全局变量、硬编码路径(已重构)
许可
(待添加)
联系
(待添加)
Description
Languages
Python
99.9%
Batchfile
0.1%