英文拼字检查为一般电脑内处理英文文字资料的应用软件中不可缺点少的一项重要功能,可将输入至电脑中的英文单字经检查而判定其英文单字的拼法是否有误,这些处理英文文字资料的应用软件除字处理软件(Word Processor)外,还包括数据库及试算表等,藉以使撰写的英文文稿或数据库中的英文文字资料中的单字拼法不致有误。
一般的拼写检查软件是将每个可能的单词收录在单词数据库内。例如对于单词book来说,其相关的单词至少就有下列衍生词:
books;
booked;
booking;
bookings;
booker;
bookers。
传统拼写检查软件在判断输入单词的拼写是否正确时,仅能就收录在数据库内的单词及其衍生词作查对。如果将所有衍生词均收录,将会影响查询辨识的速度。再者,由于大部分的查询装置(例如一般的电子辞典)受到存储空间的限制,无法将每一单词的所有衍生词均收录在数据库中,因此常常导致拼写检查不能正确辨识。例如,当输入下列单词时,传统拼写检查软件一般均无法识别,交以“查无资料”作为查询辨识的结果。
tomatoes,longer,fastest,airmen,potatoes,taller,shortest,airwomen,chiefs,fatter,biggest,barmen,thinner,wettest,barwomen。
因此,亟需提出一种新的查询辨识方法,以达到查询速度快,占有存储器小,且能够辨识大量英文单词的目的。
图1显示一拼字检测系统10的方块图,其至少包含通配符查询(Wildcard search)部分102、单词辨识部分(verification)104及更正部分(crrection)106。通配符查询部分102可以让只记得部分拼法的使用者以*或?符号代替不确定的部分,以查询所有与输入部分匹配的单词;单词识别部分104用以确定输入单词是否正确,且如果输入者为衍生单词,还要输出其根词;更正程序部分106则用于在识别失败时,将可能的拼法找出并显示出来,供使用者参考。图1的拼字检查系统10的流程图显示于图2。
本发明主要是提出一种新的单词辨识部分104,因此,对于上述拼字检测系统10的通配符查询部分102和单词校正部分106两部分将不再作进一步的描述。至于单词辨识部分104则详细描述如下。
首先,必须处理字典中的单词,以建立拼写检查所需的单词数据库。找出字典中每一单词的衍生词,并根据这些衍生词设计出一套英文单词的衍生规则。在本实施例中,我们总结出26个基本缀词,列示如下:
-s,-ed,-ing,-ings,-er,-ers,-est,-less,-ly,-ment,-ments,-or,-ors,-ist,-ists,-able,-al,-ally,-ic,-ity,-ities,-ism,-isms,-ness,-ation,-men。
在本实施例中,总共有30个衍生规则,下面举其中几个衍生规则:
衍生规则01
规则内容 |
加S |
(A)规则变化直接加S(B)以S、X、CH、SH结尾,加ES(C)以O结尾,加S(D)以Y结尾,Y前是辅音字母,去Y,加IES,或Y前为元音字母,直接加S(E)以F或FE结尾,去F或FE,加VES |
衍生规则04
规则内容 |
加ED(特殊) |
(A)以重读闭音节结尾,双写最后字母,加ED |
衍生规则06
规则内容 |
加ING(特殊) |
(A)以重读闭音节结尾,双写最后字母,加ING |
值得注意的是,本发明并不限定于英文的拼写检查,其它文字的拼写检查也可以根据本发明的方法,同样可以达到减小存储空间,对大量的单词进行正确迅速查询的目的。再者,根据不同的使用情形及产品成本,衍生规则及缀词的数目及内容并不限定于本发明的实施例。
下面,根据所订出的衍生规则,对每一根词进行编码。下面举一例子说明编码的方法。对单词refer,其处理过程如下:
衍生词 |
衍生规则 |
衍生编码 |
Refers |
衍生规则1之A:规则变化直接加S |
01 |
Referred |
衍生规则4:双写最后字母,加ED |
04 |
Referring |
衍生规则6,双写最后字母,加ING |
06 |
衍生编码组 |
(01,04,06) |
经由上表所示的方法,可得到单词refer的编码组为(01,04,06)。其它字典中的字词也是以上述的方法一一得到其编码组,因而可以完成整个字典的编码。
接着,给第一种编码组分配一衍生序号,并将编码组按照衍生序号(或称为编码序号)记录在电脑的存储器中。其存储方式如下:
0 |
无 |
无操作 |
1 |
(01,03,05) |
加s,加ed,加ing |
2 |
(01,03) |
加s,加ed |
3 |
(01,04,06) |
加s,加ed(特殊),加ing(特殊) |
4 |
(01,03,05,08) |
加s,加ed,加ing,加er |
5 |
(02) |
加s(特殊) |
… |
… |
… |
根据上述的编码组及序号,形成一个根词和序号对应的数据结构。下面的数据结构显示产生数据库的一部分:
单词 |
衍生序号 |
A |
0 |
A-bomb |
74 |
a.d. |
105 |
Ab |
107 |
Aba |
0 |
Aback |
105 |
… |
… |
当此字典数据库形成之后,则开始对输入电脑的单词进行识别。图3示出了本实施例的流程图。首先,输入一单词(步骤30),再对此输入单词加以处理以得到可能的根词(步骤31)。对于每一个缀词,均有相对应的缀词处理规则;此缀词处理规则主要是由前述的衍生规则所得到。如同衍生规则的情形,此缀词处理规则的数目及内容并不限定于本发明的实施例。下面将以缀词ed为例,举例说明缀词的处理方法。
以此缀词ed的处理规则对单词looded、faced、bugged及verified进行处理,得到下表所示的结果(其详细步骤请参照图4的流程):
处理步骤 |
Looked |
Faced |
Bugged |
Verified |
输入词去d |
Looked |
Face |
Bugge |
Verifie |
(2)生成词去e |
Look |
Fac |
Bugg |
Verifi |
(3)生成词去以双写 | | |
Bug | |
(4)生成词去i加y | | | |
Verify |
上表中的生成词代表其前一步骤所形成的单词,如果前一步骤没有执行,则表示再前一步骤执行后所形成的单词。再者,上表中的粗体字表示所得到的根词。
接着,由所得到的根词,依据其衍生编码序号(步骤32)及编码组织对应表,得到其编码组(步骤33)。以输入单词operation为例,可以得到如下表所示的编码组:
可能根词 |
衍生编码组 |
Oper |
无 |
Opere |
无 |
Operate |
(01,03,05,18,28) |
最后,根据衍生编码以产生衍生词表(步骤34),其详细流程则显示于图5中。接续上述的例子(单词opeate),可得到下表所示的各个步骤及产生结果。
衍生编码 |
编码对应衍生规则(步骤340) |
产生的衍生词(步骤342) |
01 |
据规则01(A):规则变化直接加S |
Operates |
03 |
据规则03(B):最后字母是E则直接加D |
Operated |
05 |
据规则05(B):最后字母是E,E前是辅音字母,去E加ING |
Operating |
18 |
据规则18(B):最后字母是E,去E,加OR和ORS |
Operator,Operators |
28 |
据规则28(A):最后字母是ATE, |
Operation |
最后,根据上表可以得到衍生词表的内容为:
OperateOperatedOperatingOperatorOperatorsOperation |
根据所产生的衍生词表以判断所输入的单词是否为正确单词(步骤35,16,37)。至少,输入单词operation在根词operate的衍生词表中;亦即,单词operation的辨识成功。经由本发明的方法,可以查询识别远远超出原数据库的单词数目,使字典所含的单词数得到扩充,提高单词的拼写检查功能。例如,一个字典数据库的词汇数目原本为76024条,经使用本发明方法后,可以识别的词汇可达到155194条。亦即,可识别的单词数目是原字典单词数的二倍以上。再者,通过衍生规则对字典中所含的单词进行处理,能够对字典所含单词的各种复杂衍生变化迅速识别,大大提高识别速度,且节省存储空间。
以上所述仅为本发明的较佳实施例而已,并非用以限定本发明的保护范围;凡其它未脱离本发明所揭示的精神下所完成的等效改变或修饰,均应包含在下述的权利要求范围内。