CN114741489A - 文档检索方法、装置、存储介质以及电子设备 - Google Patents
文档检索方法、装置、存储介质以及电子设备 Download PDFInfo
- Publication number
- CN114741489A CN114741489A CN202210294356.5A CN202210294356A CN114741489A CN 114741489 A CN114741489 A CN 114741489A CN 202210294356 A CN202210294356 A CN 202210294356A CN 114741489 A CN114741489 A CN 114741489A
- Authority
- CN
- China
- Prior art keywords
- document
- current
- target
- sum
- text
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 87
- 238000004364 calculation method Methods 0.000 claims abstract description 25
- 230000011218 segmentation Effects 0.000 claims abstract description 19
- 230000015654 memory Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 description 19
- 238000004891 communication Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005034 decoration Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000013077 scoring method Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/194—Calculation of difference between files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/216—Parsing using statistical methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种文档检索方法、装置、存储介质以及电子设备。该方法包括:获取目标检索文本和多个第一文档;对目标检索文本进行分词,得到目标检索词;将每一个第一文档作为当前文档,计算每一个目标检索词和当前文档的相关度评分的和,得到第一和,计算每一个目标检索词在当前文档中的位置的位置评分的和,得到第二和;将第一和与第二和的求和结果作为目标检索文本和当前文档的相似度评分;在计算得到多个第一文档的每一个第一文档的相似度评分的情况下,将相似度评分最大的目标文档发送给用户。本发明解决了检索的文档不准确的技术问题。
Description
技术领域
本发明涉及信息检索领域,具体而言,涉及一种文档检索方法、装置、存储介质以及电子设备。
背景技术
现有技术中,在检索文本内容的过程中,用户可以通过输入检索文本来从所有文本文档中检索与输入的检索文本相似的文本文档。通常是计算检索文本中每一个词与一个文档的相关度,然后加权求和得到检索文本与该文档的相关度。
然而,现有技术中的方法计算的检索文本与文本文档的相关度准确度较低,造成检索到的文本不准确。
发明内容
本发明实施例提供了一种文档检索方法、装置、存储介质以及电子设备,以至少解决检索的文档不准确的技术问题。
根据本发明实施例的一个方面,提供了一种文档检索方法,包括:获取目标检索文本和多个第一文档;对上述目标检索文本进行分词,得到目标检索词;将每一个上述第一文档作为当前文档,计算每一个上述目标检索词和上述当前文档的相关度评分的和,得到第一和,计算每一个上述目标检索词在上述当前文档中的位置的位置评分的和,得到第二和;将上述第一和与上述第二和的求和结果作为上述目标检索文本和上述当前文档的相似度评分;在计算得到上述多个第一文档的每一个第一文档的上述相似度评分的情况下,将上述相似度评分最大的目标文档发送给用户。
根据本发明实施例的另一方面,提供了一种文档检索装置,包括:第一获取模块,用于获取目标检索文本和多个第一文档;分词模块,用于对上述目标检索文本进行分词,得到目标检索词;计算模块,用于将每一个上述第一文档作为当前文档,计算每一个上述目标检索词和上述当前文档的相关度评分的和,得到第一和,计算每一个上述目标检索词在上述当前文档中的位置的位置评分的和,得到第二和;第一确定模块,用于将上述第一和与上述第二和的求和结果作为上述目标检索文本和上述当前文档的相似度评分;发送模块,用于在计算得到上述多个第一文档的每一个第一文档的上述相似度评分的情况下,将上述相似度评分最大的目标文档发送给用户。
作为一种可选的示例,上述计算模块包括:第一计算单元,用于将每一个上述目标检索词作为当前检索词,计算上述当前检索词的位置评分;将计算得到的每一个上述当前检索词的上述位置评分进行求和,得到上述第二和。
作为一种可选的示例,上述第一计算单元包括:处理子单元,用于对上述当前检索词执行如下操作:确定上述当前检索词在上述当前文档中的所有第一位置;计算上述当前检索词在每一个上述第一位置的邻近度评分;将上述邻近度评分的加权求和结果作为上述当前检索词的上述位置评分。
作为一种可选的示例,上述处理子单元,用于还用于:将每一个上述第一位置确定为当前位置,对上述当前检索词执行如下操作:计算上述当前检索词在上述当前位置与上述目标检索文本中除上述当前检索词之外的第一检索词所在的每一个第二位置的当前距离,得到多个当前距离;对每一个上述当前距离的平方的倒数求和,得到上述当前检索词在上述当前位置的邻近度评分。
作为一种可选的示例,上述计算模块包括:第二计算单元,用于将每一个上述目标检索词作为当前检索词,计算上述当前检索词的相关度评分;将计算得到的每一个上述当前检索词的上述相关度评分进行求和,得到上述第一和。
作为一种可选的示例,上述装置还包括:第二获取模块,用于获取上述用户发送的检索指令,其中,上述检索指令中包括上述目标检索文本;第二确定模块,用于从数据库中存储的多个第一文档中确定上述目标文档。
作为一种可选的示例,上述装置还包括:第三获取模块,用于获取上述多个第一文档中,每一个上述第一文档和上述目标检索文本的相似度评分;排序模块,用于按照上述相似度评分的大小,对上述多个第一文档进行排序。
根据本发明实施例的又一方面,还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被处理器运行时执行上述文档检索方法。
根据本发明实施例的又一方面,还提供了一种电子设备,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为通过上述计算机程序执行上述的文档检索方法。
本发明可以应用在信息检索技术的排序优化的过程中。在本发明实施例中,采用了获取目标检索文本和多个第一文档;对上述目标检索文本进行分词,得到目标检索词;将每一个上述第一文档作为当前文档,计算每一个上述目标检索词和上述当前文档的相关度评分的和,得到第一和,计算每一个上述目标检索词在上述当前文档中的位置的位置评分的和,得到第二和;将上述第一和与上述第二和的求和结果作为上述目标检索文本和上述当前文档的相似度评分;在计算得到上述多个第一文档的每一个第一文档的上述相似度评分的情况下,将上述相似度评分最大的目标文档发送给用户,由于在上述方法中,在检索目标文档时,在确定检索文本和目标文档的相似度评分的过程中,通过确定目标检索文本中的目标检索词和第一文档的相关度评分以及目标检索词在第一文档中的位置的位置评分来确定目标检索文本和第一文档的相似度评分,从而实现了提高计算的检索文本与文本文档的相关度的准确度的目的,进一步提高了检索到的目标文档的准确性。解决了检索的文档不准确的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的文档检索方法的流程图;
图2是根据本发明实施例的一种可选的文档检索方法的***示意图;
图3是根据本发明实施例的一种可选的文档检索方法的流程图;
图4是根据本发明实施例的另一种可选的文档检索方法的流程图;
图5是根据本发明实施例的一种可选的文档检索装置的结构示意图;
图6是根据本发明实施例的一种可选的电子设备的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例的第一方面,提供了一种文档检索方法,可选地,如图1所示,上述方法包括:
S102,获取目标检索文本和多个第一文档;
S104,对所述目标检索文本进行分词,得到目标检索词;
S106,将每一个所述第一文档作为当前文档,计算每一个所述目标检索词和所述当前文档的相关度评分的和,得到第一和,计算每一个所述目标检索词在所述当前文档中的位置的位置评分的和,得到第二和;
S108,将所述第一和与所述第二和的求和结果作为所述目标检索文本和所述当前文档的相似度评分;
S110,在计算得到所述多个第一文档的每一个第一文档的所述相似度评分的情况下,将所述相似度评分最大的目标文档发送给用户。
可选的,本实施例中的上述文档检索方法可以应用在搜索过程中,或者推荐过程中。应用在搜索过程中,可以根据用户输入的目标检索文本来搜索与目标检索文本相似度评分高的文档,应用在推荐过程中,可以在用户输入目标检索文本搜索相关内容时,从推荐文档中选择与目标检索文本的相似度评分高的目标文档推荐给用户。
本实施例中,目标检索文本可以为用户输入的文本内容。第一文档可以为推送集中的文档或者检索库中的文档。通过确定第一文档和目标检索文本的相似度评分来确定是否向用户推荐第一文档,或者第一文档是否为用户搜索的内容。
在获取到目标检索文本之后,首先对目标检索文本进行分词,分词可以将目标检索文本分为多个目标检索词。如果目标检索文本由单个目标检索词构成,则无需分词。
计算相关度评分的过程可以如图2所示。在分词后,计算每一个目标检索词与第一文档的相关度评分,然后将每一个目标检索词与第一文档的相关度评分求和,得到第一和,作为目标检索文本和第一文档的相关度评分。计算每一个目标检索词与第一文档的位置评分,然后将每一个目标检索词与第一文档的位置评分求和,得到第二和,作为目标检索文本和第一文档的邻近度评分。将第一和与第二和求和,得到的结果作为目标检索文本和第一文档的相似度评分。相似度评分大的第一文档作为目标文档返回给用户。
通过本实施例,在检索目标文档时,在确定检索文本和目标文档的相似度评分的过程中,通过确定目标检索文本中的目标检索词和第一文档的相关度评分以及目标检索词在第一文档中的位置的位置评分来确定目标检索文本和第一文档的相似度评分,从而实现了提高计算的检索文本与文本文档的相关度的准确度的目的,进一步提高了检索到的目标文档的准确性。
作为一种可选的示例,在计算目标检索文本和第一文档的相关度评分的时候,可以计算每一个所述目标检索词和所述当前文档的相关度评分,然后将得到的相关度评分求和,得到第一和,也就是目标检索文本和第一文档的相关度评分。可以将每一个所述目标检索词作为当前检索词,计算所述当前检索词的相关度评分;将计算得到的每一个所述当前检索词的所述相关度评分进行求和,得到所述第一和。
作为一种可选的示例,在计算目标检索文本和第一文档的邻近度评分,也就是上述第二和的过程中,可以使用如下方法:
将每一个所述目标检索词作为当前检索词,计算所述当前检索词的位置评分;
将计算得到的每一个所述当前检索词的所述位置评分进行求和,得到所述第二和。
也就是说,先将目标检索文本拆分成多个目标检索词,然后计算每一个目标检索词与第一文档的邻近度评分,然后通过求和的方法确定出目标检索文本和第一文档的邻近度评分。
上述位置评分可以视为每一个目标检索词和第一文档对应一个位置评分,位置评分可以为每一个目标检索词和一个第一文档的邻近度评分。
在计算每一个目标检索词与第一文档的位置评分(邻近度评分)的过程中,可以将每一个所述目标检索词作为当前检索词,计算所述当前检索词的位置评分包括:
对所述当前检索词执行如下操作:
确定所述当前检索词在所述当前文档中的所有第一位置;
计算所述当前检索词在每一个所述第一位置的邻近度评分;
将所述邻近度评分的加权求和结果作为所述当前检索词的所述位置评分。
在计算当前检索词与当前文档的位置评分时,先计算当前检索词在当前文档中的所有第一位置中,每一个第一位置的邻近度评分,然后将所有位置的邻近度评分加权求和,得到当前检索词在当前文档中的邻近度评分。
本实施例中,在计算当前检索词在每一个第一位置的邻近度评分时,可以将每一个所述第一位置确定为当前位置,对所述当前检索词执行如下操作:
计算所述当前检索词在所述当前位置与所述目标检索文本中除所述当前检索词之外的第一检索词所在的每一个第二位置的当前距离,得到多个当前距离;
对每一个所述当前距离的平方的倒数求和,得到所述当前检索词在所述当前位置的邻近度评分。
也就是说,计算当前检索词所在的第一位置和其他检索词所在的第二位置的距离,然后距离的评分的倒数求和,作为当前检索词在当前位置的邻近度评分。计算当前检索词在每一个位置的邻近度评分后,通过加权求和得到当前检索词的位置评分,进一步计算当前检索文本的位置评分。
本实施例中设计的词语解释:
在计算邻近度评分的过程中,查询语句q为目标检索文本,分词后的每个术语即目标检索词在文档d中可能出现多次,也就是说一个术语可能有多个位置,用一个术语t的一个位置与其他术语s的所有位置计算距离,然后把距离平方的倒数求和作为一个术语的一个位置的邻近度评分,然后把这个术语的所有位置的邻近度评分加权求和作为一个术语的邻近度评分,最后再把所有术语的邻近度评分加权求和,文档d对于查询语句q的术语邻近度评分计算公式如下:
SBM25TP(q,d)=SBM25(q,d)+STP(q,d) (1)
其中,STP(q,d):文档d对于查询语句q的术语邻近度评分
t:要计算某个术语邻近度的术语
s:与t进行距离计算的术语
tpid(t,s):一个术语的一个位置的邻近度评分,计算方式:一个术语t的一个位置与其他术语s的所有位置计算距离,然后把距离平方的倒数求和
accd(t):一个术语的邻近度评分,计算方式:把这个术语的所有位置的邻近度评分加权求和
dist[t,s]:两个不同termt,s在文章中所处位置的距离
o(t):query中的第t这个term可能在document可能出现多次,每一次出现用o(t)表示
其中,BM25算法公式为:
SBM25(q,d)=∑t∈qWt*Rd,t (2)
其中,q:查询语句
t:术语(term)
d:文档
fd,t:术语(term)t在doc中出现的频率
Wt:权重,用逆文本频率指数(inverse document frequency,idf)计算
avgd:平均文本长度
|d|:文本长度,其他标号均为参数。
k1:词频调节因子
b:长度惩罚因子
本实施例中,在实现计算目标检索文本和第一文档的相似度评分的时候,可以对上述公式1进行等价变换。
将:Wt*(k1+1)记做W’t
min{1,wt}*(k1+1)记做MinW’t
那么上述公式3等价于
=∑t∈q(Wt’*Rtfd,t+MinWt’*Rtpd,t)
由上述acc计算公式可知:
因此把∑s∈q,s≠ttpid(t,s)记做sumTpid(t),代表一个术语和其他所有术语的tpi总和,因此accd(t)有如下几种等价展开算式:
由于BM25算法的W′t*R′d,t是由相似度打分接口的实现类BM25Scorer的score方法实现的,而∑t∈qW′t*R′d,t是由WANDScorer的score方法实现的,因此可以创建一个BM25TPScorer类,重载score方法,该方法增加sumTpi参数,实现W′t*Rtfd,t+MinWt’*Rtpd,t的计算,因此可以用BM25TPScorer继承BM25Scorer,重载的score方法可以在原有的score方法基础加上MinWt’*Rtpd,t的计算即可,最后依然由WANDScorer的score方法负责∑t∈q(Wt’*Rtfd,t+MinWt’*Rtpd,t)的计算,从而实现BM25TP算法。
在此过程中,可以创建BM25TPSimilarity继承BM25Similarity,把BM25TPScorer作为BM25TPSimilarity的静态内部类,继承BM25Similarity的静态内部类BM25Scorer。还可以再增加一个LegacyBM25TPSimilarity对BM25TPSimilarity进行包装。
要计算出accd(t),就要获取和查询语句相匹配的每个术语在文档中的所有位置信息。
因此首先需要使TermScore类中的postingsEnum可以获取术语位置信息,可以修改TermWeight类中的scorer方法,构造postingsEnum时传递的PostingsEnum.FREQS换成PostingsEnum.POSITIONS参数,这样postingsEnum就不仅能获取词频,还能获取术语位置信息了。然后在TermScorer中定义一个获取该术语位置信息数组的方法:positions,这个方法迭代postingsEnum的nextPosition方法获取位置信息,迭代次数为postings.freq(术语在文档中的词频),这样就可以利用TermScorer来获取一个术语在一篇文档的全部位置信息了。
由于WANDScorer中可以获取所有参与计算的TermScorer,所以在WANDScorer的打分方法中可以调用TermScorer的positions方法获取所有术语的所有位置信息,从而进行sumTpid(t)的计算,把sumTpid(t)传递给BM25TPScorer重载的score方法。WANDScorer累加TermScorer评分时判断,如果TermScorer底层的SimScorer是BM25TPScorer实现的就用重载的score方法,否则还用SimScorer接口定义的score方法,这样TP就参与到了打分计算,完成了BM25TP的完整计算。流程如图3所示,获取目标检索文本,即查询语句,并对查询语句进行分词,得到目标检索词,生成BooleanQuery以及各个子TermQuery,生成BooleanWeight以及各个子TermWeight,创建WandScorer,以及各个术语的TermScorer,TermScorer底层的SimScorer为BM25Scorer,触发WandScorer的Scorer方法,WandScorer.Score遍历各个子TermScorer,判断Termscorer底层用的相似度打分接口实现是否为BM25TPScorer,如果判断结果为否,则调用TermScorer的score方法,TermScorer.score方法把词频传递给BM25Scorer的score方法,进行一个术语的相似度计算,作为TermScorer.score的结果,WandScorer.Score方法累加TermScorer.score的结果,作为当前文档的最终得分。如果判断结果为是,则通过TermScorer获取术语在当前文档中的全部位置信息,并记录到termPosiionsMap中,缓存TermScorer到一个BM25TPTermScorers列表,用termPosiionsMap计算每个术语的sumTpi并记录到TermScorer可以取出这个sumTpi的地方,BM25TPScorers,调用TermScorer.scorer方法,TermScorer.scorer方法把词频和sumTpi传递给BM25Scorer.scorer方法,进行一个术语的相似度计算,作为TermScorer.scorer的结果,然后WandScorer.Score方法累加TermScorer.score的结果,作为当前文档的最终得分。
实现BM25TP explain的核心思路是,取出和查询语句相匹配的术语在文档中的所有位置信息,然后计算出各个术语的TP,把TP以及计算TP时用到的参数信息组织成Explanation,基于BM25的explain,把这些TP相关的Explanation融合到整体的Explanation中。
首先要构造所有术语位置信息的Explanation。由于explain发生在BooleanWeight中,BooleanWeight中包含所有的TermWeight,通过TermWeight可以获取术语的TermScorer,因此可以在BooleanWeight的explain方法中获取所有术语的位置信息,从而构造所有术语位置信息的Explanation。需要说明的是,对于只包含一个术语的查询语句是不会发生TP计算的,因为邻近度计算至少需要两个术语,所以查询语句只有一个术语时,不必考虑TP的Explanation。
然后可以在BooleanWeight的explain方法中计算出sumTpid(t),从而构造出sumTpid(t)的Explanation记做sumTpiExpl,然后逐层向下传递,直到传给BM25TPScorer。
BM25TPScorer接收sumTpiExpl的方式可以有两种,一种是重载explain方法,增加sumTpiExpl参数,另一种是重写explain方法,从Explanation的子Explanation中获取sumTpiExpl。BM25TPScorer接收到sumTpiExpl之后,就可以计算出STP(q,d),从而构造TP的Explanation了,这样就完整实现了BM25TP的explain。流程图如图4所示。获取目标检索文本,即查询语句,并对查询语句进行分词,得到目标检索词,生成BooleanQuery以及各个子TermQuery,生成BooleanWeight以及各个子TermWeight,调用BooleanWeight的explain方法,BooleanWeight.explain遍历各个子TermWeight,调用TermWeight的scorer方法获取Termscorer,判断Termscorer底层用的相似度打分接口实现是否为BM25TPScorer,如果判断结果为否,调用TermWeight的explain方法TermWeight.explain方法用词频创建freqExpt传递给BM25Scorer的explain方法,BM25Scorer.explain利用freqExpt以及和BM25算法相关的成员变量创建一个术语的Explanation,作为TermWeight.explain的结果,添加到Explanation列表subs中,BooleanWeight.explain调用WANDScorer.score获取文档得分,用文档得分和subs创建当前文档最终的Explanation,如果判断结果为是,通过TermScorer获取术语在当前文档中的全部位置信息,并记录到termPosiionsMap中,缓存TermWeight到一个BM25TPTermWeight列表,用termPosiionsMap创建PosiionsExpl,并添加到Explanation列表subs中,遍历termPosiionsMap,计算每一个术语的sumTpi并记录到TermWeight中可以取出这个sumTpi的地方,遍历BM25TPTermWeight调用TermWeight.explain,TermWeight.explain方法用词频创建freqExpt,利用sumTpi创建sumTpiExpt,传递给BM25TPScorer的explain方法,BM25TPScorer.explain利用freqExpt和sumTpiExpt以及和BM25算法相关的成员变量创建一个术语的Explanation,作为TermWeight.explain的结果,添加到Explanation列表subs中,然后BooleanWeight.explain调用WANDScorer.score获取文档得分,用文档得分和subs创建当前文档最终的Explanation。
在上述过程中,BM25TP实现的SimScore还可以sumTp作为BM25TPScorer的成员变量,并提供这个变量的set方法来实现。
计算sumTpi不一定发生在WandScorer和BooleanWeight中,只要sumTpi计算结果能传递到符合BM25TP的计算逻辑中都能实现和本方案相同的效果。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
根据本申请实施例的另一方面,还提供了一种文档检索装置,如图5所示,包括:
第一获取模块502,用于获取目标检索文本和多个第一文档;
分词模块504,用于对目标检索文本进行分词,得到目标检索词;
计算模块506,用于将每一个第一文档作为当前文档,计算每一个目标检索词和当前文档的相关度评分的和,得到第一和,计算每一个目标检索词在当前文档中的位置的位置评分的和,得到第二和;
第一确定模块508,用于将第一和与第二和的求和结果作为目标检索文本和当前文档的相似度评分;
发送模块510,用于在计算得到多个第一文档的每一个第一文档的相似度评分的情况下,将相似度评分最大的目标文档发送给用户。
可选的,本实施例中的上述文档检索方法可以应用在搜索过程中,或者推荐过程中。应用在搜索过程中,可以根据用户输入的目标检索文本来搜索与目标检索文本相似度评分高的文档,应用在推荐过程中,可以在用户输入目标检索文本搜索相关内容时,从推荐文档中选择与目标检索文本的相似度评分高的目标文档推荐给用户。
本实施例中,目标检索文本可以为用户输入的文本内容。第一文档可以为推送集中的文档或者检索库中的文档。通过确定第一文档和目标检索文本的相似度评分来确定是否向用户推荐第一文档,或者第一文档是否为用户搜索的内容。
在获取到目标检索文本之后,首先对目标检索文本进行分词,分词可以将目标检索文本分为多个目标检索词。如果目标检索文本由单个目标检索词构成,则无需分词。
在分词后,计算每一个目标检索词与第一文档的相关度评分,然后将每一个目标检索词与第一文档的相关度评分求和,得到第一和,作为目标检索文本和第一文档的相关度评分。计算每一个目标检索词与第一文档的位置评分,然后将每一个目标检索词与第一文档的位置评分求和,得到第二和,作为目标检索文本和第一文档的邻近度评分。将第一和与第二和求和,得到的结果作为目标检索文本和第一文档的相似度评分。相似度评分大的第一文档作为目标文档返回给用户。
通过本实施例,在检索目标文档时,在确定检索文本和目标文档的相似度评分的过程中,通过确定目标检索文本中的目标检索词和第一文档的相关度评分以及目标检索词在第一文档中的位置的位置评分来确定目标检索文本和第一文档的相似度评分,从而实现了提高计算的检索文本与文本文档的相关度的准确度的目的,进一步提高了检索到的目标文档的准确性。
本实施例的其他示例请参见上述示例,在此不在赘述。
图6是根据本申请实施例的一种可选的电子设备的结构框图,如图6所示,包括处理器602、通信接口604、存储器606和通信总线608,其中,处理器602、通信接口604和存储器606通过通信总线608完成相互间的通信,其中,
存储器606,用于存储计算机程序;
处理器602,用于执行存储器606上所存放的计算机程序时,实现如下步骤:
获取目标检索文本和多个第一文档;
对目标检索文本进行分词,得到目标检索词;
将每一个第一文档作为当前文档,计算每一个目标检索词和当前文档的相关度评分的和,得到第一和,计算每一个目标检索词在当前文档中的位置的位置评分的和,得到第二和;
将第一和与第二和的求和结果作为目标检索文本和当前文档的相似度评分;
在计算得到多个第一文档的每一个第一文档的相似度评分的情况下,将相似度评分最大的目标文档发送给用户。
可选地,在本实施例中,上述的通信总线可以是PCI(Peripheral ComponentInterconnect,外设部件互连标准)总线、或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括RAM,也可以包括非易失性存储器(non-volatile memory),例如,至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
作为一种示例,上述存储器606中可以但不限于包括上述文档检索装置中的第一获取模块502、分词模块504、计算模块506、第一确定模块508以及发送模块510。此外,还可以包括但不限于上述请求的处理装置中的其他模块单元,本示例中不再赘述。
上述处理器可以是通用处理器,可以包含但不限于:CPU(Central ProcessingUnit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP(DigitalSignal Processing,数字信号处理器)、ASIC(Application Specific IntegratedCircuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解,图6所示的结构仅为示意,实施上述文档检索方法的设备可以是终端设备,该终端设备可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图6其并不对上述电子设备的结构造成限定。例如,电子设备还可包括比图6中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图6所示的不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、ROM、RAM、磁盘或光盘等。
根据本发明的实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被处理器运行时执行上述文档检索方法中的步骤。
可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种文档检索方法,其特征在于,包括:
获取目标检索文本和多个第一文档;
对所述目标检索文本进行分词,得到目标检索词;
将每一个所述第一文档作为当前文档,计算每一个所述目标检索词和所述当前文档的相关度评分的和,得到第一和,计算每一个所述目标检索词在所述当前文档中的位置的位置评分的和,得到第二和;
将所述第一和与所述第二和的求和结果作为所述目标检索文本和所述当前文档的相似度评分;
在计算得到所述多个第一文档的每一个第一文档的所述相似度评分的情况下,将所述相似度评分最大的目标文档发送给用户。
2.根据权利要求1所述的方法,其特征在于,所述计算每一个所述目标检索词在所述当前文档中的位置的位置评分的和,得到第二和包括:
将每一个所述目标检索词作为当前检索词,计算所述当前检索词的位置评分;
将计算得到的每一个所述当前检索词的所述位置评分进行求和,得到所述第二和。
3.根据权利要求2所述的方法,其特征在于,将每一个所述目标检索词作为当前检索词,计算所述当前检索词的位置评分包括:
对所述当前检索词执行如下操作:
确定所述当前检索词在所述当前文档中的所有第一位置;
计算所述当前检索词在每一个所述第一位置的邻近度评分;
将所述邻近度评分的加权求和结果作为所述当前检索词的所述位置评分。
4.根据权利要求3所述的方法,其特征在于,所述计算所述当前检索词在每一个所述第一位置的邻近度评分包括:
将每一个所述第一位置确定为当前位置,对所述当前检索词执行如下操作:
计算所述当前检索词在所述当前位置与所述目标检索文本中除所述当前检索词之外的第一检索词所在的每一个第二位置的当前距离,得到多个当前距离;
对每一个所述当前距离的平方的倒数求和,得到所述当前检索词在所述当前位置的邻近度评分。
5.根据权利要求1所述的方法,其特征在于,所述计算每一个所述目标检索词和所述当前文档的相关度评分的和,得到第一和包括:
将每一个所述目标检索词作为当前检索词,计算所述当前检索词的相关度评分;
将计算得到的每一个所述当前检索词的所述相关度评分进行求和,得到所述第一和。
6.根据权利要求1至5任意一项所述的方法,其特征在于,所述方法还包括:
获取所述用户发送的检索指令,其中,所述检索指令中包括所述目标检索文本;
从数据库中存储的多个第一文档中确定所述目标文档。
7.根据权利要求1至5任意一项所述的方法,其特征在于,所述方法还包括:
获取所述多个第一文档中,每一个所述第一文档和所述目标检索文本的相似度评分;
按照所述相似度评分的大小,对所述多个第一文档进行排序。
8.一种文档检索装置,其特征在于,包括:
第一获取模块,用于获取目标检索文本和多个第一文档;
分词模块,用于对所述目标检索文本进行分词,得到目标检索词;
计算模块,用于将每一个所述第一文档作为当前文档,计算每一个所述目标检索词和所述当前文档的相关度评分的和,得到第一和,计算每一个所述目标检索词在所述当前文档中的位置的位置评分的和,得到第二和;
第一确定模块,用于将所述第一和与所述第二和的求和结果作为所述目标检索文本和所述当前文档的相似度评分;
发送模块,用于在计算得到所述多个第一文档的每一个第一文档的所述相似度评分的情况下,将所述相似度评分最大的目标文档发送给用户。
9.一种计算机可读的存储介质,所述计算机可读的存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器运行时执行所述权利要求1至7任一项中所述的方法。
10.一种电子设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至7任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210294356.5A CN114741489A (zh) | 2022-03-23 | 2022-03-23 | 文档检索方法、装置、存储介质以及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210294356.5A CN114741489A (zh) | 2022-03-23 | 2022-03-23 | 文档检索方法、装置、存储介质以及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114741489A true CN114741489A (zh) | 2022-07-12 |
Family
ID=82277318
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210294356.5A Pending CN114741489A (zh) | 2022-03-23 | 2022-03-23 | 文档检索方法、装置、存储介质以及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114741489A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116186203A (zh) * | 2023-03-01 | 2023-05-30 | 人民网股份有限公司 | 文本检索方法、装置、计算设备及计算机存储介质 |
-
2022
- 2022-03-23 CN CN202210294356.5A patent/CN114741489A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116186203A (zh) * | 2023-03-01 | 2023-05-30 | 人民网股份有限公司 | 文本检索方法、装置、计算设备及计算机存储介质 |
CN116186203B (zh) * | 2023-03-01 | 2023-10-10 | 人民网股份有限公司 | 文本检索方法、装置、计算设备及计算机存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11227118B2 (en) | Methods, devices, and systems for constructing intelligent knowledge base | |
CN110162695B (zh) | 一种信息推送的方法及设备 | |
WO2019136993A1 (zh) | 文本相似度计算方法、装置、计算机设备和存储介质 | |
WO2020119063A1 (zh) | 专家知识推荐方法、装置、计算机设备及存储介质 | |
CN109885773B (zh) | 一种文章个性化推荐方法、***、介质及设备 | |
CN110019732B (zh) | 一种智能问答方法以及相关装置 | |
CN111797214A (zh) | 基于faq数据库的问题筛选方法、装置、计算机设备及介质 | |
US10482146B2 (en) | Systems and methods for automatic customization of content filtering | |
WO2013133985A1 (en) | Entity augmentation service from latent relational data | |
CN111159563B (zh) | 用户兴趣点信息的确定方法、装置、设备及存储介质 | |
CN110765286A (zh) | 跨媒体检索方法、装置、计算机设备和存储介质 | |
CN112632261A (zh) | 智能问答方法、装置、设备及存储介质 | |
CN112070550A (zh) | 基于搜索平台的关键词确定方法、装置、设备及存储介质 | |
CN113204953A (zh) | 基于语义识别的文本匹配方法、设备及设备可读存储介质 | |
CN112732898A (zh) | 文献摘要生成方法、装置、计算机设备及存储介质 | |
CN112307190A (zh) | 医学文献排序方法、装置、电子设备及存储介质 | |
CN114741489A (zh) | 文档检索方法、装置、存储介质以及电子设备 | |
WO2022227171A1 (zh) | 关键信息提取方法、装置、电子设备及介质 | |
CN107885875B (zh) | 检索词的同义变换方法、装置及服务器 | |
CN110825870B (zh) | 文档摘要的获取方法和装置、存储介质及电子装置 | |
CN114610796A (zh) | 文本相似度确定方法、装置、存储介质以及电子设备 | |
CN112650869B (zh) | 图像检索重排序方法、装置、电子设备及存储介质 | |
CN114020867A (zh) | 一种搜索词的扩展方法、装置、设备及介质 | |
CN115114415A (zh) | 问答知识库更新方法、装置、计算机设备和存储介质 | |
CN112784032A (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 |