CN101271466B - 一种基于自适应字典树的电子词典单词检索方法 - Google Patents
一种基于自适应字典树的电子词典单词检索方法 Download PDFInfo
- Publication number
- CN101271466B CN101271466B CN200810027795XA CN200810027795A CN101271466B CN 101271466 B CN101271466 B CN 101271466B CN 200810027795X A CN200810027795X A CN 200810027795XA CN 200810027795 A CN200810027795 A CN 200810027795A CN 101271466 B CN101271466 B CN 101271466B
- Authority
- CN
- China
- Prior art keywords
- word
- self
- tree
- dictionary
- prefix
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 230000015654 memory Effects 0.000 claims description 21
- 230000011218 segmentation Effects 0.000 claims description 21
- 230000008878 coupling Effects 0.000 claims description 6
- 238000010168 coupling process Methods 0.000 claims description 6
- 238000005859 coupling reaction Methods 0.000 claims description 6
- 230000003044 adaptive effect Effects 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 abstract description 2
- 239000002699 waste material Substances 0.000 description 6
- 238000010276 construction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于自适应字典树的电子词典单词检索方法,它涉及到一种电子词典中单词检索的技术。它定义了一种两层的检索结构,包括自适应字典树前缀匹配层和分段二分搜索的完整单词匹配层。检索方法为:首先在自适应字典树进行单词前缀的匹配,如果能够命中则返回单词信息,否则进入分段二分搜索层进行检索,找到要检索的单词或与它最接近的单词的信息并返回。利用本发明可以有效的提高单词检索的效率,保证时间效率与空间占用的平衡。
Description
技术领域
本发明属于电子学习产品的技术领域,特别是涉及一种在电子词典中进行单词检索的方法。
背景技术
目前在电子词典中进行单词检索的方法有多种,可以分为无索引结构的检索和索引结构的检索。由于无索引结构的检索效率差,占用空间大,一般都会使用索引结构的检索。
在索引结构中,比较常用的有两种方法:字典树检索方法和基于单词词头的二分搜索方法。这两种方法都存在着明显的优缺点。
在字典树检索方法中,运用了空间换效率的概念,由于使用了完整的满n叉树结构,因此单词可以直接定位命中,但是为了构造完整的字典树,使用了大量无用的结点,造成极大的空间浪费。
在基于单词词头的二分搜索中,由于一般的电子词典里面,单词词头的长度差异比较大,为了满足二分搜索中每个元素的大小一致的特点,必须将每个单词的词头扩展到最长的单词词头的长度,造成空间的浪费,使得在内存有限的环境中不能将数据载入内存来搜索,降低了二分搜索的效率,而且有些硬件条件不支持二分搜索的来回指针移动。
因此在索引结构的单词检索中,在考虑单词检索时间效率的同时,要尽量控制索引结构层的大小,目的是减少空间的浪费,同时能够将索引结构层载入内存进行检索,这样才能更好的提高检索的效率。
发明内容
本发明的目的在于克服现有技术的不足,提出一种基于自适应字典树的电子词典单词检索方法,来提高电子词典中单词检索的效率,它可以在保持二分搜索的效率的基础上,减少空间的浪费,达到时间与空间的平衡。
为了实现发明目的,采用的技术方案如下:
一种基于自适应字典树的电子词典单词检索方法,包括了以下的步骤:
1)在自适应字典树中进行单词前缀的匹配,若在字典树中能命中要查找的单词则返回相关单词信息,否则进入2);
2)在分段的二分搜索层进行单词检索,找到要检索的单词或最接近的单词的信息并返回。
所述的基于自适应字典树的电子词典单词检索方法,将单词的检索分成了前缀匹配和完整单词匹配两个步骤。其中,前缀匹配是使用自适应字典树来实现的,而完整单词匹配是使用了分段的二分搜索。如果在前缀匹配中找到要检索的单词,则返回,否则就再进行分段的二分搜索。比如单词“about”,若自适应字典树里面包含了前缀“about”,则可以在树中找到该单词,否则就要在所有以“about”为前缀的单词里面进行二分搜索。
所述的基于自适应字典树的电子词典单词检索方法,使用了字典树跟二分搜索结合,那么在进行前缀检索的时候只需要对字典树进行操作,由于空间不大,可以直接载入内存;而进行二分搜索的时候,由于属于同个前缀的单词的数量也在一定范围之内,也可以载入内存进行操作,这样就可以利用内存访问速度远快于外存的特点来获得更高的效率。
所述的自适应字典树的层数和结点个数是可以调整的,这个主要是为了适合不同的资源的要求,若内存空间较大,那么字典树的层数和结点个数可以增多,因此自适应字典树并不是一棵满n叉树(n是指所有要检索的单词中所包含的不重复的字符个数,比如英文单词里面只有26个字母,则n为26)。
所述的自适应字典树的大小是通过一个参数来控制的,这里定义为distance,是指某个前缀所包含的单词的数量。所有所含单词数量少于distance的前缀都需要在字典树进行构造,假设现设distance为6,而以“zo”为前缀的单词数量少于6,那么在字典树里面就要构造代表“zo”的结点,即可以在字典树里面检索到“zo”这个前缀。
所述的分段二分搜索,这里的分段的概念是指进行二分搜索不是针对所有的单词来进行,而是针对某个特定前缀所包含的所有单词来进行的。通过在字典树里面确定前缀后,在分段二分搜索中的单词数量可以控制在一定范围,因此这部分操作可以载入到内存中进行。
本发明的技术特点主要体现如下:
1、将电子词典中的单词检索分为了前缀匹配和完整匹配两个部分,使得每个步骤所占用的空间减少,从而可以载入内存进行操作,利用内存访问速度快的特点来提高检索的效率。
2、对字典树进行了改进,通过使用了参数控制来实现自适应的特点,可以根据不同的资源条件的限制(如内存等)来调整字典树的层数和结点个数,消除了字典树中大量的无用结点,减少了空间的浪费。
3、对二分搜索方法进行了改进,在保证它的时间效率的同时减少了空间的占用,而且将二分搜索的搜索范围进行了分段,使得每次的单词检索的空间缩小,可以载入内存进行操作,提高效率。
附图说明
图1为自适应字典树的结构图。
图2为分段二分搜索的说明图。
图3为基于自适应字典树的单词检索流程。
具体实施方式
下面结合附图对本发明进行进一步阐述:
本发明中的自适应字典树的结构如图所示(这里以英文单词为例,因为只包含a~z的26个字母),它不是一棵满n叉树,它根据单词的前缀来进行构造的。其中根结点是一个虚拟的结点,由于存在着以“a”,“b”等开头的单词,因此第一层的结点里面包括了“a”,“b”等。而在第二层的结点当中,由于不存在以“aa“为前缀的单词,因此第一层的”a“的子结点里面不包含“a”,以此类推。
所述的自适应字典树的层数和结点数是可以控制的,假设现在将distance的值设置为25,如果以“ba”为前缀的单词的数量有200个,即大于distance,则在字典树里面“ba”可以继续生成其它的子结点,如“bag”,但是当以“bag“为前缀的单词数量为20个,那么”bag“下面就不继续生成子结点,这样就可以控制字典树的层数,从而满足具体的资源的条件。
所述的自适应字典树为了能够在载入内存后方便的进行操作,这里对树结点的结构采取了等大小的设计,即每个结点所占空间的大小一样,这样将字典树从外存读到内存的时候就不需要解析成物理上的树的结构,方便操作。具体的结点结构的设计如表1所示:
表1自适应字典树结点的结构
字段定义 | 存储类型 | 存储长度 |
结点标识字符 | char型 | 1字节 |
子结点在树中偏移 | unsigned long型 | 4个字节 |
子结点个数 | char型 | 1个字节 |
指向分段二分搜索位置的指针 | unsigned long型 | 4个字节 |
所述的自适应字典树可以进行单词前缀的匹配,假设在自适应字典树中构造了前缀“bagg“,那么当查询单词”bag“的时候就可以直接在字典树中命中,返回单词的信息,若要查询单词”baggage“,那么在字典树里面只完成了前缀匹配,即匹配了”bag“这个前缀,然后根据结点中指向分段二分搜索位置的指针,可以找到以“bag”为前缀的所有单词的开始位置,从而使用二分搜索的方法来进行完整的单词匹配,从而找到要检索的单词或最接近的单词的信息并返回。
所述的分段二分搜索如图2所示,仅仅针对属于同个前缀的所有单词进行二分搜索,每个单词所占空间还是最长的单词词头的长度,尽管在词典中单词词头的长度差异较大,但是属于同个前缀的单词词头长度差异相对较小,所以这里使用二分搜索所浪费的空间不大。而且参数distance的设置实际上也控制了分段二分搜索要搜索的单词数量是小于distance的,因此可以控制所使用的空间。
所述的基于自适应字典树的电子词典单词检索方法,其流程主要如图3所示,包括了以下的一些步骤:
1)输入要检索的单词;
2)将自适应字典树载入内存,在自适应字典树中进行单词的前缀匹配,若在树中能查找到该单词,则返回该单词的信息;否则进入3)
3)根据在字典树结点中获得的指向分段二分搜索的指针定位到该前缀所包含所有单词的开始位置;
4)将该分段所包含的所有单词信息载入内存,进行二分搜索,若找到要检索的单词,则返回相关信息,否则返回最接近的单词信息。
测试实例
根据上面设计的基于自适应字典树的电子词典单词检索方法,这里结合附图,以单词“baggage”为例子说明该检索方法的具体操作:
1)由于该单词的第一个字母是“b”,则首先在第一层树结点中顺序找到标识符为“b”的树结点②,由于还没读到该单词的最后一个字母,并且结点②还有子结点,因此跳到结点②的第一个子结点⑥。(参照附图1中的说明)
2)由于第二个字母是“a”,则从树结点⑥开始,顺序找到标识符为“a”的树结点,即是树结点⑥。由于还没读到单词最后一个字母并且树结点⑥还有子结点,所以还要继续在索引树中进行匹配。于是,从树结点⑥跳转到树结点⑧。
3)由于“baggage”的第三个字母是“g”,所以从树结点⑧开始,找到标示符为“g”的树结点⑨。由于树结点⑨没有子结点,所以结束字典树前缀查找,从树结点⑨跳到该树结点对应的分段二分搜索的位置。
4)使用二分搜索的方法在前缀为“bag”的所有单词中进行搜索,直到查找到单词“baggage”或最接近的单词并返回相关信息。
Claims (7)
1.一种基于自适应字典树的电子词典单词检索方法,其特征在于其主要步骤包括:
1)获取要检索的单词后,在载入内存的自适应字典树中进行单词前缀的检索,若在字典树中找到所述要检索的单词则返回所述单词信息,否则进入2);
2)根据在所述字典树中获得的指向分段二分搜索的指针定位到所述前缀所包含的所有单词的开始位置,将分段所包含的所有单词信息载入内存,在分段的二分搜索层进行完整单词的检索,找到要检索的单词或最接近的单词的信息并返回。
2.根据权利要求1所述的一种基于自适应字典树的电子词典单词检索方法,其特征在于将单词检索分成单词前缀的检索和完整单词匹配结合的两层检索方法。
3.根据权利要求1或2所述的一种基于自适应字典树的电子词典单词检索方法,其特征在于使用了自适应的字典树进行单词前缀的检索,使用分段二分搜索进行完整单词的匹配。
4.根据权利要求1所述的一种基于自适应字典树的电子词典单词检索方法,其特征在于动态字典树通过一个参数distance来控制树的层数和树结点的个数,以适应不同的内存的限制。
5.根据权利要求1或4所述的一种基于自适应字典树的电子词典单词检索方法,其特征在于distance是指属于相同前缀的单词个数,根据资源的要求进行动态配置。
6.根据权利要求1所述的一种基于自适应字典树的电子词典单词检索方法,其特征在于分段的二分搜索利用了属于相同前缀的单词的词头长度差异相对较小的特点来减少空间的占用。
7.根据权利要求6所述的一种基于自适应字典树的电子词典单词检索方法,其特征在于分段二分搜索的方法,将二分搜索的范围缩小,在搜索的时候载入内存加快检索速度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810027795XA CN101271466B (zh) | 2008-04-30 | 2008-04-30 | 一种基于自适应字典树的电子词典单词检索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810027795XA CN101271466B (zh) | 2008-04-30 | 2008-04-30 | 一种基于自适应字典树的电子词典单词检索方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101271466A CN101271466A (zh) | 2008-09-24 |
CN101271466B true CN101271466B (zh) | 2011-09-28 |
Family
ID=40005440
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810027795XA Expired - Fee Related CN101271466B (zh) | 2008-04-30 | 2008-04-30 | 一种基于自适应字典树的电子词典单词检索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101271466B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108804542B (zh) * | 2018-05-16 | 2021-12-07 | 河北天翼科贸发展有限公司 | 一种基于内存运算的快速获取文件增量方法 |
CN109684438B (zh) * | 2018-12-26 | 2020-11-13 | 成都科来软件有限公司 | 一种具有父子层级结构检索数据的方法 |
CN112527957A (zh) * | 2020-12-08 | 2021-03-19 | 上海大智慧财汇数据科技有限公司 | 一种应用于新闻领域的短文本匹配方法及系统 |
-
2008
- 2008-04-30 CN CN200810027795XA patent/CN101271466B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101271466A (zh) | 2008-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10860561B2 (en) | Method and apparatus for providing efficient indexing and computer program included in computer readable medium therefor | |
CN100444167C (zh) | 完美双数组trie树词典管理与检索方法 | |
CN104021161A (zh) | 一种聚簇存储方法及装置 | |
US9292554B2 (en) | Thin database indexing | |
CN102651026B (zh) | 通过预计算优化搜索引擎分词的方法及搜索引擎分词装置 | |
CN103345496B (zh) | 多媒体信息检索方法和系统 | |
KR100284778B1 (ko) | 내용기반 이미지 검색을 위한 고차원 색인구조의 삽입 방법 | |
CN102147795A (zh) | 兴趣点检索方法、兴趣点检索装置和导航系统 | |
CN105975587A (zh) | 一种高性能的内存数据库索引组织与访问方法 | |
CN110222238B (zh) | 字符串与识别符双向映射的查询方法和系统 | |
CN102629269A (zh) | 一种嵌入式数据库的检索及存储方法 | |
CN106991102A (zh) | 倒排索引中键值对的处理方法及处理系统 | |
CN104221015A (zh) | 图像检索装置、图像检索方法、程序以及计算机可读取的存储介质 | |
CN106528647A (zh) | 一种基于cedar双数组字典树算法进行术语匹配的方法 | |
CN100511229C (zh) | 一种域名类信息的存储及查询方法以及系统 | |
CN101271466B (zh) | 一种基于自适应字典树的电子词典单词检索方法 | |
JP2009512950A (ja) | パトリシア・トライを効率的にバルク・ロードするアーキテクチャ及び方法 | |
CN109284340B (zh) | 资源受限智能对象中关系型数据的存储及检索方法 | |
CN116701440B (zh) | 一种布谷鸟过滤器及数据插入、查询、删除方法 | |
US20150058351A1 (en) | Queries for thin database indexing | |
CN103902693A (zh) | 一种读优化的内存数据库t树索引结构的方法 | |
KR20200119164A (ko) | 정보 처리 장치 및 그것에 포함된 신경망 연산 장치의 동작 방법 | |
CN112463837B (zh) | 一种关系型数据库数据存储查询方法 | |
Park et al. | A fast and compact indexing technique for moving objects | |
CN101299212B (zh) | 一种基于比特映射的压缩键树的单词检索方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110928 Termination date: 20140430 |