电子词典中多个专业词典的数据结构的合并方法及装置的制作方法

文档序号:6379540阅读:166来源:国知局
专利名称:电子词典中多个专业词典的数据结构的合并方法及装置的制作方法
技术领域
本发明涉及电子词典中多个专业词典的数据结构的合并方法及其装置。
背景技术
近年来电子词典得到了广泛应用和普及。电子词典是配置有存储器的设备,能够存储大量的词组信息和用于查找词组信息的索引值。但是,由于容量好重量的原因,电子词典的存储空间受到了限制。因此,以更加高效的方式利用存储器变得非常重要。尤其是,在电子词典安装在存储器容量有限的设备例如PDA的情况下,节约用于电子词典的存储器将极具价值。
为了解决上述问题,中国专利申请第02160023.6号提出了一种用于电子词典的数据结构形成方法、具有存储了由该方法形成的数据结构的存储器的电子词典,能够改善存储空间效率和查找的时间效率。
图1示出在上述中国专利申请中公开的用于中文电子词典的数据结构形成方法的流程图。
如图1所示,首先建立一个包括原始中文词典中所有中文词组和相关词条信息的文本文件(步骤S101)。
该词条信息包括几个词条段,比如词性、韵母、声母和声调等部分。词性是根据词在上下文中的功能所作的一组传统分类中的一种,包括名词、代词、动词、形容词、副词、介词、连词和感叹词。韵母、声母和声调分别是汉语拼音字母表的一部分,其中声母是音节的起始部分,韵母是音节的末尾部分(即,音节去掉起始部分),声调表示中文字符的声调,包括现代标准中文发音的四个音调和轻声。
在步骤S102,对该文本文件进行扫描,计算出现在文本文件中每个词条段的各元素的总数。
然后,根据所得到的出现在文本文件中各词条段的每个元素的总数,形成多个词条段表(步骤S103)。
在步骤S104,在中文电子词典的存储器中构成一个多数组结构。该多数组结构包括n+1个数组(n表示中文词典最长词中包括的中文字符数),其中第一到第n数组分别用于存放中文词典中所有中文词的第一到第n中文字符及其索引信息,第n+1数组用于存放所有中文词的词条信息。
将第二至第n数组分别划分成多个区,每个区包括一个或多个由字符部分和索引部分组成的结构。字符部分用于存放相关中文字符,索引部分用来存放用于查找对应中文字符或对应词条信息的相关索引值。
所有索引部分的初始索引值可设定为“0”值,其位数可为16或32等。首位是标志位。优选地,标志位为0表示索引值对应于下一数组中的一个区,而标志位为1表示索引值对应于第n+1数组或临时数组中的词条信息。
随着中文词的中文字符插入到多数组结构,对应于中文字符的索引值按预定的方式变化,在将中文词典中所有中文词的中文字符存放于多数数组结构之后,每个中文字符有一个唯一的索引值。
在步骤S105,进行读操作以依次读文本文件中中文词的每个中文字符和每个词条段,比如词性、韵母、以及声母和声调组合。
在步骤S106,基于词条段表,比如在步骤S103形成的韵母表、声母和声调组合表、以及词性表,对词条段编码。
然后,编码后的词条段保存在一个临时数组中(步骤S107)。
在步骤S108,将中文词的每个中文字符存放于多数组结构中合适的位置,并确定其索引值。
在步骤S109,判断文本文件中所有的中文词是否已读。如果答案是否,处理流程返回到步骤S105以读其他中文词,否则继续下面的步骤S110。
在步骤S110,对临时数组中依次存放的编码后的词条段进行霍夫曼压缩从而获得霍夫曼代码表和霍夫曼树。
随后,压缩后的词条信息保存在多数组结构的第n+1数组,同时第n+1数组中每个压缩后的词条信息的起始位置和长度信息作为中文词的最后一个中文字符的索引值保存(S111)。
根据上述用于中文电子词典的数据结构形成方法,所有中文词的第一中文字符的索引值与第二层数组中的区中的第一结构在该第二层数组中的位置相对应,并根据该第一中文字符的内码保存在第一层数组中的相应位置。
如果由一个中文词的前m(1mn-1)个中文字符组成的字符串构成另一中文词,则所述中文词的第m中文字符的索引值在第m+1数组中所确定的一个区的第一结构的字符部分设置一个标识符,其索引部分用来存放该中文词的词条信息在第n+1数组中的起始位置和长度信息,由所述字符串作为其前半部分的中文词的第m+1中文字符依次存放在包括所述标识符的第一结构之后的结构的字符部分中,其索引值分别放置在与其中文字符相对应的结构的索引部分中。
如果由该中文词的前m个中文字符组成的字符串不构成另一中文词,则由所述字符串作为其前半部分的中文词的第m+1中文字符依次存放在由第m中文字符的索引值所确定的位于第m+1数组中的一个区的各个结构的字符部分中,其索引值分别放置在与其中文字符相对应的结构的索引部分中。
如果一个中文词不构成其他中文词的一部分,则用于存放该中文词的最后一个中文字符的一个结构的索引部分用来存放该中文词的词条信息在第n+1数组中的起始位置和长度信息。
或者,在通过该数据结构形成方法构建的中文电子词典中,在第一到第n-1数组中未存放相关词条信息在第n+1数组中的起始位置和长度信息的结构的索引部分还包括由存放于该索引部分中的索引值确定的下一数组中的区的长度信息。
图2示出如上构建的中文电子词典的数据结构的示意图,其中以第一中文字符分别是“家”和“鼾”的中文词作为实例描述中文电子词典的存储器中形成的数据结构。图2中的箭头表示的是索引值与相应的结构或第n+1数组中的词条信息之间的关系。
上述专利申请公开了用于单个电子词典的数据结构形成方法、以及具有存储了由该方法形成的数据结构的存储器的电子词典,能够改善存储空间效率和查找的时间效率。
但是,在大多数电子词典系统中,备选多个专业词典是必不可少的。通常,电子词典的用户可以选择其所要使用的专业词典。因此,在电子词典中仅使用一个数据结构来保存所有的专业词典是不合适的。但是,在另一方面,为每一个专业词典创建一个数据结构将导致速度和存储器的低效。

发明内容
因此,本发明的一个目的是解决上述问题,提供一种电子词典中多个专业词典的数据结构的合并方法及装置,当在多个词典中查找词时其能够改善电子词典的工作效率。
为了实现上述目的,根据本发明的一个方面,提供一种电子词典中多个专业词典的数据结构的合并方法,其中在所述电子词典的存储器中每一个所述数据结构包括一个由n+1个数组组成的多数组结构,第一至第n数组用于分别存放专业词典中所有词的第一至第n字符及其索引消息,第n+1数组用来存放专业词典中所有词的词条信息,第二至第n数组分别划分成多个区,每个区包括一个或多个结构,所述结构由字符部分和带有对应于下一数组中的位置的起始索引值的索引部分组成,所述合并方法包括步骤加载与第一词典的文件相对应的第一数据结构和与第二词典的文件相对应的第二数据结构;将第二数据结构中除第一层数组外的所有数组与第一数据结构中相同层的数组连接;以及将第二数据结构中第一层数组的元素所引导的树与第一数据结构中相应的树合并,从而形成第一词典的文件和第二词典的文件的合并数据结构。
在上述根据本发明的电子词典中多个专业词典的数据结构的合并方法中,n表示专业词典中最长的词所包括的字符个数。
为了实现上述目的,根据本发明的另一个方面,提供一种电子词典中多个专业词典的数据结构的合并装置,其中在所述电子词典的存储器中每一个所述数据结构包括一个由n+1个数组组成的多数组结构,第一至第n数组用于分别存放专业词典中所有词的第一至第n字符及其索引消息,第n+1数组用来存放专业词典中所有词的词条信息,第二至第n数组分别划分成多个区,每个区包括一个或多个结构,所述结构由字符部分和带有对应于下一数组中的位置的起始索引值的索引部分组成,所述合并装置包括加载部件,用于加载与第一词典的文件相对应的第一数据结构和与第二词典的文件相对应的第二数据结构;连接部件,用于将第二数据结构中除第一层数组外的所有数组与第一数据结构中相同层的数组连接;以及树合并部件,用于将第二数据结构中第一层数组的元素所引导的树与第一数据结构中相应的树合并,从而形成第一词典的文件和第二词典的文件的合并数据结构。
在上述根据本发明的电子词典中多个专业词典的数据结构的合并装置中,n表示专业词典中最长的词所包括的字符个数。
本发明还提供一种在至少计算机可读介质中的计算机程序产品,包括用于实施上述电子词典中多个专业词典的数据结构的合并方法的程序代码。


