CN103336850A - 一种数据库检索系统中确定检索词的方法及装置 - Google Patents

一种数据库检索系统中确定检索词的方法及装置 Download PDF

Info

Publication number
CN103336850A
CN103336850A CN2013103121395A CN201310312139A CN103336850A CN 103336850 A CN103336850 A CN 103336850A CN 2013103121395 A CN2013103121395 A CN 2013103121395A CN 201310312139 A CN201310312139 A CN 201310312139A CN 103336850 A CN103336850 A CN 103336850A
Authority
CN
China
Prior art keywords
term
chinese
name
english
vocabulary
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.)
Granted
Application number
CN2013103121395A
Other languages
English (en)
Other versions
CN103336850B (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.)
Kunming University of Science and Technology
Original Assignee
Kunming University of Science and Technology
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 Kunming University of Science and Technology filed Critical Kunming University of Science and Technology
Priority to CN201310312139.5A priority Critical patent/CN103336850B/zh
Publication of CN103336850A publication Critical patent/CN103336850A/zh
Application granted granted Critical
Publication of CN103336850B publication Critical patent/CN103336850B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Document Processing Apparatus (AREA)
  • Machine Translation (AREA)

Abstract

本发明涉及一种数据库检索系统中确定检索词的方法及装置,属于数据库检索技术领域。本发明包括如下步骤:建立词汇表;对检索词进行预处理;检索数据库;如果返回结果集为空,则重新确定检索词,以便再次重新检索数据库。本发明还提供了一种数据库检索系统中确定检索词的装置,包括:键盘码生成单元;词汇表生成单元;检索词预处理单元;检索词分析确定单元。通过这种重新确定检索词的方法,不仅实现了容错处理,而且还能够支持中文、全拼码、英文及简拼码的混合检索数据库,提高了用户对检索系统的满意度。

Description

