首页 / 专利库 / 专利权 / 检索本 / 一种自适应文本检索方法

一种自适应文本检索方法

阅读:860发布:2020-05-13

专利汇可以提供一种自适应文本检索方法专利检索,专利查询,专利分析的服务。并且本 发明 提供了一种自适应文本检索方法,包括:将训练语料库生成词库;利用所述生成的词库,对于待索引文本使用细粒度分词 算法 进行分词拆分,并利用细粒度分词结果将文本索引到ES;检索时,对待检索词使用粗粒度分词算法进行分析,利用粗粒度分词结果在ES索引库中进行检索;根据ES的索引文本和用户的检索文本对词库进行更新,自适应地调整ES检索和索引的分词词库。本发明还提供了实现所述自适应文本检索的装置。本发明所述的自适应文本检索方法和装置可以无监督地实时发现索引库中的新词、热词,并将其同步到ES检索分词库中,从而更加准确地对文本进行分词,不再依赖于用户的手工添加,具有更强的实时性,提高了文本检索的准确性和效率。,下面是一种自适应文本检索方法专利的具体信息内容。

1.一种基于自适应文本检索方法,包括如下步骤:
S1:将训练语料库生成词库;
S2:利用步骤S1生成的词库,对于待索引文本使用细粒度分词算法进行分词拆分,并利用细粒度分词结果将文本索引到Elasticsearch(ES);
S3:检索时,对待检索词使用粗粒度分词算法进行分析,利用粗粒度分词结果在ES索引库中进行检索;及
S4:根据ES的索引文本和用户的检索文本对词库进行更新,自适应的调整ES检索和索引的分词词库。
2.如权利要求1所述的自适应文本检索方法,其特征在于,S1所述的将训练语料库生成词库,具体包括步骤:
S11:逐字扫描训练语料中的句子,计算单个字出现的概率以及两字相邻共现的概率,如果相邻两字满足公式P(W1W2)其中,P(Wn)表示单个字出现的概率,n=1,2,且 P(W1W2)表
示两字相邻共现的概率,且
S12:按照步骤S11的方法将句子划分成若干长度不大于7的子串,作为候选词;
S13:收录所述候选词中相对稳定周期性重现的词汇进入词库。
3.如权利要求2所述的自适应文本检索方法,其特征在于,句子S的最佳分词方案为满足公式P(S)=P(W1,W2,…Wn)最大,其中,P(S)表示句子S出现的概率,Wn表示最佳分词方案中的各个词,P(W1,W2,…Wn)表示分词方案中各词的联合概率,直到词频的波动小于0.75,即可获得成熟的词库。
4.如权利要求1所述的自适应文本检索方法,其特征在于,S2所述的对于待索引文本使用细粒度分词算法进行分词拆分,具体包括步骤:
S21:逐字扫描句子,从所述词库中查出字长在4以内、以该字结尾的所有词,分别计算其中的词与所述词之前各词的概率乘积,取结果值最大的词,分别缓存下当前字所在位置的最大概率积,以及对应的分词结果;
S22:重复所述步骤S21,直到句子扫描完毕,最后一字位置所得到即为整句分词结果。
5.如权利要求1所述的自适应文本检索方法,其特征在于,步骤S2中的细粒度分词算法的粒度不大于4,步骤S3中的粗粒度分词算法的粒度不大于7。
6.一种自适应文本检索装置,包括:
词库生成模,用来将训练语料库生成词库;
分词拆分和文本索引模块,用来利用所述生成的词库,对于待索引文本使用细粒度分词算法进行分词拆分,并利用细粒度分词结果将文本索引到Elasticsearch(ES);
检索模块,用来对待检索词使用粗粒度分词算法进行分析,利用粗粒度分词结果在ES索引库中进行检索;及
词库更新模块,用来根据ES的索引文本和用户的检索文本对词库进行更新,自适应的调整ES检索和索引的分词词库。
7.如权利要求6所述的自适应文本检索装置,其特征在于,所述词库生成模块,包括:
概率计算模块,用来逐字扫描训练语料中的句子,计算单个字出现的概率以及两字相邻共现的概率,如果相邻两字满足公式P(W1W2)现的概率,且
句子划分模块,用来按照概率计算模块的方法将句子划分成若干长度不大于7的子串,作为候选词;
收录模块,用来收录所述候选词中相对稳定周期性重现的词汇进入词库。
8.如权利要求7所述的自适应文本检索装置,其特征在于,句子S的最佳分词方案为满足公式P(S)=P(W1,W2,…Wn)最大,其中,P(S)表示句子S出现的概率,Wn表示最佳分词方案中的各个词,P(W1,W2,…Wn)表示分词方案中各词的联合概率,直到词频的波动小于0.75,即可获得成熟的词库。
9.如权利要求6所述的自适应文本检索装置,其特征在于,分词拆分和文本索引模块进一步用来实现如下方法步骤:
S21:逐字扫描句子,从所述词库中查出字长在4以内、以该字结尾的所有词,分别计算其中的词与所述词之前各词的概率乘积,取结果值最大的词,分别缓存下当前字所在位置的最大概率积,以及对应的分词结果;
S22:重复所述步骤S21,直到句子扫描完毕,最后一字位置所得到即为整句分词结果。
10.如权利要求6所述的自适应文本检索装置,其特征在于,分词拆分和文本索引模块中的细粒度分词算法的粒度不大于4,检索模块中的粗粒度分词算法的粒度不大于7。

