检索和相似度分析一体化的方法、装置和存储介质
技术领域
本发明涉及数据处理领域,尤其是一种检索和相似度分析一体化的方法、装置和存储介质。
背景技术
在自然语言处理中,经常会涉及到文本检索和对检索到的文本进行相似度分析的需求。现有的检索系统,通常只能输入少量几个词来检索特定内容,使检索系统能够返回摘要文本,而不支持大量文本的输入,例如“百度”仅支持38个汉字以内,当输入的内容较多时,检索系统会出现崩溃,而通常我们在需要对手上的文本与检索到的特定文本进行相似度分析时(例如查重等),必然需要输入大量的内容与检索到的特定文本进行对比,也就是说,现有的检索系统不能同时支持检索和相似度分析,不便捷,用户体验差。
发明内容
有鉴于此,为了解决上述技术问题,本发明的目的是提供便捷且同时满足检索和相似度分析的检索和相似度分析一体化的方法、装置和存储介质。
本发明采用的技术方案是:检索和相似度分析一体化的方法,包括以下步骤:
获取输入文本,并根据输入文本确定检索词;
根据检索词,确定若干个匹配文档;
根据匹配文档和输入文本,确定输入文本与每一匹配文档的相似度;
根据匹配文档返回每一匹配文档的摘要文本。
进一步,所述根据输入文本确定检索词的步骤中,包括以下步骤:
对第一文本进行分词处理,获得第一名词和第二名词;
分别为第一名词和第二名词配置第一分值和第二分值;
根据第一分值、第二分值和第一预设阈值,确定预设第一阈值数量的检索词;
其中,第一名词包括地点名词、人名、纯数字中的至少一种,第一分值大于第二分值,第二名词包括检索词和第一名词。
进一步,所述根据第一分值、第二分值和第一预设阈值,确定预设第一阈值数量的检索词的步骤中,包括以下步骤:
若第一名词和第二名词的数量小于第一预设阈值,通过TextRank算法获取输入文本的关键词;
根据第一分值、第二分值和关键词,确定预设第一阈值数量的检索词。
进一步,所述根据检索词,确定若干个匹配文档的步骤中,包括以下步骤:
根据检索词进行检索,获取每一检索词对应的初步匹配文档和初步匹配文档的初步匹配分值;
将相同的初步匹配文档的初步匹配分值进行累加,得到初步匹配文档的匹配分值;
根据匹配分值和第二预设阈值,确定若干个匹配文档。
进一步,所述根据匹配分值和第二预设阈值,确定若干个匹配文档的步骤中,具体地:
将匹配分值由高至低排名的排名不大于第二预设阈值的初步匹配文档作为匹配文档。
进一步,所述根据匹配文档和输入文本,确定输入文本与每一匹配文档的相似度的步骤中,包括以下步骤:
根据输入文本获取输入文本的第一主题关键词集合,根据匹配文档分别获取每一匹配文档对应的第二主题关键词集合;
根据输入文本和匹配文档,分别获取输入文本相对每一匹配文档相似的第一句子的第一数量,以及分别获取每一匹配文档相对输入文本相似的第二句子的第二数量;
分别获取输入文本与每一匹配文档的相似度分析结果,相似度分析结果包括主题关联度、内容相似度、输入文本相对匹配文档的相似度、匹配文档相对输入文本的相似度的至少一种;
根据主题关联度、内容相似度、输入文本相对匹配文档的相似度、匹配文档相对输入文本的相似度的累加结果,得到输入文本与每一匹配文档的相似度;
具体地,相似度分析结果的获取步骤如下:
根据第一主题关键词集合和第二主题关键词集合,得到主题关联度;
根据第一主题关键词集合和第一数量,得到输入文本相对匹配文档的相似度;
根据第二主题关键词集合和第二数量,得到匹配文档相对输入文本的相似度;
根据第一主题关键词集合、第二主题关键词集合、第一数量和第二数量,得到内容相似度;
其中,第一主题关键词集合包括至少一个第一主题关键词、第二主题关键词集合包括至少一个第二主题关键词,输入文本包括第一句子,匹配文档包括第二句子。
进一步,所述根据匹配文档返回每一匹配文档的摘要文本的步骤中,包括以下步骤:
根据输入文本和匹配文档,获取每一匹配文档相对输入文本相似的第二句子,通过正则匹配分别获取匹配文档中第二句子及第二句子之前和/或之后的内容,并作为每一匹配文档的摘要文本返回;
或者根据输入文本和匹配文档,获取输入文本相对每一匹配文档相同的关键词,通过正则匹配分别获取匹配文档中关键词及关键词之前和/或之后的内容,并作为每一匹配文档的摘要文本返回;
其中,匹配文档包括第二句子,输入文本和匹配文档包括至少一个相同的关键词。
本发明还提供检索和相似度分析一体化的装置,包括:
确定模块,用于获取输入文本,并根据输入文本确定检索词;
匹配模块,用于根据检索词,确定若干个匹配文档;
相似度模块,用于根据匹配文档和输入文本,确定输入文本与匹配文档的相似度;
返回模块,用于根据匹配文档返回匹配文档的摘要文本。
本发明还提供检索和相似度分析一体化的装置,包括:
至少一处理器;
至少一存储器,用于存储至少一程序;
当所述至少一程序被所述至少一处理器执行,使得所述至少一处理器实现如相似度分析一体化的方法。
本发明还提供存储介质,存储有处理器可执行的指令,处理器执行所述处理器可执行的指令时执行所述检索和相似度分析一体化的方法。
本发明的有益效果是:根据输入文本确定检索词;根据检索词确定若干个匹配文档;根据匹配文档和输入文本,确定输入文本与匹配文档的相似度;根据匹配文档返回匹配文档的摘要文本;本发明通过根据输入文本确定检索词,利用检索词确定匹配文档,并根据匹配文档返回匹配文档的摘要文本,即使输入文本包含大量的内容,也能够正常进行检索找到匹配文档,并返回匹配文档的摘要文本,不会出现崩溃的情况;同时能够根据匹配文档和输入文本,确定输入文本与匹配文档的相似度,在检索正常的情况下又支持相似度分析,便捷且用户体验好。
附图说明
图1为本发明检索和相似度分析一体化的方法的步骤流程示意图。
具体实施方式
下面结合说明书附图和具体实施例对本发明作进一步解释和说明。对于本发明实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
如图1所示,本实施例提供一种检索和相似度分析一体化的方法,包括以下步骤:
获取输入文本,并根据输入文本确定检索词;
根据检索词,确定若干个匹配文档;
根据匹配文档和输入文本,确定输入文本与匹配文档的相似度;
根据匹配文档返回匹配文档的摘要文本。
在本实施例中,输入文本可选地包括若干个检索词,摘要文本指的是包含与输入文本的内容相似的文本,可以为与输入文本的检索词相似的文本,或者与输入文本的句子相似的文本,例如,在检索系统进行检索的时候通常会出现多个可供点击的词条,词条下面的内容即相当于摘要文本,而摘要文本通常只有在检索系统正常运行时能够被返回。
在本实施例中,具体地,包括以下步骤:
1)获取输入文本,并根据输入文本确定检索词;
具体地,S11:通过Standard Tokenizer分词器(Standard Tokenizer分词算法)对第一文本进行分词处理,并对名词进行选取,获得第一名词和第二名词,其中StandardTokenizer分词算法是一种基于词典和词性推断的分词算法,可以同时得到分词结果以及词的属性,比如该词为名词(n)或动词(v)等等,而第一名词可选地包括地点名词、人名、纯数字中的至少一种,代表的是信息熵高的名词,而第二名词包括第一名词以及除第一名词之外的第一文本中的其他名词。
S12:分别为第一名词和第二名词配置第一分值和第二分值,具体地:为第一名词配置第一分值,为第二名词配置第二分值,可选地,在本实施例中第一分值为1000,第二分值为1,在其他实施例中,可以为其他分值,但需要保证第一分值大于大二分值,可选地使第一分值远远大于大二分值,例如可以为相差两个数量、或三个数量级以上,并将第一名词与第一分值、第二名词与第二分值保存为键值对;将相同的第一名词和第二名词的第一分值和第二分值进行累加,并继续与相同的第二名词的第二分值进行累加,得到初步检索词键值对集合Cname={(Nk1,Nv1),(Nk2,Nv2),(Nkn,Nvn),…},(n=1,2,…),其中,Nkn为初步检索词、Nvn为得分。
例如,输入文本为“我喜欢桂林的山水,因为桂林的山水非常秀丽…”,分词结果得到第一名词:“桂林”,第二名词:“桂林”、“山水”,将第一名词中的“桂林”配置为1000分,第二名词中的“桂林”、“山水”均配置为1分,进行累加得到待定初步检索词键值对集合Cname={(桂林,1002),(山水,2),…}。
S13:根据第一分值、第二分值和第一预设阈值,确定预设第一阈值数量的检索词,在本实施例中,第一阈值数量为30,在其他实施例中可以为其他数量;
当Cname中的初步检索词数量大于或等于30,将得分由高至低排列的排名前30的初步检索词作为最终确定的检索词,即确定预设第一阈值数量的检索词;
当Cname中的初步检索词数量小于30,通过TextRank算法获取输入文本的关键词及对应分值,将分值由高至低排列的排名在30与初步检索词数量的差值数量之前的关键词,加上初步检索词,作为最终确定的检索词,确定预设第一阈值数量的检索词;
其中最终确定的检索词组成的集合为Csearch={Nk1,Nk2,Nkm…},(m=1,2,…),Nkm代表检索词。
例如,若Cname中的初步检索词数量大于或等于30,直接将Cname中得得分由高至低排列的排名前30的初步检索词作为最终确定的检索词,得到Csearch={桂林,山水,…}。
2)根据检索词,确定若干个匹配文档;
具体地,包括S21:根据检索词对ElasticSearch库(包含大量的文本数据)进行检索,获取每一检索词对应的预置阈值数量的初步匹配文档和初步匹配文档的初步匹配分值;在本实施例中,预置阈值为8,在其他实施例中可以为其他数值,每一初步匹配文档保存为键值对(id,score)。
例如:Csearch={桂林,山水,…},根据“桂林”检索到{A(score=0.85),B(score=0.63),C(score=0.41),…},保存为键值对:{(A,0.85),(B,0.63),(C,0.41),…};根据“山水”检索到{E(score=0.95),B(score=0.53),C(score=0.48),…},保存为键值对:{(E,0.95),(B,0.53),(C,0.48),…},其中A、B、C、E为初步匹配文档对应的id,score为初步匹配分值,其中score是ElasticSearch基于TF-IDF算法给文档匹配程度的分值,分值越高,匹配度越高。
S22:将相同的初步匹配文档的初步匹配分值进行累加,得到初步匹配文档的匹配分值。例如,根据“桂林”和“山水”都检索到相同的初步匹配文档,对应的id为B、C,将初步匹配分值进行累加,最终得到匹配文档键值对Cdoc={(A,0.85),(B,1.16),(C,0.89),(E,0.95),…},即由初始匹配文档的id和匹配分值组成的键值对;并根据匹配分值由高至低排名将排名在第二预设阈值数量及第二预设阈值数量之前的初始匹配文档作为匹配文档,得到匹配文档集合Cmatch={id1,id2,idn…},(n=1,2,…),idn表示匹配文档的id,本实施例中第二预设阈值为10,其他实施例中可以为其他数值。
3)根据匹配文档和输入文本,确定输入文本与每一匹配文档的相似度;
包括S31:根据输入文本获取输入文本的第一主题关键词集合,根据匹配文档分别获取每一匹配文档对应的第二主题关键词集合,即一个匹配文档对应一个第二主题关键词集合,其中第一主题关键词集合包括若干个第一主题关键词、第二主题关键词集合包括若干个第二主题关键词,其中第一主题关键词指的是可以表征输入文本主题的词,第二主题关键词指的是可以表征匹配文档内容的词。
具体地:通过TextRank算法提取输入文本的主题关键词键值对MKT1,形式为(k,v),k代表主题关键词,v代表得分,得分越高代表关键词越重要,选择得分由高至低排列的位于第一预设数量之前的主题关键词作为第一主题关键词,所有第一主题关键词组成第一主题关键词集合;
同理,通过TextRank算法分别提取每一匹配文档的主题关键词键值对MKT2,每一匹配文档的所有第二主题关键词组成一个第二主题关键词集合,得到每一匹配文档对应的每一第二主题关键词集合;其中,本实施例的第一预设数量为25,即选择得分最高的前25个主题关键词,在其他实施例中可以为其他数量。
例如,以输入文本和其中一个匹配文档为例,MKT1={("华为","6.675263"),("美国","6.0908623"),("联邦","3.7495434"),…};MKT2={("华为","7.5425158"),("美国","6.059275"),("服务","3.419236"),…}分别在MKT1和MKT2中选择得分在排名在前25的主题关键词作为第一关键词和第二关键词,得到第一主题关键词集合CKT1={华为,美国,联邦...}和第二主题关键词集合CKT2={华为,美国,服务...}。
S32:根据输入文本和匹配文档,分别获取输入文本相对每一匹配文档相似的第一句子的第一数量,以及分别获取每一匹配文档相对输入文本相似的第二句子的第二数量,其中输入文本包括句子(句子包括第一句子),匹配文档包括句子(句子包括第二句子)。
具体地:包括S321:对输入文本中的每一个句子进行分词处理,分词处理包括通过Standard Tokenizer分词器(Standard Tokenizer分词算法)对输入文本的每一个句子进行分词,并转化为每一个句子对应的分词向量集合,其中Standard Tokenizer分词算法是一种基于词典和词性推断的分词算法,可以同时得到分词结果以及词的属性,比如该词为名词(n)或动词(v)等等;
S322:通过TextRank算法对分词向量集合提取一定数量的关键词,并进行过滤使得每一个句子最终转化成每一句子对应的第一关键词集合KV1={kv11,kv12,…,kv1m},(m=1,2,…),即一个句子对应一个KV1,kv1m代表输入文本中句子的第一关键词,第一关键词集合包括至少一个第一关键词,其中过滤包括过滤冗余词和停用词,即代表第一句子中信息量较少的词,例如“的”,“呢”,“可以”等,例如:“我也喜欢熊猫呢”会被分成“我/r”,“也/d”,“喜欢/v”,“熊猫/n”,“呢/y”,其中r-代词、d-副词v-动词、n-名词、y-语气词,将语气词进行过滤,可选地将副词也进行过滤。
同理可分别得到每一匹配文档中的每一个句子的第二关键词集合KV2={kv21,kv22,…,kv2n},(n=1,2,…),即一个匹配文档中的一个句子对应一个第二关键词集合KV2,kv2n代表匹配文档句子中的第二关键词,最终得到每一个匹配文档中的每一个句子对应的KV2。其中,第二关键词集合包括至少一个第二关键词。
S323:根据每一第一关键词集合,每一匹配文档的中的句子对应的每一第二关键词集合,得到每一第一关键词集合分别与每一匹配文档中的每一第二关键词集合的第一关键词和第二关键词相同的第三数量、每一第一关键词集合相对每一匹配文档中的每一第二关键词集合的第一关键词与第二关键词不相同的第四数量,以及每一匹配文档中的每一第二关键词集合相对该匹配文档的每一第一关键词集合的第二关键词与第一关键词不相同的第五数量;
具体地:以输入文本与其中一个匹配文档为例:计算两两第一关键词集合KV1和第二关键词集合KV2的交集和差集,交集指的是第一关键词与第二关键词相同的关键词组成的集合,差集包括第一差集和第二差集,第一差集指的是第一关键词集合相对第二关键词集合的第一关键词与第二关键词不相同的关键词组成的集合,第二差集指的是第二关键词集合相对第一关键词集合的第二关键词与第一关键词不相同的关键词组成的集合,并计算交集包括关键词的第三数量、第一差集包括关键词的第四数量,第二差集包括关键词的第五数量。
也就是说,通过计算可以获得输入文本的每一第一关键词集合KV1相对一个匹配文档中的每一关键词集合KV2的第三数量、第四数量和第五数量,例如输入文本具有一个KV1,匹配文档具有三个KV2,那么就得到三个第三数量,三个第四数量,三个第五数量;因此根据输入文本与每一匹配文档,能够得到输入文本的每一第一关键词集合KV1相对每一匹配文档中的每一关键词集合KV2的多个第三数量、第四数量和第五数量。
例如:其中一个第一关键词集合KV1={提交,法院,今天,美国,华为,起诉书},其中一个第二关键词集合KV2={宣布,法院,美国,提交,华为,起诉书,禁止},则交集D为{提交,法院,美国,华为,起诉书},第三数量为5,第一差集为{今天},第四数量为1,第二差集为{宣布,禁止},第五数量为2。
S324:根据每一第三数量、每一第四数量、第一预设阈值和第二预设阈值,分别得到输入文本相对每一匹配文档相似的第三句子的第一数量;根据每一第三数量、每一第五数量、第一预设阈值和第二预设阈值,分别得到每一匹配文档相对输入文本相似的第四句子的第二数量。
具体地,若第三数量大于或等于第一预设阈值,且第四数量小于第二预设阈值,通过预设长度的滤波窗口处理分别得到输入文本相对每一匹配文档相似的第三句子的第一数量,若第三数量大于或等于第一预设阈值,且第五数量小于第二预设阈值,通过预设长度的滤波窗口处理分别得到每一匹配文档相对输入文本相似的第四句子的第二数量。
可选地,在本实施例中,第一预设阈值与第二预设阈值相同,均为4,在其他实施例中,第一预设阈值与第二预设阈值可以不相同,也可以设置为其他数值。预设长度设置为5,在其他实施例中可以设置为其他数值。
例如,如上所述,其中一个第一关键词集合和一个第二关键词集合的并集为{提交,法院,美国,华为,起诉书},第三数量为5,第一差集为{今天},第四数量为1,第二差集为{宣布,禁止},第五数量为2,第三数量满足大于或等于第一预设阈值,且第四数量满足小于第二预设阈值,因此该第一关键词集合KV1对应的输入文本的句子相对该第二关键词集合KV2对应的匹配文档的句子相似,并将该输入文本的句子作为第一句子,在通过每一第一关键词集合KV1与其中一个匹配文档的每一第二关键词集合KV2两两对比后,得到初步判定的第一句子;
然后对初步判定的第一句子通过长度为5滤波窗口处理进行滤波处理,例如,根据句子的长度和位置在输入文本中按顺序有“AABAA”,A为通过上述处理得到的初步判定的第一句子,B为与其中一个匹配文档不相似的其中一个句子,此时将满足前后均有两个初步判定的第一句子的B进行滤波处理,得到“AAAAA”,即从4个初步判定的第一句子变为最终得到的5个第一句子;在进行滤波处理后,再统计第一句子的数量,得到一个第一数量,即输入文本相对其中一个匹配文档相似的第一句子的第一数量。因此,通过上述处理,能够分别获取输入文本相对每一匹配文档相似的第一句子的第一数量,即一个输入文本与一个匹配文档具有一个第一数量。
同理,第三数量满足大于或等于第一预设阈值,且第五数量小于第二预设阈值,因此该第二关键词集合KV2对应的匹配文档的句子与该第一关键词集合KV1对应的输入文本中的句子相似,并将该匹配文档的句子作为第二句子,在通过其中一个匹配文档的每一第二关键词集合KV2与每一第一关键词集合KV1两两对比后,得到初步判定的第二句子,同样经过滤波处理,在进行滤波处理后,再统计第二句子的数量,得到一个第二数量,即其中一个匹配文档相对输入文本相似的第二句子的第二数量。因此,通过多次计算,能够分别获取每一匹配文档相对输入文本相似的第二句子的第二数量,即一个匹配文档与一个输入文本具有一个第二数量。
其中,根据句子的长度和位置通过滤波处理,排除了长文本的比对中,个别句子特别是短句子的相似或不相似实际上可能是意外导致的情况,实现连续文本的相似或不相似判断,例如上述例子中“AABAA”,其中B可能为人工手动进行修改后而导致不相似,实际上是相似的,在查重中可以使得相似度分析更准确。
S33:分别获取输入文本与每一匹配文档的相似度分析结果,即一个相似度分析结果包括一个主题关联度、一个左侧相似占比、一个右侧相似占比、一个内容相似度,具体地包括以下步骤:
S331:计算每一主题关联度:
以输入文本和其中一个匹配文档为例,包括以下步骤:
S3311:根据第一主题关键词集合与第二主题关键词集合,得到第一主题关键词和第二主题关键词相同的第六数量,并根据第六数量,计算第六数量在第一主题关键词集合CKT1中的占比RT1,第六数量在第二主题关键词集合CKT2中的占比RT2;
例如,CKT1={华为,美国,联邦...},CKT2={华为,美国,服务...},得到两者的交集Ckinter为{华为,美国},即第一主题关键词和第二主题关键词相同的第六数量为2,如果CKT1一共有25个第一主题关键词,CKT2一共也有25个第二主题关键词,那么RT1为2/25,RT2为2/25。
S3312:计算主题相似度Simsubject,其中Simsubject是CKT1和CKT2的交集Ckinter的Log10(size(Ckinter)+1)的进行标准化的标准化结果,当Simsubject>1时取值为z,其中size(Ckinter)表示Ckinter中主题关键词的数量,即第六数量,在本实施例中z为0.95,其他实施例中可以为小于1的其他数值;
S3313:计算主题关联度,计算公式为:
主题关联度Relsubject=RT1×a+RT2×b+Simsubject×c,其中,a、b、c表示权重,在本实施例中a=0.25,b=0.25,c=0.5,在其他是实施例中可以为其他数值。
S332:计算主题关联度,计算公式为:
主题关联度Relsubject=RT1×a+RT2×b+Simsubject×c,其中,a、b、c表示权重,在本实施例中a=0.25,b=0.25,c=0.5,在其他是实施例中可以为其他数值。
其中,根据输入文本和每一匹配文档,通过上述处理,即可以分别获取输入文本与每一匹配文档的主题关联度,不再赘述。
S333:计算每一个左侧相似占比,一个左侧相似占比代表输入文本相对一个匹配文档的相似度Simleft;
以输入文本和其中一个匹配文档为例,计算公式为:Simleft=d×sim(S1)/size(S1)+RT1×e,其中,d、e表示权重,在本实施例中d=0.8,e=0.2,在其他是实施例中可以为其他数值;sim(S1)为第一数量,size(S1)为输入文本中句子的总数量。
其中,根据输入文本和每一匹配文档,通过上述处理,即可以分别获取输入文本与每一匹配文档的左侧相似占比,不再赘述。
S334:计算每一个右侧相似占比,一个右侧相似占比代表一个匹配文档相对输入文本的相似度Simright;
以输入文本和其中一个匹配文档为例,计算公式为:Simright=f×sim(S2)/size(S2)+RT2×g,其中,f、g表示权重,在本实施例中f=0.8,g=0.2,可选地与d、e相同,在其他是实施例中可以为其他数值;sim(S2)为第二数量,size(S2)为一个匹配文档中的句子的总数量。
同样,根据输入文本和每一匹配文档,通过上述处理,即可以分别获取输入文本与每一匹配文档的右侧相似占比,不再赘述。
S335:计算每一个内容相似度Simcontent;
以输入文本和其中一个匹配文档为例,计算公式为:Simcontent=h×sim(S1)/size(S1)+i×sim(S2)/size(S2)+Relsubject×j;其中,h、i、j表示权重,在本实施例中h=0.3,i=0.3,j=0.4,在其他是实施例中可以为其他数值。
根据输入文本和每一匹配文档,通过上述处理,即可以分别获取输入文本与每一匹配文档的内容相似度,不再赘述。
S34:根据主题关联度、内容相似度、输入文本相对匹配文档的相似度、匹配文档相对输入文本的相似度的累加结果,得到输入文本与每一匹配文档的相似度。
以一个输入文本和其中一个匹配文档为例,将输入文本和该匹配文档的主题关联度、内容相似度和输入文本相对匹配文档的相似度进行累加,得到累加结果,累加结果为一个累加分值,分值越高代表输入文本与该匹配文档的相似度越高。同样,进行多次计算,可以分别得到输入文本与每一匹配文档的累加结果,即输入文本与每一匹配文档的相似度。
4)根据匹配文档返回每一匹配文档的摘要文本;
具体地,根据输入文本和匹配文档,获取每一匹配文档相对输入文本相似的第二句子,通过正则匹配分别获取匹配文档中第二句子及第二句子之前和/或之后的内容,并作为每一匹配文档的摘要文本返回;
或者根据输入文本和匹配文档,获取输入文本相对每一匹配文档相同的关键词,通过正则匹配分别获取匹配文档中关键词及关键词之前和/或之后的内容,并作为每一匹配文档的摘要文本返回;
其中,匹配文档包括第二句子,输入文本和匹配文档包括至少一个相同的关键词。
在本实施例中,优先返回第二句子及第二句子之前和/或之后内容,若不存在第二句子,则返回关键词及关键词之前和/或之后内容,在其他实施例中可选地,可以只返回第二句子及第二句子之前和/或之后的内容或只返回关键词及关键词之前和/或之后的内容,或同时返回第二句子及第二句子之前和/或之后的内容和返回关键词及关键词之前和/或之后的内容,不作限定。
其中,获取每一匹配文档相对输入文本相似的第二句子,以及获取输入文本相对每一匹配文档相同的关键词(此处的关键词可选地为第一关键词,且该第一关键词与至少一个第二关键词相同,或者可选地为第一主题关键词,且该第一主题关键词与至少一个第二主题关键词相同)的步骤如上文所述。
然后通过正则匹配分别获取匹配文档中第二句子及第二句子之前和(第二句子)之后的内容,并作为每一匹配文档的摘要文本返回,即每一匹配文档对应一个摘要文本,可选地在其他实施例中可以只返回第二句子之前或只返回第二句子之后的内容,不作限定。
若不存在第二句子,通过正则匹配分别获取匹配文档中关键词及关键词之前和之后的内容,并作为每一匹配文档的摘要文本返回,即每一匹配文档对应一个摘要文本,可选地在其他实施例中可以只返回关键词之前或只返回关键词之后的内容,不作限定。
可选地,在本实施例中,按照累加结果(即累加分值)的高低,由高至低,将返回的摘要文本进行排序,将累加结果最高的匹配文档对应的摘要文本排列在最前,将累加结果最低的匹配文档对应的摘要文本排列在最后,提高用户的体验。
5)进行高亮处理:对累加结果进行高亮处理,可选地对摘要文本中的第二句子和/或关键词进行高亮处理;其中,高亮处理可以为添加html标签,进行颜色改变、加粗等等,便于用户观看。
本发明还提供一种检索和相似度分析一体化的装置,包括:
确定模块,用于获取输入文本,并根据输入文本确定检索词;
匹配模块,用于根据检索词,确定若干个匹配文档;
相似度模块,用于根据匹配文档和输入文本,确定输入文本与匹配文档的相似度;
返回模块,用于根据匹配文档返回匹配文档的摘要文本。
上述方法实施例中的内容均适用于本装置实施例中,本装置实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
本发明实施例还提供了另一种检索和相似度分析一体化的装置,包括:
至少一处理器;
至少一存储器,用于存储至少一程序;
当所述至少一程序被所述至少一处理器执行,使得所述至少一处理器实现所述检索和相似度分析一体化方法。
上述方法实施例中的内容均适用于本装置实施例中,本装置实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
综上所述,相较于现有技术,本发明具有以下优点:
1)通过根据输入文本确定检索词,利用检索词确定匹配文档,并根据匹配文档返回匹配文档的摘要文本,即使输入文本包含大量的内容,也能够正常进行检索找到匹配文档,并返回匹配文档的摘要文本,不会出现崩溃的情况;
2)能够根据匹配文档和输入文本,确定输入文本与匹配文档的相似度,在检索正常的情况下又支持相似度分析,便捷且用户体验好;
3)相似度分析结果包含主题关联度、内容相似度、输入文本相对匹配文档的相似度、匹配文档相对输入文本的相似度多项指标,使相似度分析结果更准确;
4)进行高亮处理使得用户能直观看到相似内容,体验好。
在一些可选择的实施例中,在本发明的步骤所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。
此外,虽然在功能性模块的背景下描述了本发明,但应当理解的是,除非另有相反说明,所述的功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本发明是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本发明。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本发明的范围,本发明的范围由所附权利要求书及其等同方案的全部范围来决定。
本发明实施例还提供了一种存储介质,存储有处理器可执行的指令,处理器执行所述处理器可执行的指令时执行所述检索和相似度分析一体化的方法。
同样可见,上述方法实施例中的内容均适用于本存储介质实施例中,实现的功能和有益效果与方法实施例相同。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
实施例中的步骤表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
在本说明书的描述中,参考术语“一个实施例”、“本实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上是对本发明的较佳实施进行了具体说明,但本发明并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。