湘里妹子学术网

 找回密码
 注册
查看: 3778|回复: 1

汉字排序领域最伟大的发明

[复制链接]
发表于 2006-5-18 04:22:16 | 显示全部楼层 |阅读模式
北大中文论坛 www.pkucn.com » 语言文字漫谈 » 汉字排序领域最伟大的发明
标题: 汉字排序领域最伟大的发明        

班门斧

改善表音性和进行科学排序,是汉字在英语文化强大压力下谋生存、求发展所面临的两大任务。

班门斧说自己发明的“班氏汉字笔画排序法”是汉字排序检索领域最伟大的一项发明,并非浅薄轻率之举,而是举贤不避亲(己)。经长时间冷静比较分析,认为它确实比目前使用的拼音排序法、部首排序法、四角号码排序法、笔画数排序法更科学、更好用,而且也有一点设擂的意思在里面,刺激一下,希望引来批评,看看有谁能够提出改进的意见。如果有人尚能发明一种更科学更先进的排序法来压倒它,那更是中华民族的福音,班某乐意给以鼓掌夸奖现金奖。

如果我说,由于英语单词的字母有多有少,长短悬殊,就担心检索查词会有麻烦,众人一定会哄堂大笑,因为如apartment和in等无论长短的单词,其排序是按第一个字母的“权位”来排列的。只有第一个字母相同的单词,才需要按第二个字母的权位来区别先后。单词的构形之长短丝毫不影响其排序的简明和严谨。同样这个道理,来到汉字排序的应用中,班氏汉字笔画排序法也是按汉字的第一笔的“权位”来排列的。只有第一笔相同的字,才需要按第二笔的权位来区别先后。汉字的结构笔画之多少丝毫不影响其排序的简明和严谨。班氏汉字笔画排序法的精髓是:依次排序横竖撇捺四种有序的元笔,折排序第五。折视为元笔的有序组合,其内部也按横起笔、竖起笔、撇起笔等等依次排列。再加上“短优先,勾靠边”(指横勾排序于横撇之前,点于捺之前;竖勾之勾视为若有若无,排序跟在竖之后),这就是它的全部!覆盖了一切汉字,简的繁的古的今的,以及未来的!

英语中的apartment和in这两个单词,长短悬殊,一点也不影响它们的简单而清晰的排序,不管文化水平多么低的人,一眼就看出apartment排在前面,in排在其后。同理,以“木”字为例,一眼就能知道在字典里“横竖撇捺折”五大迭中的第一大迭“横”,再翻到其中第二小迭“竖”,第三小小迭 “撇”里面的第四组“捺”;“棉”字则是在“木”里的第三小小组(白字的第一笔为撇)。用班氏汉字笔画排序法直接在字典正文中找条目,比去点算(棉)字的笔画数简单直接多了,甚至比先研究查找部首再去查找字表然后再去查找正文的部首检字法也简单得多。

二千年以来,一百年以来,五十年以来,没有前人能够发明这个笔画排序法,首先是古人没有提炼出笔画的“权位”这个概念。近代人接触过有序的拉丁字母了,有些依稀的“有序”的观念了,但还是惧于汉字的笔画数相差悬殊而对使用笔画来排序不敢深入一步去研究,以致熟视无睹,与真理擦肩而过。

班某深信,假以时日,班氏汉字笔画排序法一定会成为汉语的字典、词典、资料库的主流排序法。直达条目,不需字表!
2006-5-18 04:08        #1
       
班氏汉字笔画排序法v1.5
--------
创作者:班门斧、溜溜云

版本:
V1.5(2004年8月21日)
V1.4(2004年8月14日)
V1.2(2004年7月25日)
V1.0(2004年7月9日)
V0.9(2004年5月8日)

