CN101145155A - 一种电子词典数据存储格式及其检索方法 - Google Patents

一种电子词典数据存储格式及其检索方法 Download PDF

Info

Publication number
CN101145155A
CN101145155A CNA2007100310262A CN200710031026A CN101145155A CN 101145155 A CN101145155 A CN 101145155A CN A2007100310262 A CNA2007100310262 A CN A2007100310262A CN 200710031026 A CN200710031026 A CN 200710031026A CN 101145155 A CN101145155 A CN 101145155A
Authority
CN
China
Prior art keywords
word
elongated
prefix
length
layer
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.)
Pending
Application number
CNA2007100310262A
Other languages
English (en)
Inventor
王建民
庄敬晖
麦章灿
罗笑南
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Yat Sen University
Original Assignee
Sun Yat Sen University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sun Yat Sen University filed Critical Sun Yat Sen University
Priority to CNA2007100310262A priority Critical patent/CN101145155A/zh
Publication of CN101145155A publication Critical patent/CN101145155A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种电子词典数据存储格式及其检索方法,它涉及一种词库的设计和数据的检索技术。首先它将单词分为固定词头部分和变长词头部分,再根据词头把单词索引层分为固定索引层和变长索引层,将每个单词视为一个节点,而单词索引层里单词以Hash值的形式按大小顺序存储;检索方法为:首先求出想要查找单次的Hash值Search Value;再利用二分查找的排序方法在固定索引层进行查找,如果找到等于该Search Value的节点,则返回该节点,否则记录下固定索引节点中的变长索引层偏移位移;然后根据变长索引层偏移位移进入到对应的变长索引层进行匹配。利用本发明可以极大的减少存储空间,采用了2级检索的方式,有效的减少了查找的时间,保证了数据的准确性。

Description

