公开/公告号CN106502980A
专利类型发明专利
公开/公告日2017-03-15
原文格式PDF
申请/专利权人 武汉斗鱼网络科技有限公司;
申请/专利号CN201610881111.7
发明设计人 白凡;
申请日2016-10-09
分类号G06F17/27;G06F17/30;
代理机构武汉智权专利代理事务所(特殊普通合伙);
代理人张凯
地址 430000 湖北省武汉市武汉东湖开发区软件园东路1号软件产业4.1期B1栋11楼
入库时间 2023-06-19 01:46:55
法律状态公告日
法律状态信息
法律状态
2019-05-17
授权
授权
2017-04-12
实质审查的生效 IPC(主分类):G06F17/27 申请日:20161009
实质审查的生效
2017-03-15
公开
公开
技术领域
本发明涉及大数据检索领域,具体涉及一种基于文本词素切分的检索方法及系统。
背景技术
随着互联网行业的飞速发展,大数据检索亦变得尤为重要,一个高效的检索系统,需要配备有一套良好的文档解析方案,对待检索的文本进行解析,解析过程中最重要的一步是对文档进行词素切分,即识别获取构成文档内容的词素、词和短语。
目前进行文档解析的方法主要为:识别文档结构,将文本中任何以空格和特殊符号结束的字母数字序列识别为词语,并将大写字符转换为小写,如“I Love China!Yeah”,即可切分为“i”“love”“china”“!”“yeah”。
由于中文文档通常不会通过空格来断开,如“我爱中国!耶”,采用现有的文档解析方法会被切分为“我爱中国”“!”“耶”,但是,这种分词方法会导致切分后的词难以在数据库中找到相对应的查询词匹配,因此,对于中文文档,词素切分需要采用其他的方式进行处理,从而保证查询和文档词项可以相互匹配。
当下比较流行的一些索引方案为:基于词库的分词索引、基于正则表达式的分词索引、基于空格等特殊字符的分词索引以及一些自定义分词索引。其中基于词库的分词索引是目前搜索引擎中应用最为广泛、分词检索效果最好的方案,比如Apache Lucene(Apache旗下的一款开源全文检索项目),Apache Solr(Apache旗下的一款开源全文检索项目),ElasticSearch(一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎)等。
现有的细粒度分词方法,会将检索文档切割至最小单元,比如将“我爱中国!耶”直接切分成“我”“爱”“中”“国”“!”“耶”,但这样不仅会给检索系统的存储模块带来巨大的存储压力,而且导致有意义的短语如“中国”被切割,增大检索难度。
综上所述,目前的分词方法不仅需要强大且充足的词库支持,且检索质量较低,但是,词库需要实时更新和维护,需要耗费大量的人力,成本较高。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种基于文本词素切分的检索方法及系统,能够降低更新和维护的频率,并提高检索质量。
为达到以上目的,本发明采取的技术方案是:
一种基于文本词素切分的检索方法,
建立用户检索词库,所述词库记录并存储有当前用户的所有检索词组和每个检索词组出现的次数n,所有检索词组的总数为m,每个检索词组的检索频率P为n/m,每个检索词组的期望值为E(w),E(w)=P*n;所有检索词组的平均期望值为:E(avg)=[E(w1)+E(w2)+……+E(wn)]/m;
所述检索包括以下步骤:
S1、判断待切分的文本中是否包含用户检索词库中已经出现过的检索词组,若存在,将当前检索词组作为存在词组,转入步骤S2;
S2、并判断当前存在词组的E(w)是否大于E(avg),并在大于时判断用户检索词库中是否存在当前存在词组的词素,并在不存在时将当前存在词组的词素存入词库,作为存在词组相对应的词素,转入步骤S3;
S3、取出相对应的存在词组,将文本的剩余部分进行细粒度词素切分;判断存在词组是否超过八个字节,在不超过时以当前存在词组的词素和细粒度切分后的词素作为切分词素,然后进行索引。
在上述技术方案的基础上,步骤S1中,所述待切分的文本中不包含用户检索词库中的词组时,将待切分的文本进行细粒度词素切分并索引。
在上述技术方案的基础上,步骤S3中,判断存在词组是否超过八个字节,当超过时,将存在词组作为待切分的文本,转入步骤S1。
在上述技术方案的基础上,步骤S1中,当待切分的文本中不包含用存在词组时,对待切分的文本进行细粒度词素切分。
在上述技术方案的基础上,所述步骤S1和S2之间还包括以下步骤:去除待切分文本中的停用词和特殊字符。
在上述技术方案的基础上,所述停用词包括英文字符、数字、数学字符、标点符号、语气助词、副词、介词和连接词。
在上述技术方案的基础上,所述特殊字符为数学符号、单位符号和制表符。
一种基于文本词素切分的检索系统,包括数据库建立模块、输入模块、判断比较模块、切分模块和检索模块;
所述数据库建立模块用于建立用户检索词库;
所述输入模块用于向检索系统中输入待切分的文本;
所述判断比较模块用于判断待切分的文本中是否包含存在词组,并比较当前存在词组的E(w)是否大于E(avg),并在大于时将当前存在词组的词素存入词库;
所述切分模块用于将去除存在词组后的待切分文本进行细粒度词素切分;
所述检索模块用于根据切分后的词素进行检索。
在上述技术方案的基础上,所述判断比较模块还用于判断当前存在词组是否超过八个字节,在不超过时以当前存在词组的词素和细粒度切分后的词素作为切分词素,然后进行索引。
在上述技术方案的基础上,所述切分模块还用于对不包含存在词组的待切分文本进行细粒度词素切分。
与现有技术相比,本发明的优点在于:
(1)本发明的一种基于文本词素切分的检索方法,根据用户的检索习惯,将用户常用的检索词组存储在检索词库中,并记录每个检索词组的期望值,根据期望值和平均值判断是否将相对应检索词组的词素存入词库中,同时,本发明还结合细粒度词素切分和判断检索词组的长度对方法进行进一步的优化,由于每个用户感兴趣的领域对应的词素有一定的相关和重复性,因此,该词库能够提高检索质量,降低更新和维护的频率。
附图说明
图1为本发明实施例中基于文本词素切分的检索方法的流程图;
图2为本发明实施例中基于文本词素切分的检索系统的结构框图。
具体实施方式
以下结合附图及实施例对本发明作进一步详细说明。
参见图1所示,本发明实施例提供一种基于文本词素切分的检索方法,包括以下步骤:
建立用户检索词库,所述词库记录并存储有当前用户的所有检索词组和每个检索词组出现的次数n,所有检索词组的总数为m,每个检索词组的检索频率P为n/m,每个检索词组的期望值为E(w),E(w)=P*n;所有检索词组的平均期望值为:E(avg)=[E(w1)+E(w2)+……+E(wn)]/m。
判断待切分的文本中是否包含用户检索词库中已存在的检索词组,若不存在,将待切分的文本进行细粒度词素切分并索引。
若存在,将当前检索词组作为存在词组,去除待切分文本中的停用词和特殊字符,停用词包括英文字符、数字、数学字符、标点符号、语气助词、副词、介词和连接词;特殊字符为数学符号、单位符号和制表符。判断当前存在词组的E(w)是否大于E(avg),并在大于时判断用户检索词库中是否存在于存在词组相对应的词素,并在不存在时将当前存在词组的词素存入词库,作为存在词组相对应的词素。
取出相对应的存在词组,将文本的剩余部分进行细粒度词素切分;判断存在词组是否超过八个字节,若超过,将当前存在词组作为待切分文本进行重新检索;若不超过,以当前存在词组的词素和细粒度切分后的词素作为切分词素,然后进行索引。
本发明的方法详细步骤为:
S1、输入待切分文本。
S2、判断待切分的文本中是否包含用户检索词库中的词组,即存在词组:若存在,转入步骤S3;否则,转入步骤S6。
S3、判断当前存在词组的E(w)是否大于E(avg),若大于,转入步骤S4;否则,转入步骤S5。
S4、判断用户检索词库中是否存在相对应的词素,并在不存在时将当前存在词组的词素存入词库,转入步骤S5。
S5、去除待切分文本中的停用词和特殊字符,转入步骤S6。
S6、取出待切分的文本中相对应的存在词组,判断存在词组是否超过八个字节,若是,将存在词组作为待切分的文本,转入步骤S2;否则,转入步骤S7。
S7、将文本进行细粒度词素切分,得到检索词素,此处所指文本包括去除存在词组后的待切分文本和不包括存在词组的待切分文本,包括存在词组的待切分文本词素为存在词组的词素和细粒度切分的词素;不包括存在词组的待切分文本词素为细粒度切分词素,转入步骤S7。
S8、以切分词素进行索引。
本发明还提供一种基于文本词素切分的检索系统,包括数据库建立模块、输入模块、判断比较模块、切分模块和检索模块。
数据库建立模块用于建立用户检索词库,输入模块用于向检索系统中输入待切分的文本。
判断比较模块用于判断待切分的文本中是否包含存在词组,并比较当前存在词组的E(w)是否大于E(avg),并在大于时将当前存在词组的词素存入词库。
判断比较模块还用于判断当前存在词组是否超过八个字节,在不超过时以当前存在词组的词素和细粒度切分后的词素作为切分词素,然后进行索引。
切分模块用于对不包括存在词组的待切分文本和去除存在词组后的待切分文本进行细粒度词素切分;还用于对不包含存在词组的待切分文本进行细粒度词素切分,检索模块用于根据切分后的词素进行检索。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
机译: 基于关键字的文本检索系统,基于关键字的文本索引方法和检索方法
机译: 用于开发单语文档的基于计算机的系统和方法基于计算机的系统,用于翻译外语源中的文本输入,并且基于计算机的单,多语翻译方法涉及用于翻译语言源中的文本的计算机。一种基于计算机的语言开发方法用于文档开发单,多语言翻译和领域模型三方
机译: 基于词素之间语义属性的文本数据有效检索