说明书全文

一种自适应文本检索方法

技术领域

[0001] 本发明涉及信息技术领域,尤其涉及一种大数据量文本检索方法。

背景技术

[0002] 由于目前Elasticsearch(ES)官方提供的中文分词插件smartcn的分词效果不是特别好,所以用户在使用ES做中文检索时通常会添加自定义分词插件。现在常用的ES中文分词插件主要有两种,IK分词和ansj分词,但是这两种分词算法都依赖于其内置的分词库,分词结果取决于其内置的分词库。虽然二者都提供了用户热词更新功能,但是这种热词更新需要用户手工去维护,维护成本比较高。同时现有的分词插件不能及时地发现文本数据中的新词热词,为用户提供更加准确的分词检索服务。

发明内容

[0003] 为了克服现有的这种数据检索的局限性,本发明将非主流自然语言处理方法和ES结合,实现了一种文本自适应的ES中文检索方法,具体技术方案如下:
[0004] 一种自适应文本检索方法,包括如下步骤:
[0005] S1:将训练语料库生成词库。
[0006] S2:利用步骤S1生成的词库,对于待索引文本使用分词粒度不大于4的细粒度分词算法进行分词拆分,并利用所述细粒度分词结果将文本索引到ES。
[0007] S3:检索时,对待检索词使用分词粒度不大于7的粗粒度分词算法进行分析,利用所述的粗粒度分词结果在ES索引库中进行检索。
[0008] S4:根据ES的索引文本和用户的检索文本对词库进行更新,自适应地调整ES检索和索引的分词词库。
[0009] 作为本发明的进一步改进,S1所述的将训练语料库生成词库,具体包括步骤:
[0010] S11:逐字扫描训练语料中的句子,计算单个字出现的概率以及两字相邻共现的概率,如果相邻两字满足公式P(W1W2)
[0011] S12:按照步骤S11的方法将句子划分成若干长度不大于7的子串,作为候选词;
[0012] S13:收录所述候选词中相对稳定周期性重现的词汇进入词库。
[0013] 优选地,句子S的最佳分词方案为满足公式P(S)=P(W1,W2,…Wn)最大,其中,P(S)表示句子S出现的概率,Wn表示最佳分词方案中的各个词,P(W1,W2,…Wn)表示分词方案中各词的联合概率,直到词频的波动小于0.75,即可获得成熟的词库。
[0014] 作为本发明的进一步改进,S2所述的对于待索引文本使用分词粒度不大于4的细粒度分词算法进行分词拆分,具体包括步骤:
[0015] S21:逐字扫描句子,从所述词库中查出字长在4以内、以该字结尾的所有词,分别计算其中的词与所述词之前各词的概率乘积,取结果值最大的词,分别缓存下当前字所在位置的最大概率积,以及对应的分词结果;
[0016] S22:重复所述步骤S21,直到句子扫描完毕,最后一字位置所得到即为整句分词结果。
[0017] 作为本发明的进一步改进,步骤S2中的细粒度分词算法的粒度不大于4,步骤S3中的粗粒度分词算法的粒度不大于7。
[0018] 本发明目的之二在于提供一种提高了文本检索准确性度高、效率高的一种自适应文本检索装置。
[0019] 一种自适应的文本检索装置,包括:
[0020] 词库生成模,用来将训练语料库生成词库;
[0021] 分词拆分和文本索引模块,用来利用所述生成的词库,对于待索引文本使用分词粒度不大于4的细粒度分词算法进行分词拆分,并利用所述细粒度分词结果将文本索引到ES;
[0022] 检索模块,用来对待检索词使用分词粒度不大于7的粗粒度分词算法进行分析,利用所述的粗粒度分词结果在ES索引库中进行检索;
[0023] 词库更新模块,用来根据ES的索引文本和用户的检索文本对词库进行更新,自适应地调整ES检索和索引的分词词库。
[0024] 作为本发明的进一步改进,所述词库生成模块,包括:
[0025] 概率计算模块,用来逐字扫描训练语料中的句子,计算单个字出现的概率以及两字相邻共现的概率,如果相邻两字满足公式P(W1W2)
[0026] 句子划分模块,用来按照概率计算模块的方法将句子划分成若干长度不大于7的子串,作为候选词;
[0027] 收录模块,用来收录所述候选词中相对稳定周期性重现的词汇进入词库。
[0028] 优选地,句子S的最佳分词方案为满足公式P(S)=P(W1,W2,…Wn)最大,其中,P(S)表示句子S出现的概率,Wn表示最佳分词方案中的各个词,P(W1,W2,…Wn)表示分词方案中各词的联合概率,直到词频的波动小于0.75,即可获得成熟的词库。
[0029] 作为本发明的进一步改进,所述分词拆分和文本索引模块进一步用来实现如下方法步骤:
[0030] S21:逐字扫描句子,从所述词库中查出字长在4以内、以该字结尾的所有词,分别计算其中的词与所述词之前各词的概率乘积,取结果值最大的词,分别缓存下当前字所在位置的最大概率积,以及对应的分词结果;
[0031] S22:重复所述步骤S21,直到句子扫描完毕,最后一字位置所得到即为整句分词结果。
[0032] 作为本发明的进一步改进,分词拆分和文本索引模块中的细粒度分词算法的粒度不大于4,检索模块中的粗粒度分词算法的粒度不大于7。
[0033] 本发明的有益效果:
[0034] 与现有技术相比,本方法可以无监督的实时发现索引库中的新词热词并将其同步到ES检索分词库中,从而更加准确的对文本进行分词,不再依赖于用户的手工添加,具有更强的实时性,提高了文本检索的准确性和效率。附图说明
[0035] 图1是本发明实施例中自适应文本检索方法的示意图;
[0036] 图2是本发明实施例中自适应文本检索装置的示意图。