一种电子词典数据存储格式及其检索方法
技术领域
本发明涉及一种词库的设计和数据的检索技术,特别是一种涉及到词典类数据的结构设计和检索方法。
背景技术
目前最常用的电子词典结构有多种。
从其存储形式来看,可以分为定长字段型、变长字段型和定长字段变长字段混合型三种。
定长字段词典结构适用于小规模词典。其优点是数据格式规整,计算机访问速度快,访问算法简单;缺点是严重浪费存储空间。此种结构仅适用于实验系统或微型系统,实用系统一般不采用此结构。
变长字段词典结构适用范围较大。其主要优点就是可最大限度的节省空间;缺点是计算机访问算法较为复杂,访问速度慢,访问得到的数据要进行整理后方可使用。
定长字段和变长字段混合型词典结构适用较少,通常是词条信息中的第一个字段是词头,其长为定长,而其它字段是变长的。词头为定长是为了方便词头查找时的匹配,其它字段为变长则是为了节省空间。
电子词典词库的组织结构对于电子词典的搜索速度是至关重要的,一定的组织形式决定了相应的搜索算法。在设计电子词典词库组织结构时,要充分权横时间与空间这两个此消彼长、相互矛盾的因素,尽量做到搜索速度快、空间占用率低。
发明内容
针对目前的电子词典的词库空间和检索时间的不平衡性,本发明的目的就是设计一种可以实现定长词头和变长词头相结合的数据存储格式和检索方法,实现了在较小数据存储的条件下更快速的查找单词的方法。
为实现上述目的,本词典结构设计采用的技术方案如下:
一种电子词典数据存储格式,它包括单词索引层和显示数据层,其特征在于,它将词库单词分为固定词头部分和变长词头部分,再根据词库单词的词头把单词索引层分为固定索引层和变长索引层。
所述词库单词的固定词头部分的定义标准为:固定词头部分为单词字符串的前10个字符,如果单词长度小于10个字符则以0进行填充固定词头的尾部。
所述词库单词的变长词头部分的定义标准为:变长词头部分为该单词名称的第10个字符开始(包括第10个字符)到单词的最后一个字符,如果该单词长度小于10个字符,则变长词头内容为空。
所述固定索引层的每个单词都是一个节点,每个节点都有各自的数据结构,当该单词的长度大于10时,其数据结构如表1.1;当单词长度小于等于10时,其数据结构如表1.2所示:
表1.1单词长度不大于10的固定索引层节点定义
字段定义 存储类型 存储长度
固定词头内容Hash值 无符号整数 6字节
变长索引层偏移位移 unsigned long型 4字节
表1.2单词长度大于10的固定索引层节点定义
字段定义 存储类型 存储长度
固定词头内容Hash值 无符号整数 6字节
显示数据层偏移位移 unsigned long型 4字节
所述固定词头内容Hash值定义如下:存在字符A-Z(或a-z)和数字1-26的映射关系(单词检索不区分字母大小写),固定词头为长度为10的字符数组szWordName[10],szWordName[10]转换成整型数组为Number[10],则固定词头内容Hash值HashValue为:
HashValue=∑Number[i]*279-i,i∈[0,10]…………………(1)
其中固定索引层里的Hash数值大小是唯一的,固定索引层即只需要保存具有相同Hash值的一组单词的单词名称的字符串数值最小的单词的信息。
所述变长索引层偏移位移是该单词的变长词头部分在变长索引层的偏移位移,由变长词头内容长度,变长词头内容,显示数据层偏移位移三部分构成。
所述变长索引层为单词的变长数据部分的存储格式,其数据结构如表2所示:
表2变长索引层节点定义
字段定义 存储类型 存储长度
变长词头内容长度n unsigned char型 1字节
变长词头内容 char* n个字节
显示数据层偏移位移 unsigned long型 4个字节
其中变长词头内容长度n为单词名称第10个字符到最后一个字符的字符个数,显示数据层为单词内容的具体显示信息,显示数据层偏移位移为该单词在显示数据层的相对偏移位移。
一种电子词典数据检索方法,其特征在于,所述步骤主要包括:
1)用户输入需要查找的单词,如果输入的单词长度小于10,则后面的字符以0填充;
2)系统根据Hash值定义公式求出Hash值SearchValue;
3)系统根据获得的Hash值SearchValue,利用二分查找的排序方法在固定索引层进行查找,如果找到等于该SearchValue的节点,则返回改节点,否则记录下固定索引节点中的变长索引层偏移位移;
4)根据变长索引层偏移位移进入到对应的变长索引层节点,并进入单词的显示数据层,将单词的具体信息显示出来。
本发明的有益效果:
本发明结合了固定字段和变长字段的特点,设计了固定词头和变长词头相结合的词库结构。并采用了2级检索的方式。第一层检索以固定字段进行2分查找的检索,有效的减少了查找的时间。并采用了基于拉格朗日公式的Hash值的映射关系。将字典单词的前10个字符转换成6个字节的数值形式,有效减少了词库的存储空间。第二级检索为第一级检索基础上的进行数据匹配,保证了数据的准确性。
附图说明
图1为电子词典的检索流程图。
具体实施方式
下面结合附图对本发明进行进一步阐述:
电子词库数据可分为单词索引层和显示数据层。索引层实现了用户输入信息到显示数据层的索引,显示数据层存储着单词的详细数据信息。用户输入查找的单词,并通过单词索引层可检索到显示数据层的详细信息,本发明的检索方法是在单词索引层进行处理的。
首先根据词典的单词字符串,把单词名称划分为2个部分:固定词头部分和变长词头部分:固定词头部分为单词的前10个字符,如果单词长度小于10个字符,则以0进行填充固定词头的尾部。变长词头部分为该单词名称的第10个字符开始(包括第10个字符)到单词的最后一个字符,如果该单词长度小于10个字符,则变长词头内容为空。
再根据固定词头和变长词头部分把单词索引层划分为固定索引层和变长索引层2个子索引层:固定索引层的每个单词都是一个节点,每个节点都有各自的数据结构,当该单词名称的长度大于10时,其数据结构如表1.1;当单词长度小于等于10时,其数据结构如表1.2所示:
表11单词长度不大于10的固定索引层节点定义
字段定义 存储类型 存储长度
固定词头内容Hash值 无符号整数 6字节
变长索引层偏移位移 unsigned long型 4字节
表1.2单词长度大于10的固定索引层节点定义
字段定义 存储类型 存储长度
固定词头内容Hash值 无符号整数 6字节
显示数据层偏移位移 unsigned long型 4字节
其中的固定词头内容Hash值定义如下:存在字符A-Z,或者a-z和数字1-26的映射关系(单词检索不区分字母大小写)。固定词头为长度为10的字符数组szWordName[10],szWordName[10]转换成整型数组为Number[10]。则固定词头内容Hash值HashValue为:
HashValue=∑Number[i]*279-i,i∈[0,10]…………………(1)
需要补充的是,固定索引层里的Hash数值大小是唯一的,固定索引层即只需要保存具有相同Hash值的一组单词的单词名称的字符串数值最小的单词的信息.
变长索引层偏移位移是该单词的变长词头部分在在变长索引层的偏移位移。由变长词头内容长度,变长词头内容,显示数据层偏移位移三部分构成。
变长索引层为单词的变长数据部分的存储格式。其定义如图表2所示。变长词头内容长度n为单词名称第10个字符到最后一个字符的字符个数。显示数据层为单词内容的具体显示信息,显示数据层偏移位移为该单词在显示数据层的相对偏移位移。
表2变长索引层节点定义
字段定义 存储类型 存储长度
变长词头内容长度n unsigned char型 1字节
变长词头内容 char* n个字节
显示数据层偏移位移 unsigned long型 4个字节
如图1所示为电子词典的检索流程图,它采用了Hash值的进行2分查找的综合了固定字段和变长字段结构的结构方式:
(1)首先用户输入所需要查询的单词。
(2)如果输入的单词长度小于10,则程度将输入单词尾部以0进行填充。然后程序根据公式1的Hash值表示,将用户输入的需要查询的单词转换成对应的Hash值SearchValue。
(3)由于固定索引层的数据已经按照按照原词库的Hash值进行了排序操作,故程序根据SearchValue进行二分查找。如果存在节点的Hash值等于SearchValue的节点,则返回该节点。否则返回Hash值小于SearchValue的最大Hash值的节点。
(4)根据节点的Hash值进行计算,如果该节点的Hash值对27取模,如果结果为0,则表示该节点表示的单词长度小于10,即该节点数据结构为表1.1所示,进入步骤(7)。否则,该节点表示的长度大于等于10,数据结构如表1.2所示。进入步骤(5)。
(5)如果用户输入的单词长度小于10,则输入的单词没有变长数据,因此无需匹配单词的变长数据,程序获得第一个变长数据层节点即为所需查找的单词的节点,进入步骤(7)。否则进入步骤(6)。
(6)根据获得的变长索引层的偏移位移,顺序把用户输入单词的第10个字符到最后一个字符的字符串和变长节点的变长词头内容进行比较,返回最匹配的变长索引层节点。
(7)根据获取到的显示数据层偏移位移,程序进入显示数据层进行显示信息提取,并显示到液晶屏上。
根据上述的词典结构,结合词典的词库数据,下面做个简单的测试说明。
当用户输入apple时。程序根据Hash值计算公式获得apple的Hash值HashApple:
HashApple=1*279+16*278+16*277+12*276+5*275=12316556510334
程序将根据HashApple的值根据二分查找的方法在已经升序排列的词库获得对应的固定索引层结点的偏移位移。因为HashApple可以被27整除,故根据HashApple可知输入的单词长度小于10。
故该固定索引层结点为表1.2所示,其数据对应的显示数据层偏移位移,根据该偏移位移可直接找到apple的详细解释资料。
同理,当用户输入abolishment时,程序根据Hash值计算公式可获得对应的Hash值HashAbolishment。并根据HashAbolishment获得对应的固定结点,因为HashAbolishment对27取模为14(即该单词第10个字符对应的数字),故该结点结构如表1.1所示。并根据词获得了对应的变长索引层偏移位移。
程序根据变长索引层偏移位移在变长索引层顺序查找。并返回变长词头内容最匹配其输入字符第10个字符以后的字符数据”nt”的变长索引层结点。并根据该变长索引层结点获得所需要的对应的显示数据层偏移位移。

