一种文档检索的方法及装置转让专利

申请号 : CN201210360872.X

文献号 : CN103678412B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 洪毅虹杨建武

申请人 : 北京大学北大方正集团有限公司北京北大方正电子有限公司

摘要 :

本发明提供一种文档检索的方法及装置,属于信息检索领域,包括:使用目标查询关键词在预先建立的倒排索引中对目标文档集合进行检索,得到第一目标文档集合,进行相关性打分,得到第一目标文档的相关性打分结果,并进行重排序得到第二目标文档集合;通过伪相关反馈模型对当前目标查询关键词进行扩展,得到新的目标查询关键词,进而得到第三目标文档集合;对第三目标文档集合中的目标文档进行分句处理,计算每个句子的标签权重总和;根据目标查询关键词对每个句子的内容进行相关性打分,得到每个句子的最终得分,从而得到目标句子;在目标句子中获取长度在预设长度范围内的句子作为检索结果片段。通过本发明,提高XML文档的检索性能和准确率。

权利要求 :

1.一种文档检索的方法,其特征在于,包括:

使用经过预处理得到的目标查询关键词在预先建立的倒排索引中对目标文档集合进行检索,得到第一目标文档集合;

对所述第一目标文档集合进行相关性打分,得到所述第一目标文档的相关性打分结果,并根据所述相关性打分结果对所述第一目标文档集合进行重排序得到第二目标文档集合;

通过伪相关反馈模型对所述当前目标查询关键词进行扩展,得到新的目标查询关键词;

当所述新的目标查询关键词满足预设条件时,使用所述新的目标查询关键词对所述第一目标文档集合进行重新检索,得到第三目标文档集合;

对所述第三目标文档集合中的每个目标文档进行分句处理,并计算进行所述分句处理得到每个句子的标签权重总和;

根据所述目标查询关键词对所述每个句子的文本内容进行相关性打分,得到每个句子的相关性打分结果,并根据所述每个句子的相关性打分结果得到所述每个句子的最终得分;

根据所述每个句子的最终得分得到目标句子,并在所述目标句子中获取长度在预设长度范围内的句子作为检索结果片段;

在所述对所述第一目标文档集合进行相关性打分之前,还包括:对所述第一目标文档集合进行训练,得到所述第一目标文档集合中的每个标签的权重;

所述对所述第一目标文档集合进行训练,得到所述第一目标文档集合中的每个标签的权重,包括:获取所述第一目标文档集合中的所有标签名;

根据所述标签名,将所述第一目标文档集合中的元素分为与查询相关的元素集合和与查询不相关的元素集合;

根据每个查询关键词在每个相关元素中出现的概率,和每个查询关键词在每个不相关元素中出现的概率确定所述第一目标文档集合中的每个标签的权重。

2.根据权利要求1所述的方法,其特征在于,在所述使用经过预处理得到的目标查询关键词在预先建立的倒排索引中对目标文档集合进行检索,得到第一目标文档集合之前,还包括:获取目标文档集合中每个单词在所述目标文档集合中的词频TF值和逆向文件频率IDF值;

根据所述目标文档集合中每个单词的TF值和IDF值建立所述倒排索引;

对查询关键词进行剔除停用词和词干提取操作,得到所述目标查询关键词;

建立检索模型。

3.根据权利要求2所述的方法,其特征在于,所述使用经过预处理得到的目标查询关键词在预先建立的倒排索引中对目标文档集合进行检索,得到第一目标文档集合,包括:根据所述检索模型使用经过预处理得到的目标查询关键词在预先建立的倒排索引中对目标文档集合进行检索,得到第一目标文档集合。

4.根据权利要求1所述的方法,其特征在于,

所述根据每个查询关键词在每个相关元素中出现的概率,和每个查询关键词在每个不相关元素中出现的概率确定所述第一目标文档集合中的每个标签的权重包括:获取每个查询关键词ti在每个相关元素bk中出现的次数a和所述相关元素集合中所有单词的总个数A;

获取所述每个查询关键词ti在每个不相关元素bk中出现的次数b和所述不相关元素集合中所有单词的总个数B;

根据所述每个查询关键词ti在所述每个相关元素bk中出现的次数和所述相关元素集合中所有单词的总个数,计算所述每个查询关键词ti在所述每个相关元素bk中出现的概率pik;

其中,

根据所述每个查询关键词ti在所述每个不相关元素bk中出现的次数和所述不相关元素集合中所有单词的总个数,计算所述每个查询关键词ti在所述每个不相关元素bk中出现的概率qik;

其中,

计算得到所述第一目标文档集合中的每个标签mj的权重;

其中,标签mj的权重的计算公式为:

所述tik是一个01值,所述tik为0或1,表示所述元素bk中是否包含有所述查询关键词ti;

所述Q为查询关键词。

5.根据权利要求1所述的方法,其特征在于,所述对所述第一目标文档集合进行相关性打分,得到所述第一目标文档的相关性打分结果,包括:抽取所述第一目标文档集合中每个目标文档的SLCA子树作为所述每个目标文档的结构信息;

对所述每个目标文档的SLCA子树进行相关性打分,得到所述每个目标文档的相关性得分。

6.根据权利要求5所述的方法,其特征在于,所述对所述每个目标文档的SLCA子树进行相关性打分,得到所述每个目标文档的相关性得分,包括:获取所述目标查询关键词中每个查询关键词q分别在每个节点n中出现的次数tfn,q;

计算所述每个查询关键词q在所述第一目标文档集合中的TF值TFq;

根据所述每个查询关键词q的tfn,q和TFq得到所述每个查询关键词q对于当前节点的相关性得分tw(n,q);

其中,

当所述当前节点n为叶子节点时,计算得到所述每个查询关键词q相对于所述当前节点n的相关性得分的总和,作为该文档的相关性得分。

7.根据权利要求6所述的方法,其特征在于,当所述当前节点n为非叶子节点时,还包括:计算所述当前节点n的所有子节点c相对于目标查询关键词的相关性得分tw(c,q);

