拼划:一种低重码率的汉字拉丁化方案

目标

汉字与编码一多对应
低重码率
以拼音为基础
按照汉字的前两个笔划,加入两个额外的字母,用以降低重码率

算法

1. 生成从汉字到拼音的映射表

为每个汉字选择一个拼音(使用数据源A和数据源B)
如果数据源B中含有该汉字,选择数据源B中的第一个拼音
如果数据源B中不含有该汉字,而且它有一个5声调(轻声)的拼音,选择这个拼音
否则,选择字典顺序的第一个拼音
用"yu"表示"ü"
如果拼音没有元音,加入"e": "ng" -> "eng", "hng" -> "heng"

2. 生成笔划字母

选取前两个笔划(使用数据源C)
如果只有一个笔划,则重复第一笔
按照下面的转换表,把两个笔划转换为两个字母

3. 生成拼划码

把上述两个笔划字母,加上声调字母,插入到第一个字母之后

笔划到字母的转换表

笔划笔划字母
- w
| o
/ r
\ u
~ v

声调到字母的转换表

声调声调字母
1 - w
2 / r
3 v v
4 \ u
5 . o

数据源

A. 汉字词频和拼音 http://lingua.mtsu.edu/chinese-computing/statistics/char/list.php?Which=MO (现代汉语单字频率列表 - 笪骏 (jda@mtsu.edu))
B. 常用汉字的常用拼音 http://zein.se/patrick/3000char.html (The most common Chinese characters in order of frequency, by © 2003 – 2009 Patrick Hassel Zein )
C. 汉字笔画 https://github.com/YQ-YSY/stroke-seq_MB/blob/master/text/%E5%8D%95%E5%AD%97_%E7%AC%94%E9%A1%BA%E7%A0%81_29685%E4%B8%AA.txt (来自 https://github.com/YQ-YSY/stroke-seq_MB)