检索规则简介

一、三种检索方式

(一) 一般检索

例如:

1. ⿰日月3-4:表示该字为左右结构,包含“日”“月”两个部件,除“日”“月”外剩余3-4画,如“奛”。

2. ~丽女:表示该字包含一个相似部件“丽”,还包含一个部件“女”,如“ ”。 一般检索可依次输入结构、部件列、剩余笔画,其中部件列中还可以输入相似部件。其中,结构有上下、左右、包围、交叉四大类,细分又可分为12种,在部件面板中已列出来。部件列指的是该字包含的部件,对一般检索而言,部件列是顺序无关的,检索“日月”和检索“月日”结果一样。剩余笔画可以输入单个数字,也可以输入用短横线连接的两个数字,表示笔画范围。剩余笔画是缩小检索结果,精确查找目标的有效办法。相似部件指的是针对某些生僻而不易输入的部件,采用一些常规部件作为替代的方案。只需要在部件前加上~号,就表示这个部件是相似部件。

需要注意的是,在计算剩余笔画时,不考虑相似部件的笔画。

(二) 正则检索

例如:

1. ⿱大⿰日月1-5:其中,“⿱大⿰日月”又称为“表意文字描述序列”,它用结构和部件的组合来描述一个汉字或汉字的一部分。在这个序列中,结构和部件是与顺序相关的。“1-5”表示除了“大”“日”“月”三个部件外,剩余笔画为1到5画。如“奣”“𢡰”字。

2. ⿱一.*⿰日月:其中,“.*”是正则表达式语法,表示零到多个字符,即部件一和“⿰日月”之间相隔零个或多个字符。如“奣”“𢡰”字。

正则检索是指用结构符、部件、正则符号及笔画信息来检索汉字的一种检字方法。其中,用结构符、部件和正则符号来表达汉字的结构和部件信息,相比一般检索而言,它所表达的信息要更加充分,因此查找结果也会更加精准。

如果对正则表达式不熟悉,可以看一下这篇介绍:正则表达式30分钟入门教程

(三) 反查编码

反查编码指的是在已知文字或图片字编码的情况下,反查它所对应的拆字信息。这在几个场合下是有用的:

1.查找部件。有时候想要的部件打不出来,但是认识这个部件所在的字,则可以通过反查编码来找到这个部件。比如可以通过反查“录”的编码,获得部件“󰄬”;

2.学习拆字方法。通过反查编码了解某个汉字的拆分方法,有助于掌握拆字技巧,从而进一步能提高自己的检字能力;

3.修订错误。通过反查编码,可以发现系统在某些汉字拆分上的问题,从而帮助系统改进拆字质量。

二、四条检索要素

(一) 部件

检索式中,按照从左到右、从上到下、从外到里的顺序,用户可以输入所能见到的任何部件。比如输入“氵相”“氵木”“氵目”检索“湘”字;输入“亠口冋”“亠口口”检索“高”字等。

对于某些不易输入的生僻部件,系统自动选取一些与其结构相近的常用部件作为替代,即“兼容部件”。如下表所示:/p>

用户输入兼容部件时,系统会同时检索相应的生僻部件。如果用户输入的是生僻部件,则只会检索生僻部件,而不检索对应的兼容部件。如用户输入“口乙”时,除了可以检索“𠮙”字外,还可检索到“𡆡”字。

需要注意的是,兼容部件只是一个检索概念,与编码无关。

(二) 结构

检索式中,还可以输入部件的结构信息。如输入“⿰氵木”,表示部件“氵”“木”是左右结构 ,则可以命中“沐”“湘”字等。

如果对汉字的结构有疑惑,则可以用“|”来连接多个可能的结构。比如,检索“亽”字时,如果不确定它是⿱结构还是⿵结构,则可以输入“⿱|⿵人丶”来进行检索。

输入结构信息时,要输入能确定、有把握的结构信息,否则,可能因结构信息有误而查不到想要的字。

(三) 相似部件

检索式中,在部件之前加“~”符号,表示相似部件。针对一些生僻而不易输入的部件,可以输入相似部件进行检索。如检索“𧉄”字时,可输入“虫~丐”来检索。

系统在检索相似部件时,除了检索本部件之外,还会检索所有与本部件相似的部件。上例中,输入“虫~丐”,会命中“𧉄”“𧉝”。

(四) 剩余笔画

针对不易输入的部件,除了可以输入相似部件外,还可以输入单个剩余笔画,或者输入剩余笔画范围。

1. 单个剩余笔画

检索式中,用户可以输入剩余笔画范围“n”。比如输入“⿰氵木0”,表示除了“氵”“木”之外,剩余笔画为0,这样就可以唯一命中“沐”字。如果输入“⿰氵木5”,则可以命中“湘”“媣”“渘”“渣”等字。

2. 剩余笔画范围

检索式中,用户可以输入剩余笔画范围“n,m”。如“⿰氵木0,5”,其中,“0,5”表示除部件“氵”“木”外,剩余部件的总笔画为0到5画。

【注】在计算笔画信息时,不考虑相似部件。比如检索“𧉄”字时,应输入“虫~丐4”,而不是“虫~丐0”。

部件笔画检字法介绍

一、问题的提出