根据所述每个查询关键词q相对于所述当前节点n的相关性得分tw(n,q)和所述当前节点n的所有子节点c相对于所述目标查询关键词的相关性得分tw(c,q)计算得到所述每个查询关键词q相对于所述当前节点n的相关性得分tw1(n,q);

其中,tw1(n,q)=tw(n,q)+∑c∈children(n)dn·tw(c,q)根据所述每个查询关键词q相对于所述当前节点n的相关性得分tw1(n,q)计算得到所述每个查询关键词q相对于所述当前节点n的相关性得分的总和,作为该文档的相关性得分。

8.根据权利要求1所述的方法,其特征在于,所述当所述新的目标查询关键词满足预设条件时,使用所述新的目标查询关键词对所述第一目标文档集合进行重新检索之前,还包括:判断所述新的目标查询关键词是否满足预设条件;

当所述新的目标查询关键词不满足所述预设条件时,使用所述新的目标查询关键词对所述第一目标文档集合进行重新检索,得到新的第二目标文档集合;

通过伪相关反馈模型对所述当前目标查询关键词进行扩展,得到更新的目标查询关键词;

直到所述更新的目标查询关键词满足所述预设条件,使用所述更新的目标查询关键词对所述第一目标文档集合进行重新检索。

9.根据权利要求1所述的方法,其特征在于,所述对所述第三目标文档集合中的每个目标文档进行分句处理,并计算进行所述分句处理得到每个句子的标签权重总和,包括:训练所述第三目标文档集合,得到所述第三目标文档集合中每个标签的权重;

去除标签,对所述第三目标文档集合中的每个目标文档进行分句处理;

计算所述每个句子包含的所有词所对应的标签的权重,以得到每个句子的标签权重总和tagW(s)。

10.根据权利要求9所述的方法,其特征在于,所述根据所述目标查询关键词对所述每个句子的文本内容进行相关性打分,包括:

1)计算目标查询关键词相对于每个句子的相关性得分Scorequery(s);

其中,

queryC(s)为所述每个句子中出现的关键词的种类;Occ(qi,s)为每个查询关键词q在句子中出现的次数;Weight(qi)为每个查询关键词q的权重;

2)计算所述每个句子中每个重要单词的得分Scoresw(s);所述重要单词为在所述目标文档中出现的次数大于阈值次数的单词;

其中,

3)计算所述每个句子的标题相关性得分Scoretitle(s);

其中,

4)根据所述Scorequery(s)、所述Scoresw(s)和所述Scoretitle(s)对所述每个句子的文本内容进行相关性打分Scorerel(s);

其中,Scorerel(s)=αScorequery(s)+βScoresw(s)+γScoretitle(s)所述α、β、γ为预设的调和参数;

所述根据所述每个句子的相关性打分结果得到所述每个句子的最终得分,包括:根据公式Score(s)=(1+σ*tagW(s))*Scorerel(s)得到所述每个句子的最终得分Score(s);

其中,所述σ为预设的调和参数。

11.一种文档检索的装置,其特征在于,包括:

检索单元,用于使用经过预处理得到的目标查询关键词在预先建立的倒排索引中对目标文档集合进行检索,得到第一目标文档集合;

获取单元,用于对所述第一目标文档集合进行相关性打分,得到所述第一目标文档的相关性打分结果,并根据所述相关性打分结果对所述第一目标文档集合进行重排序得到第二目标文档集合;

所述获取单元,还用于通过伪相关反馈模型对所述当前目标查询关键词进行扩展,得到新的目标查询关键词;

所述获取单元,还用于当所述新的目标查询关键词满足所述预设条件时,使用所述新的目标查询关键词对所述第一目标文档集合进行重新检索,得到第三目标文档集合;

计算单元,用于对所述第三目标文档集合中的每个目标文档进行分句处理,并计算进行所述分句处理得到每个句子的标签权重总和;

所述计算单元,还用于根据所述目标查询关键词对所述每个句子的文本内容进行相关性打分,得到每个句子的相关性打分结果,并根据所述每个句子的相关性打分结果得到所述每个句子的最终得分;

所述获取单元,还用于根据所述每个句子的最终得分得到目标句子,并在所述目标句子中获取长度在预设长度范围内的句子作为检索结果片段;

所述计算单元,还用于对所述第一目标文档集合进行训练,得到所述第一目标文档集合中的每个标签的权重;

所述计算单元,具体包括:

获取子单元,用于获取所述第一目标文档集合中的所有标签名;

分类子单元,用于根据所述标签名,将所述第一目标文档集合中的元素分为与查询相关的元素集合和与查询不相干的元素集合;

所述获取子单元,还用于根据每个查询关键词在每个相关元素中出现的概率,和每个查询关键词在每个不相关元素中出现的概率确定所述第一目标文档集合中的每个标签的权重。

12.根据权利要求11所述的装置,其特征在于,

所述获取单元,还用于获取目标文档集合中每个单词在所述目标文档集合中的词频TF值和逆向文件频率IDF值;

所述装置还包括:

建立单元,用于根据所述目标文档集合中每个单词的TF值和IDF值建立所述倒排索引;

处理单元,用于对查询关键词进行剔除停用词和词干提取操作,得到所述目标查询关键词;

所述建立单元,还用于建立检索模型。

13.根据权利要求12所述的装置,其特征在于,

所述检索单元,具体用于根据所述检索模型使用经过预处理得到的目标查询关键词在预先建立的倒排索引中对目标文档集合进行检索,得到第一目标文档集合。

14.根据权利要求11所述的装置,其特征在于,

所述获取子单元,还用于获取每个查询关键词ti在每个相关元素bk中出现的次数a和所述相关元素集合中所有单词的总个数A;

所述获取子单元,还用于获取所述每个查询关键词ti在每个不相关元素bk中出现的次数b和所述不相关元素集合中所有单词的总个数B;

计算子单元,用于根据所述每个查询关键词ti在所述每个相关元素bk中出现的次数和所述相关元素集合中所有单词的总个数,计算所述每个查询关键词ti在所述每个相关元素bk中出现的概率pik;

其中,

所述计算子单元,还用于根据所述每个查询关键词ti在所述每个不相关元素bk中出现的次数和所述不相关元素集合中所有单词的总个数,计算所述每个查询关键词ti在所述每个不相关元素bk中出现的概率qik;

其中,

所述计算子单元,还用于计算得到所述第一目标文档集合中的每个标签mj的权重;

其中,标签mj的权重的计算公式为:

所述tik是一个01值,所述tik为0或1,表示所述元素bk中是否包含有所述查询关键词ti;

所述Q为查询关键词。

15.根据权利要求11所述的装置,其特征在于,所述获取单元,具体包括:抽取子单元,抽取所述第一目标文档集合中每个目标文档的SLCA子树作为所述每个目标文档的结构信息;

计算子单元,用于对所述每个目标文档的SLCA子树进行相关性打分,得到所述每个目标文档的相关性得分。

16.根据权利要求15所述的装置,其特征在于,

所述计算子单元,具体用于获取所述目标查询关键词中每个查询关键词q分别在每个节点n中出现的次数tfn,q;

所述计算子单元,具体用于计算所述每个查询关键词q在所述第一目标文档集合中的TF值TFq;

所述计算子单元,具体用于根据所述每个查询关键词q的tfn,q和TFq得到所述每个查询关键词q对于当前节点的相关性得分tw(n,q);

其中,

所述计算子单元,具体用于当所述当前节点n为叶子节点时,计算得到所述每个查询关键词q相对于所述当前节点n的相关性得分的总和,作为该文档的相关性得分。

17.根据权利要求16所述的装置,其特征在于,

所述计算子单元,还具体用于当所述当前节点n为非叶子节点时,计算所述当前节点n的所有子节点c相对于目标查询关键词的相关性得分tw(c,q);

所述计算子单元,还具体用于根据所述每个查询关键词q相对于所述当前节点n的相关性得分tw(n,q)和所述当前节点n的所有子节点c相对于所述目标查询关键词的相关性得分tw(c,q)计算得到所述每个查询关键词q相对于所述当前节点n的相关性得分tw1(n,q);

其中,tw1(n,q)=tw(n,q)+∑c∈children(n)dn·tw(c,q)所述计算子单元,还具体用于根据所述每个查询关键词q相对于所述当前节点n的相关性得分tw1(n,q)计算得到所述每个查询关键词q相对于所述当前节点n的相关性得分的总和,作为该文档的相关性得分。

18.根据权利要求11所述的装置,其特征在于,所述装置还包括:判断单元,用于判断所述新的目标查询关键词是否满足预设条件;

所述获取单元,还用于当所述新的目标查询关键词不满足所述预设条件时,使用所述新的目标查询关键词对所述第一目标文档集合进行重新检索,得到新的第二目标文档集合;

所述获取单元,还用于通过伪相关反馈模型对所述当前目标查询关键词进行扩展,得到更新的目标查询关键词;

所述检索单元,还用于直到所述更新的目标查询关键词满足所述预设条件,使用所述更新的目标查询关键词对所述第一目标文档集合进行重新检索。

19.根据权利要求11所述的装置,其特征在于,所述计算单元,具体包括:第一计算子单元,用于训练所述第三目标文档集合,得到所述第三目标文档集合中每个标签的权重;

分句处理子单元,用于去除标签,对所述第三目标文档集合中的每个目标文档进行分句处理;

所述第一计算子单元,还用于计算所述每个句子包含的所有词所对应的标签的权重,以得到每个句子的标签权重总和tagW(s)。

20.根据权利要求19所述的装置,其特征在于,

所述计算单元,具体用于计算目标查询关键词相对于每个句子的相关性得分Scorequery(s);

其中,

queryC(s)为所述每个句子中出现的关键词的种类;Occ(qi,s)为每个查询关键词q在句子中出现的次数;Weight(qi)为每个查询关键词q的权重;

所述计算单元,具体用于计算所述每个句子中每个重要单词的得分Scoresw(s);所述重要单词为在所述目标文档中出现的次数大于阈值次数的单词;

其中,

所述计算单元,具体用于计算所述每个句子的标题相关性得分Scoretitle(s);

其中,

所述计算单元,具体用于根据所述Scorequery(s)、所述Scoresw(s)和所述Scoretitle(s)对所述每个句子的文本内容进行相关性打分Scorerel(s);

其中,Scorerel(s)=αScorequery(s)+βScoresw(s)+γScoretitle(s)所述α、β、γ为预设的调和参数;

所述计算单元,还具体用于根据公式Score(s)=(1+σ*tagW(s))*Scorerel(s)得到所述每个句子的最终得分Score(s);

其中,所述σ为预设的调和参数。

说明书 :

一种文档检索的方法及装置

技术领域

[0001] 本发明涉及信息检索领域,尤其涉及一种文档检索的方法及装置。

背景技术

[0002] 传统的互联网信息的主要载体HTML(Hypertext Markup Language,超文本标记语言)为用户提供了一种方便的信息呈现方法,主要关注信息在浏览器上的显示效果。随着Web应用的日益广泛,HTML数据模型的局限性日益凸显,即HTML不能描述数据,HTML标签集固定且有限,用户无法根据自己的需要添加有意义的标记。因此,XML(Xtensible Markup Language,可扩展的标记语言)因此应运而生。
[0003] XML具有自描述性、平台无关性、可扩展性和简单易用等特点,能以可读的格式表示数据而不受表现形式的限制;XML的存在可以使数据在不兼容的系统中进行交换,简化了数据共享和传输过程中的复杂性;XML文档中既有内容信息也有结构信息,它的出现使得通过Internet进行海量数据的交换、集成、整合成为可能。随着越来越多的Web应用,如网络服务、电子商务、数字图书馆等采用XML作为海量数据存储、交换和发布的载体,如何高效地从海量XML文档集合中检索出有用的信息已经引起越来越多的研究人员的关注。
[0004] 目前,进行XML文档检索可以通过如下两种检索模式:
[0005] 第一种,基于XML文档结构的检索;
[0006] 在这种检索模式下,用户需要了解所查询XML文档的结构,才能够构造查询表达式。
[0007] 第二种检索模型是基于关键字的检索;
[0008] 在这种检索模式下,由编写者事先编写好查询表达式,此时用户既不需要学习复杂的查询语言,也不需要对XML文档底层的数据结构有深入的了解,用户仅仅需要输入与其感兴趣内容相关的关键字就可完成查询,已有的方法包括MLCA,SLCA,XRank,XSEarch,XSeek等。
[0009] 但是,第一种方法中,一方面,互联网中大部分XML文档并没有给用户提供完整的结构信息;另一方面,互联网中还存在着大量的异构XML文档,所以在这两种情况下,用户很难利用现有的语言构造出查询表达式对XML结构进行查询。在第二种方法中,关于XML关键字查询的方法大部分都是基于树型存储模型展开的,这就要求编写者在编写查询表达式时预先知道XML文档的结构。
[0010] 综上所述,现有的XML文档的检索模型,需要用户浏览XML文档的全部内容,或事先获知所查询XML文档的结构,并在进行检索的过程中需要占用大量的存储空间,在拥有海量数据量的XML文档的今天,现有的XML文档检索模型的检索性能和准确率较低。

发明内容

[0011] 本发明的实施例提供一种文档检索的方法及装置,提高了XML文档的检索性能和准确率。
[0012] 为达到上述目的,本发明的实施例采用如下技术方案:
[0013] 一种文档检索的方法,包括:
[0014] 使用经过预处理得到的目标查询关键词在预先建立的倒排索引中对目标文档集合进行检索,得到第一目标文档集合;
[0015] 对所述第一目标文档集合进行相关性打分,得到所述第一目标文档的相关性打分结果,并根据所述相关性打分结果对所述第一目标文档集合进行重排序得到第二目标文档集合;
[0016] 通过伪相关反馈模型对所述当前目标查询关键词进行扩展,得到新的目标查询关键词;
[0017] 当所述新的目标查询关键词满足预设条件时,使用所述新的目标查询关键词对所述第一目标文档集合进行重新检索,得到第三目标文档集合;
[0018] 对所述第三目标文档集合中的每个目标文档进行分句处理,并计算进行所述分句处理得到每个句子的标签权重总和;
[0019] 根据所述目标查询关键词对所述每个句子的文本内容进行相关性打分,得到每个句子的相关性打分结果,并根据所述每个句子的相关性打分结果得到所述每个句子的最终得分;
[0020] 根据所述每个句子的最终得分得到目标句子,并在所述目标句子中获取长度在预设长度范围内的句子作为检索结果片段。
[0021] 本发明还提供了一种文档检索的装置,包括:
[0022] 检索单元,用于使用经过预处理得到的目标查询关键词在预先建立的倒排索引中对目标文档集合进行检索,得到第一目标文档集合;
[0023] 获取单元,用于对所述第一目标文档集合进行相关性打分,得到所述第一目标文档的相关性打分结果,并根据所述相关性打分结果对所述第一目标文档集合进行重排序得到第二目标文档集合;
[0024] 所述获取单元,还用于通过伪相关反馈模型对所述当前目标查询关键词进行扩展,得到新的目标查询关键词;
[0025] 所述获取单元,还用于当所述新的目标查询关键词满足所述预设条件时,使用所述新的目标查询关键词对所述第一目标文档集合进行重新检索,得到第三目标文档集合;
[0026] 所述获取单元,还用于当所述新的目标查询关键词不满足所述预设条件时,使用所述新的目标查询关键词对所述第一目标文档集合进行重新检索,得到新的第二目标文档集合;
[0027] 计算单元,用于对所述第三目标文档集合中的每个目标文档进行分句处理,并计算进行所述分句处理得到每个句子的标签权重总和;
[0028] 所述计算单元,还用于根据所述目标查询关键词对所述每个句子的文本内容进行相关性打分,得到每个句子的相关性打分结果,并根据所述每个句子的相关性打分结果得到所述每个句子的最终得分;
[0029] 所述获取单元,还用于根据所述每个句子的最终得分得到目标句子,并在所述目标句子中获取长度在预设长度范围内的句子作为检索结果片段。
[0030] 本发明实施例提供的一种文档检索的方法及装置,可以使得用户在不需浏览文档的全部内容,且不清楚文档结构的情况下使用关键查询词进行检索,并且适用于海量文档的检索,检索性能和准确率高。

附图说明

[0031] 为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0032] 图1为本发明实施例1提供的一种文档检索的方法流程图;
[0033] 图2为本发明实施例2提供的一种文档检索的方法第一阶段流程图;
[0034] 图3为本发明实施例2提供的一种文档检索的方法第二阶段流程图;
[0035] 图4为本发明实施例2提供的训练第一目标文档集合,得到标签权重的方法流程示意图;
[0036] 图5为本发明实施例2提供的计算每个文档的SLCA子树进行相关性得分的方法流程示意图;
[0037] 图6为本发明实施例2提供的一种文档检索的方法第三阶段流程图;
[0038] 图7为本发明实施例2提供的对第三目标文档集合中的每个目标文档进行分句处理,并计算进行分句处理得到的每个句子的标签权重总和的方法流程示意图;
[0039] 图8为本发明实施例2提供的根据目标查询关键词对每个句子的文本内容进行打分的方法流程示意图;
[0040] 图9为本发明实施例3提供的一种文档检索的装置的结构示意图;
[0041] 图10为本发明实施例3提供的一种文档检索的装置的第二种结构示意图;
[0042] 图11为本发明实施例3提供的一种文档检索的装置中的计算单元的结构示意图;
[0043] 图12为本发明实施例3提供的一种文档检索的装置中的获取单元的结构示意图;
[0044] 图13为本发明实施例3提供的一种文档检索的装置的第三种结构示意图;
[0045] 图14为本发明实施例3提供的一种文档检索的装置中的计算单元的第二种结构示意图。

具体实施方式

[0046] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0047] 实施例1
[0048] 参见图1,为本实施例提供的一种文档检索的方法流程图,包括:
[0049] A、使用经过预处理得到的目标查询关键词在预先建立的倒排索引中对目标文档集合进行检索,得到第一目标文档集合。
[0050] B、对第一目标文档集合进行相关性打分,得到第一目标文档的相关性打分结果,并根据相关性打分结果对第一目标文档集合进行重排序得到第二目标文档集合。
[0051] C、通过伪相关反馈模型对当前目标查询关键词进行扩展,得到新的目标查询关键词。
[0052] D、当所述新的目标查询关键词满足预设条件时,使用所述新的目标查询关键词对所述第一目标文档集合进行重新检索,得到第三目标文档集合。
[0053] E、对第三目标文档集合中的每个目标文档进行分句处理,并计算进行分句处理得到每个句子的标签权重总和。
[0054] F、根据目标查询关键词对每个句子的文本内容进行相关性打分,得到每个句子的相关性打分结果,并根据每个句子的相关性打分结果得到每个句子的最终得分。
[0055] G、根据每个句子的最终得分得到目标句子,并在目标句子中获取长度在预设长度范围内的句子作为检索结果片段。
[0056] 本实施例提供的一种文档检索的方法,通过本实施例,可以使得用户在不需浏览文档的全部内容,且不清楚文档结构的情况下使用关键查询词进行检索,并且适用于海量文档的检索,检索性能和准确率高。
[0057] 实施例2
[0058] 本实施例中,一种文档检索的方法分为三个阶段,第一阶段为模糊检索阶段,以缩小半结构化文档集合;第二阶段为精确检索阶段,以得到精确的与查询相关的文档集合;第三阶段为片段生成阶段。
[0059] 参见图2,为本实施例提供的一种文档检索的方法第一阶段流程图,包括:
[0060] 第一阶段:模糊检索阶段。
[0061] 201:对目标文档集合进行预处理。
[0062] 本实施例中,目标文档集合为即将用于查询的XML半结构化文档集合。
[0063] 对目标文档集合进行预处理具体可以通过以下子步骤实现:
[0064] 1)剔除目标文档集合中的停用词。
[0065] 其中,停用词可以由用户事先进行设置,可以为“in”、“the”、“oh”和标点符号等无具体意义的词,中文可以为“的”、“着”、“吧”和标点符号等无具体意义的词。
[0066] 例如,下列2篇文章为文档集合中的部分内容,用来举例说明剔除目标文档集合中的停用词;
[0067] 文章1的内容为:Tom lives in Guangzhou,I live in Guangzhou too.
[0068] 文章2的内容为:He once lived in Shanghai.
[0069] 上述文章1和文章2内容,均为一个字符串,首先,根据空格分别找出文章1和文章2的所有单词,每个单词为关键词,再将停用词从文章1和文章2中剔除;剔除停用词后的文章1和文章2如下:
[0070] 剔除停用词后的文章1:[Tom][lives][Guangzhou][I][live][Guangzhou][0071] 剔除停用词后的文章2:[He][lives][Shanghai]。
[0072] 需要说明的是,当文档中出现中文句子时,需要利用现有技术对中文句子进行特殊的分词处理,再将停用词从文档中剔除。
[0073] 2):提取目标文档集合的词干。
[0074] 首先,当目标文档集合中的内容为英文字符时,将所有单词统一大小写;例如,当用户查找“He”时,单词“HE”、“he”也可以被查找到。
[0075] 其次,当目标文档集合中的内容为英文字符时,将所有单词进行还原;例如,当用户查找“live”时,单词“lives”、“lived”也可以被查找到,则需要将单词“lives”、“lived”还原为“live”。
[0076] 例如,以上述剔除停用词后的文章1和剔除停用词后的文章2为例进行说,提取词干后,
[0077] 文章1的所有关键词为:[tom][live][guangzhou][i][live][guangzhou]
[0078] 文章2的所有关键词为:[he][live][shanghai]。
[0079] 3):计算词干中每个单词在目标文档集合中的TF(term frequency,词频)值和IDF(inverse document frequency,逆向文件频率)值。
[0080] 其中,计算每个单词在目标文档集合中的TF值时可以采用如下公式进行计算:
[0081]
[0082] 上述公式中ni,j是单词在目标文档集合dj中的出现次数,分母是在目标文档集合中dj中所有单词的出现次数之和。
[0083] 计算每个单词在目标文档集合中的IDF值时可以采用如下公式进行计算:
[0084]
[0085] 其中,|D|为目标文档集合中的文件总数,|{j:ti∈dj}|为包含ti的文件总数(即ni,j≠0的文件总数)。
[0086] 202:对进行预处理后的目标文档集合建立倒排索引。
[0087] 例如,以上述文章1和文章2为例,建立倒排索引后,文章1和文章2中每个关键词与文章号、[出现频率]、关键词位置的对应关系为:
[0088] guangzhou 1[2] 3,6
[0089] he 2[1] 1
[0090] i 1[1] 4
[0091] live 1[2],2[1] 2,5,2
[0092] shanghai 2[1] 3
[0093] tom 1[1] 1
[0094] 建立倒排索引后,可以得知关键词在文章中出现的次数及具体位置。
[0095] 203:对查询关键词进行预处理得到目标查询关键词。
[0096] 其中,对查询关键词进行预处理具体可以通过以下子步骤实现:
[0097] 1)剔除查询关键词中的停用词。
[0098] 需要说明的是,本步骤的具体实现方法与上述步骤2011中剔除目标文档集合中的停用词的方法相同,在此不再具体说明。
[0099] 2)提取查询关键词的词干得到目标查询关键词。
[0100] 需要说明的是,本步骤的具体实现方法与上述步骤2012中提取目标文档集合的词干的方法相同,在此不再具体说明。
[0101] 204:根据检索模型使用经过预处理得到的目标查询关键词在倒排索引中对目标文档集合进行检索,得到第一目标文档集合。
[0102] 需要说明的是,建立检索模型是使用概率统计方法和语言模型建立的;检索的过程中使用狄利克雷Dirichlet平滑方式,缩小了目标文档集合的范围;其中,建立检索模型和Dirichlet平滑方式均属于现有技术,在此不再赘述。
[0103] 参见图3,为本实施例提供的一种文档检索的方法第二阶段流程图,包括:
[0104] 第二阶段:精确检索阶段。
[0105] 205:训练第一目标文档集合,得到第一目标文档集合中每个标签的权重。
[0106] 参加图4,训练第一目标文档集合,得到标签权重具体可以通过以下子步骤实现:
[0107] 2051:获取第一目标文档集合中的所有标签名。
[0108] 2052:根据标签名,将第一目标文档集合中的元素分为与查询相关的元素集合和与查询不相干的元素集合。
[0109] 2053:获取每个查询关键词ti在每个相关元素bk中出现的次数a和相关元素集合中所有单词的总个数A。
[0110] 需要说明的是,当查询关键词为英文字符时,将每个单词作为查询关键词;当查询关键词为中文语句时,需要利用现有技术对中文语句进行特殊的分词处理,处理得到的每个词语作为查询关键词。
[0111] 2054:获取每个查询关键词ti在每个不相关元素bk中出现的次数b和不相关元素集合中所有单词的总个数B。
[0112] 需要说明的是,当查询关键词为英文字符时,将每个单词作为查询关键词;当查询关键词为中文语句时,需要利用现有技术对中文语句进行特殊的分词处理,处理得到的每个词语作为查询关键词。
[0113] 2055:根据每个查询关键词ti在每个相关元素bk中出现的次数和相关元素集合中所有单词的总个数,计算每个查询关键词ti在每个相关元素bk中出现的概率pik。
[0114] 其中,
[0115] 2056:根据每个查询关键词ti在每个不相关元素bk中出现的次数和不相关元素集合中所有单词的总个数,计算每个查询关键词ti在每个不相关元素bk中出现的概率qik。
[0116] 其中,
[0117] 2057:计算得到第一目标文档集合中的每个标签mj的权重。
[0118] 其中,标签mj的权重的计算公式为:
[0119]
[0120] 其中,tik是一个01值,即可为0或1,表示元素bk中是否包含有查询关键词ti;Q为查询关键词。
[0121] 206:对查询关键词进行预处理,得到目标查询关键词。
[0122] 其中,目标查询关键词中包含若干个查询关键词q。
[0123] 需要说明的是,本步骤中对查询关键词进行预处理的方法与上述步骤203中对查询关键词进行预处理的方法相同,在此不再赘述。
[0124] 207:抽取第一目标文档集合中每个目标文档的SLCA子树作为每个目标文档的结构信息。
[0125] 208:对每个目标文档的SLCA子树进行相关性打分,得到每个目标文档的相关性得分。
[0126] 参见图5,计算每个文档的SLCA子树进行相关性得分可以采取自底向上的方法,具体可以通过以下子步骤实现:
[0127] 2081:获取目标查询关键词中每个查询关键词q分别在每个节点n中出现的次数tfn,q。
[0128] 2082:计算每个查询关键词q在第一目标文档集合中的TF值TFq。
[0129] 其中,本步骤中计算每个查询关键词q在第一目标文档集合中的TF值的方法与上述步骤2013中计算词干中每个单词在目标文档集合中的TF值的方法相同,在此步骤赘述。
[0130] 2083:根据每个查询关键词q的tfn,q和TFq得到每个查询关键词q对于当前节点的相关性得分tw(n,q)。
[0131] 其中,
[0132] 2084:当当前节点n为叶子节点时,计算得到每个查询关键词q相对于当前节点n的相关性得分的总和,作为文档的相关性得分。
[0133] 2085:当当前节点n为非叶子节点时,计算当前节点n的所有子节点c相对于目标查询关键词的相关性得分tw(c,q)。
[0134] 2086:根据每个查询关键词q相对于当前节点n的相关性得分tw(n,q)和当前节点n的所有子节点c相对于目标查询关键词的相关性得分tw(c,q)得到每个查询关键词q相对于当前节点n的相关性得分tw1(n,q)
[0135] 其中tw1(n,q)=tw(n,q)+∑c∈children(n)dn·tw(c,q)
[0136] 2087:根据每个查询关键词q相对于当前节点n的相关性得分tw1(n,q)计算得到每个查询关键词q相对于当前节点n的相关性得分的总和,作为该文档的相关性得分。
[0137] 209:根据所述第一目标文档集合中每个目标文档的相关性得分,得到第二目标文档集合。
[0138] 具体的,可以按照相关性得分由高到低的顺序对第一目标文档集合中的文档进行重新排序,也可以按照相关性得分由低到高的顺序对目标文档集合中的文档进行重新排序。
[0139] 可选的,在对目标文档集合中的文档进行重新排序后,还可以将得分小于在第一预设值的文档进行排除,保留得分大于等于第一预设值的目标文档集合,得到第二目标文档集合。
[0140] 210:根据当前第二目标文档集合中的目标文档使用伪相关反馈模型对目标查询关键词进行扩展,得到新的目标查询关键词,并判断新的目标查询关键词是否满足预设条件;
[0141] 当目标查询关键词不满足预设条件时,执行步骤211;
[0142] 当目标查询关键词满足预设条件时,执行步骤212。
[0143] 本实施例中,具体的,可以根据第二目标文档集合中分数较高的预设个目标文档使用伪相关反馈模型对目标查询关键词进行扩展,得到新的目标查询关键词,并判断新的目标查询关键词是否满足预设条件。
[0144] 需要说明的是,预设条件可以是关键词的个数,也可以是关键词的词干数目,但不限于此。
[0145] 211:使用新的目标查询关键词对第一目标文档集合进行重新检索,得到新的第二目标文档集合,返回执行步骤210的操作。
[0146] 参见图6,为本实施例提供的一种文档检索的方法第三阶段流程图,包括:
[0147] 第三阶段:片段产生阶段。
[0148] 212:使用新的目标查询关键词对第一目标文档集合进行重新检索,得到第三目标文档集合。
[0149] 需要说明的是,本步骤中得到文档的标签权重的方法与上述步骤205中得到标签权重的方法相同,在此不再具体说明。
[0150] 213:对第三目标文档集合中的每个目标文档进行分句处理,并计算进行分句处理得到的每个句子的标签权重总和。
[0151] 参加图7,对第三目标文档集合中的每个目标文档进行分句处理,并计算进行分句处理得到的每个句子的标签权重总和具体可以通过如下子步骤实现:
[0152] 2131:训练第三目标文档集合,得到第三目标文档集合中每个标签的权重;
[0153] 2132:去除标签,对第三目标文档集合中的每个目标文档进行分句处理。
[0154] 需要说明的是,对文档进行分句处理的操作属于现有技术,在此不再具体说明。
[0155] 2133:计算每个句子包含的所有词所对应的标签的权重,以得到每个句子的标签权重总和tagW(s)。
[0156] 其中,每个句子的标签权重总和为每个句子包含的所有词所对应的标签的权重总和。
[0157] 214:对查询关键词进行预处理得到目标查询关键词。
[0158] 其中,目标查询关键词中包括若干个查询关键词q。
[0159] 需要说明的是,本步骤中对查询关键词进行预处理的方法与上述步骤203中对查询关键词进行预处理的方法相同,在此不再赘述。
[0160] 215:根据目标查询关键词对每个句子的文本内容进行打分。
[0161] 参加图8,本步骤的具体实现具体为:
[0162] 2151:计算目标查询关键词相对于每个句子的相关性得分Scorequery(s)。
[0163] 其中,句子s与目标查询关键词的相关性和三个因素相关:每个句子中出现的关键词的种类queryC(s);每个查询关键词q在句子中出现的次数Occ(qi,s);每个查询关键词q的权重Weight(qi)。
[0164] 具体的,Scorequery(s)可以通过如下公式计算得到。
[0165]
[0166] 2152:计算每个句子中每个重要单词的得分Scoresw(s)。
[0167] 本步骤中,重要单词为在该目标文档中出现的次数大于阈值次数的单词。
[0168] 其中,Scoresw(s)可以通过如下公式计算得到:
[0169]
[0170] 2153:计算每个句子的标题相关性得分Scoretitle(s)。
[0171] 其中,Scoretitle(s)可以通过如下公式计算得到:
[0172]
[0173] 2154:根据Scorequery(s)、Scoresw(s)和Scoretitle(s)对每个句子的文本内容进行相关性打分Scorerel(s);
[0174] 其中,
[0175] Scorerel(s)=αScorequery(s)+βScoresw(s)+γScoretitle(s)
[0176] 上述α、β、γ是三个预设的调和参数。
[0177] 216:计算每个句子的最终得分。
[0178] 其中,计算每个句子的最终得分可以通过如下公式计算得到:
[0179] Score(s)=(1+σ*tagW(s))*Scorerel(s)
[0180] 其中,上述公式中的σ为调和参数。
[0181] 217:根据每个句子的最终得分,获取目标句子,目标句子的得分大于等于第二预设值。
[0182] 218:在目标句子中获取长度在预设长度范围内的句子作为检索结果片段。
[0183] 本实施例提供的一种文档检索的方法,通过本实施例,可以使得用户在不需浏览文档的全部内容,且不清楚文档结构的情况下使用关键查询词进行检索,并且适用于海量文档的检索,检索性能和准确率高。
[0184] 实施例3
[0185] 参加图9,为本实施例提供的一种文档检索的装置图,包括:
[0186] 检索单元301,用于使用经过预处理得到的目标查询关键词在预先建立的倒排索引中对目标文档集合进行检索,得到第一目标文档集合;
[0187] 获取单元302,用于对第一目标文档集合进行相关性打分,得到第一目标文档的相关性打分结果,并根据相关性打分结果对第一目标文档集合进行重排序得到第二目标文档集合;
[0188] 获取单元302,还用于通过伪相关反馈模型对所述当前目标查询关键词进行扩展,得到新的目标查询关键词;
[0189] 获取单元302,还用于当所述新的目标查询关键词满足预设条件时,使用所述新的目标查询关键词对所述第一目标文档集合进行重新检索,得到第三目标文档集合;
[0190] 计算单元303,用于对第三目标文档集合中的每个目标文档进行分句处理,并计算进行分句处理得到每个句子的标签权重总和;
[0191] 计算单元303,还用于根据目标查询关键词对每个句子的文本内容进行相关性打分,得到每个句子的相关性打分结果,并根据每个句子的相关性打分结果得到每个句子的最终得分;
[0192] 获取单元302,还用于根据每个句子的最终得分得到目标句子,并在目标句子中获取长度在预设长度范围内的句子作为检索结果片段。
[0193] 进一步地,获取单元302,还用于获取目标文档集合中每个单词在目标文档集合中的词频TF值和逆向文件频率IDF值;
[0194] 参见图10,装置还包括:
[0195] 建立单元304,用于根据目标文档集合中每个单词的TF值和IDF值建立倒排索引。
[0196] 处理单元305,用于对查询关键词进行剔除停用词和词干提取操作,得到目标查询关键词。
[0197] 所述建立单元304,还用于建立检索模型。
[0198] 进一步地,检索单元301,具体用于根据检索模型使用经过预处理得到的目标查询关键词在预先建立的倒排索引中对目标文档集合进行检索,得到第一目标文档集合。
[0199] 进一步地,计算单元303,还用于对第一目标文档集合进行训练,得到第一目标文档集合中的每个标签的权重。
[0200] 进一步地,参见图11,计算单元303,具体包括:
[0201] 获取子单元3031,用于获取第一目标文档集合中的所有标签名;
[0202] 分类子单元3032,用于根据标签名,将第一目标文档集合中的元素分为与查询相关的元素集合和与查询不相干的元素集合;
[0203] 获取子单元3031,还用于获取每个查询关键词ti在每个相关元素bk中出现的次数a和相关元素集合中所有单词的总个数A;
[0204] 获取子单元3031,还用于获取每个查询关键词ti在每个不相关元素bk中出现的次数b和不相关元素集合中所有单词的总个数B;
[0205] 计算子单元3033,用于根据每个查询关键词ti在每个相关元素bk中出现的次数和相关元素集合中所有单词的总个数,计算每个查询关键词ti在每个相关元素bk中出现的概率pik;
[0206] 其中,
[0207] 计算子单元3033,还用于根据每个查询关键词ti在每个不相关元素bk中出现的次数和不相关元素集合中所有单词的总个数,计算每个查询关键词ti在每个不相关元素bk中出现的概率qik;
[0208] 其中,
[0209] 计算子单元3033,还用于计算得到第一目标文档集合中的每个标签mj的权重;
[0210] 其中,标签mj的权重的计算公式为:
[0211]
[0212] tik是一个01值,表示元素bk中是否包含有查询关键词ti;Q为查询关键词。
[0213] 进一步地,参见图12,获取单元302,具体包括:
[0214] 抽取子单元3021,抽取第一目标文档集合中每个目标文档的SLCA子树作为每个目标文档的结构信息;
[0215] 计算子单元3022,用于对每个目标文档的SLCA子树进行相关性打分,得到每个目标文档的相关性得分。
[0216] 进一步地,
[0217] 计算子单元3022,具体用于获取目标查询关键词中每个查询关键词q分别在每个节点n中出现的次数tfn,q;
[0218] 计算子单元3022,具体用于计算每个查询关键词q在第一目标文档集合中的TF值TFq;
[0219] 计算子单元3022,具体用于根据每个查询关键词q的tfn,q和TFq得到每个查询关键词q对于当前节点的相关性得分tw(n,q);
[0220] 其中,
[0221] 计算子单元3022,具体用于当当前节点n为叶子节点时,计算得到每个查询关键词q相对于当前节点n的相关性得分的总和,作为该文档的相关性得分。
[0222] 进一步地,
[0223] 计算子单元3022,还具体用于当当前节点n为非叶子节点时,计算当前节点n的所有子节点c相对于目标查询关键词的相关性得分tw(c,q);
[0224] 计算子单元3022,还具体用于根据每个查询关键词q相对于当前节点n的相关性得分tw(n,q)和当前节点n的所有子节点c相对于目标查询关键词的相关性得分tw(c,q)计算得到每个查询关键词q相对于当前节点n的相关性得分tw1(n,q);
[0225] 其中,tw1(n,q)=tw(n,q)+∑c∈children(n)dn·tw(c,q)
[0226] 计算子单元3022,还具体用于根据每个查询关键词q相对于当前节点n的相关性得分tw1(n,q)计算得到每个查询关键词q相对于当前节点n的相关性得分的总和,作为该文档的相关性得分。
[0227] 进一步地,参见图13,所述装置还包括:
[0228] 判断单元306,用于判断所述新的目标查询关键词是否满足预设条件。
[0229] 所述获取单元302,还用于当所述新的目标查询关键词不满足所述预设条件时,使用所述新的目标查询关键词对所述第一目标文档集合进行重新检索,得到新的第二目标文档集合;
[0230] 所述获取单元302,还用于通过伪相关反馈模型对所述当前目标查询关键词进行扩展,得到更新的目标查询关键词;
[0231] 所述检索单元301,还用于直到所述更新的目标查询关键词满足所述预设条件,使用所述更新的目标查询关键词对所述第一目标文档集合进行重新检索。
[0232] 进一步地,参见图14,计算单元303,具体包括:
[0233] 第一计算子单元3034,用于训练第三目标文档集合,得到第三目标文档集合中每个标签的权重;
[0234] 分句处理子单元3035,用于去除标签,对第三目标文档集合中的每个目标文档进行分句处理;
[0235] 第一计算子单元3034,还用于计算每个句子包含的所有词所对应的标签的权重,以得到每个句子的标签权重总和tagW(s)。
[0236] 进一步地,
[0237] 计算单元303,具体用于计算目标查询关键词相对于每个句子的相关性得分Scorequery(s);
[0238] 其中,
[0239]
[0240] queryC(s)为每个句子中出现的关键词的种类;Occ(qi,s)为每个查询关键词q在句子中出现的次数;Weight(qi)为每个查询关键词q的权重;
[0241] 计算单元303,具体用于计算每个句子中每个重要单词的得分Scoresw(s);重要单词为在目标文档中出现的次数大于阈值次数的单词;
[0242] 其中,
[0243]
[0244] 计算单元303,具体用于计算每个句子的标题相关性得分Scoretitle(s);
[0245] 其中,
[0246]
[0247] 计算单元303,具体用于根据Scorequery(s)、Scoresw(s)和Scoretitle(s)对每个句子的文本内容进行相关性打分Scorerel(s);
[0248] 其中,
[0249] Scorerel(s)=αScorequery(s)+βScoresw(s)+γScorettitle(s)
[0250] α、β、γ为预设的调和参数。
[0251] 计算单元303,还具体用于根据公式Score(s)=(1+σ*tagW(s))*Scorerel(s)得到每个句子的最终得分Score(s);
[0252] 其中,σ为预设的调和参数。
[0253] 本发明实施例提供的一种文档检索的装置,可以使得用户在不需浏览文档的全部内容,且不清楚文档结构的情况下使用关键查询词进行检索,并且适用于海量文档的检索,检索性能和准确率高。
[0254] 通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0255] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。