在了解了下面优选实施例的详细描述之后,本发明的其他目的、特征和优点将更加清楚。包括在本说明书中并作为本说明书的一部分的附图示出本发明的实施例,并与下面的描述一起用来解释本发明的原理。其中图1是现有技术中用于中文电子词典的数据结构形成方法的流程图;图2示意性地示出基于图1所示的方法构建的中文电子词典的数据结构;
图3作为示例示出根据本发明用于两个专业词典的数据结构的合并方法的流程图;图4是将第二数据结构中第一层数组的元素所引导的树与第一数据结构中相应的树合并的详细流程图;图5示出在步骤S201中加载的两个电子词典的数据结构的例子;图6示出通过将图5所示的词典2的数据结构中除第一层之外的所有层的数组与词典1的数据结构中相应层的数组连接所获得的结果示意图;图7作为示例示出合并第一层数组的元素的第一种类型;图8作为示例示出合并第一层数组的元素的第二种类型;图9作为示例示出合并第一层数组的元素的第二种类型;图10作为示例示出对合并的块中的元素进行排序的步骤;图11作为示例示出处理合并块中的元素的冲突的步骤;以及图12是根据本发明的电子词典中多个专业词典的数据结构的合并装置的方框图。
具体实施例方式
下面将以具有多个专业词典的中文电子词典为例,结合附图详细描述本发明的优选实施例。
作为示例,这里假定每一个专业词典具有根据在上述中国专利申请第02160023.6号中公开的方法形成的各自数据结构,并且所形成的数据结构的示例示于图2。但是,专业词典的数据结构也可以通过其他方法来形成,同样也可以具有其他格式。
此外,在该示例性实例中,还假定将被合并的每一个专业词典的数据结构在格式上类似,并且在本说明书中以合并两个专业词典的数据结构为例进行说明。
图3根据本发明用于两个专业词典的数据结构的合并方法的流程图。
如图3所示,首先加载两个词典的文件并分别构建它们的数据结构(步骤S201)。所构建的数据结构作为示例示于图5。
在图5中,例如,左边的是词典1的数据结构,而右边的是词典2的数据结构。
每一个构建的数据结构包括一个由n+1个数组组成的多数组结构(n表示专业词典中最长的词所包括的字符个数),其中第一至第n数组分别存放专业词典中所有词的第一至第n字符及其索引消息,并且第n+1数组存放专业词典中所有词的词条信息。第二至第n数组分别划分成多个区,每个区包括一个或多个结构,所述结构由字符部分和索引部分组成。专业词典中所有词的第一字符的索引值与第二层数组的区中的第一结构在该第二层数组中的位置相对应,并根据该第一字符的内码保存在第一层数组中的相应位置。
但是,根据本发明,为了合并两个专业词典的数据结构,表明在下一层数组中查找词的下一字符的区的范围的长度信息也添加到第二至第n-1数组中多个结构的每一个的索引部分中。长度信息还添加到存储在每一个数据结构的第一层数组中的第一个字符的索引部分。
然后,在步骤S202,将第二数据结构中除第一层数组外的所有数组与第一数据结构中相同层的数组连接。图6示出通过将图5所示的词典2的数据结构中除第一层之外的所有层的数组与词典1的数据结构中相应层的数组连接所获得的结果示意图。
在连接相应的数组之后,应该对第二数据结构中元素的索引进行相应的修改,但是在第一数据结构中元素的索引保持不变。对于第二数据结构,将第一数据结构中每一层数组的长度加到第二数据结构相应层的数组中指向下一层数组的索引。例如,第一数据结构中第二层数组的长度应该加到第二数据结构中第一层数组的指向下一层数组的索引。第一数据结构中第m+1层数组的长度应该加到第二数据结构中第m层数组的指向下一层数组的索引。如果第m+1层是词条信息数组,加到第m层数组中指向下一层数组的索引的长度应该为0。此外,在第二数据结构中指向第二至第n层数组的词条信息数组的索引应该加上第一数据结构的词条信息数组的长度。
在连接完第一层数组之外的所有数组之后,在步骤S203,将第二数据结构中由第一层数组的元素引导的树合并到第一数据结构中。有关合并树的详细处理过程将在下文中结合图4的流程图详细描述。
然后,在步骤S204,判断第二数据结构中由第一层数组的元素引导的树是否全部合并到第一数据结构中。如果确定第二数据结构中的树没有全部合并到第一数据结构中,则处理流程返回到步骤S203,处理由第一层数组的元素引导的随后的树。否则,处理流程前进到步骤S205,结束合并过程。
下面将参照图4的流程图详细描述将第二数据结构中由第一层数组的元素引导的树合并到第一数据结构中的处理步骤。
如图4所示,首先在步骤S401,比较树中将要被合并的第二数据结构中第一层数组的元素与第一数据结构中相同位置的元素。
如果在步骤S401确定将要被合并的两个元素的长度信息中至少一个等于零,则处理流程前进到步骤S404,将具有非零长度信息的元素作为合并后第一层数组的元素。如果第二数据结构中将要被合并的元素的长度信息不等于零,则将该第二数据结构中具有非零长度信息的元素作为合并后第一层数组的元素,并将该第二数据结构中具有非零长度信息的元素的内码存储在一临时数组中。否则,如果在第二数据结构中将要被合并的当前元素的长度信息等于零,则将第一数据结构中将要被合并的当前元素作为合并后第一层数组的元素。
图7作为示例示出合并第一层数组的元素的第一种类型,其中将要被合并的两个元素的长度信息至少有一个等于零。如图7所示,第一数据结构的元素A的长度信息为3,与元素A处于相同位置的第二数据结构的元素B的长度信息为0,则将元素A作为合并后的第一层数组的元素C。
然后,处理流程前进到步骤S405,其相应处理将在下文中描述。
否则,如果在步骤S401中确定将要被合并的两个元素的长度信息均不为0,则处理流程前进到步骤S402。
在步骤S402中,将第二数据结构中第一层数组的将要被合并的元素所指向的块插入到第一数据结构中相应的块之后。
然后,在步骤S403,校正将要被合并的元素及相关元素的索引。合并后的元素的长度信息为前述两个长度信息之和。索引等于第一数据结构中第一层数组的元素的索引。第一数据结构中将要被合并的当前元素之后的元素的索引应加上第二数据结构中将要被合并的当前元素的索引中的长度信息。存储在临时数组中由其内码识别的第一数据结构的元素的索引也应加上第二数据结构中将要被合并的当前元素的索引中的长度信息。
图8和图9作为示例示出合并第一层数组的元素的第二种类型,其中将要被合并的两个元素的长度信息均不等于零。如图8和9所示,第一数据结构的元素A的长度信息为3,与元素A处于相同位置的第二数据结构的元素B的长度信息为2,则在合并后的第一层数组中将作为元素A和B的替代元素的元素C的长度信息应修正为5。也就是说,C的长度=A的长度+B的长度。
在这种情况下,第二数据结构中元素B所指向的块移动并插入到第一数据结构中元素A所指向的块之后。然后,对所插入的块的相应索引、所插入的块之后的元素的索引、以及第二数据结构中元素B之后的元素的索引进行校正,以便使它们的索引关系保持正确。第一数据结构中元素A之后的元素的索引应加上第二数据结构的元素B的索引中的长度信息,即B的长度。存储在临时数组中由其内码识别的第一数据结构的元素的索引也应加上第二数据结构的元素B的索引中的长度信息,即B的长度。
在校正相应索引之后,处理流程前进到步骤S405。
在步骤S405中,对第二层数组的合并块中的元素进行排序。图10作为示例示出对合并的块中的元素进行排序的步骤。将第一数据结构的第一层数组中的元素A所指向的块与第二数据结构的第一层数组中的元素B所指向的块作为一个块,并对合并后的块中的元素进行排序。
在步骤S406,判断在合并的块中是否存在重复元素。如果确定在合并的块中不存在任何重复的元素,则处理流程前进到图3的流程图所示的步骤S204。
如果在步骤S406中确定块中存在重复的元素,则提取并合并下一层中由重复元素指向的两个块,也称作冲突(conflict)处理。新合并的块附加到第三层的尾端,并将重复元素的索引修正为指向该附加块。原来的两个块变为垃圾块处理。
如图10的例子所示,元素D与元素E相同。因此,提取并合并第三层中由重复元素D和E分别指向的两个块。另外,如图11所示,将新合并的块附加到第三层的尾端,而重复元素D和E分别指向的原来的两个块则变为垃圾块。
在步骤S407的处理之后,处理流程前进到图3的流程图所示的步骤S204,以将第二数据结构中第一层数组的元素所引导的其它树合并到第一数据结构中。
优选地,上述多个专业词典的数据结构具有相同的层数。
优选地,在多个专业词典的每一个数据结构中,第一层数组是二维短整型(short)数组,第二层数组到第n数组是一维结构型数组,第n+1数组是一维字符型数组。另外,第一到第n+1数组可以是任何其它类型和维数的数组,只要它们足够长以能够用于存放相关的字符数据和索引数据即可。
优选地,对于中文电子词典,第一层数组的大小固定并由中文词典中的中文词的数量来确定。它被用于保存文本文件中所有中文词的第一中文字符的索引值。如果中文词只包括一个中文字符,该中文字符也保存于第一层数组中。
由于大多数中文词所包含的字符不多于4个,在数据结构的第四层数组及其后的数组中包含极少的元素。因此,同时考虑到速度和存储器的效率,前面结合图4所描述的处理过程仅对第二层和第三层数组执行。然而,也可以对数据结构中第四层数组及以后的各层数组进行相同的上述处理,其处理过程类似,这里略去其详细描述。
下面将参照图12描述根据本发明的用于实现上述电子词典中多个专业词典的数据结构的合并方法的合并装置。
图12是根据本发明的电子词典中多个专业词典的数据结构的合并装置的方框图。
如上所述,每一个将要被合并的专业词典的数据结构包括一个由n+1(n表示专业词典中最长的词所包括的字符个数)层数组组成的多数组结构,其中,第一至第n层数组用于分别存放专业词典中所有词的第一至第n字符及其索引消息,第n+1层数组用来存放专业词典中所有词的词条信息,第二至第n层数组分别划分成多个区,每个区包括一个或多个结构,所述结构由字符部分和带有对应于下一数组中的位置的起始索引值的索引部分组成。
对于上述专业词典的数据结构,根据本发明的用于电子词典中多个专业词典的数据结构的合并装置包括,如图12所示,加载单元1201,用于加载与第一词典的文件相对应的第一数据结构和与第二词典的文件相对应的第二数据结构;连接单元1202,用于将第二数据结构中除第一层数组外的所有数组与第一数据结构中相同层的数组连接;以及树合并单元1203,用于将第二数据结构中第一层数组的元素所引导的树与第一数据结构中相应的树合并,从而形成第一词典的文件和第二词典的文件的合并数据结构。
在根据本发明的合并装置的一个实施例中,专业词典中所有词的第一字符的索引值与第二层数组中的区中的第一结构在该第二层数组中的位置相对应,并根据该第一字符的内码保存在第一层数组中的相应位置。
优选地,在第二至第n-1层数组的多个结构中每一个结构的索引部分还包括表明在下一层数组中查找词的下一字符的区的范围的长度信息,该长度信息也添加到存储在每一个数据结构的第一层数组中的第一个字符的索引部分。
另外,第一数据结构中第m+1层数组的长度信息加到第二数据结构中第m层数组的索引中。如果第m+1层数组为词条信息数组,则加到第m层数组的索引中的长度信息为0。
此外,第二数据结构中第二至第n层数组的指向词条信息数组的索引加上第一数据结构的词条信息数组的长度。
另外,树合并单元1203还比较第二数据结构中第一层数组的元素与第一数据结构中相同位置的元素。如果确定所比较的两个元素的长度信息中至少一个等于零,将具有非零长度信息的元素作为合并后第一层数组的元素。否则,如果确定所比较的两个元素的长度信息均不为0,将第二数据结构中第一层数组的元素所指向的块插入到第一数据结构中相应的块之后。
如果确定所比较的两个元素的长度信息中至少一个等于零,并且第二数据结构中所比较的元素的长度信息不等于零,则将该第二数据结构中具有非零长度信息的元素作为合并后第一层数组的元素,并将该第二数据结构中具有非零长度信息的元素的内码存储在一临时数组中。
如果确定所比较的两个元素的长度信息均不为0,在将第二数据结构中第一层数组的元素所指向的块插入到第一数据结构中相应的块之后,第一数据结构中将要被合并的当前元素之后的元素的索引应加上第二数据结构中将要被合并的当前元素的索引中的长度信息,存储在临时数组中由其内码识别的第一数据结构的元素的索引也应该加上第二数据结构中将要被合并的当前元素的索引中的长度信息。
另外,树合并单元1203还对第二层数组的合并块中的元素进行排序。如果在合并的块中存在重复的元素,则提取由重复元素指向的两个块,合并并将合并后的新块附加到第三层数组的尾端,以及将重复元素的索引修正为指向该新块。
此外,树合并单元1203还比较第二数据结构中第m(1<m<(n-2))层数组的元素与第一数据结构中相同位置的元素。如果确定所比较的两个元素的长度信息中至少一个等于零,将具有非零长度信息的元素作为合并后第m层数组的元素。否则,如果确定所比较的两个元素的长度信息均不为0,将第二数据结构中第m层数组的元素所指向的块插入到第一数据结构中相应的块之后。
在这种情况下,树合并单元1203对第(m+1)层数组的合并块中的元素进行排序。如果在合并的块中存在重复的元素,则提取由重复元素指向的两个块,合并并将合并后的新块附加到第(m+2)层数组的尾端,以及将重复元素的索引修正为指向该新块。
在根据本发明的上述合并装置的一个实施例中,所述词典是中文词典,所述词是中文词组。在这种情况下,n最好等于4。
优选地,第一层数组是二维短整型数组,第二层数组到第n数组是一维结构型数组,第(n+1)层数组是一维字符型数组。
毫无疑问,根据本发明的上述用于电子词典中多个专业词典的数据结构的合并装置也能够应用于合并电子词典中专业词典的数据结构多于两个的情形。
应该指出的是,上面以具有多个专业词典的中文电子词典为例详细描述了本发明。但是,毫无疑问本发明的原理能够应用于任何类型的包括具有树型格式数据结构的多个专业词典的词典中。
本发明的主要优点在于改进了在多个词典中查找词组的效率。例如,假定一共有n个专业词典并且想要查找的词组在上述任一专业词典中均不存在,则依次在上述词典中查找该词组,必须进行n次查找。通过应用本发明,则只需查找1次。最佳地,本发明在查找速度上可以提高30%。
而且,在某些情况下,本发明的方法也可以带来节约电子词典的存储空间的好处。
同样应当指出的是,本发明包括通过将实现前述实施例功能的软件程序(与各实施例中的所示流程图相对应的程序)直接或远端提供给一个系统或装置并且由该系统或装置的计算机读出并执行所提供的程序码来实现本发明的情况。在该情况下,形式并不限于程序,只要可以提供程序功能即可。
因此,安装在计算机中以使用计算机实现本发明的功能处理的程序码本身实现本发明。也就是,本发明包括用于实现本发明的功能处理的计算机程序本身。
在这种情况下,程序的形式不受到特定的限制,并且可以使用目标码、由解释器执行的程序、提供给OS的脚本数据等,只要它们具有程序功能即可。
可以使用例如软盘、硬盘、光盘、磁光盘、MO、CD-ROM、CD-R、CD-RW、磁带、非易失性存储卡、ROM、DVD(DVD-ROM、DVD-R)等作为用于提供程序的记录介质。
作为另一种程序提供方法,可以在客户计算机上使用浏览器建立与因特网上的给定主页的连接,并且可以将经过压缩且包括自动安装功能的本发明计算机程序本身或文件从该主页下载到记录介质如硬盘等,从而提供程序。另外,形成本发明程序的程序码可以分成多个文件,并且可以从不同主页下载这些文件。也就是,本发明还包括使多个用户下载用于使用计算机实现本发明的功能处理的程序文件的WWW服务器。
另外,存储本发明加密程序的存储介质如CD-ROM等可以交付给用户,已清除预定条件的用户可以允许通过因特网从网页下载对程序解密的密钥信息,并且可以使用该密钥信息执行加密程序以安装在计算机上,从而实现本发明。
前述实施例的功能可以不仅通过由计算机执行读出程序码而且通过根据该程序指令由运行在计算机上的OS等执行的一些或所有实际处理操作来实现。
而且,在从记录介质读出的程序写入在功能扩展板或单元的存储器中之后,前述实施例的功能可以通过安置在功能扩展板或功能扩展单元中的CPU等所执行的一些或所有实际处理来实现,其中,功能扩展板或功能扩展单元插入在计算机中或者连接到计算机。
本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
权利要求
1.一种用于电子词典中多个专业词典的数据结构的合并方法,其中在所述电子词典的存储器中每一个所述数据结构包括一个由n+1层数组组成的多数组结构,第一至第n层数组用于分别存放专业词典中所有词的第一至第n字符及其索引消息,第n+1层数组用来存放专业词典中所有词的词条信息,第二至第n层数组分别划分成多个区,每个区包括一个或多个结构,所述结构由字符部分和带有对应于下一数组中的位置的起始索引值的索引部分组成,其特征在于所述合并方法包括步骤加载与第一词典的文件相对应的第一数据结构和与第二词典的文件相对应的第二数据结构;将第二数据结构中除第一层数组外的所有数组与第一数据结构中相同层的数组连接;以及将第二数据结构中第一层数组的元素所引导的树与第一数据结构中相应的树合并,从而形成第一词典的文件和第二词典的文件的合并数据结构。
2.如权利要求1所述的合并方法,其特征在于n表示专业词典中最长的词所包括的字符个数。
3.如权利要求1或2所述的合并方法,其特征在于专业词典中所有词的第一字符的索引值与第二层数组中的区中的第一结构在该第二层数组中的位置相对应,并根据该第一字符的内码保存在第一层数组中的相应位置。
4.如权利要求3所述的合并方法,其特征在于在第二至第n-1层数组的多个结构中每一个结构的索引部分还包括表明在下一层数组中查找词的下一字符的区的范围的长度信息,该长度信息也添加到存储在每一个数据结构的第一层数组中的第一个字符的索引部分。
5.如权利要求4所述的合并方法,其特征在于第一数据结构中第m+1层数组的长度信息加到第二数据结构中第m层数组的索引中。
6.如权利要求5所述的合并方法,其特征在于如果第m+1层数组为词条信息数组,则加到第m层数组的索引中的长度信息为0。
7.如权利要求6所述的合并方法,其特征在于第二数据结构中第二至第n层数组的指向词条信息数组的索引加上第一数据结构的词条信息数组的长度。
8.如权利要求7所述的合并方法,其特征在于所述合并步骤还包括步骤比较第二数据结构中第一层数组的元素与第一数据结构中相同位置的元素;如果确定所比较的两个元素的长度信息中至少一个等于零,将具有非零长度信息的元素作为合并后第一层数组的元素;以及如果确定所比较的两个元素的长度信息均不为0,将第二数据结构中第一层数组的元素所指向的块插入到第一数据结构中相应的块之后。
9.如权利要求8所述的合并方法,其特征在于如果确定所比较的两个元素的长度信息中至少一个等于零,并且第二数据结构中所比较的元素的长度信息不等于零,则将该第二数据结构中具有非零长度信息的元素作为合并后第一层数组的元素,并将该第二数据结构中具有非零长度信息的元素的内码存储在一临时数组中。
10.如权利要求9所述的合并方法,其特征在于,如果确定所比较的两个元素的长度信息均不为0,在将第二数据结构中第一层数组的元素所指向的块插入到第一数据结构中相应的块之后,所述方法还包括步骤第一数据结构中将要被合并的当前元素之后的元素的索引加上第二数据结构中将要被合并的当前元素的索引中的长度信息,存储在临时数组中由其内码识别的第一数据结构的元素的索引也加上第二数据结构中将要被合并的当前元素的索引中的长度信息。
11.如权利要求10所述的合并方法,其特征在于所述合并步骤还包括步骤对第二层数组的合并块中的元素进行排序;如果在合并的块中存在重复的元素,则提取由重复元素指向的两个块,合并并将合并后的新块附加到第三层数组的尾端;以及将重复元素的索引修正为指向该新块。
12.如权利要求1至11任一所述的合并方法,其特征在于所述合并步骤还包括步骤比较第二数据结构中第m(1<m<(n-2))层数组的元素与第一数据结构中相同位置的元素;如果确定所比较的两个元素的长度信息中至少一个等于零,将具有非零长度信息的元素作为合并后第m层数组的元素;以及如果确定所比较的两个元素的长度信息均不为0,将第二数据结构中第m层数组的元素所指向的块插入到第一数据结构中相应的块之后。
13.如权利要求12所述的合并方法,其特征在于所述合并步骤还包括步骤对第(m+1)层数组的合并块中的元素进行排序;如果在合并的块中存在重复的元素,则提取由重复元素指向的两个块,合并并将合并后的新块附加到第(m+2)层数组的尾端;以及将重复元素的索引修正为指向该新块。
14.如权利要求1至11任一所述的合并方法,其特征在于所述方法还包括步骤加载另一词典的文件;构建与所述另一词典的文件相对应的另一数据结构;将所述另一数据结构中除第一层数组外的所有数组与合并后的数据结构中相同层的数组连接;以及将所述另一数据结构中第一层数组的元素所引导的树与合并后的数据结构中相应的树合并,从而形成新的合并数据结构。
15.如权利要求14所述的合并方法,其特征在于所述词典是中文词典,所述词是中文词组。
16.如权利要求15所述的合并方法,其特征在于第一层数组是二维短整型数组,第二层数组到第n数组是一维结构型数组,第(n+1)层数组是一维字符型数组。
17.如权利要求16所述的合并方法,其特征在于n等于4。
18.一种用于电子词典中多个专业词典的数据结构的合并装置,其中在所述电子词典的存储器中每一个所述数据结构包括一个由n+1层数组组成的多数组结构,第一至第n层数组用于分别存放专业词典中所有词的第一至第n字符及其索引消息,第n+1层数组用来存放专业词典中所有词的词条信息,第二至第n层数组分别划分成多个区,每个区包括一个或多个结构,所述结构由字符部分和带有对应于下一数组中的位置的起始索引值的索引部分组成,其特征在于所述合并装置包括加载部件,用于加载与第一词典的文件相对应的第一数据结构和与第二词典的文件相对应的第二数据结构;连接部件,用于将第二数据结构中除第一层数组外的所有数组与第一数据结构中相同层的数组连接;以及树合并部件,用于将第二数据结构中第一层数组的元素所引导的树与第一数据结构中相应的树合并,从而形成第一词典的文件和第二词典的文件的合并数据结构。
19.如权利要求18所述的合并装置,其特征在于n表示专业词典中最长的词所包括的字符个数。
20.一种记录在至少一种计算机可读介质中的计算机程序产品,包括当计算机使用时,使计算机执行权利要求1-17中任何一个所述的方法步骤的功能性描述素材。
全文摘要
一种用于电子词典中多个专业词典的数据结构的合并方法及装置,每一数据结构包括一个由n+1层数组组成的多数组结构,第一至第n层数组分别存放专业词典中所有词的第一至第n字符及其索引消息,第n+1层数组存放专业词典中所有词的词条信息,第二至第n层数组分别划分成包括一个或多个结构的多个区,该结构由字符部分和带有对应于下一数组中的位置的起始索引值的索引部分组成,所述方法包括加载与第一和第二词典的文件分别相对应的第一和第二数据结构;将第二数据结构中第一层数组外的所有数组与第一数据结构中相同层的数组连接;将第二数据结构中第一层数组的元素所引导的树与第一数据结构中相应的树合并,从而形成第一和第二词典的文件的合并数据结构。
文档编号G06F17/30GK1641640SQ20041000191
公开日2005年7月20日 申请日期2004年1月15日 优先权日2004年1月15日
发明者杨大为 申请人:佳能株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1