-------------------------
前言:班氏排序法太简单了,这么浅白如水的东西也能算一个发明?有现实意义吗?但是,用回过头来的眼光而看,原子弹和计算机这两个发明也太简单了,中学生就行!班氏从上世纪八十年代初以来,先后发明过好几种汉字编码(排序)法,有音主导型的,有部件主导型的,有结构主导型的,有首尾笔画主导型的,还有“金木水火土日月人口”高频部首主导型的,以及音形杂型的,等等,不成!是不够料吗?恰恰相反,是“学问”太多、技巧太多、规则太多。而今“成仙得道”是由于慢慢悟出的一个道理,汉字编码排序的要求,不能超过小学一年级的水平。就说公认的那个“五笔”原理吧(具有历史贡献的一个发明),还是太复杂,“折”是什么?如何处理其内部矛盾?没能解决。班氏排序仅以横竖撇捺为“基本母笔”,“折笔”视为母笔之逐层顺序组合,附加一点“短优先、钩靠边”,全部完成,非常简单,完全规范。在主观上我愿意相信班氏排序是“终场冠军”。还有可能发明一个比这个以“四母笔”为核心的班氏排序更简单更规范的方案吗?若有,当然欢迎,更是民族乃至世界的福音,咱拭目以待。另外,我也设计过一种“阴阳二元法”:横竖为“正笔”为阳,撇捺为“斜笔”为阴,无折为阳,有折为阴,
应该说很有创意吧,也非常简单规范,更适合机器作数据处理,但我还是认为其对人脑而言,不如横竖撇捺四元更好识记。
-------------------------

当今,计算技术和存储技术已经达到了似乎无所不能的先进程度,但汉字之无序,仍然是汉字在键盘输入和信息处理中的最大障碍。汉字排序的各施各法、八仙过海的现实状态,严重地阻碍了汉语文字信息的交流和共享,更严重的是数码信息的“定量炸弹”正在向我们逼近(注:全社会积累的不同规范、不同编码的信息数据越多越丰富,则有朝一日整个系统由于数据之海量与规则标准之混乱而爆发崩溃瘫痪就越惨重)。十几年来(或者说近百年来,包括电报码、四角号码、部首间接查字法等)无数仁人志士创造了几千种汉字编码(输入法),已申请专利的就超过二千种。千回百转,反复折腾,九九归一,反朴归真,最后我们发现汉字最本质又最表面的东西就是它的笔画,汉字的笔画就是它的最好的编码,只要我们发现它的内在的规律,合理地分组和科学地排列优先次序,则,笔画就是汉字的最简单最高效的一组线性信息码。

我们创立的班氏汉字笔画排序法,是把汉字按书写笔顺排序,第一笔相当于英文单词的第一个字母,第二笔相当于英文单词的第二个字母,依此类推。英文字母是有序的,同样地,我们也发现了汉字笔画中的一种简单的、科学的、严谨的、本质性的序列规律。(英文字母是一种靠死记的无理码,而我们发现的笔画排序是有规律、有理据的,相对而言更优异更好记)

主族序列:横、竖、撇、点(捺)、折
说明:首先,我们定义四个简单笔画横、竖、撇、捺为“母笔”,它们按笔势的走向区分,即左右、上下、右上左下、左上右下,即米字格的基本构成元素。母笔是一切笔画的基础,其他笔画都只是母笔的派生、变形。点,捺的变形,短的,不要求长度的、其笔势走向受阻的,谓点;要有一定长度的、其笔势走向不受阻的,谓捺。短笔优先,点排序在捺前。个别难于区分的,则人为规定、习惯之(在字典和输入法的实用中,使用者生疏时可以反复试两下)。折笔包括一切非简单笔,是母笔的组合变形的派生笔画(例如,横折是横和竖的组合),弯钩、斜钩、卧钩作为折笔中的弧形弯曲特殊笔画,其优先级排在折笔的最后部分。如此这般,我们将汉语文字的构成明确而严格地析解为递进层次:母笔(四元素,简单有限集、小集)--笔画(准有限集、模糊有限集、可以有各种不同组合表述的有限集)--部件(相对于字集,是构形小集、表意小集)--字(相对于部件集,是表意大集)--词(无限集)--句。