一种数据库检索系统中确定检索词的方法及装置
技术领域
本发明涉及一种数据库检索系统中确定检索词的方法及装置,属于数据库检索技术领域。
背景技术
在传统的关系型数据库中,往往采用SQL语句来检索数据库,对于中文字段的记录,检索数据库时,用户输入的中文检索词有时会存在拼写输入错误的情况,如检索矿物名称“钛铁矿”,如果用全拼输入法,可能会将检索词输入成“太铁矿”,就存在拼写纠错的问题,除了拼写错误外,还有可能存在其它的一些输入不完整或误输入的情况。SQL语句自身没有对检索词修正的功能,仅提供了精确和模糊(Like)两种检索方式。因此需要在系统中提供修正检索词的功能,对检索词进行修正,或者说是对检索词进行容错处理,否则将可能检索不到任何信息而使得用户满意度下降。目前多数搜索引擎都提供了拼写纠错的功能,如在百度上搜索“太铁矿”,搜索引擎系统就会提示“您要找的是不是:钛铁矿”。针对搜索引擎,通常采用概率字符串匹配算法,往往需要大量的概率统计的计算,导致处理过于复杂,而消耗较多的资源,不适合应用于专业领域数据库的检索系统中,也有根据编辑距离来纠正检索词中错误的方法,但这种方法不太适合中文检索词的修正。目前,在专业领域数据库检索系统中,对于中文检索词,多数情况采用拼音输入法,同音字输入错误是比较普遍的现象。
对检索词的修正,还需要考虑用户的一些使用习惯,这样有助于检索词的修正或容错。由于简拼码比较快捷,用户在进行检索时,也比较喜欢使用简拼码,目前多数搜索引擎都提供了对简拼码的支持,一般采用在下拉列表中列出与简拼码相关的检索频率较高的几个中文检索词提供给用户选择,然后再根据选择的中文检索词进行搜索的方法,而如果直接用简拼码搜索时,返回的检索结果往往很达到用户的预期。在专业领域的数据库系统中,一般采用专业术语来检索数据库,其检索词的范围远远小于互联网搜索引擎的要处理的海量数据,如果支持简拼码直接检索数据库,将为用户的使用提供极大的方便。另外,在专业领域中,还有研究者习惯采用英文进行检索,如果能够支持中英文混合检索,将更加方便用户的使用。
如果要满足用户的这些需求,在业务记录表中增加英文字段、简拼码字段以及全拼码字段等,这样必然导致过多的数据冗余,将带来很多负面影响:首先,数据记录的维护变得复杂;在检索数据库时,将这些字段组合成表达式,将可能导致查询表达式变得十分复杂而非常不利于数据库系统的优化并且无法进行容错处理;同时,为提高检索速度,需要对这些字段建立索引,这样也将使数据库系统维护索引过多而带来较大的开销。另外,现有技术对检索词修正处理和数据库的检索往往是分离的,要么强调检索词的修正或容错处理,而不考虑应用背景和实际需求,使得容错处理的分析、计算过于复杂而导致实用性较差;要么强调检索速度而忽略对检索词的修正处理,使得检索系统的用户体验较差,也就是说现有技术对用户多样化的需求、检索速度与容错处理等方面缺乏综合平衡的考虑。
发明内容
本发明要解决的技术问题是针对现有技术的上述缺陷,提供了一种数据库检索系统中确定检索词的方法。
本发明的技术方案是:一种数据库检索系统中确定检索词的方法,包括如下步骤: 
S11、建立词汇表,所述词汇表至少包括中文名、英文名、全拼码、简拼码;
S12、获得用户输入的检索词后,对所述检索词进行预处理,包括:判断检索词是否为中文检索词和清除检索词中的非法字符,若为中文检索词,执行步骤S13,若不为中文检索词,则执行步骤S14;
S13、检索数据库,如果返回结果集不为空,则结束检索,如果返回结果集为空,则执行步骤S14;
S14、生成所述检索词的全拼码、简拼码、英文名及中文名等,遍历词汇表并计算所述检索词的全拼码、简拼码、英文名及中文名等与词汇表中对应项的匹配度;
S15、根据匹配度及设定的阈值确定新的检索词,并利用所述新确定的检索词重新检索数据库。
优选的,所述检索词分为三类,包括:中文检索词、英文检索词和混合检索词,其中,中文检索词中仅包括中文字符,英文检索词中仅包括英文字符,其余为混合检索词;中文检索词的中文名为检索词自身,英文名为空字符串;英文检索词的英文名为检索词自身,中文名为空字符串;混合检索词的中文名、英文名为检索词自身。
优选的,检索词的中文名、英文名、全拼码、简拼码等的匹配度,是根据检索词该项中的字符与词汇表中对应项字符的匹配个数与它们中的最长的字符串长度的比值来度量的,其匹配度CD定义为:
CD=                                               
其中,LMAX为检索词的该项字符个数与词汇表中对应项的字符个数的最大值,IC为匹配的字符个数。
优选的,匹配检索词的过程中,词汇表的对应项的字符串从左向右,在检索词中,逐字符匹配,计算其匹配个数,忽略字符出现的先后顺序,对英文字符不区分大小写。
优选的,遍历词汇表时,对中文检索词依次遍历全拼码、中文名、简拼码等并计算匹配度;对英文检索词,依次遍历英文名、全拼码、简拼码等并计算其匹配度;对混合检索词,依次遍历全拼码、英文名、简拼码和中文名等并计算其匹配度;若在遍历计算过程中,在词汇表中查找到全拼码或者英文名与检索词的全拼码或者英文名匹配度为1的词汇,则确定该条词汇的中文名为新的检索词,结束遍历。
优选的,遍历完整个词汇表后,确定新的检索词时,选择各项匹配度之和最高而且大于指定阈值的词汇的中文名作为新的检索词;对英文检索词,若全拼码和简拼码相同,全拼码没有匹配度为1而简拼码有匹配度为1,则选择所有简拼码匹配度为1的词汇的中文名作为新的检索词。
本发明还提供了一种数据库检索系统中确定检索词的装置,包括:
词汇表生成单元,用于在内存中建立词汇表,所述词汇表至少包括中文名、英文名、全拼码、简拼码;
检索词预处理单元,用于对检索词进行预处理,具体包括:判断检索词是否为中文检索词和清除检索词中的非法字符,若为中文检索词,则检索数据库,如果检索结果集为空则将检索词传送给检索词分析确定单元;若不为中文检索词,则将检索词传送给检索词分析确定单元;
检索词分析确定单元,用于分析和确定新的检索词,具体包括:
遍历计算模块,用于生成所述检索词的全拼码、简拼码、英文名及中文名等,遍历词汇表并计算所述检索词的全拼码、简拼码、英文名及中文名等与词汇表中对应项的匹配度;所述检索词分为三类,包括:中文检索词、英文检索词和混合检索词,其中,中文检索词中仅包括中文字符,英文检索词中仅包括英文字符,其余为混合检索词;中文检索词的中文名为检索词自身,英文名为空字符串;英文检索词的英文名为检索词自身,中文名为空字符串;混合检索词的中文名、英文名为检索词自身;检索词的中文名、英文名、全拼码、简拼码等的匹配度,是根据检索词该项中的字符与词汇表中对应项字符的匹配个数与它们中的最长的字符串长度的比值来度量的,其匹配度CD定义为:
CD=
Figure 331197DEST_PATH_IMAGE002
其中,LMAX为检索词的该项字符个数与词汇表中对应项的字符个数的最大值,IC为匹配的字符个数;遍历词汇表时,对中文检索词依次遍历全拼码、中文名、简拼码等并计算匹配度;对英文检索词,依次遍历英文名、全拼码、简拼码等并计算其匹配度;对混合检索词,依次遍历全拼码、英文名、简拼码和中文名等并计算其匹配度;在匹配检索词的过程中,词汇表的对应项的字符串从左向右,在检索词中,逐字符匹配,计算其匹配个数,忽略字符出现的先后顺序,对英文字符不区分大小写;若在遍历计算过程中,在词汇表中查找到全拼码或者英文名与检索词的全拼码或者英文名匹配度为1的词汇,则确定该条词汇的中文名为新的检索词,结束遍历;
选择确定模块,用于根据匹配度及设定的阈值确定新的检索词,包括:当遍历完整个词汇表后,确定新的检索词时,选择各项匹配度之和最高而且大于指定阈值的词汇的中文名作为新的检索词;对英文检索词,若全拼码和简拼码相同,全拼码没有匹配度为1而简拼码有匹配度为1,则选择所有简拼码匹配度为1的词汇的中文名作为新的检索词。
优选的,所述装置还包括键盘码生成单元,用于生成中文词汇的全拼码、简拼码、五笔码或五笔简码,为词汇表生成单元或检索词分析确定单元提供检索词的简拼码、全拼码、五笔码或五笔简码,具体包括:获得词汇表生成单元或检索词分析确定单元传送的检索词后,通过查找汉字的拼音、五笔键盘码表生成中文字符的全拼码、简拼码、五笔码和五笔简码,英文字符的全拼码、简拼码、五笔码或五笔简码为其自身;将生成的所述检索词的全拼码、简拼码、五笔码或五笔简码返回给词汇表生成单元或检索词分析确定单元。
本发明的有益效果是:本发明的基本思路是基于综合平衡的考虑,首先对检索词进行快速的预处理和初步判断,然后直接检索数据库,当检索不到有效的数据时,再通过重新确定检索词的方法来现实对检索词的容错,这种方法将容错处理与提高检索速度结合起来,通过这种重新确定检索词的方法,不仅实现了容错处理,而且还能够支持中文、全拼码、英文、简拼码以及五笔码的混合检索数据库,在较大程度上提高了用户对检索系统的满意度;在混合检索时,通过确定新的检索词,无需建立多个字段,避免了数据冗余的同时,使得数据库系统仅需对单一的检索字段建立索引,而无需对多个字段建立索引,减少了数据库系统维护索引的开销;将使用习惯、需求和容错结合起来,采用多种码结合起来辅助容错处理,提高了容错能力;通过这种重新确定检索词,能够有效避免SQL注入攻击,提高了系统的安全性。
附图说明
图1是本发明的一种数据库检索系统中确定检索词的方法的主要流程图;
图2是本发明的一种数据库检索系统中确定检索词的装置的结构框图。
具体实施方式
下面结合附图和具体实施方式,对本发明作进一步说明。
一种数据库检索系统中确定检索词的方法,包括如下步骤: 
S11、建立词汇表,所述词汇表至少包括中文名、英文名、全拼码、简拼码;
S12、获得用户输入的检索词后,对所述检索词进行预处理,包括:判断检索词是否为中文检索词和清除检索词中的非法字符,若为中文检索词,执行步骤S13,若不为中文检索词,则执行步骤S14;
S13、检索数据库,如果返回结果集不为空,则结束检索,如果返回结果集为空,则执行步骤S14;
S14、生成所述检索词的全拼码、简拼码、英文名及中文名等,遍历词汇表并计算所述检索词的全拼码、简拼码、英文名及中文名等与词汇表中对应项的匹配度;
S15、根据匹配度及设定的阈值确定新的检索词,并利用所述新确定的检索词重新检索数据库。
优选的,所述检索词分为三类,包括:中文检索词、英文检索词和混合检索词,其中,中文检索词中仅包括中文字符,英文检索词中仅包括英文字符,其余为混合检索词;中文检索词的中文名为检索词自身,英文名为空字符串;英文检索词的英文名为检索词自身,中文名为空字符串;混合检索词的中文名、英文名为检索词自身。
优选的,检索词的中文名、英文名、全拼码、简拼码等的匹配度,是根据检索词该项中的字符与词汇表中对应项字符的匹配个数与它们中的最长的字符串长度的比值来度量的,其匹配度CD定义为:
CD=
Figure 726406DEST_PATH_IMAGE002
其中,LMAX为检索词的该项字符个数与词汇表中对应项的字符个数的最大值,IC为匹配的字符个数。
优选的,匹配检索词的过程中,词汇表的对应项的字符串从左向右,在检索词中,逐字符匹配,计算其匹配个数,忽略字符出现的先后顺序,对英文字符不区分大小写。
优选的,遍历词汇表时,对中文检索词依次遍历全拼码、中文名、简拼码等并计算匹配度;对英文检索词,依次遍历英文名、全拼码、简拼码等并计算其匹配度;对混合检索词,依次遍历全拼码、英文名、简拼码和中文名等并计算其匹配度;若在遍历计算过程中,在词汇表中查找到全拼码或者英文名与检索词的全拼码或者英文名匹配度为1的词汇,则确定该条词汇的中文名为新的检索词,结束遍历。
优选的,遍历完整个词汇表后,确定新的检索词时,选择各项匹配度之和最高而且大于指定阈值的词汇的中文名作为新的检索词;对英文检索词,若全拼码和简拼码相同,全拼码没有匹配度为1而简拼码有匹配度为1,则选择所有简拼码匹配度为1的词汇的中文名作为新的检索词。
本发明还提供了一种数据库检索系统中确定检索词的装置,包括:
词汇表生成单元,用于在内存中建立词汇表,所述词汇表至少包括中文名、英文名、全拼码、简拼码;
检索词预处理单元,用于对检索词进行预处理,具体包括:判断检索词是否为中文检索词和清除检索词中的非法字符,若为中文检索词,则检索数据库,如果检索结果集为空则将检索词传送给检索词分析确定单元;若不为中文检索词,则将检索词传送给检索词分析确定单元;
检索词分析确定单元,用于分析和确定新的检索词,具体包括:
遍历计算模块,用于生成所述检索词的全拼码、简拼码、英文名及中文名等,遍历词汇表并计算所述检索词的全拼码、简拼码、英文名及中文名等与词汇表中对应项的匹配度;所述检索词分为三类,包括:中文检索词、英文检索词和混合检索词,其中,中文检索词中仅包括中文字符,英文检索词中仅包括英文字符,其余为混合检索词;中文检索词的中文名为检索词自身,英文名为空字符串;英文检索词的英文名为检索词自身,中文名为空字符串;混合检索词的中文名、英文名为检索词自身;检索词的中文名、英文名、全拼码、简拼码等的匹配度,是根据检索词该项中的字符与词汇表中对应项字符的匹配个数与它们中的最长的字符串长度的比值来度量的,其匹配度CD定义为:
CD=
Figure 478462DEST_PATH_IMAGE002
其中,LMAX为检索词的该项字符个数与词汇表中对应项的字符个数的最大值,IC为匹配的字符个数;遍历词汇表时,对中文检索词依次遍历全拼码、中文名、简拼码等并计算匹配度;对英文检索词,依次遍历英文名、全拼码、简拼码等并计算其匹配度;对混合检索词,依次遍历全拼码、英文名、简拼码和中文名等并计算其匹配度;在匹配检索词的过程中,词汇表的对应项的字符串从左向右,在检索词中,逐字符匹配,计算其匹配个数,忽略字符出现的先后顺序,对英文字符不区分大小写;若在遍历计算过程中,在词汇表中查找到全拼码或者英文名与检索词的全拼码或者英文名匹配度为1的词汇,则确定该条词汇的中文名为新的检索词,结束遍历;
选择确定模块,用于根据匹配度及设定的阈值确定新的检索词,包括:当遍历完整个词汇表后,确定新的检索词时,选择各项匹配度之和最高而且大于指定阈值的词汇的中文名作为新的检索词;对英文检索词,若全拼码和简拼码相同,全拼码没有匹配度为1而简拼码有匹配度为1,则选择所有简拼码匹配度为1的词汇的中文名作为新的检索词。
优选的,所述装置还包括键盘码生成单元,用于生成中文词汇的全拼码、简拼码、五笔码或五笔简码,为词汇表生成单元或检索词分析确定单元提供检索词的简拼码、全拼码、五笔码或五笔简码,具体包括:获得词汇表生成单元或检索词分析确定单元传送的检索词后,通过查找汉字的拼音、五笔键盘码表生成中文字符的全拼码、简拼码、五笔码和五笔简码,英文字符的全拼码、简拼码、五笔码或五笔简码为其自身;将生成的所述检索词的全拼码、简拼码、五笔码或五笔简码返回给词汇表生成单元或检索词分析确定单元。
如图1所示,为本发明所述方法的主要流程。该方法包括:
S11、建立词汇表,所述词汇表至少包括中文名、英文名、全拼码、简拼码。
由于针对专业领域,往往专业词汇的数量远远小于搜索引擎所面对的海量数据,例如冶金领域常常涉及的金属矿物有数千种。词汇表的建立,通常可以通过专用的编辑软件来建立并保存在数据库中,在数据库检索系统运行时,加载到内存中。也可以通过从数据库的表中提取词汇表,从数据库的相关业务记录表中提取主要的中文或英文词汇,然后根据中文的汉字拼音表,用程序来自动生成全拼码和简拼码。如在冶金领域,可构造如表1所示的词汇表(为便于描述,仅列举了5条词汇和全拼码、简拼码,未列举五笔码和五笔简码)
Figure 2013103121395100002DEST_PATH_IMAGE004
表1
S12、获得用户输入的检索词后,对所述检索词进行预处理,包括:判断检索词是否为中文检索词和清除检索词中的非法字符,若为中文检索词,执行步骤S13,若不为中文检索词,则执行步骤S14。
本实施例中,对检索词的预处理,是平衡策略的一种考虑,以期以最快的方式减少用户输入的错误。可以通过建立一个非法字符表,并依据所述非法字符表将检索词中的非法字符清除。通常的非法字符包括如SQL入侵中常用的单引号“’”,或者在专业词汇中不可能出现的而容易被误输入的一些字符,如“{”、“:”、“[”“?”“=”等等。根据字符内码容易判知该字符是否为中文字符,对检索词中可根据是否包含非中文字符来判断该检索词是否为全中文字符。
S13、检索数据库,如果返回结果集不为空,则结束检索,如果返回结果集为空,则执行步骤S14。
从修正检索词的角度来看,检索数据库,也是验证用户检索词是否正确的一种手段。如果返回的检索结果为空,则表明检索词是中文检索词,但有错误,需要修正或进行容错处理。
S14、生成所述检索词的全拼码、简拼码、英文名及中文名等,遍历词汇表并计算所述检索词的全拼码、简拼码、英文名及中文名等与词汇表中对应项的匹配度,其中,所述检索词的中文名、英文名为检索词自身。
生成简拼码和全拼码的方法,一般是采用在计算机中建立汉字的拼音表,通过查找拼音表来得到该汉字的拼音码。如检索词“钛精矿”其简拼码为“TJK”,全拼码为“TaiJingKuang”
优选的,检索词分为中文检索词、英文检索词和混合检索词;中文检索词中仅包括中文字符,英文检索词中仅包括英文字符,其余为混合检索词;在步骤S14中,当检索词为中文检索词,所述检索词的中文名为检索词自身,英文名为空字符串;当检索词为英文检索词,所述检索词的英文名为检索词自身,中文名为空字符串;当检索词为中英文混合检索词,所述检索词的中文名、英文名为检索词自身。
将检索词分类,是为针对检索词不同类型的特性以优化处理方法,以提高速度。
优选的,检索词的中文名、英文名、全拼码、简拼码等的匹配度,是根据检索词该项中的字符与词汇表中对应项字符的匹配个数与它们中的最长的字符串长度的比值来度量的,其匹配度CD定义为:
CD=
Figure 113973DEST_PATH_IMAGE002
其中,LMAX为检索词的该项字符个数与词汇表中对应项的字符个数的最大值,IC为匹配的字符个数。
优选的,匹配检索词的过程中,词汇表的对应项的字符串从左向右,在检索词中,逐字符匹配,计算其匹配个数,忽略字符出现的先后顺序,对英文字符不区分大小写。
例如当检索词为“钛金矿”其中文名字符个数为3,全拼码“TaiJingKuang”字符个数为12,简拼码“TJK”字符个数为3,与词汇表中 “钛精矿”的中文名、英文名(TitaniumConcentrates)、全拼码和简拼码的匹配度分别为:2/3≈0.67、0/20=0、12/12=1和3/3=1,其中,中文检索词的英文名为空值。如果当检索词为“T钛精矿”,中英文字符混合,其中文名、英文名均为其自身即“T钛精矿”,字符个数为4,其全拼码“TTaiJingKuang”字符个数为13,简拼码为“TTJK”字符个数为4与词汇表中“钛精矿”的中文名、英文名、全拼码和简拼码的匹配度分别为:3/4≈0.75、1/20=0.05、12/13≈0.92、3/4≈0.75。匹配度有的文献也叫相似度,在计算匹配度时,采用两个字符串中的最大长度做为分母,而没有采用常规的匹配个数乘2后再除以两个字符串长度之和,其目的是为了进一步的简化运算,同时这种方式除完全匹配时匹配度为1,其它情况其匹配度的值比常规的计算方式都要低一些,这样也就更能够反应出差异性,便于确定和选择出更为合适的检索词。如“T钛精矿”与“钛精矿”,按通常计算方式为:2*3/7≈0.86,而按本实施例的计算方法则为0.75。
在很多专业领域,如冶金领域,很少有构成两个专业词汇(包括中文、英文及全拼码,简拼码中这种情况也是很少的)的字符相同,仅仅顺序不同的情况,因此在计算匹配度时,可以忽略字符出现的先后顺序,这样可以在较大程度上提高计算匹配度的速度,而对检索词的容错处理来说,很多情况下,也有必要忽略字符的先后顺序。例如“精铜矿”与“铜精矿”按本实施例的匹配度计算方法,其匹配度为1,这样有助于容错处理。字符串匹配度计算的方法有多种,一般分为有序匹配和无序匹配,如LCS算法属于有序匹配算法,而GST、RKR-GST算法属于无序匹配算法,而无序匹配算法相对快一些。在本实施例中采用无序匹配,而且最小匹配长度为1,这种匹配度度量方法是一种比较灵活快捷的度量方法,采用这种度量方法,就可以忽略匹配字符出现的先后顺序而提高了匹配度计算的速度,非常适合应用于容错处理中,简便、快捷、实用。
优选的,遍历词汇表时,对中文检索词依次遍历全拼码、中文名、简拼码等并计算匹配度;对英文检索词,依次遍历英文名、全拼码、简拼码等并计算其匹配度;对混合检索词,依次遍历全拼码、英文名、简拼码和中文名等并计算其匹配度;若在遍历计算过程中,在词汇表中查找到全拼码或者英文名与检索词的全拼码或者英文名匹配度为1的词汇,则确定该条词汇的中文名为新的检索词,结束遍历。
进入到遍历词汇表环节的检索词要么是非中文检索词,要么是有拼写错误的检索词,将检索词划分为中文检索词、英文检索词和混合检索词,就是要根据检索词的特性来尽量减少匹配项或提前结束匹配以优化词汇表的查找,提高执行效率。例如对中文检索词,往往是由于拼写错误,可以考虑仅匹配全拼码以提高效率,但匹配项太少,又存在不能凸显相近词汇间差异的问题,因此,也需要综合平衡的考虑。
在容错处理中,通常情况下,应该选择快捷的匹配方式,从左向右的正向匹配是计算匹配度的一种比较快捷的方式,并且要尽量提高匹配度而忽略英文字符的大小写,以及忽略字符出现先后顺序。
S15、根据匹配度及设定的阈值确定新的检索词,并利用所述新确定的检索词重新检索数据库。
优选的,遍历完整个词汇表后,确定新的检索词时,选择各项匹配度之和最高而且大于指定阈值的词汇的中文名作为新的检索词;对英文检索词,若全拼码和简拼码相同,全拼码没有匹配度为1而简拼码有匹配度为1,则选择所有简拼码匹配度为1的词汇的中文名作为新的检索词。
如检索词“钛金矿”在词汇表中对应各项的匹配度如表2所示。
Figure 2013103121395100002DEST_PATH_IMAGE006
表2
由表2可知“钛精矿”的各项匹配度的总和最大,为2.66。如果对中文检索词,其阈值设定为,简拼码的匹配度为0.8,全拼码为0.6,中文名为0.3,则可确定“钛精矿”为新的检索词。在设定阈值时,往往简拼码、英文名的阈值都需要设定高一些。
如图2所示,为本发明提出的一种数据库检索系统中确定检索词的装置200,包括:
词汇表生成单元202,用于在内存中建立词汇表,所述词汇表至少包括中文名、英文名、全拼码、简拼码;
检索词预处理单元203,用于对检索词进行预处理,具体包括:判断检索词是否为中文检索词和清除检索词中的非法字符,若为中文检索词,则检索数据库,如果检索结果集为空则将检索词传送给检索词分析确定单元;若不为中文检索词,则将检索词传送给检索词分析确定单元;
检索词分析确定单元204,用于分析和确定新的检索词,具体包括:
遍历计算模块,用于生成所述检索词的全拼码、简拼码、英文名及中文名等,遍历词汇表并计算所述检索词的全拼码、简拼码、英文名及中文名等与词汇表中对应项的匹配度;所述检索词分为三类,包括:中文检索词、英文检索词和混合检索词,其中,中文检索词中仅包括中文字符,英文检索词中仅包括英文字符,其余为混合检索词;中文检索词的中文名为检索词自身,英文名为空字符串;英文检索词的英文名为检索词自身,中文名为空字符串;混合检索词的中文名、英文名为检索词自身;检索词的中文名、英文名、全拼码、简拼码等的匹配度,是根据检索词该项中的字符与词汇表中对应项字符的匹配个数与它们中的最长的字符串长度的比值来度量的,其匹配度CD定义为:
CD=
Figure 318690DEST_PATH_IMAGE002
其中,LMAX为检索词的该项字符个数与词汇表中对应项的字符个数的最大值,IC为匹配的字符个数;遍历词汇表时,对中文检索词依次遍历全拼码、中文名、简拼码等并计算匹配度;对英文检索词,依次遍历英文名、全拼码、简拼码等并计算其匹配度;对混合检索词,依次遍历全拼码、英文名、简拼码和中文名等并计算其匹配度;在匹配检索词的过程中,词汇表的对应项的字符串从左向右,在检索词中,逐字符匹配,计算其匹配个数,忽略字符出现的先后顺序,对英文字符不区分大小写;若在遍历计算过程中,在词汇表中查找到全拼码或者英文名与检索词的全拼码或者英文名匹配度为1的词汇,则确定该条词汇的中文名为新的检索词,结束遍历;
选择确定模块,用于根据匹配度及设定的阈值确定新的检索词,包括:当遍历完整个词汇表后,确定新的检索词时,选择各项匹配度之和最高而且大于指定阈值的词汇的中文名作为新的检索词;对英文检索词,若全拼码和简拼码相同,全拼码没有匹配度为1而简拼码有匹配度为1,则选择所有简拼码匹配度为1的词汇的中文名作为新的检索词。
优选的,所述装置还包括键盘码生成单元201:用于生成中文词汇的全拼码、简拼码、五笔码或五笔简码,为词汇表生成单元202或检索词分析确定单元204提供检索词的简拼码、全拼码、五笔码或五笔简码,具体包括:获得词汇表生成单元202或检索词分析确定单元204传送的检索词后,通过查找汉字的拼音、五笔键盘码表生成中文字符的全拼码、简拼码、五笔码和五笔简码,英文字符的全拼码、简拼码、五笔码或五笔简码为其自身;将生成的所述检索词的全拼码、简拼码、五笔码或五笔简码返回给词汇表生成单元202或检索词分析确定单元204。
下面将进一步描述本发明在应用中的几个具体实例。
当用户输入检索词“钛金矿”,检索词预处理单元203判断其为中文检索词后,将其提交给数据库库检索系统进行检索,由于“钛金矿”是拼写输入错误,将无法在系统中检索到任何信息。当检索词预处理单元203判断到检索结果集为空后,将检索词“钛金矿”传送给检索词分析确定单元204。检索词分析确定单元204首先通过键盘码生成单元201生成所述检索词的全拼码“TaiJingKuang”、简拼码“TJK”,中文名为检索词自身,而英文名则为空。通过在词汇表中查询计算(计算的示例如表2所示),进一步可确定新的检索词为“钛精矿”,并将新的检索词“钛精矿”传送给数据库检索系统重新进行检索。
当用户输入检索词“MTK”,检索词预处理单元203判断其非中文检索词后,将检索词“MTK”直接传送给检索词分析确定单元204。检索词分析确定单元204先生成所述检索词的全拼码“MTK”、简拼码“MTK”,其中文名为空,而其英文名为“MTK”。通过在词汇表中查询计算,计算的示例如表3所示
Figure 2013103121395100002DEST_PATH_IMAGE008
表3
由表3可知,“锰铁矿”的匹配度的总和为1.3,为最高,这样进一步可确定新的检索词为“锰铁矿”,并将新的检索词“锰铁矿”传送给数据库检索系统重新进行检索。
如果用户输入的检索词为“Magnetite”,检索词预处理单元203判断其非中文检索词后,将检索词“Magnetite”直接传送给检索词分析确定单元204。检索词分析确定单元204先生成所述检索词的全拼码“Magnetite”、简拼码“Magnetite”,中文名为空,而英文名为“Magnetite”。通过在词汇表中查询计算,在英文名中与“Magnetite”匹配度为1,由此可以确定其新的检索词为“磁铁矿”。
当检索词为“TJK”,检索词预处理单元203判断其非中文检索词后,将检索词“TJK”传送给检索词分析确定单元204。检索词分析确定单元204先生成所述检索词的全拼码“TJK”、简拼码“TJK”,其中文名为空,而其英文名为“TJK”。通过在词汇表中查询计算,“钛精矿”、“铜精矿”的简拼码匹配度均为1,“铜精矿”全拼码的匹配度为0.23,“钛精矿”全拼码的匹配度为0.25,依据优选的选择规则,由此,得到新的检索词为“钛精矿”、“铜精矿”两个检索词。
又如,当检索词为“同精’矿”,检索词预处理单元203清除非法字符“’”后,得到检索词“同精矿”,判断其为中文检索词,将“同精矿”提交给数据库检索系统进行检索,由于拼写输入错误,返回空的检索结果集。当检索词预处理单元203判断到检索结果集为空后,将检索词“同精矿”传送给检索词分析确定单元204。检索词分析确定单元204首先生成所述检索词的全拼码“TongJingKuang”、简拼码“TJK”,中文名为检索词自身,而英文名则为空。通过在词汇表中查询计算,“钛精矿”、“铜精矿”简拼码的匹配度均为1,但检索词的全拼码与简拼码不同,与“钛精矿”、“铜精矿”全拼码的匹配度分别为0.77和1,按优选方案的规则,确定“铜精矿”为新的检索词。
这种建立专业领域词汇表,利用词汇表进一步分析确定新的检索词的方法具有较好的扩展性,如果在词汇表中增加五笔码、五笔简码那么就可以实现从字形上进行容错处理。比如“铜精矿”的五笔码为“QMGKOGEDYT”五笔简码为“QOD”,而“同精矿”的五笔简码为“MOGEDYT”五笔简码为“MOD”;“钛精矿”的五笔码为“QDYOGEDYT”五笔简码为“MOD”,而“太精矿”的五笔码为“DYOGEDYT”五笔简码为“DOD”。对于“钛”和“太”,全拼码、简拼码完全相同,但从五笔字根表可知“Q”为金属偏旁,缺少Q表明为拼写错误,五笔码或五笔简码不仅适合五笔输入习惯的纠错,而且通过多种码来计算匹配度以辅助容错,能够得到更好的容错效果。当然,还可以在专业领域词汇表中进一步增加其它语言,如日语等,这样也就能够方便的实现多语种检索数据库而无需修改数据库的结构。不过,也存在采用的编码过多,就会增加计算和判断的复杂度,而消耗较多的计算时间,使得用户体验下降。因此,也需要根据实际的应用情况综合平衡的考虑来选择编码,在本实施例中,根据实际情况,如果使用五笔的用户较少也就可以不选择五笔码或五笔简码来提高计算的速度,而对多语言的检索仅提供英文。
上面结合附图对本发明的具体实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。

Claims (8)

1.一种数据库检索系统中确定检索词的方法,其特征在于,包括如下步骤:
S11、建立词汇表,所述词汇表至少包括中文名、英文名、全拼码、简拼码;
S12、获得用户输入的检索词后,对所述检索词进行预处理,包括:判断检索词是否为中文检索词和清除检索词中的非法字符,若为中文检索词,执行步骤S13,若不为中文检索词,则执行步骤S14;
S13、检索数据库,如果返回结果集不为空,则结束检索,如果返回结果集为空,则执行步骤S14;
S14、生成所述检索词的全拼码、简拼码、英文名及中文名等,遍历词汇表并计算所述检索词的全拼码、简拼码、英文名及中文名等与词汇表中对应项的匹配度;
S15、根据匹配度及设定的阈值确定新的检索词,并利用所述新确定的检索词重新检索数据库。
2.根据权利要求1所述的方法,其特征在于:所述检索词分为三类,包括:中文检索词、英文检索词和混合检索词,其中,中文检索词中仅包括中文字符,英文检索词中仅包括英文字符,其余为混合检索词;中文检索词的中文名为检索词自身,英文名为空字符串;英文检索词的英文名为检索词自身,中文名为空字符串;混合检索词的中文名、英文名为检索词自身。
3.根据权利要求1所述的方法,其特征在于:所述检索词的中文名、英文名、全拼码、简拼码等的匹配度,是根据检索词该项中的字符与词汇表中对应项字符的匹配个数与它们中的最长的字符串长度的比值来度量的,其匹配度CD定义为:
CD=                                                
其中,LMAX为检索词的该项字符个数与词汇表中对应项的字符个数的最大值,IC为匹配的字符个数。
4.根据权利要求1所述的方法,其特征在于:匹配检索词的过程中,词汇表的对应项的字符串从左向右,在检索词中,逐字符匹配,计算其匹配个数,忽略字符出现的先后顺序,对英文字符不区分大小写。
5.根据权利要求1至4任一项所述的方法,其特征于:遍历词汇表时,对中文检索词依次遍历全拼码、中文名、简拼码等并计算匹配度;对英文检索词,依次遍历英文名、全拼码、简拼码等并计算其匹配度;对混合检索词,依次遍历全拼码、英文名、简拼码和中文名等并计算其匹配度;若在遍历计算过程中,在词汇表中查找到全拼码或者英文名与检索词的全拼码或者英文名匹配度为1的词汇,则确定该条词汇的中文名为新的检索词,结束遍历。
6.根据权利要求5所述的方法,其特征在于:遍历完整个词汇表后,确定新的检索词时,选择各项匹配度之和最高而且大于指定阈值的词汇的中文名作为新的检索词;对英文检索词,若全拼码和简拼码相同,全拼码没有匹配度为1而简拼码有匹配度为1,则选择所有简拼码匹配度为1的词汇的中文名作为新的检索词。
7.一种数据库检索系统中确定检索词的装置,其特征在于,包括:
词汇表生成单元,用于在内存中建立词汇表,所述词汇表至少包括中文名、英文名、全拼码、简拼码;
检索词预处理单元,用于对检索词进行预处理,具体包括:判断检索词是否为中文检索词和清除检索词中的非法字符,若为中文检索词,则检索数据库,如果检索结果集为空则将检索词传送给检索词分析确定单元;若不为中文检索词,则将检索词传送给检索词分析确定单元;
检索词分析确定单元,用于分析和确定新的检索词,具体包括:
遍历计算模块,用于生成所述检索词的全拼码、简拼码、英文名及中文名等,遍历词汇表并计算所述检索词的全拼码、简拼码、英文名及中文名等与词汇表中对应项的匹配度;所述检索词分为三类,包括:中文检索词、英文检索词和混合检索词,其中,中文检索词中仅包括中文字符,英文检索词中仅包括英文字符,其余为混合检索词;中文检索词的中文名为检索词自身,英文名为空字符串;英文检索词的英文名为检索词自身,中文名为空字符串;混合检索词的中文名、英文名为检索词自身;检索词的中文名、英文名、全拼码、简拼码等的匹配度,是根据检索词该项中的字符与词汇表中对应项字符的匹配个数与它们中的最长的字符串长度的比值来度量的,其匹配度CD定义为:
CD=
Figure 539802DEST_PATH_IMAGE001
其中,LMAX为检索词的该项字符个数与词汇表中对应项的字符个数的最大值,IC为匹配的字符个数;遍历词汇表时,对中文检索词依次遍历全拼码、中文名、简拼码等并计算匹配度;对英文检索词,依次遍历英文名、全拼码、简拼码等并计算其匹配度;对混合检索词,依次遍历全拼码、英文名、简拼码和中文名等并计算其匹配度;在匹配检索词的过程中,词汇表的对应项的字符串从左向右,在检索词中,逐字符匹配,计算其匹配个数,忽略字符出现的先后顺序,对英文字符不区分大小写;若在遍历计算过程中,在词汇表中查找到全拼码或者英文名与检索词的全拼码或者英文名匹配度为1的词汇,则确定该条词汇的中文名为新的检索词,结束遍历;
选择确定模块,用于根据匹配度及设定的阈值确定新的检索词,包括:当遍历完整个词汇表后,确定新的检索词时,选择各项匹配度之和最高而且大于指定阈值的词汇的中文名作为新的检索词;对英文检索词,若全拼码和简拼码相同,全拼码没有匹配度为1而简拼码有匹配度为1,则选择所有简拼码匹配度为1的词汇的中文名作为新的检索词。
8.根据权利要求7所述的装置,其特征在于:还包括键盘码生成单元,用于生成中文词汇的全拼码、简拼码、五笔码或五笔简码,为词汇表生成单元或检索词分析确定单元提供检索词的简拼码、全拼码、五笔码或五笔简码,具体包括:获得词汇表生成单元或检索词分析确定单元传送的检索词后,通过查找汉字的拼音、五笔键盘码表生成中文字符的全拼码、简拼码、五笔码和五笔简码,英文字符的全拼码、简拼码、五笔码或五笔简码为其自身;将生成的所述检索词的全拼码、简拼码、五笔码或五笔简码返回给词汇表生成单元或检索词分析确定单元。
CN201310312139.5A 2013-07-24 2013-07-24 一种数据库检索系统中确定检索词的方法及装置 Expired - Fee Related CN103336850B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310312139.5A CN103336850B (zh) 2013-07-24 2013-07-24 一种数据库检索系统中确定检索词的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310312139.5A CN103336850B (zh) 2013-07-24 2013-07-24 一种数据库检索系统中确定检索词的方法及装置

Publications (2)

Publication Number Publication Date
CN103336850A true CN103336850A (zh) 2013-10-02
CN103336850B CN103336850B (zh) 2016-09-21

Family

ID=49245015

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310312139.5A Expired - Fee Related CN103336850B (zh) 2013-07-24 2013-07-24 一种数据库检索系统中确定检索词的方法及装置

Country Status (1)

Country Link
CN (1) CN103336850B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106021504A (zh) * 2016-05-20 2016-10-12 深圳Tcl数字技术有限公司 字符串模糊匹配方法及装置
CN106708814A (zh) * 2015-07-16 2017-05-24 威海捷讯通信技术有限公司 一种基于关系型数据库的检索方法及装置
CN107729351A (zh) * 2017-08-29 2018-02-23 天翼爱音乐文化科技有限公司 基于音乐搜索引擎的多层查询纠正方法及系统
CN108388635A (zh) * 2018-02-24 2018-08-10 杭州朗和科技有限公司 数据搜索方法、装置、介质和计算设备
CN109117427A (zh) * 2017-06-22 2019-01-01 索意互动(北京)信息技术有限公司 一种客户端、服务器、检索方法及其系统
CN112580691A (zh) * 2020-11-25 2021-03-30 北京北大千方科技有限公司 一种元数据字段的术语匹配方法、匹配系统和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101206673A (zh) * 2007-12-25 2008-06-25 北京科文书业信息技术有限公司 网络搜索过程中关键词的智能纠错系统及方法
CN101984422A (zh) * 2010-10-18 2011-03-09 百度在线网络技术(北京)有限公司 一种容错文本查询的方法和设备
CN101989282A (zh) * 2009-07-31 2011-03-23 中国移动通信集团公司 对中文查询词进行纠错的方法及其装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101206673A (zh) * 2007-12-25 2008-06-25 北京科文书业信息技术有限公司 网络搜索过程中关键词的智能纠错系统及方法
CN101989282A (zh) * 2009-07-31 2011-03-23 中国移动通信集团公司 对中文查询词进行纠错的方法及其装置
CN101984422A (zh) * 2010-10-18 2011-03-09 百度在线网络技术(北京)有限公司 一种容错文本查询的方法和设备

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106708814A (zh) * 2015-07-16 2017-05-24 威海捷讯通信技术有限公司 一种基于关系型数据库的检索方法及装置
CN106708814B (zh) * 2015-07-16 2020-04-10 威海捷讯通信技术有限公司 一种基于关系型数据库的检索方法及装置
CN106021504A (zh) * 2016-05-20 2016-10-12 深圳Tcl数字技术有限公司 字符串模糊匹配方法及装置
WO2017197802A1 (zh) * 2016-05-20 2017-11-23 深圳Tcl数字技术有限公司 字符串模糊匹配方法及装置
CN109117427A (zh) * 2017-06-22 2019-01-01 索意互动(北京)信息技术有限公司 一种客户端、服务器、检索方法及其系统
CN107729351A (zh) * 2017-08-29 2018-02-23 天翼爱音乐文化科技有限公司 基于音乐搜索引擎的多层查询纠正方法及系统
CN108388635A (zh) * 2018-02-24 2018-08-10 杭州朗和科技有限公司 数据搜索方法、装置、介质和计算设备
CN112580691A (zh) * 2020-11-25 2021-03-30 北京北大千方科技有限公司 一种元数据字段的术语匹配方法、匹配系统和存储介质
CN112580691B (zh) * 2020-11-25 2024-05-14 北京北大千方科技有限公司 一种元数据字段的术语匹配方法、匹配系统和存储介质

Also Published As

Publication number Publication date
CN103336850B (zh) 2016-09-21

Similar Documents

Publication Publication Date Title
CN106874292B (zh) 话题处理方法及装置
CN103336850A (zh) 一种数据库检索系统中确定检索词的方法及装置
CN106156239B (zh) 一种表格抽取方法和装置
CN106708929B (zh) 视频节目的搜索方法和装置
CN110750995B (zh) 一种基于自定义图谱的文件管理方法
CN101727447A (zh) 基于url的正则表达式的生成方法和装置
CN103440232A (zh) 一种科技论文标准化自动检测编辑方法
CN110889310B (zh) 金融文档信息智能提取系统及方法
CN111177591A (zh) 面向可视化需求的基于知识图谱的Web数据优化方法
CN107704512A (zh) 基于社交数据的金融产品推荐方法、电子装置及介质
Figueroa et al. Learning to rank effective paraphrases from query logs for community question answering
CN107967290A (zh) 一种基于海量科研资料的知识图谱网络构建方法及系统、介质
CN103440233A (zh) 一种科技论文标准化自动检测编辑系统
CN110276009B (zh) 一种联想词的推荐方法、装置、电子设备及存储介质
CN110162632A (zh) 一种新闻专题事件发现的方法
CN103778206A (zh) 一种网络服务资源的提供方法
CN110413759A (zh) 一种用于自媒体的多平台用户互动数据分析方法及系统
CN105956119A (zh) 专利撰写辅助系统及其方法
CN113190687A (zh) 知识图谱的确定方法、装置、计算机设备及存储介质
CN106570196B (zh) 视频节目的搜索方法和装置
CN114997288A (zh) 一种设计资源关联方法
CN107239455B (zh) 核心词识别方法及装置
Arasu et al. A grammar-based entity representation framework for data cleaning
CN107133321B (zh) 页面的搜索特性的分析方法和分析装置
CN112417101A (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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160921

Termination date: 20210724