拼一:一种汉字拉丁化方案 | pizin yi : yi zhozeng han zih la direireng huazei fang ahn
目标
汉字与编码一一对应
以拼音为基础
附加类似“一”的声音字母(因为这样对拼写的影响比较小)
用五笔码来生成附加字母
高频汉字应该不用附加字母或者用比较少的附加字母
算法
1. 生成从汉字到五笔码的映射表
为每个汉字生成唯一的五笔码(使用数据源A)
对于重码的汉字,按以下顺序加入额外的字符串:
a;b;c;d;e;f;g;h;i;j;k;l;m;n;o;p;q;r;s;t;u;v;w;x;y;aa;ba;ca;da;ea;fa;ga;ha;ia;ja;ka;la;ma;na;oa;pa;qa;ra;sa;ta;ua;va;wa;xa;ya
2. 生成从汉字到拼音的映射表
为每个汉字选择一个拼音(使用数据源B和数据源C)
如果数据源C中含有该汉字,选择数据源C中的第一个拼音
如果数据源C中不含有该汉字,而且它有一个5声调(轻声)的拼音,选择这个拼音
否则,选择字典顺序的第一个拼音
3. 生成拼一码
按照数据源B的顺序,依次处理每一个汉字:
定义 前缀 = 拼音的声母和元音
定义 后缀 = 拼音的结尾辅音字母 ("n", "ng", "r"), 而且要把"r" 转换为 "l" (为了避免接下来的冲突情况).
尝试每一种候选的编码,选择第一个没有被使用的编码
候选的顺序如下:
前缀 + 后缀 | 无声调的拼音 |
前缀 + 编码[五笔[0]] + 后缀 | 无声调的拼音, 插入了一个五笔字母的“一”编码 |
前缀 + 编码[五笔[0]] + 编码[五笔[1]] + 后缀 | 无声调的拼音, 插入了两个五笔字母的“一”编码 |
前缀 + 编码[五笔[0]] + 编码[五笔[1]] + ... + 后缀 | 无声调的拼音, 插入了更多五笔字母的“一”编码 |
前缀 + 编码[五笔[0]] + 编码[五笔[1]] + ... + 编码[额外字符串] + 后缀 | 无声调的拼音,插入了所有五笔字母和额外字符串的“一”编码 |
“一”编码码表
g | re |
f | ri |
d | rie |
s | rei |
a | r |
h | je |
j | ji |
k | jie |
l | jei |
m | j |
t | ze |
r | zi |
e | zie |
w | zei |
q | z |
y | he |
u | hi |
i | hie |
o | hei |
p | h |
n | ye |
b | yi |
v | yie |
c | yei |
x | y |
额外字符串:
a;b;c;d;e;f;g;h;i;j;k;l;m;n;o;p;q;r;s;t;u;v;w;x;y;aa;ba;ca;da;ea;fa;ga;ha;ia;ja;ka;la;ma;na;oa;pa;qa;ra;sa;ta;ua;va;wa;xa;ya
数据源