子族序列:
-横族:横、提
-竖族:竖、竖钩(左钩,部分字的收笔已经是竖或竖钩难分,故竖钩归入竖族)
-撇族:撇
-点族:点、捺
-折族:
--横起子族:横折、横折钩、横折折、横折提、横折折折、横折折折钩、横折折撇、横折(右)弯钩、横钩、横撇、横撇折折钩、横撇(左)弯钩
--竖起子族:竖折、竖折折、竖折折钩、竖折撇、竖提、竖弯、竖弯钩
--撇起子族:撇折、撇点
--点起子族:(无)
--弯起子族:弯钩、斜钩、卧钩
说明:关于钩的特殊规定,钩看作一种特殊的“半折”,其地位是一种似有似无的“准折”,它们与在前(或后)的形似的笔画的关系,在班氏笔画排序法及其制作的各种二次应用产品中可以就近归并或分立。在折族内部,优先级还是按照横(提)、竖、撇、点(捺)、折的次序排列,即折笔类之起笔按照横(提)、竖、撇、点(捺)、折(在这里即是弯)的次序分组,同一起笔的以其第一次折笔的走势又依横(提)、竖、撇、点(捺)、弯的次序排序,第二、三次再折还是按横(提)、竖、撇、点(捺)、弯的规律在其下一个层次再排序。横钩与横撇的关系,钩比撇短,故横勾优先。总而言之,按横、竖、撇、点、折(弯)为主序,折笔中有相同起笔者,其余下部分再按横、竖、撇、点、折(弯)的规律逐层再排序,这就巧妙地、简单地、严格地实现了全部汉字的线性排序。

全排列(主要用于字典排序、文献资料管理):1横、2提、3竖、4竖钩、5撇、6点、7捺、8横折、9横折钩、10横折折(包括横折提)、11横折折折(包括横折折折钩)、12横折折撇、13横折(右)弯钩(包括“风九飞乙”之折笔)、14横钩、15横撇、16横撇折折钩、17横撇(左)弯钩(包括走之折)、18竖折、19竖折折(包括竖折折钩)、20竖折撇、21竖提、22竖弯(包括竖弯钩)、23撇折、24撇点、25弯钩、26斜钩、27卧钩(用拉丁字母作代码和在标准键盘上排列时,斜钩、卧钩可以合并)。

十码式排列(主要用于手机、遥控器等数字小键盘):1横、2提、3竖(竖、竖钩)、4撇、5点、6捺、7横折类(横折、横折钩、横折折、横折折折、横折折折钩、横折折撇、横折右弯钩、横钩、横撇、横撇折折钩、横撇左弯钩)、8竖折类(竖折、竖折折、竖折折钩、竖折撇、竖提、竖弯、竖弯钩)、9撇折类(撇折、撇点)、10弯类(弯钩、斜钩、卧钩)。

根据不同的使用要求,还可以有五码、八码、十二码等排列方式。一个独特的优点是:各种不同码元数的方案中,每一个汉字在字集中的先后次序,还是和在笔画全排列方案中的次序大体一致。即是只改变字的分组归属,基本上没有改变字与字之间的前后位置(少量变动,变动距离也不大),比较容易实现汉字资料在不同信息处理系统中的一致或兼容。特别值得一提的是,在班氏排序的资料库中,所有先写部首的字都还是严格按部首分组排布的。

笔画序号、代码、代字、呼读表:

序号_代码_代字_呼读_笔画名称
01__A__横__横__横
02__B__提__提__提
03__C__竖__竖__竖
04__D__丁__竖钩_竖钩(丁钩)
05__E__撇__撇__撇
06--F--点--点--点
07--G--捺--捺--捺
08--H--口--横折-横折
09--I--同--同钩-横折钩(包括力钩)
10--J--凹--凹折-横折折(包括横折提,言提)
11--K--凸--凸折-横折折折(包括横折折折钩,乃钩)
12--L--建--建折-横折折撇
13--M--九--九钩-横折(右)弯钩(包括风飞乙钩)
14--N--买--横钩-横钩
15--O--又--横撇-横撇
16--P--扬--扬钩-横撇折折钩
17--Q--陈--耳钩-横撇(左)弯钩(包括走之折)
18--R--区--竖折-竖折
19--S--鼎--鼎折-竖折折(包括竖折折钩,马钩)
20--T--专--专折-竖折撇
21--U--以--竖提-竖提
22--V--四--竖弯-竖弯(包括竖弯钩,儿钩)
23--W--丝--撇折-撇折
24--X--女--撇点-撇点
25--Y--狗--弯钩-弯钩
26--Z--代--斜钩-斜钩
27--Z--心--卧钩-卧钩
说明:1、班氏排序把一些形似的“复杂折笔”如横折折与横折提、风九飞乙钩等归纳合并,是基于这样一个原理,即这些笔画一般不会在同一个字中同时出现,在两个笔画编码相似的字的同一个序号上出现的几率也近于零,所以能够把它们一组组合并,既减少码元总数,又尽量吻合拉丁字母数量,还可以迎合个体人脑对部分字笔画的模糊处理。没有明显的副作用。至于在各个具体的应用中,如电脑笔画组字或更精细的资料处理中,不否认风九飞乙钩是不同的笔画(只是它们使用同一个代码M而已)。
2、从表的最后一列“笔画名称”可以看到,班氏排序的先后次序是完全规律化、理据化的,是一种内在的客观规律的归纳总结。

班氏全息码:班氏笔画排序代码串+汉语拼音字母串=班氏全息码。班氏全息码是一种两段式代码串。
以“八、人、入”字为例,它们的班氏笔画排序代码都是撇捺(EG),汉语拼音字母分别是BA、REN、RU,故它们的班氏全息码分别是EG-BA,EG- REN、EG-RU。对于人们需要的任何一种特定应用,可以选取“班氏笔画排序代码串+第一声母”、“班氏笔画排序代码第一字母+汉语拼音串”、“班氏笔画排序代码首尾字母+汉语拼音第一二字母”等等组合。这些应用组合(包括汉语拼音本身)都是班氏全息码的一些特定子集,对它们的灵活运用在机器处理中是一件非常容易的事情。

附注:
V1.5(2004年8月21日),增加一个前言,交代一下背景和过程,让那些对汉字的编码排序没有直接体会的一般人士多一点了解。
V1.4(2004年8月14日),重排《笔画序号、代码、代字、呼读表》,突显并说明笔画排序的显性规律。推出班氏全息码。
V1.2(2004年7月25日),调整合并一些笔画,增加简体字“扬、专”的折笔横撇折折钩、竖折撇。增加“笔画序号、代码、代字、呼读表”。
V1.0(2004年7月9日),明确“短优先”作为一个原则,确定点与捺、横钩与横撇的优先次序。
V0.9(2004年5月8日),作出笔画的“全排列”和“十码式排列”,基本完成从理论到实用方案的过渡。
--------------------------------------
2006-5-18 04:10        #2
 楼主| 发表于 2006-5-19 04:17:47 | 显示全部楼层

在北大中文论坛的相关跟贴

谢振斌
注册 2005-8-20
       
笔画是汉字一个自然属性,其排序是可行的。不过前提是汉字的字形必须确立标准,否则就会出现问题。

事实上国家对笔画已经有明确规范,一直是横竖撇点折5种笔画,而且很多字典在局部排序是也是使用笔画,或者笔画数+笔画排序。

不过这里提出几个问题:
1)汉字的笔顺存在一定的二义性,普通人容易搞错,略有不足。不过针对一般的日常用字还是可操作的,毕竟国家规定了笔顺标准,多少有了一个依据。
2)如果字集扩大到更大的字符集,会出现许多字形是采用旧字形的,或者目前字形没有统一,各家都不一致的,就难以排序了。
3)简繁汉字即便部首一样也无法排在一起。
4)大陆的简化字和台湾的繁体字排序无法保持一致。

此外提一个建议:
1)根据统计,横竖撇点折的分布,基本均匀,其中横稍多,约为其他的2倍,其余差不多。所以没有必要对折笔再细分,那样的话无法充分利用编码空间,使得分布更加不均匀。

