清洗管线重构为严格三层架构:
- 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)
78 lines
5.1 KiB
Python
78 lines
5.1 KiB
Python
"""
|
|
应用人工确认后的修正到 xinbiaori.txt。
|
|
每条修正是「整行旧文本 -> 整行新文本」,脚本会校验旧文本恰好出现一次,
|
|
避免误改。运行后打印每条修正结果。
|
|
"""
|
|
from pathlib import Path
|
|
|
|
FILE = Path(r"\\192.168.3.200\work\workspace\python\japanese\tests\data\xinbiaori.txt")
|
|
|
|
# (说明, 旧行, 新行)
|
|
CORRECTIONS = [
|
|
# ---- 汉语拼音手误 ----
|
|
("太 tao->tai", "太|郎:た|ろう:tao|lang", "太|郎:た|ろう:tai|lang"),
|
|
("明日 jinri->mingri","明日:あした:jinri", "明日:あした:mingri"),
|
|
("美 nei->mei", "美|術|館:び|じゅつ|かん:nei|shu|guan", "美|術|館:び|じゅつ|かん:mei|shu|guan"),
|
|
("国 huo->guo", "韓|国:かん|こく:han|huo", "韓|国:かん|こく:han|guo"),
|
|
("海 gai->hai", "北|海|道:ほっ|かい|どう:bei|gai|dao", "北|海|道:ほっ|かい|どう:bei|hai|dao"),
|
|
("渋 she->se", "渋|谷:しぶ|や:she|gu", "渋|谷:しぶ|や:se|gu"),
|
|
("紙 空->zhi", "新|聞|紙:しん|ぶん|し:xin|wen|", "新|聞|紙:しん|ぶん|し:xin|wen|zhi"),
|
|
("曇 yun->tan", "曇|り:くも|り:yun|", "曇|り:くも|り:tan|"),
|
|
("写 xue->xie", "写|真|展:しゃ|しん|てん:xue|zhen|zhan", "写|真|展:しゃ|しん|てん:xie|zhen|zhan"),
|
|
("荘 su->zhuang", "別|荘:べっ|そう:bie|su", "別|荘:べっ|そう:bie|zhuang"),
|
|
("酎 zhuo->zhou", "焼|酎:しょう|ちゅう:shao|zhuo", "焼|酎:しょう|ちゅう:shao|zhou"),
|
|
("撮 she->cuo", "撮|影|禁|止:さつ|えい|きん|し:she|ying|jin|zhi","撮|影|禁|止:さつ|えい|きん|し:cuo|ying|jin|zhi"),
|
|
("計 jia->ji", "設|計:せっ|けい:she|jia", "設|計:せっ|けい:she|ji"),
|
|
("嬢 nang->niang", "お|嬢|さん:お|じょう|さん:|nang|", "お|嬢|さん:お|じょう|さん:|niang|"),
|
|
("濯 di->zhuo (機)", "洗|濯|機:せん|たく|き:xi|di|ji", "洗|濯|機:せん|たく|き:xi|zhuo|ji"),
|
|
("濯 di->zhuo", "洗|濯:せん|たく:xi|di", "洗|濯:せん|たく:xi|zhuo"),
|
|
("絶 hue->jue", "絶|対|に:ぜっ|たい|に:hue|dui|", "絶|対|に:ぜっ|たい|に:jue|dui|"),
|
|
("道 gong->dao", "高|速|道|路:こう|そく|どう|ろ:gao|su|gong|lu", "高|速|道|路:こう|そく|どう|ろ:gao|su|dao|lu"),
|
|
("渋 she->se (滞)", "渋|滞:じゅう|たい:she|zhi", "渋|滞:じゅう|たい:se|zhi"),
|
|
("束 su->shu", "約|束:やく|そく:yue|su", "約|束:やく|そく:yue|shu"),
|
|
("雰 wu->fen", "雰|囲|気:ふん|い|き:wu|wei|qi", "雰|囲|気:ふん|い|き:fen|wei|qi"),
|
|
("孫 suan->sun", "孫:まご:suan", "孫:まご:sun"),
|
|
("金 空->jin", "貯|金:ちょ|きん:zhu|", "貯|金:ちょ|きん:zhu|jin"),
|
|
("交 ijao->jiao", "交|通|事|故:こう|つう|じ|こ:ijao|tong|shi|gu", "交|通|事|故:こう|つう|じ|こ:jiao|tong|shi|gu"),
|
|
("則 zhe->ze", "規|則:き|そく:gui|zhe", "規|則:き|そく:gui|ze"),
|
|
("具 u->ju", "具|合:ぐ|あい:u|he", "具|合:ぐ|あい:ju|he"),
|
|
("円 en->yuan", "円|高:えん|だか:en|gao", "円|高:えん|だか:yuan|gao"),
|
|
("欠 qina->qian", "欠|席:けっ|せき:qina|xi", "欠|席:けっ|せき:qian|xi"),
|
|
("弁 bing->ban", "合|弁|会|社:ごう|べん|がい|しゃ:he|bing|hui|she","合|弁|会|社:ごう|べん|がい|しゃ:he|ban|hui|she"),
|
|
# ---- 日语读音修正 ----
|
|
("降る ふり->ふ", "降|る:ふり|る:jiang|", "降|る:ふ|る:jiang|"),
|
|
("餃 ぎょー->ぎょう", "餃|子:ぎょー|ざ:jiao|zi", "餃|子:ぎょう|ざ:jiao|zi"),
|
|
("通 つ->つう", "交|通|事|情:こう|つ|じ|じょう:jiao|tong|shi|qing","交|通|事|情:こう|つう|じ|じょう:jiao|tong|shi|qing"),
|
|
]
|
|
|
|
|
|
def main():
|
|
text = FILE.read_text(encoding="utf-8")
|
|
applied, missing, ambiguous = [], [], []
|
|
for desc, old, new in CORRECTIONS:
|
|
cnt = text.count(old)
|
|
if cnt == 0:
|
|
missing.append(desc)
|
|
elif cnt > 1:
|
|
ambiguous.append(f"{desc} (出现{cnt}次)")
|
|
else:
|
|
text = text.replace(old, new)
|
|
applied.append(desc)
|
|
FILE.write_text(text, encoding="utf-8")
|
|
|
|
print(f"已应用 {len(applied)} 条:")
|
|
for d in applied:
|
|
print(" OK ", d)
|
|
if missing:
|
|
print(f"未找到(可能已改或原文不符) {len(missing)} 条:")
|
|
for d in missing:
|
|
print(" MISS", d)
|
|
if ambiguous:
|
|
print(f"歧义(出现多次,跳过) {len(ambiguous)} 条:")
|
|
for d in ambiguous:
|
|
print(" AMB ", d)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|