Claims (8)

1.一种电子词典数据存储格式,它包括单词索引层和显示数据层,其特征在于,它将词库单词分为固定词头部分和变长词头部分,再根据词库单词的词头把单词索引层分为固定索引层和变长索引层。
2.根据权利要求1所述的电子词典数据存储格式,其特征在于,所述词库单词的固定词头部分的定义标准为:固定词头部分为单词字符串的前10个字符,如果单词长度小于10个字符则以0进行填充固定词头的尾部。
3.根据权利要求1所述的电子词典数据存储格式,其特征在于,所述词库单词的变长词头部分的定义标准为:变长词头部分为该单词名称的第10个字符开始(包括第10个字符)到单词的最后一个字符,如果该单词长度小于10个字符,则变长词头内容为空。
4.根据权利要求1所述的电子词典数据存储格式,其特征在于,所述固定索引层的每个单词都是一个节点,每个节点都有各自的数据结构,当该单词的长度大于10时,其数据结构如表1.1;当单词长度小于等于10时,其数据结构如表1.2所示:
表1.1单词长度不大于10的固定索引层节点定义
字段定义 存储类型 存储长度 固定词头内容Hash值 无符号整数 6字节 变长索引层偏移位移 unsigned long型 4字节
表1.2单词长度大于10的固定索引层节点定义
字段定义 存储类型 存储长度 固定词头内容Hash值 无符号整数 6字节 显示数据层偏移位移 unsigned long型 4字节
5.根据权利要求4所述的电子词典数据存储格式,其特征在于,所述固定词头内容Hash值定义如下:存在字符A-Z(或a-z)和数字1-26的映射关系(单词检索不区分字母大小写),固定词头为长度为10的字符数组szWordName[10],szWordName[10]转换成整型数组为Number[10],则固定词头内容Hash值HashValue为:
HashValue=∑Number[i]*279-i,i∈[0,10]…………………(1)
其中固定索引层里的Hash数值大小是唯一的,固定索引层即只需要保存具有相同Hash值的一组单词的单词名称的字符串数值最小的单词的信息。
6.根据权利要求4所述的电子词典数据存储格式,其特征在于,所述变长索引层偏移位移是该单词的变长词头部分在变长索引层的偏移位移,由变长词头内容长度,变长词头内容,显示数据层偏移位移三部分构成。
7.根据权利要求1所述的电子词典数据存储格式,其特征在于,所述变长索引层为单词的变长数据部分的存储格式,其数据结构如表2所示:
表2变长索引层节点定义
    字段定义     存储类型     存储长度     变长词头内容长度n     unsigned char型     1字节     变长词头内容     char*型     n个字节     显示数据层偏移位移     unsigned long型     4个字节