我认为部件编码才是最理想的汉字字形排序依据,我目前尚在整理中。
部件排序的好处是:
1)不受局部笔顺的二义性的影响。比如“忄”,国家标准是“点点竖”,但很多人实际写法都不一致。
2)部首简繁汉字的影响。比如钅和金都可以聚集在一起(可以规定钅在前)。。
3)不受新旧字形的影响。无论是康熙字体还是新的字形规范,都可以保持排序一致性。

不过无论如何。您的想法我是支持的,因为至少针对大陆实用的通用字是可行的,其他汉字属于罕用字范畴影响较小。

自在山人
2006-5-18 06:21               

张时钊
       
班门斧在这里公布的仍是笔画表内的排序,对此,我的看法是:
“班门斧则提出不先按折数的统一排序,但0折的主笔形还是排在前面,即其原则没有贯彻到底,如果贯彻到底,大概会不习惯。”
按此进行汉字排序,就是序列太长,使用不便。我是倾向于用字根排序,它具有谢振斌所说的优点。我的“汉字字典序(下)”关于汉字字根序部分还没有完成,现把已写出的先录于下:

汉字字典序(下)
汉字笔画序

探求纯形的汉字自然字典序,当然应该从汉字笔画入手。汉字笔画数大致与英文字母数相当,不同作者列出的笔画表都相近,容易统一。作为排序的依据,必须解决笔画表本身的前后次序和汉字笔顺。对笔画表排序,我曾在网上发起“关于笔画排序的投票”,请参见《汉字笔画表征求意见稿》中的详细论述。这里重述3点:
一、        笔画表:语委《GB13000.1字符集汉字折笔规范》(2001-12-19)的25种析笔(注意,有一些笔画包含几种变体),再加上平笔画:横、竖、撇、点、捺、挑、竖(左)钩,应该差不多了。
二、        前后次序:语委的折笔是先按折数排序,0折数的平笔画应在最前面,折数相同时,依次按笔形的走向(按主笔形次序:横、竖、撇、点)分前后。这种按两种以上标准的排序,可称为分级排序,在中文字典中常用,如部首字典都是先按部首次序排,同部首的字再按笔画数排。班门斧则提出不先按折数的统一排序,但0折的主笔形还是排在前面,即其原则没有贯彻到底,如果贯彻到底,大概会不习惯。
三、        笔画名称:《折笔规范》中的名称太长,也不直观,我曾都应用例字,改为两个字。如最长的是4折笔画,达8个字“横折竖折横折竖钩”,简称也有5个字“横折折折钩”,我则改称为“乃钩”和“杨钩”(因为《折笔规范》中此笔实际包含这两个笔画)。现在觉得,作为主笔的名称,最好只用一个字。
这样,我提出如下的笔画表,主笔名都只用一个字,折笔名的括弧内是原来用的双字名。每个主笔都配有副笔,他们与主笔相似或性质相近,有些甚至可以代替主笔。笔形栏有数码字者,是因为字库里找不出,用例字中的第几笔来示。

次序       主笔名        笔形            副笔名        笔形
A         横            一              短横          于1
B         竖            丨              短竖          刂1
C         撇            丿              竖撇          川1
D         捺            人2             平捺          辶3
E         点            亠1             竖点          忄1
F         挑            地3             点挑          氵3
G         己(横折)    已1             短折          书1
H         买(横钩)    买1             短钩          子1
I         又(又折)    又1             癸折          癸1
J         亡(竖折)    亡3             竖弯          疑1
K         刈(竖钩)    刈4             了钩          了2
L         以(竖提)    以1             横弯          殳2
M         私(私折)    厶1             东折          东2
N         女(女折)    女1             撇钩          乄1
O         弯(弯钩)    犭2            
P         戈(斜钩)    戈2             心钩          心2
Q         言(言提)    讠2             凹折          凹1
R         司(同钩)    司1             力钩          力1
S         飞(风钩)    飞1             九钩          九2
T         专(专折)    专3             折撇          奊7
U         儿(儿钩)    乚               乙钩          乙
V         走(走之折)  辶2             建折          廴
W         耳(耳钩)    阝1             杨钩          杨5
X         马(马钩)    马2             鼎折          鼎6
Y         乃(乃钩)    乃1             凸折          凸3

以上是完整的笔画表,主笔名可不可以用作序数:横竖撇捺点、挑己买又亡、刈以私女弯、戈言司飞专、儿走耳马乃。
笔画还常常被归并为更少的类,如台湾戚桐钦按“永字八法”归纳为8种。字典中常用的是归并为5种:横、竖、撇、捺(点)、折。我不知道它的出处,也不知道为什么不把竖钩当作折笔,而横钩却属于折笔,且作为折笔的代表。把“点”归并于“捺”有好处,因为捺笔频率小,且永不作首笔,但“横”的频数最大,把 “挑”归并进来是不妥当的,虽然它的折数是0,可能还是算到折笔里有利。相对于完整笔画表,我称其为简笔,因为是所有折笔归并简化而来的。
无论是笔画序还是简笔序,每个汉字的序列都太长,动态平均(按使用频率加权)是7笔,比英文字平均5个字母长。静态平均是10笔,多的还超过30,英文字如果长达30个字母,恐怕难以认读,大概不会有吧。现在设想,如果把简笔序列每两笔合为一个,长度可缩短一半,序列元素也只有5*5=25个,加上最末不能成对的5种单笔,甚至把最末成对的25对也赋予特殊意义,即加上这30个可同时表示序列结束的元素,也只有55个,与英文大小写字母总数相当。这样的安排看起来很好,但使用起来恐怕仍不方便。
汉字笔顺基本一致,部分不一致的地方可规定严格的规则来解决。但现有的7条规则是:先横后竖;先撇后捺;从上到下;从左到右;先外后里;先外后里再封口;先中间后两边;这7条规则还有更长的“补充规则”。可从网上搜索到完全相同的这种表述,我不知道它的出处,是谁总结的,但不缜密,有歧义,例如“先横后竖”就不适用于“上”字。所以我把它改为下面的3条:
1、        不相交的诸字根或诸笔画,先上后下,先左后右;
2、        相交的诸笔画,先横后竖,然后再撇后捺;
3、        先外后里再封口,但左下连笔或左下偏旁则要居后。
中间是竖或竖钩,因它必处于最高位置,当然是先中间后两边,已包含在第一条中,可省。
2006-5-18 07:27       

班门斧
注册 2002-12-5
       
十分感谢谢振斌先生的关注及其提出的宝贵意见.
汉字的字形没有彻底的、最终的确定,是一个存在问题。但这个问题的副作用小到可以忽略。天不变道亦不变,山转则水转,那个字的字形变了,其笔画排序自动跟着走。
笔顺有理论二义性的只有寥寥三五个字,硬性规定一下就可以了。至于具体个人使用者,可以两种都分别试查一下。
对于个人有些倒笔习惯的,本法还会明显促进大众掌握正确的写字笔顺。
仅仅采用横竖撇点折的分布,是基本均匀,但无论是标准键盘,还是数字键盘,还是人脑对数码的习惯,其码位都觉得浪费了。将折笔展开,有利于提高分辨率,减少重码,
按部件排序编码,优点是分布均匀,取码快捷,但缺点是不确定性太高,例外太多,经比较分析后,我还是选取了简单明确的笔画排序。
2006-5-18 08:17         

班门斧
注册 2002-12-5
       
回张时钊先生:
“主笔形还是排在前面,即其原则没有贯彻到底“”,其实我是从另一个角度来规划,可以认为原则是贯穿一致的,即横、竖、撇、捺(点)、折五种笔画依次平等排列,只是在折笔之中,其自己内部再按横、竖、撇、捺(点)、折二次展开。
横的频率太高,提还是分立为好。
某些字的收笔的竖或竖勾(左)已经没有公认标准,所以还是合二为一好。
我个人觉得你的表中还是那些双字的主笔名好些。
2006-5-18 08:46
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|湘里妹子学术网 ( 粤ICP备2022147245号 )

GMT++8, 2024-5-7 03:44 , Processed in 0.070225 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表