古籍电子化过程中,面临大量的生僻字,有些是Unicode已经收录但是普通人不认识的字,有些是Unicode尚未收录仅存于古籍中的图片字,这些生僻字不仅一般的输入法无法直接输入,有些甚至字体文件都不包含这个字,也就是所谓的“缺字问题”。

解决“缺字问题”的核心在于对缺字进行合适的编码以及便利的检索。

二、表意文字描述序列

针对缺字问题,Unicode自3.0起,提出一种“表意文字描述序列(Ideographic Description Sequence,IDS)”的解决方案。该解决方案包括三部分:1、结构符,描述是文字的结构特征;2、部件,是汉字拆分后得到的更小的汉子部件;3、拆分序列。

(一) 结构

部件笔画检字法对Unicode的结构符加以完善,一共有12种:⿱⿰⿵⿶⿷󰃾⿺󰃿⿹⿸⿴。

(二) 部件

所谓部件,指的是“由笔画组成的具有组配汉字功能的构字单位”。如“盟”由“明、皿”组合而成,“明”又由“日、月”组合而成,则“日、月、明、皿”都是“盟”的部件。

最小的不再拆分的部件称基础部件。由于它处于汉字结构的最底层,因此又叫末级部件。处于基础部件之上,由基础部件组合而成的部件叫复合部件。

(三) 拆分序列

一个汉字可由一颗包含结构和部件的拆分树来表达。按照拆分的程度的不同,可以有多种拆分树。以“盟”字为例,拆分树如下:

1、初步拆分

图1 初步拆分

将一个汉字拆成尽可能大的部件,使得部件数量最少,即初步拆分。如上图中,“盟”拆为“⿱明皿”,而没有将“明”字继续拆分。

注意,将拆分树记录为拆分序列时,按照从上到下、从左到右的顺序记录,先写上面一层的结构符号,再从左到右记录部件,如“盟”字记为“⿱明皿”。

2、彻底拆分

上图中,“明”还可以继续拆分为“⿰日月”,如下图

图2 彻底拆分

将一个汉字拆成尽可能小的部件,使得部件数量最多,即彻底拆分。如上图中,“盟”拆为“⿱⿰日月皿”。

一些基于部件的输入法都会定义自己的基本部件集,“尽可能小的部件”指的就是基本部件。

注意,将拆分树记录为拆分序列时,先将左边的整棵子树记录完毕,再记录右边的子树,如“盟”字记为“⿱⿰日月皿”。

3、混合拆分

图3 混合拆分

混合拆分与彻底拆分相似,只是在遇到可继续拆分的部件时,先用左右尖括号括起来,然后再写结构符号。如上图中,“盟”拆为“⿱ <明>⿰日月皿”。

“初步拆分”和“彻底拆分”是一对相互而成的概念,用来表示拆分程度的不同。“初步拆分”部件最少,主要用于人工拆分。“混合拆分”有两方面的用途:一、将所有汉字的混合拆分放在一起做一个字频统计,便可以得到各部件的使用频率,据此可以更好的选择基础部件集;二、由于混合拆分包含了该字的所有结构和部件信息,因此它最适合用于检索。无论用户输入该汉字的哪个部件,都能检索到该字。

在算法实现时,“彻底拆分”“混合拆分”可由“初步拆分”递归实现,无须人工拆分。

(三) 一字多拆

有些字可能有多种拆分方法,如“主”字,可以拆分为“⿱丶王”或“ ⿱亠土”,“羆”字可以拆分为“⿱罒熊”或“⿱罷灬”。对于这种情况,都需要予以记录,这样才能保证“无论用户如何拆分,都能检索到该字”。

三、难字问题

IDS可以解决大部分结构规范、部件常用的字,但是对于某些结构复杂、部件生僻的字来讲,一般人不太容易准确拆分并找到合适的部件。因此,可将问题分为难字、易字两个层次。难字指的是:1、初步拆分所用部件数量≥5;或2、所用的是生僻部件。易字指的是:

1、初步拆分所用部件数量≤4;且2、所用的是常规部件。(生僻部件指的是一般人不易查找、输入的部件。一般人较容易输入的部件,叫常规部件。)

针对难字,在初步拆分的基础上,增加以下几种解决方案。

(一) 调笔拆分

调笔指的是调整笔画,包括破笔、重笔、改笔等多种情况。

破笔指的是拆字时将一笔拆成多笔,以便于组成常规部件。比如“羌”字,拆为“⿱𦍌儿”,中间的“丿“被拆分成两段,这就是所谓的破笔。

重笔指的是将一笔重复利用,以便构成常规部件。

改笔指的是将笔画稍作改动(如调整个别笔画的方向、长短、位置等),以便构成常规部件。如将“ ”拆分为“⿸扌丶”,将原字形的撇变成了提,即属于改笔。

破笔、重笔,不修改原字形;改笔对原字形有微细调整,但是不能增减笔画。

(二) 相似部件

“相似部件”指的是字形相似的部件。针对某些生僻而不易输入的部件,可定义易输入的常规部件作为“相似部件”。在检索时,可用相似部件替代生僻部件,从而增加检索的便利性。如“𣌀”字,右下角的部件不易输入,可定义相似部件“我”。