论坛首页 入门技术论坛

我的汉字输入法编码方案

浏览 2638 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-05-28  
很早就有了这个东西,因为一直没学会编写输入法程序,所以就没有拿出来现眼。
方案尽量简化,主要从汉字本身就具备的偏旁部首出发,用偏旁部首的读音的声母字符,按笔画顺序编码即是。

从前不知道,几乎每一个偏旁部首其实都是有读音有含义的。因为怕学五笔,拼音重码又多——那时紫光还没出来,所以想借用Windows中的输入法生成器做一个简单好用的输入法,查阅了康熙字典和汉语大字典,慢慢就研究了起来——呵呵,谈不上“研究”。

既然花了不少心思做出来,现在还是把它放到这里,虽然现在输入法大战基本上都结束了,我的这个方案也没啥特出的,但可能还是有那么一点点的价值吧。——何 况是自己的博客,放啥自己说了算,呵呵 :)  ——如果你真的想要看看这个方案,建议先看下面3张图片,是偏旁部首的部件集,看图片容易一目了然。

就目前我的观点,各方面表现都十分优秀的输入法好像还没有?从汉字人文的角度上看,台湾的仓颉输入法应该是最有意义的——可惜它在内地没有市场。个人认为输入法的使用其实是有潜移默化的作用的,对汉字的拆字编码应该做到合乎文字本身内在的规律才好!

废话少说,拖出小媳妇来......见公婆咯。。。。

字根部件集:(见下面3张图)

====方案重点节录=========================================================================

拆字规律:
  1. 部件规范原则。字中的构字部件不应只取其形似,部件应是按正确的顺序和规范的笔划书写而成的。如“里”字,不应拆为‘田’+ ‘土’,也不应为‘日’+‘土’,而应是‘日’+ ‘丨’+‘二’(当然,前两者可作为容错码);“求”字,应拆为‘一(横)’+‘氺(水)’ +‘丶(点)’,而非‘十’+‘冫’+‘丶’。
  2. 部件取大原则。如部首‘音’,可视为部首‘立’+‘日’,当前者作为构字部件出现时,不可将之拆成后两者。例如“韶”字,应拆为‘音’+‘刀’+‘口’(ydk),而非‘立’+ ‘日’+‘口’(lrk)。
  3. 必拆原则。除单笔划字无法拆分外(如‘乙’),所有字皆必须拆分(例如输入部件字本身时)。如“音”,是一个独自成立的单字,此时应拆为‘立’+‘日’(lr)。
  4. 先成原则。当笔划所归属部件有歧义时,该笔划划归先形成的部件(按字的书写顺序)。如“元”字,既可看为‘二’+‘儿’,亦可看作‘一(横)’+‘兀’,此时按先成原则确定为前者。
取码规则:
  1. 按汉字的正常书写顺序,考虑规范编码和功能划分:
  2. 对单字:取第一、第二和最后一个部件的码元(即部件声母首字符)。若单字取不足三码,可重复取最后一码,也即所有单字都有三码,如“码”字,只有两个码元(sm),但编写码表时取为smm;如“乙”字,可取为ooo。
  3. 对双字词组:取首字首码、首字末码+末字首码、末字末码(即:11+13+21+23)。
  4. 对三字词组:取首字首码+中字首码+末字首码+末字末码(即:11+21+31+33)。
  5. 对四字以上词语:取首字首码+次字首码+第三字首码+第四字首码(即:11+21+31+41)。
  6. 对高频字:取单字首码。
  7. 对快捷双字词:取首字首码+末字首码(11+21)。
容错考虑:
  1. 部件本身可能会出现一字多音,这样,组码时一个字就可能会有多个编码。我们可以以标准读音为主(标准读音是指能代表部件本身 含义的那个字的读音),兼顾其它常用读音作容错考虑。此类部件可属于多个码元。如‘厂’,标准读音为“hǎn”(音罕。《说文》山石之崖巖,人可居。象 形。高鸿缙《中国字例》“厂字本象石岸之形。……”),正常应属于码元‘h’,但简体字中大多将其作为“廠”字的简化字(似忘其本)。作为容错,它也归属 于码元‘c’。
  2. 字的书写顺序不是很明确时(可能源于书法的原因),可适当考虑多种书写方式时的拆字规则。这也会产生字词的 多个编码。如“曹”字,标准书写顺序为12512212511(引自 “金山词霸”中汉语词典资料。1~5分别代表基本笔划“横、竖、撇、点+捺、折+勾”),拆字为‘一’+‘丨’+‘日’(hor),但也可能拆为‘艹’+ ‘曰’+‘日’(cyr或crr。部件‘曰’正属码元‘y’,容错划归于码元‘r’)。
  3. 因单字容错码的存在,故由单字组成的词组和短语也将存在容错的情形(其数量可能不小)。
========================================================================================

【部件集】详细说明图示

字根部件B-M:
字根部件B-M

字根部件N-Z:
字根部件N-Z

字根部件 aeiouv:
字根部件aeiouv
  • 描述: 部件码 b~m 区段
  • 大小: 46.5 KB
  • 描述: 部件码 n~z 区段
  • 大小: 49.3 KB
  • 描述: 部件码 aeiouv 区段
  • 大小: 17.9 KB
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics