CN106649286B - 一种基于双数组字典树进行术语匹配的方法 - Google Patents

一种基于双数组字典树进行术语匹配的方法 Download PDF

Info

Publication number
CN106649286B
CN106649286B CN201610897567.2A CN201610897567A CN106649286B CN 106649286 B CN106649286 B CN 106649286B CN 201610897567 A CN201610897567 A CN 201610897567A CN 106649286 B CN106649286 B CN 106649286B
Authority
CN
China
Prior art keywords
even numbers
dictionary tree
numbers group
term
group dictionary
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.)
Active
Application number
CN201610897567.2A
Other languages
English (en)
Other versions
CN106649286A (zh
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.)
Language Network (wuhan) Information Technology Co Ltd
Original Assignee
Language Network (wuhan) Information Technology Co Ltd
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 Language Network (wuhan) Information Technology Co Ltd filed Critical Language Network (wuhan) Information Technology Co Ltd
Priority to CN201610897567.2A priority Critical patent/CN106649286B/zh
Publication of CN106649286A publication Critical patent/CN106649286A/zh
Application granted granted Critical
Publication of CN106649286B publication Critical patent/CN106649286B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/58Use of machine translation, e.g. for multi-lingual retrieval, for server-side translation for client devices or for real-time translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Machine Translation (AREA)

Abstract

一种基于双数组字典树进行术语匹配的方法,其特征是包括建索引的步骤,及用索引进行术语查询匹配的步骤;其中,所述建索引的步骤如下:生成双数组字典树的定位,计算内存缓存系统的二级索引的ID,对术语建索引,所述用索引进行术语查询匹配的步骤如下:生成双数组字典树的定位,分词,基于索引进行术语匹配。既可以满足术语匹配的多种查询需求,又提高了整体匹配的性能。

Description

一种基于双数组字典树进行术语匹配的方法
技术领域
本发明属于计算机通信领域,尤其涉及一种基于双数组字典树进行术语匹配的方法。
背景技术
当前计算机辅助翻译是提高翻译一致性和效率的重要手段,它要求软件能够不断地记忆最新的术语及语料,并且在后续的翻译流程中能够及时地调出满足相应条件的术语或语料以供选择。随着术语和语料规模的不断扩大,基于传统的关系型数据库或是目前较新的非关系型数据库来直接根据原文或译文检索出完整的翻译信息都是会有明显的效率下降的,当处理比较大的待译稿时,速度自然不能接受。以mongo数据库为例,每一个文档记录都包含文档ID,原文,译文以及其他辅助信息,有些原文或译文比较长,就不适合作为索引字段,而文档ID是mongo的默认全局唯一16进制索引字段,基于文档ID的查询会非常快。基于此,我们可以实现一种外围索引,将原文或译文通过该索引与文档ID对应起来,要求外围索引支持可存储的任意长度的原文或译文,并且要足够高效。
结合双数组字典树算法,辅以redis缓存和适当的数据结构设计,我们可以构建出这样一套满足需求的索引及匹配系统。传统的直接基于数据库查询某个字段会比较慢,建了索引的情况下速度会快一些,但是有的字段比较长就不适合建索引,即使建了数据库索引对于较长的字段来说,查询速度可能依然偏慢。而不管任何数据,只要基于数据库主键来查当前记录,速度都是比较快的,因此实现一种对术语快速建索引的机制,并且将该索引与数据库主键对应的字段相关联,就可以获得比较好的查询性能。此外翻译行业的术语匹配不仅仅是查出给定的术语,还需要支持前缀查询,精确查询,还有基于句子的分词查询,而双数组字典树可以实现这些功能。将一种高效的双数组字典树实现算法引入,再将数据库主键的值与双数组里每一个术语的位置信息对应起来作为辅助信息存放于缓存系统,既可以满足术语匹配的多种查询需求,又提高了整体匹配的性能,对于翻译自动化来说可以带来较好的用户体验。
发明内容
本发明所要解决的技术问题是目前基于数据库的术语匹配引擎在查词效率上速度偏慢,而改善这一问题的办法就是对数据库里的术语建一个快速索引,引入双数组字典树可以解决大量术语建索引慢以及查询慢的问题。
为解决上述技术问题,本发明提供了一种基于双数组字典树进行术语匹配的方法,其特征是包括建索引的步骤,及用索引进行术语查询匹配的步骤;
(1)生成双数组字典树的定位
根据指定的双数组字典树的数目,用哈希算法,对插入术语计算哈希值,然后对双数组字典树的数目取模,计算得出双数组字典树的位置编号,用以实现双数组字典树的定位;
(2)计算内存缓存系统的二级索引的ID
从mongo数据库里读出术语,将术语插入双数组字典树,返回术语在双数组字典树的pos值, 将所述双数组字典树的位置编号,乘以1000万,加上所述pos值,再配合程序设定的前缀字串,得出内存缓存系统里的二级索引的ID;
(2)对术语建索引
根据二级索引的ID查询出插入术语在数据库里对应的数据记录的术语库ID和对象ID,用术语库ID和对象ID构造键值,形成二级索引的ID和键值的映射关系,存放于内存缓冲系统;
所述基于双数组字典树索引进行术语匹配的步骤包括:
(1)生成双数组字典树的定位
(2)分词
将标点符号滤掉,对于西方语言直接按空格拆分,对于中文系列的语言按单个字拆分,用逆向最大匹配算法结合双数组字典,分出词汇,以及词汇在双数组字典树里的位置;
(3) 基于索引进行术语匹配
根据二级索引的ID查询插入术语在数据库里对应的数据记录的术语库ID和对象ID,过滤并查询出插入术语在数据库的完整信息。
进一步,所述内存缓存系统是在术语语料所在的数据库之外。
进一步,所述双数组字典树是通过遍历数据库获取字符串数据的源字符串和目标字符串生成的。
进一步,所述内存缓存系统包括一级索引和二级索引,
所述一级索引的生成步骤是:将字符串数据插入双数组字典树,返回字符串数据在双数组字典树里的位置值,并通过位置值计算得出字符串数据ID,将字符串数据ID放入内存缓存系统里,用于实现字符串数据的一级索引;
所述二级索引的生成步骤是:建立字符串数据ID与字符串数据在数据库内部已建立索引的数据记录的关键字段的对应关系,用于实现字符串数据的二级索引。
进一步,所述一级索引和二级索引被定时写入硬盘。
进一步,所述一级索引和二级索引达到数量阈值后被写入硬盘。
进一步,所述索引为双向索引。
进一步,所述字符串逆向最大匹配算法,从被处理字符串的末端开始匹配扫描,每次取最末端的2i个字符作为匹配字段,若匹配失败,则去掉匹配字段最前面的一个字,继续匹配。
采用上述技术方案,可达到以下效果:
1. 用双数组字典树对术语建立外围索引,然后用将双数组建立的索引与mongo数据库里每条术语记录的Objectld(相当于数据库关键字字段)相关联并存放于redis作为二级索引缓存,最终加快对mongo数据库的查询速度;
2. 基于双数组字典树和内存缓存系统来存放外围索引信息,将较长的原文或译文映射为数据库内全局唯一且带有快速索引的记录ID字段,从而加速了术语的匹配,同时借助双数组的特性,也具备分词,前缀查询等翻译行业所需的功能;
既可以满足术语匹配的多种查询需求,又提高了整体匹配的性能,对于可以带来较好的用户体验。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1示出了一种基于双数组字典树进行术语匹配的方法的流程示意图;
图2示出了用双数组字典树建索引的流程示意图;
图3示出了用索引进行术语匹配的流程示意图。
具体实施方式
下面结合附图和具体实施方式对本发明的技术方案作进一步具体说明。
为解决上述技术问题,本发明提供了一种基于双数组字典树进行术语匹配的方法,其特征是包括建索引的步骤,及用索引进行术语查询匹配的步骤,如图1所示;
所述用双数组字典树建索引的步骤包括以下三个步骤,如图2所示:
(1)生成双数组字典树的定位
根据指定的双数组字典树的数目,用哈希算法,对待插入术语计算哈希值,然后对双数组字典树的数目取模,计算得出双数组字典树的位置编号,用以实现双数组字典树的定位;
(2)计算内存缓存系统的二级索引的ID
直接从数据库里查术语往往速度很慢,需要对数据库里的术语建立高效的外围索引,在这里就包含基于双数组的一级索引和基于内存缓存系统的二级索引;
内存缓存系统里二级索引的ID即内存缓存系统里的键名,
计算内存缓存系统的二级索引的ID的步骤是:从mongo数据库里读出术语,将术语插入双数组字典树,返回术语在双数组字典树的pos值, 将所述双数组字典树编号,乘以1000万,加上所述pos值,再配合程序设定的前缀字串,即可得出内存缓存系统里的二级索引的ID;
(2)对术语建索引
根据二级索引的ID查询出插入术语在数据库里对应的数据记录的术语库ID和对象ID,用术语库ID和对象ID构造键值,形成二级索引的ID和键值的映射关系,存放于内存缓冲系统;对象ID是mongo数据库特有的;
所述基于双数组字典树索引进行术语匹配的步骤包括以下三个步骤,如图3所示:
(1)双数组字典树的定位
(2)分词
首先将标点符号滤掉,对于西方语言直接按空格拆分,对于中文或与之同一系列的语言按单个字拆分,然后用逆向最大匹配算法结合双数组字典,分出词汇,以及词汇在双数组字典树里的位置;
(3) 基于索引进行术语匹配
根据二级索引的ID可以查询出该术语在数据库里对应的数据记录的术语库ID和对象ID,根据这些信息即可快速地过滤并查询出该术语在数据库的完整信息。
进一步,所述双数组字典树是通过遍历数据库获取字符串数据的源字符串和目标字符串生成的。
进一步,所述内存缓存系统包括一级索引和二级索引,
所述一级索引的生成步骤是:将字符串数据插入双数组字典树,返回字符串数据在双数组字典树里的位置值,并通过位置值计算得出字符串数据ID,将字符串数据ID放入内存缓存系统里,用于实现字符串数据的一级索引;
所述二级索引的生成步骤是:建立字符串数据ID与字符串数据在数据库内部已建立索引的数据记录的关键字段的对应关系,用于实现字符串数据的二级索引;
进一步,所述一级索引和二级索引被定时写入硬盘。
进一步,所述一级索引和二级索引达到数量阈值后被写入硬盘。
进一步,所述索引为双向索引。
字符串逆向最大匹配算法,从被处理字符串的末端开始匹配扫描,每次取最末端的2i个字符(i字字串)作为匹配字段,若匹配失败,则去掉匹配字段最前面的一个字,继续匹配。匹配是否失败需要借助分词字典(如双数组字典)是否查询到当前切割出的词来判断。
内存缓存系统的逻辑框架见下表:
术语匹配引擎分为双数组模块,缓存系统模块,查询条件及结果分析过滤模块,数据库接口模块,主要的功能包括术语建索引和术语查询。
本领域技术人员还应当理解,以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种基于双数组字典树进行术语匹配的方法,其特征是包括用双数组字典树建索引的步骤,及基于双数组字典树索引进行术语匹配的步骤;
所述用双数组字典树建索引的步骤包括:
(1)生成双数组字典树的定位根据指定的双数组字典树的数目,用哈希算法,对插入术语计算哈希值,然后对双数组字典树的数目取模,计算得出双数组字典树的位置编号,用以实现双数组字典树的定位;
(2)计算内存缓存系统的二级索引的ID
从mongo数据库里读出术语,将术语插入双数组字典树,返回术语在双数组字典树的pos值,将所述双数组字典树的位置编号,乘以1000万,加上所述pos值,再配合程序设定的前缀字串,得出内存缓存系统里的二级索引的ID;
(3)对术语建索引
根据二级索引的ID查询出插入术语在数据库里对应的数据记录的术语库ID和对象ID,用术语库ID和对象ID构造键值,形成二级索引的ID和键值的映射关系,存放于内存缓冲系统;
所述基于双数组字典树索引进行术语匹配的步骤包括:
(1)生成双数组字典树的定位
(2)分词
将标点符号滤掉,对于西方语言直接按空格拆分,对于中文系列的语言按单个字拆分,用逆向最大匹配算法结合双数组字典,分出词汇,以及词汇在双数组字典树里的位置;
(3)基于索引进行术语匹配
根据二级索引的ID查询插入术语在数据库里对应的数据记录的术语库ID和对象ID,过滤并查询出插入术语在数据库的完整信息。
2.根据权利要求1所述的基于双数组字典树进行术语匹配的方法,其特征是所述内存缓存系统是在术语语料所在的数据库之外。
3.根据权利要求1所述的基于双数组字典树进行术语匹配的方法,其特征是所述双数组字典树是通过遍历数据库获取字符串数据的源字符串和目标字符串生成的。
4.根据权利要求1所述的基于双数组字典树进行术语匹配的方法,其特征是所述内存缓存系统包括一级索引和二级索引;
所述一级索引的生成步骤是:将字符串数据插入双数组字典树,返回字符串数据在双数组字典树里的位置值,并通过位置值计算得出字符串数据ID,将字符串数据ID放入内存缓存系统里,用于实现字符串数据的一级索引;
所述二级索引的生成步骤是:建立字符串数据ID与字符串数据在数据库内部已建立索引的数据记录的关键字段的对应关系,用于实现字符串数据的二级索引。
5.根据权利要求4所述的基于双数组字典树进行术语匹配的方法,其特征是所述一级索引和二级索引被定时写入硬盘。
6.根据权利要求4所述的基于双数组字典树进行术语匹配的方法,其特征是所述一级索引和二级索引达到数量阈值后被写入硬盘。
7.根据权利要求4所述的基于双数组字典树进行术语匹配的方法,其特征是所述索引为双向索引。
8.根据权利要求1所述的基于双数组字典树进行术语匹配的方法,其特征是所述逆向最大匹配算法,从被处理字符串的末端开始匹配扫描,每次取最末端的2i个字符作为匹配字段,若匹配失败,则去掉匹配字段最前面的一个字,继续匹配,匹配是否失败需要借助分词字典(如双数组字典)是否查询到当前切割出的词来判断。
CN201610897567.2A 2016-10-15 2016-10-15 一种基于双数组字典树进行术语匹配的方法 Active CN106649286B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610897567.2A CN106649286B (zh) 2016-10-15 2016-10-15 一种基于双数组字典树进行术语匹配的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610897567.2A CN106649286B (zh) 2016-10-15 2016-10-15 一种基于双数组字典树进行术语匹配的方法

Publications (2)

Publication Number Publication Date
CN106649286A CN106649286A (zh) 2017-05-10
CN106649286B true CN106649286B (zh) 2019-07-02

Family

ID=58855930

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610897567.2A Active CN106649286B (zh) 2016-10-15 2016-10-15 一种基于双数组字典树进行术语匹配的方法

Country Status (1)

Country Link
CN (1) CN106649286B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107239549A (zh) * 2017-06-07 2017-10-10 传神语联网网络科技股份有限公司 数据库术语检索的方法、装置及终端
CN108304384B (zh) * 2018-01-29 2021-08-27 上海名轩软件科技有限公司 拆词方法及设备
CN109933803B (zh) * 2019-03-25 2023-06-02 北京金山数字娱乐科技有限公司 一种成语信息展示方法、展示装置、电子设备及存储介质
CN111581215B (zh) * 2020-05-07 2020-12-15 钟士平 数组树数据储存方法、快速查找方法及可读储存介质
CN112800316A (zh) * 2021-02-04 2021-05-14 北京易车互联信息技术有限公司 一种基于双数组字典树的搜索关键词提取系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102193914A (zh) * 2011-05-26 2011-09-21 中国科学院计算技术研究所 计算机辅助翻译的方法及系统
US8572140B1 (en) * 2006-11-18 2013-10-29 X-Engines, Inc. Deterministic lookup using hashed key in a multi-stride compressed trie structure
CN103823814A (zh) * 2012-11-19 2014-05-28 腾讯科技(深圳)有限公司 一种信息处理方法及装置
CN103914544A (zh) * 2014-04-03 2014-07-09 浙江大学 一种基于地址特征词的多层次快速中文地址匹配方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8572140B1 (en) * 2006-11-18 2013-10-29 X-Engines, Inc. Deterministic lookup using hashed key in a multi-stride compressed trie structure
CN102193914A (zh) * 2011-05-26 2011-09-21 中国科学院计算技术研究所 计算机辅助翻译的方法及系统
CN103823814A (zh) * 2012-11-19 2014-05-28 腾讯科技(深圳)有限公司 一种信息处理方法及装置
CN103914544A (zh) * 2014-04-03 2014-07-09 浙江大学 一种基于地址特征词的多层次快速中文地址匹配方法

Also Published As

Publication number Publication date
CN106649286A (zh) 2017-05-10

Similar Documents

Publication Publication Date Title
CN106649286B (zh) 一种基于双数组字典树进行术语匹配的方法
US11803596B2 (en) Efficient forward ranking in a search engine
US8713024B2 (en) Efficient forward ranking in a search engine
US7512596B2 (en) Processor for fast phrase searching
US9576006B2 (en) Method and system for storing data in a database
CN102063446B (zh) 一种建立倒排索引的方法及倒排索引装置
KR20200104789A (ko) 데이터 저장 및 조회 방법, 장치, 기기 및 매체
CN109857898A (zh) 一种海量数字音频指纹存储与检索的方法及系统
CN106503195A (zh) 一种基于搜索引擎的翻译词库检索方法及系统
CN101620607A (zh) 全文检索方法及系统
CN106484684B (zh) 一种对数据库中的数据进行术语匹配的方法
US6981002B2 (en) Docubase indexing, searching and data retrieval
CN105404677A (zh) 一种基于树形结构的检索方法
CN105589894A (zh) 文档索引建立方法和装置、文档检索方法和装置
CN111400323A (zh) 数据检索方法、系统、设备及存储介质
US20090055358A1 (en) Efficient processing of mapped boolean queries via generative indexing
CN107229714B (zh) 一种基于分布式数据库的全文搜索引擎
CN105912696A (zh) 一种基于对数归并的dns索引创建方法及查询方法
CN103064847A (zh) 索引装置、索引方法、检索装置、检索方法和检索系统
CN102609455B (zh) 一种实现汉语同音字检索的方法
US20170242880A1 (en) B-tree index structure with grouped index leaf pages and computer-implemented method for modifying the same
CN105426490A (zh) 一种基于树形结构的索引方法
CN112380445B (zh) 数据查询方法、装置、设备和存储介质
CN114036256A (zh) 基于Solr的非结构化文件检索方法、装置、设备及存储介质
CN106528630B (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
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Method for conducting term matching on basis of double-array lexicographic tree

Effective date of registration: 20200529

Granted publication date: 20190702

Pledgee: Guanggu Branch of Wuhan Rural Commercial Bank Co.,Ltd.

Pledgor: IOL (WUHAN) INFORMATION TECHNOLOGY Co.,Ltd.

Registration number: Y2020420000026

PE01 Entry into force of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20210623

Granted publication date: 20190702

Pledgee: Guanggu Branch of Wuhan Rural Commercial Bank Co.,Ltd.

Pledgor: IOL (WUHAN) INFORMATION TECHNOLOGY Co.,Ltd.

Registration number: Y2020420000026

PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A method of term matching based on double array dictionary tree

Effective date of registration: 20210629

Granted publication date: 20190702

Pledgee: Guanggu Branch of Wuhan Rural Commercial Bank Co.,Ltd.

Pledgor: IOL (WUHAN) INFORMATION TECHNOLOGY Co.,Ltd.

Registration number: Y2021420000060

PC01 Cancellation of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20230619

Granted publication date: 20190702

Pledgee: Guanggu Branch of Wuhan Rural Commercial Bank Co.,Ltd.

Pledgor: IOL (WUHAN) INFORMATION TECHNOLOGY Co.,Ltd.

Registration number: Y2021420000060