具体实施方式

[0037] 下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
[0038] 如图1所示,为本发明所述的自适应文本检索方法,该方法包括以下步骤:
[0039] S1:将训练语料库生成词库,具体包括步骤:
[0040] S11:逐字扫描训练语料中的句子,计算单个字出现的概率以及两字相邻共现的概率,如果相邻两字满足公式P(W1W2)
[0041] 公式中所需的参数可以通过统计获得:遍历一次语料,即可获得公式中所需的单字的频数、相邻两字共现的频数,以及所有单字的频数总和。
[0042] S12:按照步骤S11的方法将句子划分成若干长度不大于7的子串,作为候选词;
[0043] S13:收录所述候选词中相对稳定周期性重现的词汇进入词库。
[0044] 优选地,句子S的最佳分词方案为满足公式P(S)=P(W1,W2,…Wn)最大,其中,P(S)表示句子S出现的概率,Wn表示最佳分词方案中的各个词,P(W1,W2,…Wn)表示分词方案中各词的联合概率,直到词频的波动小于0.75,即可获得成熟的词库。
[0045] 本发明中生成词库的特点为:监督学习;O(N)级时间复杂度;训练、执行为同一过程,可无缝处理流式数据;未登录词、新词、登录词没有区别;领域自适应:领域变化时,词条、词频自适应的随之调整;算法中仅使用到频数这一语言的共性特征,无需对任何字符做特别处理,因此原理上跨语种。
[0046] 由于每个词都具备一个相对稳定的重现周期,不难证明,当训练语料达到一定规模后,在本发明方法筛选的作用下,每个词的词频在衰减和累加会达到平衡,也即衰减的速度与增加的速度基本一致。成熟的词库,词频的波动相对会比较小,利用这个特征,我们可以衡量词库的成熟程度。
[0047] S2:利用步骤S1生成的词库,对于待索引文本使用分词粒度不大于4的细粒度分词算法进行分词拆分,并对分词结果不断的迭代,直到将词分到单字为止,然后利用分词的最终结果和中间产生的各中间结果建立倒排索引,将该文本索引到ES。
[0048] 作为本发明的进一步改进,所述对于待索引文本使用所述的细粒度分词算法进行分词拆分是基于前文生成的词库,使用下面的步骤可以O(N)级时间,单遍扫描完成分词,具体包括步骤:
[0049] S21:逐字扫描句子,从所述词库中查出字长在4以内、以该字结尾的所有词,分别计算其中的词与所述词之前各词的概率乘积,取结果值最大的词,分别缓存下当前字所在位置的最大概率积,以及对应的分词结果;
[0050] S22:重复所述步骤S21,直到句子扫描完毕,最后一字位置所得到即为整句分词结果。
[0051] 以上步骤S2实现代码如下所示:
[0052]
[0053]
[0054]
[0055]
[0056] S3:检索时,对待检索词使用分词粒度不大于7的粗粒度分词算法进行分析,利用所述粗粒度分词结果在ES索引库中进行检索。
[0057] S4:根据ES的索引文本(存在ES中待检索的文本)和用户的检索文本(用户检索的关键词、短语等),统计词的权重并排序,用权重高的词对词库进行更新,自适应地调整ES检索和索引的分词词库,使分词算法能够更好的适应当前检索的文本。
[0058] 其中,词的权重公式为:
[0059] 其中:W表示词的权重值,n表示文章或句子中该词重复出现的次数,N表示该词在词库中出现的次数,T表示所有词在词库中出现的总次数。
[0060] 可以用以统计单篇文章的词汇权重或者两篇文章的相似度;
[0061] 统计单篇文章的词汇权重通过如下代码实现:
[0062]
[0063]
[0064]
[0065] 计算两篇文章的相似度通过如下代码实现:
[0066]
[0067]
[0068] 本发明的方案中,S2根据生成的词库对待索引文本按照细粒度进行分词,可以将待索引文本在ES中建立更完备的倒排索引方便数据检索,S3在数据检索时使用粗粒度分词可以提高检索数据的效率及准确率。此外本发明的方法可以自适应地调整分词词库,从而可以使词库更加适应使用场景,使其索引和检索的分词方法可以更好地匹配当前的使用环境,从而提升检索的准确率,提升检索性能。
[0069] 如图2所示,为本发明所述的自适应文本检索装置,该装置包括:
[0070] 词库生成模块,用来将训练语料库生成词库;
[0071] 分词拆分和文本索引模块,用来利用所述生成的词库,对于待索引文本使用分词粒度不大于4的细粒度分词算法进行分词拆分,并利用所述的细粒度分词结果将文本索引到ES;
[0072] 检索模块,用来对待检索词使用分词粒度不大于7的粗粒度分词算法进行分析,利用所述的粗粒度分词结果在ES索引库中进行检索;
[0073] 词库更新模块,用来根据ES的索引文本和用户的检索文本对词库进行更新,自适应的调整ES检索和索引的分词词库。
[0074] 作为本发明的进一步改进,所述词库生成模块,包括:
[0075] 概率计算模块,用来逐字扫描训练语料中的句子,计算单个字出现的概率以及两字相邻共现的概率,如果相邻两字满足公式P(W1W2)
[0076] 句子划分模块,用来按照概率计算模块的方法将句子划分成若干长度不大于7的子串,作为候选词;
[0077] 收录模块,用来收录所述候选词中相对稳定周期性重现的词汇进入词库。
[0078] 优选地,句子S的最佳分词方案为满足公式P(S)=P(W1,W2,…Wn)最大,其中,P(S)表示句子S出现的概率,Wn表示最佳分词方案中的各个词,P(W1,W2,…Wn)表示分词方案中各词的联合概率,直到词频的波动小于0.75,即可获得成熟的词库。
[0079] 作为本发明的进一步改进,所述分词拆分和文本索引模块进一步用来实现如下方法步骤:
[0080] S21:逐字扫描句子,从所述词库中查出字长在4以内、以该字结尾的所有词,分别计算其中的词与所述词之前各词的概率乘积,取结果值最大的词,分别缓存下当前字所在位置的最大概率积,以及对应的分词结果;
[0081] S22:重复所述步骤S21,直到句子扫描完毕,最后一字位置所得到即为整句分词结果。
[0082] 本发明的有益效果:
[0083] 与现有技术相比,本发明的自适应文本检索算法相较于目前使用的基于IK和ansj等分词检索方法,可以根据使用的文本环境自适应的去改变其分词词库,将文本中的新词热词等新的词汇无监督的加入到分词词库中,从而更加准确的对文本进行分词。不再像IK和ansj等常用分词插件一样需要用户手工的去维护分词词库,对分词词库的更新更及时,所以对文本索引和检索的准确性提升很大。
[0084] 本发明中将无监督分词算法应用到ES检索中来,可以及时地发现一些新词热词以及用户经常使用的一些短语,并将这些词添加到分词词库中可以在建立索引的时候可以更好的根据用户的使用规则方式来建立,避免了很多无用索引的建立,提升了文本的索引效率。此外及时的将一些新词热词和用户常用短语加入到分词词库中,在检索分词时对词语切分更加准确,从而检索出来的文本更加符合用户的检索预期,文本检索的准确率大大提升;此外通过增加常用短语避免了无用分词切分的数据检索,从而检索的效率也大大提升。
[0085] 在舆情监控系统中使用本方法进行用户相关舆情检索,因为本方法可以根据网络上采集到的舆情数据和用户设置的相关词和检索用语去调整分词词库,对于网络上的相关热点事件等舆情可以快速的生成这些热点事件相关的热点词和热点短语等,并根据这些热点词和热点短语对网络采集到的舆情信息进行索引。这样在用户进行这些热点事件监测的时候,事件相关文章的准确性方面相较于原来使用的ansj分词算法提升了14.7%,从而使系统可以更好的满足客户的监控需求。
[0086] 以上实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