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

目标

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

算法

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

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

2. 生成笔划字母

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

3. 生成拼英码

把两个笔划字母插入到第一个元音字母之前
按照下面的转换表,根据声调进行修改

笔划到字母的转换表

笔划笔划字母
- e
| i
/ a
\ u
~ o

声调修改表

声调修改
1 - 没有变化
2 / 在最后一个元音字母后面加入{h}
3 v 重复主元音字母
4 \ 在最后一个元音字母后面加入{hh}
5 . 重复主元音字母,在最后一个元音字母后面加入{h}

数据源

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)