其中变长词头内容长度n为单词名称第10个字符到最后一个字符的字符个数,显示数据层为单词内容的具体显示信息,显示数据层偏移位移为该单词在显示数据层的相对偏移位移。
8.一种电子词典数据检索方法,其特征在于,所述步骤主要包括:
1)用户输入需要查找的单词,如果输入的单词长度小于10,则后面的字符以0填充;
2)系统根据Hash值定义公式求出Hash值SearchValue;
3)系统根据获得的Hash值SearchValue,利用二分查找的排序方法在固定索引层进行查找,如果找到等于该SearchValue的节点,则返回改节点,否则记录下固定索引节点中的变长索引层偏移位移;
4)根据变长索引层偏移位移进入到对应的变长索引层节点,并进入单词的显示数据层,将单词的具体信息显示出来。
CNA2007100310262A 2007-10-24 2007-10-24 一种电子词典数据存储格式及其检索方法 Pending CN101145155A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNA2007100310262A CN101145155A (zh) 2007-10-24 2007-10-24 一种电子词典数据存储格式及其检索方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNA2007100310262A CN101145155A (zh) 2007-10-24 2007-10-24 一种电子词典数据存储格式及其检索方法

Publications (1)

Publication Number Publication Date
CN101145155A true CN101145155A (zh) 2008-03-19

Family

ID=39207683

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2007100310262A Pending CN101145155A (zh) 2007-10-24 2007-10-24 一种电子词典数据存储格式及其检索方法

Country Status (1)

