CN107239549A - 数据库术语检索的方法、装置及终端 - Google Patents
数据库术语检索的方法、装置及终端 Download PDFInfo
- Publication number
- CN107239549A CN107239549A CN201710423090.9A CN201710423090A CN107239549A CN 107239549 A CN107239549 A CN 107239549A CN 201710423090 A CN201710423090 A CN 201710423090A CN 107239549 A CN107239549 A CN 107239549A
- Authority
- CN
- China
- Prior art keywords
- term
- node
- even numbers
- numbers group
- retrieval
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
- G06F16/316—Indexing structures
- G06F16/322—Trees
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了数据库术语检索的方法、装置及终端,属于计算机信息技术领域。该方法包括:获取待检索术语的检索信息;根据所述数据库的双数组字典树索引,检索与所述检索信息对应的术语信息;其中,所述数据库的双数组字典树索引的构建过程包括:从所述数据库中获取术语集合,并根据字典序,将所述术语集合中的术语进行排序,获得排序后的第一术语集合;调用双数组字典树插入所述第一术语集合中的术语,形成所述双数组字典树索引,其中,所述双数组字典树包括两个整数数组,分别为基础数组base[]和校验数组check[]。
Description
技术领域
本发明涉及计算机信息技术领域,特别涉及数据库术语检索的方法、装置及终端。
背景技术
当前计算机辅助翻译是提高翻译一致性和效率的重要手段,它要求软件能够不断地记忆最新的术语及语料,并在后续的翻译流程中能够及时地调出满足相应条件的术语及语料以供选择。
随着术语和语料规模的不断扩大,数据库也原来越大,遍历数据库进行术语的检索,获得对应的术语信息所需花费的时间就会越来越多,可见,目前术语检索的效率比较低。
发明内容
本发明实施例提供了一种数据库术语检索的方法、装置及终端。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。
根据本发明实施例的第一方面,提供了一种数据库术语检索的方法,包括:
获取待检索术语的检索信息;
根据所述数据库的双数组字典树索引,检索与所述检索信息对应的术语信息;
其中,所述数据库的双数组字典树索引的构建过程包括:
从所述数据库中获取术语集合,并根据字典序,将所述术语集合中的术语进行排序,获得排序后的第一术语集合;
调用双数组字典树插入所述第一术语集合中的术语,形成所述双数组字典树索引,其中,所述双数组字典树包括两个整数数组,分别为基础数组base[]和校验数值check[]。
本发明一实施例中,所述调用双数组字典树插入所述第一术语集合中的术语,形成所述双数组字典树索引包括:
步骤一:初始化双数组字典树根节点,并将所述根节点确定为当前节点,其中,base[0]=1;check[0]=0;
步骤二:对于所述当前节点的一群兄弟节点,确定对应的插入位置,其中,所述插入位置为begin值,且check[begin+a1…an]==0,a1…an是所述兄弟节点中的n个节点对应的字符编码值;
步骤三:将所述兄弟节点的check确定为check[begin+a1…an]=begin;
步骤四:若所述兄弟节点中的当前节点没有子节点,确定所述当前节点的base为负值;若所述兄弟节点中的当前节点有子节点,确定所述当前节点的兄弟节点,并迭代跳转到步骤二中;
步骤五:在所述插入位置插入第一术语集合中对应的术语,形所述双数组字典树索引。
本发明一实施例中,所述调用双数组字典树插入所述第一术语集合中的术语,形成所述双数组字典树索引还包括:
生成索引辅助树,所述索引辅助树的每个节点包括:字符编码值、字符在字符串中的深度、字符的最左子节点的位置值,字符的最右子节点的位置值,字符串路径的结束标识信息。
本发明一实施例中,所述检索与所述检索信息对应的术语信息之前,还包括:
将所述索引辅助树加载到内存中。
本发明一实施例中,所述检索与所述检索信息对应的术语信息包括:
根据公式(1),在所述数据库的双数组字典树索引中,查找与所述检索信息对应的术语;
确定所述查找到的术语在所述双数组字典树的位置值;
在预设的与所述数据库对应的哈希对应关系中,确定与所述位置值对应的所述术语的辅助信息,其中,所述辅助信息包括:术语的原文、术语的译文、术语的属性信息等中的至少一种;
其中,公式(1)为:
base[s]+c=t
check[t]=s (1)
s代表原状态,t代表目标状态,c代表状态间转移的变化值,即字符编码值。
根据本发明实施例的第二方面,提供一种数据库术语检索的装置,包括:
获取单元,用于获取待检索术语的检索信息;
检索单元,用于根据所述数据库的双数组字典树索引,检索与所述检索信息对应的术语信息;
构建单元,用于从所述数据库中获取术语集合,并根据字典序,将所述术语集合中的术语进行排序,获得排序后的第一术语集合;并调用双数组字典树插入所述第一术语集合中的术语,形成所述双数组字典树索引,其中,所述双数组字典树包括两个整数数组,分别为基础数组base[]和校验数组check[]。
本发明一实施例中,所述构建单元,还用于初始化双数组字典树根节点,并将所述根节点确定为当前节点,其中,base[0]=1;check[0]=0;对于所述当前节点的一群兄弟节点,确定对应的插入位置,其中,所述插入位置为begin值,且check[begin+a1…an]==0,a1…an是所述兄弟节点中的n个节点对应的字符编码值;将所述兄弟节点的check确定为check[begin+a1…an]=begin;若所述兄弟节点中的当前节点没有子节点,确定所述当前节点的base为负值;若所述兄弟节点中的当前节点有子节点,确定所述当前节点的兄弟节点,并继续确定所述兄弟节点对应的插入位置;在所述插入位置插入第一术语集合中对应的术语,形所述双数组字典树索引。
本发明一实施例中,还包括:加载单元;其中,
所述构建单元,还用于生成索引辅助树,所述索引辅助树的每个节点包括:字符编码值、字符在字符串中的深度、字符的最左子节点的位置值,字符的最右子节点的位置值,字符串路径的结束标识信息。
所述加载单元,用于将所述索引辅助树加载到内存中。
本发明一实施例中,所述检索单元,还用于根据公式(1),在所述数据库的双数组字典树索引中,查找与所述检索信息对应的术语;确定所述查找到的术语在所述双数组字典树的位置值;在预设的与所述数据库对应的哈希对应关系中,确定与所述位置值对应的所述术语的辅助信息,其中,所述辅助信息包括:术语的原文、术语的译文、术语的属性信息等中的至少一种;其中,公式(1)为:
base[s]+c=t
check[t]=s (1)
其中,s代表原状态,t代表目标状态,c代表状态间转移的变化值,即字符编码值。
根据本发明实施例的第三方面,提供数据库术语检索的装置,被配置为终端,包括:
处理器;
被配置为存储处理器可执行指令的存储器;
其中,处理器被配置为:
获取待检索术语的检索信息;
根据所述数据库的双数组字典树索引,检索与所述检索信息对应的术语信息;
其中,所述数据库的双数组字典树索引的构建过程包括:
从所述数据库中获取术语集合,并根据字典序,将所述术语集合中的术语进行排序,获得排序后的第一术语集合;
调用darts双数组字典树插入所述第一术语集合中的术语,形成所述双数组字典树索引,其中,所述双数组字典树包括两个整数数组,分别为基础数组base[]和校验数组check[]。
本发明实施例提供的技术方案可以包括以下有益效果:
本发明实施例中,构建了数据库的双数组字典树索引,这样,可根据双数组字典树索引进行术语的检索,极大地提高了术语检索的速度。并且,调用双数组字典树来构建数据库的索引,可提高插入术语的速度,降低内存的开销,同时可避免动态添加数据的过程中对检索速度的影响。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是根据一示例性实施例示出的一种数据库术语检索方法的流程示意图;
图2是根据一示例性实施例示出的形成双数组字典树索引的流程示意图;
图3是根据一示例性实施例示出的双数组字典树的结构示意图;
图4是根据一示例性实施例示出的一种数据库术语检索装置的框图;
图5是根据一示例性实施例示出的一种数据库术语检索装置的框图。
具体实施方式
以下描述和附图充分地示出本发明的具体实施方案,以使本领域的技术人员能够实践它们。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施方案的部分和特征可以被包括在或替换其他实施方案的部分和特征。本发明的实施方案的范围包括权利要求书的整个范围,以及权利要求书的所有可获得的等同物。在本文中,各实施方案可以被单独地或总地用术语“发明”来表示,这仅仅是为了方便,并且如果事实上公开了超过一个的发明,不是要自动地限制该应用的范围为任何单个发明或发明构思。本文中,诸如第一和第二等之类的关系术语仅仅用于将一个实体或者操作与另一个实体或操作区分开来,而不要求或者暗示这些实体或操作之间存在任何实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素。本文中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的结构、产品等而言,由于其与实施例公开的部分相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
计算机辅助翻译是一种越来越普遍使用的软件应用,在该应用对应一个庞大的数据库系统,在数据库中存储了大量的术语以及辅助信息,一般,可采用哈希对应关系来保存这些术语以及辅助信息。由于数据库信息量巨大,传统的检索术语过程比较费时,同时还需花销大量的内存。而本发明实施例中,可构建了数据库的双数组字典树索引,这样,可根据双数组字典树索引进行术语的检索,极大地提高了术语检索的速度。并且,调用双数组字典树来构建数据库的索引,可提高插入术语的速度,降低内存的开销,同时可避免动态添加数据的过程中对检索速度的影响。
图1是根据一示例性实施例示出的一种数据库术语检索方法的流程图。如图1所示,如图1所示,数据库术语检索的过程包括:
步骤101:获取待检索术语的检索信息。
待检索术语的检索信息可包括待检索术语的关键词(key)、前缀、后缀等中一种或多种。用户输入待检索术语的检索信息后,即可获得待检索术语的检索信息。当然,也可通过网络传输等获取待检索术语的检索信息。
步骤102:根据数据库的双数组字典树索引,检索与检索信息对应的术语信息。
本发明实施例中,由于数据库信息量巨大,因此,可构建该数据库的双数组字典树索引,从而,可根据数据库的双数组字典树索引,检索与检索信息对应的术语信息。
本发明实施例中,可从数据库中获取术语集合,并根据字典序,将术语集合中的术语进行排序,获得排序后的第一术语集合,然后,通过调用双数组字典树插入第一术语集合中的术语,形成双数组字典树索引。这里,双数组字典树可为双数组字典树系统(darts,Double-Array Trie System),即调用darts双数组字典树插入第一术语集合中的术语,形成双数组字典树索引。
由于数据库可以是本地数据库,也可以是网络存储数据库,因此,可遍历数据库获得术语集合,或者通过网络爬虫等网络技术获得术语集合。即根据待插入的术语,组成术语集合。获取术语集合后,还需进一步对术语进行排序,从而,得到排序后的术语集合。这里,可根据字典序,将术语集合中的术语进行排序,获得排序后的第一术语集合。一般,可采用程序标准库中的排序函数即可对术语集合中的术语排序,获得按字典序排序后的第一术语集合。
然后,调用darts双数组字典树插入第一术语集合中的术语,形成双数组字典树索引。其中,双数组字典树包括两个整数数组,分别为基础数组base[]和校验数组check[]。并且,双数组字典树的前后节点之间的关系满足以下公式:
对于一个接收字符c从状态s移动到t的转移,在双数组中保存的条件是:
check[base[s]+c]=s
base[s]+c=t
其中,s和t均为状态,s代表原状态,t代表目标状态。
构建了数据库的双数组字典树索引后,可检索与检索信息对应的术语信息。由于双数组字典树的前后节点之间的关系满足上述公式,因此,在检索的过程中,可根据公式(1),在数据库的双数组字典树索引中,查找与检索信息对应的术语。然后,确定查找到的术语在darts双数组字典树的位置值,并在预设的与数据库对应的哈希对应关系中,确定与位置值对应的术语的辅助信息,其中,辅助信息包括:术语的原文、术语的译文、术语的属性信息等中的至少一种。位置值可为pos值。
其中,公式(1)为:
base[s]+c=t
check[t]=s (1)
s代表原状态,t代表目标状态,c代表状态间转移的变化值,即字符编码值。
由于双数组字典树包括两个整数数组,并双数组字典树的前后节点之间的关系满足预设的公式,因此,可根据公式(1)描述的状态转移关系,在构建的数据库的双数组字典树索引中,查找与检索信息对应的术语。而数据库中,采用哈希对应关系来保存这些术语以及辅助信息,因此,查找到与检索信息对应的术语后,即可确定该术语对应的pos值,从而,可在预设的与数据库对应的哈希对应关系中,确定与pos值对应的术语的辅助信息,即可完成对术语检索。
本发明实施例中,由于调用darts双数组字典树插入术语,形成双数组字典树索引后,才可在进行术语检索时,提高术语检索的速度。并且,数据库可是一个动态更新的数据库,可进行术语的动态插入,因此,构建数据库的双数组字典树索引的过程,可与根据数据库的双数组字典树索引进行术语检索的过程是并行。这样,数据库的检索与术语插入在同一时间操作的是同一个集合,甚至同一行记录时,等待时间的长短取决于数据库当前执行的效率。从而,提高了插入术语的速度,即可降低内存的开销。同时可避免动态添加数据的过程中对检索速度的影响。因此,调用双数组字典树插入术语,形成双数组字典树索引的过程是必不可少的。
图2是根据一示例性实施例示出的形成双数组字典树索引的流程示意图,如图2所示,形成过程包括:
步骤201:初始化双数组字典树根节点,并将根节点确定为当前节点,其中,base[0]=1;check[0]=0。
图3是根据一示例性实施例示出的双数组字典树的结构示意图。如图3所示,双数组字典树中包括:根节点(root),根节点下面有两个或多个子节点(child),而对于其中一个,两个或多个子节点,该子节点下还有一个、两个或多个子节点,这样,一级一级发散,形成了双数组字典树。
这里,可初始化双数组字典树根节点,其中,base[0]=1;check[0]=0。然后,将根节点确定为当前节点,即从根节点开始迭代跳转。
步骤202:对于当前节点的一群兄弟节点,确定对应的插入位置,其中,插入位置为begin值,且check[begin+a1…an]==0,a1…an是兄弟节点中的n个节点对应的字符编码值。
当前节点为根节点时,如图3所示,根节点下有一群子节点,这些子节点组成了兄弟节点,他们之间是平行关系,需确定对应的插入位置。可根据check[begin+a1…an]==0,a1…an是兄弟节点中的n个节点对应的字符编码值,来确定begin,而插入位置即为begin值。
当然,若当前节点为其他节点,例如,图3中阴影对应的节点时,它也有子节点,也形成了兄弟节点,同样,可根据check[begin+a1…an]==0来确定对应的插入位置。
步骤203:将兄弟节点的check确定为check[begin+a1…an]=begin。
步骤204:从兄弟节点中确定一个节点为当前节点。
步骤205:判断当前节点是否有子节点?若有,执行步骤206,否则,执行步骤207。
步骤206:确定前节点的兄弟节点,并返回步骤202。
步骤207:确定当前节点的base为负值。
由于当前节点没有子节点,即该当前节点为叶子节点,因此,当前节点的base为负值。
步骤208:兄弟节点中是否有未选择的节点?若有,返回步骤204,否则,执行步骤209。
步骤209:在插入位置插入第一术语集合中对应的术语,形双数组字典树索引。
确定了插入位置后,即可插入对应的术语,形成双数组字典树索引。当然,也可在步骤202中,确定了一个插入位置,及时插入对应的术语。
本发明实施例中,可由步骤202-208形成了双数组字典树的迭代跳转过程,这样,双数组字典树的插入位置上都可插入对应的术语,形成双数组字典树索引。因此,调用darts双数组字典树插入第一术语集合中的术语,形成双数组字典树索引包括:步骤一:初始化双数组字典树根节点,并将根节点确定为当前节点,其中,base[0]=1;check[0]=0;步骤二:对于当前节点的一群兄弟节点,确定对应的插入位置,其中,插入位置为begin值,且check[begin+a1…an]==0,a1…an是兄弟节点中的n个节点对应的字符编码值;步骤三:将兄弟节点的check确定为check[begin+a1…an]=begin;步骤四:若兄弟节点中的当前节点没有子节点,确定当前节点的base为负值;若兄弟节点中的当前节点有子节点,确定当前节点的兄弟节点,并迭代跳转到步骤二中;步骤五:在插入位置插入第一术语集合中对应的术语,形双数组字典树索引。
由于在构建数据库的双数组字典树索引时,可获得每个节点的信息,因此,调用双数组字典树插入第一术语集合中的术语,形成双数组字典树索引还包括:生成索引辅助树,索引辅助树的每个节点包括:字符编码值、字符在字符串中的深度、字符的最左子节点的位置值,字符的最右子节点的位置值,字符串路径的结束标识信息。
如图3所示的双数组字典树,其中,root根节点,它的字符编码值(code)为0,字符在字符串中的深度(depth)为0,字符的最左子节点的位置值(left)为0,字符的最右子节点的位置值(right)为最后一条术语在已排好序的术语集合中的位置。然后,依此遍历每个术语,对于每个术语依此遍历它里面的字符,每个字符分配一个节点(node),节点里code值为当前字符的编码,为节省后续生成的空间,该编码可以减去一个偏移值,以获得较小的数据,depth为该字符在术语中的位置(从1开始),left为该节点最左的位置值减1,right为该节点最右的子节点的位置值。如果是叶子节点,那么它的code值为0,depth为字符串的长度,left为该节点的父节点的left值,right值为父节点的left值加1。一般,双数组字典树中,叶子节点是没有子节点的节点,这样,沿索引辅助树某个路径遍历字符串时,走到叶子节点就没有可以继续的节点了,因此,字符串路径的结束标识信息可为该节点对应路径中叶子节点的标识信息。
如上述构建了数据库的双数组字典树索引,并生成了索引辅助树后,可检索与检索信息对应的术语信息之前,还包括:将索引辅助树加载到内存中。
构建了数据库的双数组字典树索引后,可存储数据库的双数组字典树索。但是,由于双数组字典树的结构复杂,本发明另一实施例中,构建了数据库的双数组字典树索引后,可不需直接在内存中存储数据库的双数组字典树索引,只需在检索与检索信息对应的术语信息之前,将索引辅助树加载到内存中,这样,根据索引辅助树,可快速还原和重建双数组字典树索引,从而,进行数据库术语检索。
可见,通过加载索引辅助树,可以避免重启后基于术语集合重建字典树过慢,进一步提高检索速度。并且,基于索引辅助树可以方便地形成新术语插入过程的中间数据,可提高动态增长速度,使得动态插入数据变快。
对于同一数据库,术语检索,以及术语插入可能是同时并行的,即术语检索与构建数据库的双数组字典树索引的过程可能是并行的,在双数组字典树中插入术语的速度快了,这样,检索等待插入的时间变短,自然提高了术语检索的速度了。
下述为本公开装置实施例,可以用于执行本公开方法实施例。
根据上述数据库术语检索的过程,可构建一种数据库术语检索的装置。
图4是根据一示例性实施例示出的一种数据库术语检索装置的框图。如图4所示,该装置包括:获取单元410、检索单元420和构建单元430,其中,
获取单元410,用于获取待检索术语的检索信息。
检索单元420,用于根据数据库的双数组字典树索引,检索与检索信息对应的术语信息。
构建单元430,用于从数据库中获取术语集合,并根据字典序,将术语集合中的术语进行排序,获得排序后的第一术语集合;并调用双数组字典树插入第一术语集合中的术语,形成双数组字典树索引,其中,双数组字典树包括两个整数数组,分别为基础数组base[]和校验数组check[]。
本发明一实施例中,构建单元430,还用于初始化双数组字典树根节点,并将根节点确定为当前节点,其中,base[0]=1;check[0]=0;对于当前节点的一群兄弟节点,确定对应的插入位置,其中,插入位置为begin值,且check[begin+a1…an]==0,a1…an是兄弟节点中的n个节点对应的字符编码值;将兄弟节点的check确定为check[begin+a1…an]=begin;若兄弟节点中的当前节点没有子节点,确定当前节点的base为负值;若兄弟节点中的当前节点有子节点,确定当前节点的兄弟节点,并继续确定兄弟节点对应的插入位置;在插入位置插入第一术语集合中对应的术语,形双数组字典树索引。
本发明一实施例中,还包括:加载单元,则该装置中,
构建单元430,还用于生成索引辅助树,索引辅助树的每个节点包括:字符编码值、字符在字符串中的深度、字符的最左子节点的位置值,字符的最右子节点的位置值,字符串路径的结束标识信息。
加载单元,用于将索引辅助树加载到内存中。
本发明一实施例中,检索单元420,还用于根据公式(1),在数据库的双数组字典树索引中,查找与检索信息对应的术语;确定查找到的术语在双数组字典树的位置值;在预设的与数据库对应的哈希对应关系中,确定与位置值对应的术语的辅助信息,其中,辅助信息包括:术语的原文、术语的译文、术语的属性信息等中的至少一种;其中,公式(1)为:
base[s]+c=t
check[t]=s (1)
其中,s代表原状态,t代表目标状态,c代表状态间转移的变化值,即字符编码值。
下面举例说明本公开实施例提供的装置。
图5是根据一示例性实施例示出的一种数据库术语检索装置的框图。如图5所示,该装置包括:获取单元410、检索单元420和构建单元430,还包括加载单元440。
其中,获取单元410获取待检索术语的检索信息。而检索单元420可根据构建单元430构建的数据库的双数组字典树索引,检索与检索信息对应的术语信息。
而构建单元430可从数据库中获取术语集合,并根据字典序,将术语集合中的术语进行排序,获得排序后的第一术语集合;然后,调用双数组字典树插入第一术语集合中的术语,形成双数组字典树索引,其中,双数组字典树包括两个整数数组,分别为base[]和check[]。
如图3所示的双数组字典树,构建单元430可初始化双数组字典树根节点,并将根节点确定为当前节点,其中,base[0]=1;check[0]=0。对于其中任意一个节点的兄弟节点,都可确定对应的插入位置,具体地,构建单元430可根据check[begin+a1…an]==0,a1…an是兄弟节点中的n个节点对应的字符编码值,确定begin值,即确定插入位置,也可确对应的check。
当然,对于没有子节点的节点即叶子节点,构建单元430可确定base为负值。通过迭代跳转过程,构建单元430可在插入位置插入第一术语集合中对应的术语,形双数组字典树索引。
从而,检索单元420可根据公式(1),在数据库的双数组字典树索引中,查找与检索信息对应的术语;确定查找到的术语在darts双数组字典树的pos值;在预设的与数据库对应的哈希对应关系中,确定与pos值对应的术语的辅助信息,其中,辅助信息包括:术语的原文、术语的译文、术语的属性信息等中的至少一种。
本实施例中,构建单元430还可生成索引辅助树。从而,加载单元440可将索引辅助树加载到内存中,这样,可在检索时,快速还原数据库的双数组字典树,进一步提高检索单元420的检索速度。
可见,本实施例中,构建了数据库的双数组字典树索引,这样,可根据双数组字典树索引进行术语的检索,极大地提高了术语检索的速度。并且,调用双数组字典树来构建数据库的索引,可提高插入术语的速度,降低内存的开销,同时可避免动态添加数据的过程中对检索速度的影响。
本公开实施例提供一种数据库术语检索的装置,被配置为终端,包括:
处理器;
被配置为存储处理器可执行指令的存储器;
其中,处理器被配置为:
获取待检索术语的检索信息;
根据所述数据库的双数组字典树索引,检索与所述检索信息对应的术语信息;
其中,所述数据库的双数组字典树索引的构建过程包括:
从所述数据库中获取术语集合,并根据字典序,将所述术语集合中的术语进行排序,获得排序后的第一术语集合;
调用双数组字典树插入所述第一术语集合中的术语,形成所述双数组字典树索引,其中,所述双数组字典树包括两个整数数组,分别为基础数组base[]和校验数组check[]。
所述调用双数组字典树插入所述第一术语集合中的术语,形成所述双数组字典树索引包括:
步骤一:初始化双数组字典树根节点,并将所述根节点确定为当前节点,其中,base[0]=1;check[0]=0;
步骤二:对于所述当前节点的一群兄弟节点,确定对应的插入位置,其中,所述插入位置为begin值,且check[begin+a1…an]==0,a1…an是所述兄弟节点中的n个节点对应的字符编码值;
步骤三:将所述兄弟节点的check确定为check[begin+a1…an]=begin;
步骤四:若所述兄弟节点中的当前节点没有子节点,确定所述当前节点的base为负值;若所述兄弟节点中的当前节点有子节点,确定所述当前节点的兄弟节点,并迭代跳转到步骤二中;
步骤五:在所述插入位置插入第一术语集合中对应的术语,形所述双数组字典树索引。
所述调用darts双数组字典树插入所述第一术语集合中的术语,形成所述双数组字典树索引还包括:
生成索引辅助树,所述索引辅助树的每个节点包括:字符编码值、字符在字符串中的深度、字符的最左子节点的位置值,字符的最右子节点的位置值,字符串路径的结束标识信息。
所述检索与所述检索信息对应的术语信息之前,还包括:
将所述索引辅助树加载到内存中。
所述检索与所述检索信息对应的术语信息包括:
根据公式(1),在所述数据库的双数组字典树索引中,查找与所述检索信息对应的术语;
确定所述查找到的术语在所述双数组字典树的位置值;
在预设的与所述数据库对应的哈希对应关系中,确定与所述位置值对应的所述术语的辅助信息,其中,所述辅助信息包括:术语的原文、术语的译文、术语的属性信息等中的至少一种;
其中,公式(1)为:
base[s]+c=t
check[t]=s (1)
s代表原状态,t代表目标状态,c代表状态间转移的变化值,即字符编码值。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的流程及结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (10)
1.一种数据库术语检索的方法,其特征在于,包括:
获取待检索术语的检索信息;
根据所述数据库的双数组字典树索引,检索与所述检索信息对应的术语信息;
其中,所述数据库的双数组字典树索引的构建过程包括:
从所述数据库中获取术语集合,并根据字典序,将所述术语集合中的术语进行排序,获得排序后的第一术语集合;
调用双数组字典树插入所述第一术语集合中的术语,形成所述双数组字典树索引,其中,所述双数组字典树包括两个整数数组,分别为基础数组(base[])和校验数组(check[])。
2.如权利要求1所述的方法,其特征在于,所述调用双数组字典树插入所述第一术语集合中的术语,形成所述双数组字典树索引包括:
步骤一:初始化双数组字典树根节点,并将所述根节点确定为当前节点,其中,base[0]=1;check[0]=0;
步骤二:对于所述当前节点的一群兄弟节点,确定对应的插入位置,其中,所述插入位置为begin值,且check[begin+a1…an]==0,a1…an是所述兄弟节点中的n个节点对应的字符编码值;
步骤三:将所述兄弟节点的check确定为check[begin+a1…an]=begin;
步骤四:若所述兄弟节点中的当前节点没有子节点,确定所述当前节点的base为负值;若所述兄弟节点中的当前节点有子节点,确定所述当前节点的兄弟节点,并迭代跳转到步骤二中;
步骤五:在所述插入位置插入第一术语集合中对应的术语,形所述双数组字典树索引。
3.如权利要求2所述的方法,其特征在于,所述调用双数组字典树插入所述第一术语集合中的术语,形成所述双数组字典树索引还包括:
生成索引辅助树,所述索引辅助树的每个节点包括:字符编码值、字符在字符串中的深度、字符的最左子节点的位置值,字符的最右子节点的位置值,字符串路径的结束标识信息。
4.如权利要求3所述的方法,其特征在于,所述检索与所述检索信息对应的术语信息之前,还包括:
将所述索引辅助树加载到内存中。
5.如权利要求1-4所述的任一方法,其特征在于,所述根据检索与所述检索信息对应的术语信息包括:
根据公式(1),在所述数据库的双数组字典树索引中,查找与所述检索信息对应的术语;
确定所述查找到的术语在所述双数组字典树的位置值;
在预设的与所述数据库对应的哈希对应关系中,确定与所述位置值对应的所述术语的辅助信息,其中,所述辅助信息包括:术语的原文、术语的译文、术语的属性信息等中的至少一种;
其中,公式(1)为:
base[s]+c=t
check[t]=s (1)
s代表原状态,t代表目标状态,c代表状态间转移的变化值,即字符编码值。
6.一种数据库术语检索的装置,其特征在于,包括:
获取单元,用于获取待检索术语的检索信息;
检索单元,用于根据所述数据库的双数组字典树索引,检索与所述检索信息对应的术语信息;
构建单元,用于从所述数据库中获取术语集合,并根据字典序,将所述术语集合中的术语进行排序,获得排序后的第一术语集合;并调用双数组字典树插入所述第一术语集合中的术语,形成所述双数组字典树索引,其中,所述双数组字典树包括两个整数数组,分别为基础数组(base[])和校验数组(check[])。
7.如权利要求6所述的装置,其特征在于,
所述构建单元,还用于初始化双数组字典树根节点,并将所述根节点确定为当前节点,其中,base[0]=1;check[0]=0;对于所述当前节点的一群兄弟节点,确定对应的插入位置,其中,所述插入位置为begin值,且check[begin+a1…an]==0,a1…an是所述兄弟节点中的n个节点对应的字符编码值;将所述兄弟节点的check确定为check[begin+a1…an]=begin;若所述兄弟节点中的当前节点没有子节点,确定所述当前节点的base为负值;若所述兄弟节点中的当前节点有子节点,确定所述当前节点的兄弟节点,并继续确定所述兄弟节点对应的插入位置;在所述插入位置插入第一术语集合中对应的术语,形所述双数组字典树索引。
8.如权利要求7所述的装置,其特征在于,还包括:加载单元;其中,
所述构建单元,还用于生成索引辅助树,所述索引辅助树的每个节点包括:字符编码值、字符在字符串中的深度、字符的最左子节点的位置值,字符的最右子节点的位置值,字符串路径的结束标识信息;
所述加载单元,用于将所述索引辅助树加载到内存中。
9.如权利要求6-7所述的任一装置,其特征在于,
所述检索单元,还用于根据公式(1),在所述数据库的双数组字典树索引中,查找与所述检索信息对应的术语;确定所述查找到的术语在所述双数组字典树的位置值;在预设的与所述数据库对应的哈希对应关系中,确定与所述位置值对应的所述术语的辅助信息,其中,所述辅助信息包括:术语的原文、术语的译文、术语的属性信息等中的至少一种;其中,公式(1)为:
base[s]+c=t
check[t]=s (1)
其中,s代表原状态,t代表目标状态,c代表状态间转移的变化值,即字符编码值。
10.一种数据库术语检索的装置,其特征在于,被配置为终端,包括:
处理器;
被配置为存储处理器可执行指令的存储器;
其中,处理器被配置为:
获取待检索术语的检索信息;
根据所述数据库的双数组字典树索引,检索与所述检索信息对应的术语信息;
其中,所述数据库的双数组字典树索引的构建过程包括:
从所述数据库中获取术语集合,并根据字典序,将所述术语集合中的术语进行排序,获得排序后的第一术语集合;
调用双数组字典树插入所述第一术语集合中的术语,形成所述双数组字典树索引,其中,所述双数组字典树包括两个整数数组,分别为基础数组(base[])和校验数组(check[])。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710423090.9A CN107239549A (zh) | 2017-06-07 | 2017-06-07 | 数据库术语检索的方法、装置及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710423090.9A CN107239549A (zh) | 2017-06-07 | 2017-06-07 | 数据库术语检索的方法、装置及终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107239549A true CN107239549A (zh) | 2017-10-10 |
Family
ID=59986104
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710423090.9A Pending CN107239549A (zh) | 2017-06-07 | 2017-06-07 | 数据库术语检索的方法、装置及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107239549A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108509505A (zh) * | 2018-03-05 | 2018-09-07 | 昆明理工大学 | 一种基于分区双数组Trie的字符串检索方法及装置 |
CN108563685A (zh) * | 2018-03-13 | 2018-09-21 | 阿里巴巴集团控股有限公司 | 一种银行标识代码的查询方法、装置及设备 |
CN110457531A (zh) * | 2019-07-23 | 2019-11-15 | 昆明理工大学 | 一种基于OpenMP的并行字符串查询方法 |
CN111026978A (zh) * | 2019-10-14 | 2020-04-17 | 平安科技(深圳)有限公司 | 位置查询方法、装置、计算机设备及存储介质 |
CN111414648A (zh) * | 2020-03-04 | 2020-07-14 | 传神语联网网络科技股份有限公司 | 语料鉴权方法及装置 |
CN112800316A (zh) * | 2021-02-04 | 2021-05-14 | 北京易车互联信息技术有限公司 | 一种基于双数组字典树的搜索关键词提取系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101788990A (zh) * | 2009-01-23 | 2010-07-28 | 北京金远见电脑技术有限公司 | Trie树双数组的全局优化构造方法及系统 |
CN103365991A (zh) * | 2013-07-03 | 2013-10-23 | 深圳市华傲数据技术有限公司 | 一种基于一维线性空间实现Trie树的词典存储管理方法 |
CN103365992A (zh) * | 2013-07-03 | 2013-10-23 | 深圳市华傲数据技术有限公司 | 一种基于一维线性空间实现Trie树的词典检索方法 |
CN106528647A (zh) * | 2016-10-15 | 2017-03-22 | 北京语联炉火信息技术有限公司 | 一种基于cedar双数组字典树算法进行术语匹配的方法 |
CN106649286A (zh) * | 2016-10-15 | 2017-05-10 | 语联网(武汉)信息技术有限公司 | 一种基于双数组字典树进行术语匹配的方法 |
-
2017
- 2017-06-07 CN CN201710423090.9A patent/CN107239549A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101788990A (zh) * | 2009-01-23 | 2010-07-28 | 北京金远见电脑技术有限公司 | Trie树双数组的全局优化构造方法及系统 |
CN103365991A (zh) * | 2013-07-03 | 2013-10-23 | 深圳市华傲数据技术有限公司 | 一种基于一维线性空间实现Trie树的词典存储管理方法 |
CN103365992A (zh) * | 2013-07-03 | 2013-10-23 | 深圳市华傲数据技术有限公司 | 一种基于一维线性空间实现Trie树的词典检索方法 |
CN106528647A (zh) * | 2016-10-15 | 2017-03-22 | 北京语联炉火信息技术有限公司 | 一种基于cedar双数组字典树算法进行术语匹配的方法 |
CN106649286A (zh) * | 2016-10-15 | 2017-05-10 | 语联网(武汉)信息技术有限公司 | 一种基于双数组字典树进行术语匹配的方法 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108509505A (zh) * | 2018-03-05 | 2018-09-07 | 昆明理工大学 | 一种基于分区双数组Trie的字符串检索方法及装置 |
CN108509505B (zh) * | 2018-03-05 | 2022-04-12 | 昆明理工大学 | 一种基于分区双数组Trie的字符串检索方法及装置 |
CN108563685A (zh) * | 2018-03-13 | 2018-09-21 | 阿里巴巴集团控股有限公司 | 一种银行标识代码的查询方法、装置及设备 |
CN108563685B (zh) * | 2018-03-13 | 2022-03-22 | 创新先进技术有限公司 | 一种银行标识代码的查询方法、装置及设备 |
CN110457531A (zh) * | 2019-07-23 | 2019-11-15 | 昆明理工大学 | 一种基于OpenMP的并行字符串查询方法 |
CN110457531B (zh) * | 2019-07-23 | 2022-11-01 | 昆明理工大学 | 一种基于OpenMP的并行字符串查询方法 |
CN111026978A (zh) * | 2019-10-14 | 2020-04-17 | 平安科技(深圳)有限公司 | 位置查询方法、装置、计算机设备及存储介质 |
WO2021072874A1 (zh) * | 2019-10-14 | 2021-04-22 | 平安科技(深圳)有限公司 | 基于双数组的位置查询方法、装置、计算机设备及存储介质 |
CN111414648A (zh) * | 2020-03-04 | 2020-07-14 | 传神语联网网络科技股份有限公司 | 语料鉴权方法及装置 |
CN111414648B (zh) * | 2020-03-04 | 2023-05-12 | 传神语联网网络科技股份有限公司 | 语料鉴权方法及装置 |
CN112800316A (zh) * | 2021-02-04 | 2021-05-14 | 北京易车互联信息技术有限公司 | 一种基于双数组字典树的搜索关键词提取系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107239549A (zh) | 数据库术语检索的方法、装置及终端 | |
JP2013505514A (ja) | 情報検索方法およびシステム | |
CN108399213B (zh) | 一种面向用户个人文件的聚类方法及系统 | |
CN107291895B (zh) | 一种快速的层次化文档查询方法 | |
JP2001014329A (ja) | データベース処理方法及び実施装置並びにその処理プログラムを記憶した媒体 | |
CN104915860A (zh) | 一种商品推荐方法及装置 | |
CN105760504A (zh) | 基于浏览器的资源检索方法 | |
KR20120108886A (ko) | 데이터 스트림에서의 다중 조인 질의 처리를 위한 2 페이즈 수행 방법 | |
CN107025263A (zh) | 用于数据库语句的语句解析方法 | |
US11188594B2 (en) | Wildcard searches using numeric string hash | |
CN105824976A (zh) | 一种优化分词库的方法和装置 | |
CN105956203A (zh) | 一种信息存储方法、信息查询方法、搜索引擎装置 | |
CN105550240A (zh) | 一种推荐的方法及装置 | |
CN112650869B (zh) | 图像检索重排序方法、装置、电子设备及存储介质 | |
CN114036371A (zh) | 搜索词推荐方法、装置、设备和计算机可读存储介质 | |
CN107515916A (zh) | 数据查询的性能优化方法及装置 | |
CN110866088B (zh) | 一种语料库之间的快速全文检索方法及系统 | |
Zhang et al. | VMPSP: Efficient skyline computation using VMP-based space partitioning | |
CN112015911A (zh) | 一种海量知识图谱检索的方法 | |
CN104778247A (zh) | 一种基于给定数据资源的信息检索方法及装置 | |
CN111488544B (zh) | 网页相似子元素的确定方法、装置、设备和存储介质 | |
CN114201525B (zh) | 查询数据的方法及装置 | |
Wakchaure et al. | Sequential pattern mining using apriori and FP growth algorithm | |
JP6840293B1 (ja) | 情報処理装置、情報処理方法、及び情報処理プログラム | |
CN115168661B (zh) | 原生图数据处理方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171010 |