完么扎西
收稿日期:
2015-11-23
修回日期:
2016-02-26
网络出版日期:
2016-12-26
版权声明:
2017 《北京大学学报(自然科学版)》编辑部 《北京大学学报(自然科学版)》编辑部 所有
基金资助:
展开
摘要 在研究和分析藏文拼写文法的基础上, 对计算机藏文快速输入法键盘键位布局进行形式化描述, 推导计算机藏文键盘键位布局规则及方法。综合考虑藏文字符的字频统计结果、计算机藏文键盘键位布局规则、德沃拉克键盘键位击键方便指数以及为了便于记忆加以考虑的藏文字母与英文字母发音上的近似性, 设计一种能够实现藏文无重码快速输入的键盘键位布局。最后, 计算输入一个藏文字的平均击键数, 验证所设计的键盘键位布局比现有的输入法键盘键位布局更具科学性。
关键词:
Abstract Based on research and analysis of the Tibetan spelling grammar, a computer Tibetan fast input keyboard layout is described by formalization, and some rules and method of Tibetan keyboard layout are derived. According to the Tibetan character’s frequency statistics, the rules of Tibetan keyboard layout, Dvorak keyboard keystroke convenient index, in order to facilitate memor and consider the similarity in pronunciation of English and Tibetan alphabet, a non-repeated code Tibetan keyboard layout is designed. Finally, it proves that the design of the keyboard layout proposed above is more scientific than the other input methods through the average number of keystrokes.
Keywords:
PDF (1306KB)
元数据
多维度评价
相关文章
收藏文章
藏文输入是藏文信息技术的关键问题之一。评判输入技术的一个重要标准是能否实现快速输入。无重码输入是提高计算机藏文输入速度的重要途径。要实现计算机藏文无重码输入, 就必须设计输入法无重码键盘键位布局。
目前, 国内外已有很多藏文输入法投入使用, 常见的有同元[1]、华光[2]、北大方正[3]、班智达、桑伯扎、藏大岗杰、阳光、央金玛、Monlam 以及Himalaya 等输入法。每种输入法都有一定的缺陷, 比如, 有些输入法不支持藏文编码国际标准, 有些输入法存在重码, 有些输入法使用大量的上档键键位, 有些输入法采用“组合键位”, 等等。这些输入法从不同的角度可以分为如下几种。
1) 从字符编码的角度, 可以分为两种: 一种是基于国际、国家编码(Unicode 编码)标准[4,5]的输入法, 另一种是基于其他编码的输入法。
2) 从输入单位的角度, 可以分为两种: 一种是按字(音节)输入的输入法, 另一种是按词汇输入的输入法。
3) 从开发模式的角度可以分为3种[6]: 第一种是直接在应用层面开发的输入法, 第二种是挂接在现有的英、汉文 Windows 下的输入法, 第三种是建立Keyboard layout文件, 将键码直接映射为藏文字符的输入法。
本文设计的藏文输入法键盘键位布局是基于国际、国家编码标准的按字(音节)输入的输入法键盘键位布局。目前, 基于国际、国家编码标准的按字(音节)输入的输入法中有两种最典型的输入方式: Himalaya输入方式和藏文拉丁转写输入方式。为了分析这两种输入方式存在的缺陷, 本文引入信息熵的概念, 并计算输入一个藏文字所需的平均击键数。在 120 多万字的藏文语料上进行统计, 得到藏文常用字大约有 4500 个。假设藏语自然语言中的语句由这些字任意组合而构成, 每个字的出现与上下文无关(当然, 事实上任何一种自然语言都具有上下文相关性, 但对于研究按字输入的输入法来说, 这样假设是足够的)。根据香农的信息熵[7], 以藏文字为单位统计的藏文信息熵为
其中, pi 为第 i (i=1, 2, 3, …, 4500) 个藏文字在统计语料中的出现概率。
采用藏文信息熵, 可以计算上述两种输入方式输入一个藏文字平均需要的击键数。
1) 微软 Windows 操作系统提供的Himalaya输入方式通过Keyboard layout文件, 将键码直接映射为藏文字符, 一个藏文字符对应一个键位, 无重码。在输入过程中存在大量的冗余码, 即“死键”(m键)[8]。在 120 多万字的藏文语料上进行统计和计算, 得到“死键”用了 31 万多次的结果, 因而这种输入方式输入一个藏文字平均需要的击键数为
其中, 36 为藏文字符对应的键盘键位数(不包括 10个数字键位);为“死键”的平均击键数, 即 k′=
2) 藏文拉丁转写输入方式通过威利(Wylie)藏文转写方案[9], 将藏文字符转写为 26 个英文字母, 采用英文键盘布局, 不易记, 存在重码。这种输入方式输入一个藏文字(音节)平均需要的击键数为
其中, 26 为键盘键位数, 对应 52 个藏文字符(不包括 10 个数字符号)。这个结果没有考虑重码的影响, 并且使用大量的键盘上档键键位, 大大降低了输入效率。
设计一种计算机藏文键盘键位布局时, 最好能够为每一个藏文字符都安排独立的下档键位, 当然任何一个键码序列必定唯一地对应一个藏文字(音节), 从而实现藏文的无重码快速输入。但是, 通用键盘只有 47 个下档键键位, 而实际上需要超过 47个下档键键位, 这就必须使几个下档键键位分别对应两个藏文字符, 而在输入过程中又不产生二义性。本文通过深入研究和分析藏文拼写文法, 建立藏文拼写文法的形式化描述, 推导计算机藏文键盘键位布局规则及方法。在此基础上, 综合考虑, 藏文字符的字频统计结果、德沃拉克键盘键位击键方便指数以及为了便于记忆加以考虑的藏文字母与英文字母发音上的近似性, 设计一种能够实现藏文无重码快速输入的输入法键盘键位布局。
为了方便描述, 我们将30个藏文辅音字母和5个反写字母分别映射到 b1~b35 表示符, 4 个元音符号分别映射到英文字母i, u, e和o, 1个长元音符号(ཱ)映射到英文字母a。映射关系如表 1 所示。
根据表 1, 在深入研究和分析藏文文法[10,11]以及集合论的基础上, 建立以下藏文拼写文法的形式化描述。
藏文拼写文法 1 集合Root={b1, b2, b3, b4, b5, …, b30, b31, b32, b33, b34, b35}的元素分别对应30个藏文辅音字母和 5 个藏文反写字母, 则对于任意biRoot对应的藏文字符, 可构成藏文字的基字。
藏文拼写文法 2 对于集合Prefix={b3, b11, b15, b16, b23}, PrefixRoot, 则任意 biPrefix (i=3, 11, 15, 16, 23)对应的藏文字符可构成藏文字的前 加字。
藏文拼写文法 3 对于集合Suffix={b3, b4, b11, b12, b15, b16, b23, b25, b26, b28}, SuffixRoot, 则任意biSuffix (i=3, 4, 11, 12, 15, 16, 23, 25, 26, 28)对应的藏文字符可构成藏文字的后加字。
藏文拼写文法 4 对于集合 Postfix={b11, b28},
Postfix Suffix Root, 则任意 bi Postfix (i=11, 28)对应的藏文字符可构成藏文字的再后加字。
藏文拼写文法 5 对于集合 Superfix={b25, b26, b28}, Superfix Root, 则任意 bi Superfix (i=25, 26, 28)对应的藏文字符可构成藏文字的上加字。
藏文拼写文法 6 对于集合 Subfix={b20, b24, b25, b26}, Subfix Root, 则任意 bi Subfix(i=20, 24, 25, 26)对应的藏文字符可构成藏文字的下加字。
藏文拼写文法 7 对于集合Vowel=Vowel1{a}, Vowel1={i, u, e, o}对应4个藏文元音字符(a代表藏文长元音字符)。bj Root ( j=1, 2, 3, …, 33, 34, 35)对应的藏文基字可与v Vowel对应的元音字符拼写, u和a只能写在辅音下方, 其余3个元音字符只能写在辅音上方。
藏文拼写文法8 bj Root ( j=1, 3, 4, 5, 7, 8, 9, 11, 12, 13, 15, 16, 17, 19, 29)对应的藏文基字与bi Superfix (i=25, 26, 28)对应的上加字拼写时, 须满足如下文法规则。
1) bj Root ( j=1, 3, 4, 7, 8, 9, 11, 12, 15, 16, 17, 19)只能与b25 Superfix拼写。
2) bj Root ( j=1, 3, 4, 5, 7, 9, 11, 13, 15, 29)只能与b26 Superfix拼写。
3) bj Root ( j=1, 3, 4, 8, 9, 11, 12, 13, 15, 16, 17)只能与b28 Superfix拼写。
藏文拼写文法9 bj Root ( j=1, 2, 3, 8, 9, 10, 11, 13, 14, 15, 16, 18, 21, 22, 25, 26, 27, 28, 29)对应的藏文基字与bi Subfix (i=20, 24, 25, 26)对应的下加字拼写时, 须满足如下文法规则。
1) bj Root ( j=1, 2, 3, 8, 11, 18, 21, 22, 25, 26, 27, 29)只能与b20 Subfix拼写。
2) bj Root ( j=1, 2, 3, 13, 14, 15, 16)只能与b24 Subfix拼写。
3) bj Root ( j=1, 2, 3, 9, 10, 11, 13, 14, 15, 16, 28, 29)只能与b25 Subfix拼写。
4) bj Root ( j=1, 3, 15, 22, 25, 28)只能与b26 Subfix拼写。
5) bj Root ( j=29)只能与b14 Subfix拼写。
为了拼写其他语言中的[f]音, 现代藏文中出现b29与b14拼写的形式。按照传统藏文拼写文法, b29不能作为上加字, b14 也不能作为下加字, 因此, 作为一种特殊的情况, b29与b14拼写时, 我们将b14作为“下加字”看待。
藏文拼写文法10 biRoot (i=1, 3, 12, 13, 15, 16, 17)对应的藏文基字同时与 bjSuperfix ( j=25, 28)对应的上加字和bkSubfix (k=20, 24, 25)对应的下加字拼写时, 须满足如下文法规则。
1) b1Root 与 b25Superfix 拼写时, 可同时与b24Subfix拼写; 与b28Superfix 拼写时, 可同时与bkSubfix(k=24, 25)拼写。
2) b3Root 与 b25Superfix 拼写时, 可同时与b24Subfix拼写; 与b28Superfix 拼写时, 可同时与bkSubfix (k=24, 25)拼写。
3) b12Root 与 b28Superfix 拼写时, 可同时与b25Subfix拼写。
4) b13Root 与 b28Superfix 拼写时, 可同时与bkSubfix (k=24, 25)拼写。
5) b15Root 与 b28Superfix 拼写时, 可同时与bkSubfix (k=24, 25)拼写。
6) b16Root 与 b25Superfix 拼写时, 可同时与b24Subfix拼写; 与b28Superfix 拼写时, 可同时与bkSubfix (k=24, 25)拼写。
7) b17Root 与 b25Superfix 拼写时, 可同时与b20Subfix拼写。
藏文拼写文法11 biRoot (i=1, 3, 4, 7, 8, 9, 11, 12, 17, 19)对应的藏文基字同时与b15Prefix对应的前加字和bjSuperfix ( j=25, 26, 28)对应的上加字拼写时, 须满足如下文法规则。
1) biRoot (i=1, 3, 4, 7, 8, 9, 11, 12, 17, 19)可与b25Superfix拼写。
2) biRoot (i=9, 11)可与b26Superfix拼写。
3) biRoot (i=1, 3, 4, 8, 9, 11, 12, 17)可与b28Superfix拼写。
藏文拼写文法12 biRoot (i=1, 2, 3, 11, 13, 14, 15, 16, 22, 25, 28)对应的藏文基字同时与bjPrefix ( j=11, 15, 16, 23)对应的前加字和bkSubfix (k=20, 24, 25, 26)对应的下加字拼写时, 须满足如下文法规则。
1) biRoot (i=1, 3, 13, 15, 16)可与b11Prefix和b24Subfix拼写。
2) biRoot (i=1, 3, 13, 15)可与b11Prefix和b25Subfix拼写。
3) biRoot (i=1, 3)可与b15Prefix 和 b24Subfix拼写。
4) biRoot (i=1, 3, 28)可与b15Prefix 和 b25Subfix拼写。
5) biRoot (i=1, 22, 25, 28)可与b15Prefix和b26Subfix拼写。
6) biRoot (i=2, 3)可与b16Prefix 和 bkSubfix (k=24, 25)拼写。
7) biRoot (i=2, 3, 14, 15)可与b23Prefix和b24Subfix拼写。
8) biRoot (i=2, 3, 11, 14, 15)可与b23Prefix和 b25Subfix拼写。
藏文拼写文法 13 biRoot (i=1, 3)对应的藏文基字与 b15Prefix对应的前加字和 bjSuperfix ( j=25, 28)对应的上加字及 bkSubfix (k=24, 25)对应的下加字拼写时, 须满足如下文法规则。
1) biRoot (i=1, 3)可与 b15Prefix 和 b25Superfix及b24Subfix拼写。
2) biRoot (i=1, 3)可与 b15Prefix 和 b28Superfix及b25Subfix拼写。
3) biRoot (i=1, 3)可与 b15Prefix 和 b28Superfix及b24Subfix拼写。
藏文拼写文法 14 biRoot (i=1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22,
24, 27, 28)对应的藏文基字与bjPrefix ( j=3, 11, 15, 16, 23)对应的前加字拼写时, 须同时与 vVowel, Vowel={i, u, e, o}对应的元音符号, 或与bkSuffix (k=3, 4, 11, 12, 15, 16, 23, 25, 26, 28)对应的一个后加字拼写, 并满足如下文法规则。
1) biRoot (i=5, 8, 9, 11, 12, 17, 21, 22, 24, 27, 28)仅能与b3Prefix拼写。
2) biRoot (i=1, 3, 4, 13, 15, 16)仅能与b11Prefix拼写。
3) biRoot (i=1, 3, 5, 9, 11, 17, 21, 22, 27, 28)仅能与b15Prefix拼写。
4) biRoot (i=2, 3, 4, 6, 7, 8, 10, 11, 12, 18, 19)仅能与b16Prefix拼写。
5) biRoot (i=2, 3, 6, 7, 10, 11, 14, 15, 18, 19)仅能与b23Prefix拼写。
藏文拼写文法 15 bjRoot ( j=1, 2, 3, 4, 5, 6, 7, 8, 9, 10, …, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
对应的藏文基字可以与任意 biSuffix (i=3, 4, 11, 12, 15, 16, 23, 25, 26, 28)对应的后加字拼写。
藏文拼写文法 16 藏文再后加字的使用只与后加字有关。biSuffix (i=3, 4, 12, 15, 16, 25, 26)对应的藏文后加字可与bjPostfix ( j=11, 28)对应的再后加字拼写, 并有如下文法规则。
1) b11Postfix仅能与biSuffix (i=12, 25, 26)拼写。
2) b28Postfix 仅能与 biSuffix (i=3, 4, 15, 16)拼写。
藏文拼写文法 17 biRoot (i=3, 11, 14)对应的藏文基字与 bjSubfix ( j=24, 25)对应的藏文下加字拼写时, 可同时与b20Subfix对应的藏文下加字拼写。具体规则如下。
1) biRoot (i=3, 11)与b25Subfix拼写时, 可同时与b20Subfix拼写。
2) b14Root 与 b24Subfix 拼写时, 可同时与b20Subfix拼写。
藏文拼写文法 18 b29Root 对应的藏文辅音字母可与 b14Root 对应的藏文辅音字母拼写, 且b14Root位于b29Root对应的下方。
藏文拼写文法 19 b29Root 对应的藏文辅音字母与 b14Root 对应的藏文辅音字母拼写时, 可同时与biSuffix (i=3, 4, 11, 12, 15, 16, 23, 25, 26, 28)对应的藏文后加字拼写。
藏文拼写文法 20 无后加字的藏文字可以与b23Root 对应的藏文辅音字母拼写, 此时 b23Root 对应的藏文辅音字母须与 vVowel, Vowel= {i, u, e, o}对应的元音符号(i, e, u, o)拼写。
藏文拼写文法 21 除文法17, 18, 19和20的特殊拼写外, 藏文字按前加字、上加字、基字、下加字、元音符号、后加字和再后加字的顺序拼写。
根据上述藏文拼写文法, 得出如下无重码藏文输入法键盘键位布局规则。
定义(二义性) 在计算机键盘输入中, 按照某种键盘布局和编码方式, 如果存在某个键盘输入序列, 可能映射输入(或解释输入)多个文字, 则称该键盘输入序列具有二义性。
规则 1 在计算机藏文键盘输入中, 如果任何藏文上加字与任意一个藏文基字共用键盘键位, 则输入会产生二义性。
证明 反证法。假设存在某个上加字 x 与基字y共用键位 ki, 且不产生输入二义性。根据藏文拼写文法 15 可知, 任意一个辅音字母均可作基字并与后加字拼写。如果用户连续击键序列为 kikj, 那么, 可以这样解释: ki 为基字, kj 为后加字, 从而击键序列 kikj解释为基字与后加字的拼写; 也可以这样解释: ki为上加字, kj为基字, 从而击键序列为kikj解释为上加字与基字的拼写, 因此产生二义性。所以, 如果上加字与任意一个基字共用键盘键位, 则输入时会产生二义性。
规则 2 在计算机藏文键盘输入中, 如果任何藏文下加字与后加字共用键盘键位, 则输入会产生二义性。
证明 反证法。假设存在某个下加字 x 与后加字 y 共用键位 kj, 且不会产生输入二义性。根据藏文拼写文法 15 可知, 任意一个辅音字母均可作为基字并与后加字拼写。如果用户连续击键序列为kikj, 那么, 可以这样解释: ki 为基字, kj 为后加字, 从而击键序列 kikj解释为基字与后加字的拼写; 也可以这样解释: ki为基字, kj为下加字, 从而击键序列 kikj解释为基字与下加字的拼写, 因此产生二义性。所以, 上加字与任意一个基字共用键盘键位, 则输入时会产生二义性。
规则 3 在计算机键盘输入中, 如果一个藏文基字只能与元音拼写, 那么这个基字与元音符号共享键位时, 不会产生输入二义性。
证明 如果藏文基字bi只能与元音拼写, 且与任意元音符号 V0共用键位 ki。如果用户连续击键序列为 kikj, 那么, 击键序列为 kikj只可能解释为基字与元音的拼写, 因此不会产生输入二义性。
规则 4 设由藏文前加字构成的集合为Pre, 藏文基字构成的集合为Base, 任意基字 bi 的所有前加字构成的集合为P, 且 PPre。下加字 bj的所有基字构成的集合为 B, 且 BBase。如果满足∅, 则该基字bi与下加字bj共用键位时, 不会产生输入二义性。
证明 任意基字 bi的所有前加字构成集合 P, 且 PPre, 下加字 bj的所有基字构成集合 B, 且 BBase。如果满足∅, 基字 bi 与下加字 bj共用键位 kj时, 击键序列为 kikj只可能解释为基字与下加字的藏文字, 因此不会产生输入二义性。
根据计算机藏文无重码输入法键盘键位布局规则, 可以得到以下几种计算机藏文无重码输入法键盘键位布局方法。
1) 任意上加字不与任意一个基字共享键位。
2) 任意下加字不与任意一个后加字共享键位。
3) 任意上加字不与任意下加字共享键位。
4) 下加字b20与基字b2, b6, b7, b10, b14, b18, b19, b20, b29, b30中的任意一个可共享键位。
5) 下加字b24与基字b13, b14, b20, b29, b30中的任意一个可共享键位。
6) 下加字b25与基字b14, b20, b29, b30中的任意一个可共享键位。
7) 下加字 b26与基字b2, b6, b7, b10, b13, b14, b18, b19, b20, b29, b30中的任意一个可共享键位。
8) 下加字b14与基字b1, b2, b5, b6, b7, b8, b9, b10, b13, b14, b17, b18, b19, b20, b21, b22, b24, b27, b29, b30中的任意一个可共享键位。
9) i, u, e, o和a中的任意一个元音符号与基字b20, b29, b30中的任意一个可共享键位。
根据 GB16959-1997《信息技术 信息交换用藏文编码字符集 基本集》国家标准[5], 藏文字符共有 169 种。现代藏文中常用的有 30 个辅音字母、5个反写字母、5 个元音符号、3 个上加字、5 个下加字、10个数字符号、1个分字符、2个分句符和1 个首饰符, 共62个字符。为了将这些符号合理地安排在 47 个键盘键位上, 且输入过程中不会有重码, 我们综合考虑藏文字符的字频统计结果(表 2), 计算机藏文无重码键盘键位布局规则及方法、德沃拉克键盘键位击键方便指数[12]以及为了便于记忆加以考虑的藏文字母与英文字母发音上的近似性, 设计能够实现藏文无重码快速输入的键盘键位布局, 如图1所示。
1) 根据表2的统计结果, 5 个反写字和1个分句符(双垂符)等低频字符安排在 6 个上档键上, 使得使用上档键的次数降到最低, 提高了输入效率。
2) 根据表 2 的统计结果、德沃拉克键盘键位击键方便指数和易记忆原则, 出现频率较高的 10个后加字大部分安排在中排高频键位上, 其他字符根据出现频率从高到低, 依据手指使用频率从右手到左手, 食指到小拇指依次降频的原则安排在上排和下排键位上, 使得左、右手负担比率基本上达到 4:6。
3) 根据键盘键位布局规则及方法, 键盘 37 个键位上安排 44 个藏文字符, 其中 7 个下档键键位分别对应两个字符, 并在输入过程中不会产生二义性, 实现了无重码快速输入。
4) 键盘键位布局与 Himalaya 键盘键位布局基本上一致, 不需要专门学习, 易操作和记忆。
由图 1 可知, 本文设计的计算机藏文输入法键盘用37个键位无重码地输入 44 个字符, 每个字符可以代表log244≈5.6 bit 的信息, 即输入一个藏文字平均需要的击键数为
由此可知, 用本文设计的计算机藏文无重码输入法键盘键位布局输入一个藏文字的速度比Himalaya 输入方式提高
藏文文本中转写的梵文音节的处理在藏文信息处理中相当重要, 但在现代藏文的使用中出现的概率很低, 并且藏文文法不适用于梵文的藏文转写字, 所以, 本文以现代藏文为主要研究对象, 设计一种无重码、无“死键”的藏文输入法键盘键位布局, 克服现有藏文输入法键盘键位布局的缺陷, 实现“一键一字”的快速输入, 同时提供一种无重码藏文输入法键盘键位布局规则及方法, 根据这个方法可以设计多种无重码藏文键盘键位布局。
以此键盘键位布局的输入法系统正在研发中。由于本文设计的藏文键盘键位布局实质上利用了各种部件之间的约束关系来限制候选, 所以除输入功能外, 还具备一定的文法检查功能, 即如果输入的藏文符合文法规则, 则正常录入; 否则, 将显示输入的各个藏文字符, 并提示输入有误的信息。
The authors have declared that no competing interests exist.
藏梵文键盘布局表[N] 藏文DOS - HGZC [N] 方正藏/梵文编辑排版系统使用说明[N] The Unicode Standard Version 4.0 实现计算机藏文快速输入的关键问题研究 A standard system of Tibetan transcription 藏文计算机通用键盘布局与输入法研究
/
1 藏文输入法存在的问题




2 藏文拼写文法的形式化描述
3 计算机藏文无重码输入法键盘布局规则及方法
3.1 键盘键位布局规则
3.2 键盘键位布局方法
3.3 键盘键位布局图
4 输入一个藏文字平均需要的击键数



5 结论
参考文献
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
[12]
技术支持:北京玛格泰克科技发展有限公司
〈
〉