Country Link
CN (1) CN101145155A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101251848B (zh) * 2008-04-14 2010-06-09 中山大学 一种电子词典的快速单词查询系统
CN102456001A (zh) * 2010-10-27 2012-05-16 北京四维图新科技股份有限公司 错别字的检查方法和装置
CN101419605B (zh) * 2008-04-30 2012-10-10 中山大学 一种实现重复单词列表的电子词典的查询方法
CN103294714A (zh) * 2012-02-28 2013-09-11 阿里巴巴集团控股有限公司 索引字段的字段属性值的存储位置的确定方法以及装置
CN104809138A (zh) * 2014-01-28 2015-07-29 阿里巴巴集团控股有限公司 一种基于hash处理的词汇管理方法和设备
CN107544965A (zh) * 2016-06-23 2018-01-05 北京搜狗科技发展有限公司 一种优化静态词库尺寸的方法及电子设备
CN113742459A (zh) * 2021-11-05 2021-12-03 北京世纪好未来教育科技有限公司 词汇展示方法、装置、电子设备及存储介质

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101251848B (zh) * 2008-04-14 2010-06-09 中山大学 一种电子词典的快速单词查询系统
CN101419605B (zh) * 2008-04-30 2012-10-10 中山大学 一种实现重复单词列表的电子词典的查询方法
CN102456001A (zh) * 2010-10-27 2012-05-16 北京四维图新科技股份有限公司 错别字的检查方法和装置
CN102456001B (zh) * 2010-10-27 2014-11-26 北京四维图新科技股份有限公司 错别字的检查方法和装置
CN103294714A (zh) * 2012-02-28 2013-09-11 阿里巴巴集团控股有限公司 索引字段的字段属性值的存储位置的确定方法以及装置
CN103294714B (zh) * 2012-02-28 2016-04-27 阿里巴巴集团控股有限公司 索引字段的字段属性值的存储位置的确定方法以及装置
CN104809138A (zh) * 2014-01-28 2015-07-29 阿里巴巴集团控股有限公司 一种基于hash处理的词汇管理方法和设备
CN104809138B (zh) * 2014-01-28 2018-06-08 阿里巴巴集团控股有限公司 一种基于hash处理的词汇管理方法和设备
CN107544965A (zh) * 2016-06-23 2018-01-05 北京搜狗科技发展有限公司 一种优化静态词库尺寸的方法及电子设备
CN107544965B (zh) * 2016-06-23 2021-10-01 北京搜狗科技发展有限公司 一种优化静态词库尺寸的方法及电子设备
CN113742459A (zh) * 2021-11-05 2021-12-03 北京世纪好未来教育科技有限公司 词汇展示方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN102024047B (zh) 数据检索方法及装置
US11899641B2 (en) Trie-based indices for databases
US10114908B2 (en) Hybrid table implementation by using buffer pool as permanent in-memory storage for memory-resident data
US8626781B2 (en) Priority hash index
CN101145155A (zh) 一种电子词典数据存储格式及其检索方法
CN101782922B (zh) 一种面向海量数据检索的多级桶哈希索引方法
US9183197B2 (en) Language processing resources for automated mobile language translation
US20120317105A1 (en) Method and Apparatus for Updating Index and Sequencing Search Results Based on Updated Index in Terminal
US20080114733A1 (en) User-structured data table indexing
US10698953B2 (en) Efficient XML tree indexing structure over XML content
US20080010238A1 (en) Index having short-term portion and long-term portion
CN103026631A (zh) 用于压缩xml文档的方法和系统
US11886401B2 (en) Database key compression
Can et al. Efficiency and effectiveness of query processing in cluster-based retrieval
CN115391495B (zh) 在中文语境中检索关键词的方法、装置及设备
CN104035993A (zh) 电子书的存储检索方法、电子书管理系统、阅读系统
CN103914483A (zh) 文件存储方法、装置及文件读取方法、装置
US7921140B2 (en) Apparatus and method for browsing contents
Altingovde et al. Incremental cluster-based retrieval using compressed cluster-skipping inverted files
CN101944086A (zh) 全字索引词典
US8949282B1 (en) Efficient storage of non-searchable attributes
KR100818742B1 (ko) 색인 단어의 문서 내 위치 정보에 대한 관련성을 이용한문서 검색 방법
US20230409536A1 (en) File system metadata layout for append-only storage
US8171006B1 (en) Retrieval of searchable and non-searchable attributes
KR100810666B1 (ko) 플래시 메모리를 저장장치로 사용하는 기기를 위한 데이터색인 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication