发明内容
本发明实施例提供一种检索方法、索引建立方法和装置及检索系统,使用户能在排序结果中,快速查找出与检索短语相关度较高的文档,提高了排序结果的可靠性。
本发明实施例提供一种检索方法,包括:
通过至少两种分词方法分别对被检索内容进行分词处理,得到至少两组分词词汇,以所有分词词汇中互不相同的分词词汇作为关键词;
通过预先设置的关键词到文档的关键词索引,检索出与各所述关键词相关的文档集;
确定各所述关键词的置信度,所述关键词的置信度表示所述关键词与所述被检索内容的相关度;并通过文档到关键词置信度的关键词置信度索引,检索出各所述关键词在各所述文档中的置信度;
根据各所述关键词与各所述文档的第一相关度,对各所述文档集中的所有文档进行排序;所述第一相关度包括:所述关键词的置信度、所述关键词在各所述文档中的置信度,和第二相关度;所述第二相关度包括:所述关键词在各所述文档中出现的频率、以及与各所述关键词相关的各所述文档在所有文档中出现的频率。
本发明实施例还提供一种索引建立方法,包括:
通过至少两种分词方法分别对被选择文档进行分词处理,得到至少两组分词词汇,以所有分词词汇中互不相同的分词词汇作为关键词;
采用倒排索引方法建立各所述关键词到所述被选择文档的关键词索引;
确定各所述关键词在各所述被选择文档中的置信度;所述关键词在所述被选择文档中的置信度,表示所述关键词与所述被选择文档的相关度;
建立所述被选择文档到各所述关键词在所述被选择文档中的置信度的关键词置信度索引。
本发明实施例还提供一种检索装置,包括:
检索关键词确定模块,用于通过至少两种分词方法分别对被检索内容进行分词处理,得到至少两组分词词汇,以所有分词词汇中互不相同的分词词汇作为关键词;
文档集检索模块,用于通过预先设置的关键词到文档的关键词索引,检索出与各所述关键词相关的文档集;
第一置信度确定模块,用于确定各所述关键词的置信度;所述关键词的置信度表示所述关键词与所述被检索内容的相关度
第二置信度确定模块,用于通过文档到关键词置信度的关键词置信度索引,检索出各所述关键词在各所述文档中的置信度;
排序模块,用于根据各所述关键词与各所述文档的第一相关度,对各所述文档集中的所有文档进行排序;所述第一相关度包括:所述关键词的置信度、所述关键词在各所述文档中的置信度,和第二相关度;所述第二相关度包括:所述关键词在各所述文档中出现的频率、以及与各所述关键词相关的各所述文档在所有文档中出现的频率。
本发明实施例还提供一种索引建立装置,包括:
文档关键词确定模块,用于通过至少两种分词方法分别对被选择文档进行分词处理,得到至少两组分词词汇,以所有分词词汇中互不相同的分词词汇作为关键词;
关键词索引建立模块,用于采用倒排索引方法建立各所述关键词到所述被选择文档的关键词索引;
第三置信度确定模块,用于确定各所述关键词在各所述被选择文档中的置信度;所述关键词在所述被选择文档中的置信度,表示所述关键词与所述被选择文档的相关度;
关键词置信度索引建立模块,用于建立所述被选择文档到各所述关键词在所述被选择文档中的置信度的关键词置信度索引。
本发明实施例还提供一种检索系统,包括:上述检索装置和上述索引建立装置。
本发明实施例检索方法,通过至少两种分词方法对被检索内容进行分词处理,得到能全面反映被检索内容的分词结果,并根据对各分词结果评估得出各关键词的置信度。在根据各关键词结果检索出相关文档集后,根据各关键词的置信度、各分词在相关文档中置信度以及各分词的TF-IDF值,对检索出的相关文档集进行排序,使更接近于用户需求的相关文档排在前列。由于本实施例中将各关键词的置信度和各关键词在各文档中的置信度作为排序因素,使得关键词置信度高的相应文档排在关键词置信度低的相应文档之前,从而提高了检索系统排序结果的可靠性,而且使用户快速找到所需求的信息。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
搜索引擎根据分词方法得到的分词结果,在数据库中检索出与分词结果相关的文档。中文分词是中文搜索引擎的基础,对中文搜索引擎的检索性能有着重要的影响。查全率是指检索出的相关文档数与检索系统中相关文档总量的比率,是衡量检索系统检索相关文献能力的尺度。由此,中文分词方法得到的分词结果不全面、不准确,则会直接影响检索系统的查全率。以下以中文搜索引擎为例进行说明本发明检索方法、索引建立方法和装置及检索系统进行说明,本发明还可适应其它中文检索系统。
图1a为本发明检索方法实施的流程图,图1b为本发明检索方法实施例的应用场景图,本实施例的执行主体可为图1b中所示的检索装置。如图1a所示,本实施例包括:
步骤11:通过至少两种分词方法分别对被检索内容进行分词处理,得到至少两组分词词汇,以所有分词词汇中互不相同的分词词汇作为关键词;
上述被检索内容可以是用户在浏览器上输入的短语或句子。采用不同的中文分词方法对相同的语句或短语进行分词,有可能产生不同的分词结果,从而导致不同的检索结果。用户向搜索引擎输入的被检索内容,往往是用户自己所理解的含义。对于具有歧义的被检索内容来说,搜索引擎所使用的分词方法并不能确定用户所理解的含义。例如,具有歧义的检索词“奶啤酒瓶”,不同的用户有不同的理解,用户A需要的检索结果为有关“奶啤酒”的瓶子的信息,而用户B需要的检索结果为有关“奶”和“啤酒瓶”的信息,而用户C需 要的检索结果为有关“奶啤酒”和“瓶”的信息。由于检索结果是根据分词结果进行检索的,如果搜索引擎只采用一种分词方法对用户输入的被检索内容进行分词,则检索结果会丢失一部分信息。因此,检索结果要么大部分信息与“奶”、“啤酒瓶”相关,要么大部分信息与“奶啤酒”、“瓶”相关。
如果搜索引擎采用两种以上的分词方法,例如同时采用正向最大匹配分词方法和逆向最大匹配分词方法,对用户输入的被检索内容“奶啤酒瓶”进行分词,则得到的分词结果为:奶、啤酒瓶、奶啤酒、瓶。那么根据分词结果检索出的文档集合既包含“啤酒瓶”的信息,也包含“奶啤酒”的信息。由于搜索引擎提高了查全率,因而检索结果既能满足于用户A的需求,也能满足用户B的需求,同时也能满足用户C的需求。
搜索引擎采用两种以上的分词方法,对用户输入的被检索内容进行分词后,若各分词方法得到的各组分词词汇完全相同,则将其中一个分词方法的一组分词词汇作为关键词。例如短语“人民共和国”,利用正向最大匹配分词方法、与利用逆向最大匹配分词方法得到两组分词词汇均为:“人民”和“共和国”,则将“人民”和“共和国”两个词作为关键词。
若各分词方法得到的各组分词词汇不完全相同,则将各个分词方法的各组分词词汇共同作为关键词,以尽可能多检索出与被检索内容相关的文档。例如,句子“乒乓球拍卖完了”,可切分成“乒乓球拍”和“卖完了”;也可切分为“乒乓球”和“拍卖完了”,则将“乒乓球拍”、“卖完了”、乒乓球”和“拍卖完了”四个词共同作为关键词。
又例如短语“中华人民共和国万岁”,利用正向最大匹配分词方法得到的一组分词词汇为:“中华人民”、“共和国”和“万岁”;利用逆向最大匹配分词方法得到的一组分词词汇为:“中华”、“人民共和国”和“万岁”。则将“中华”、“中华人民”、“共和国”和“万岁”及“人民共和国”。
又例如,“奶啤酒瓶”,采用正向最大匹配分词方法得到分词结果:“奶”、“啤酒”和“瓶”;采用逆向最大匹配分词方法得到分词结果:“奶啤酒”和“瓶”。 则两种分词方法的分词词汇“奶”、“啤酒”、“瓶”和“奶啤酒”共同作为关键词。
步骤12:通过预先设置的关键词到文档的关键词索引,检索出与各关键词相关的文档集。
搜索引擎通过文档中关键词为文档建立了倒排索引,以利于通过关键词快速检索到含有该关键词的文档。建立倒排索引的过程为:分析文档内容后,通过分词方法从文档中提取出多个关键词。关键词存储在词汇表中,词汇表中的每个关键词对应一个倒排表,该表中记录了该关键词出现的文档集合、在该文档中的出现位置以及出现的频率。在处理复杂的多关键字查询时,可在倒排表中先完成有关查询文档地址的交、并等逻辑运算,得到结果后再对文档进行存取,提高查找速度。
在检索时,通过词汇表中的关键词索引,从倒排表中查找到该关键词出现的文档、在该文档中的出现位置等信息。然后从数据库中提取出该文档。
在步骤13:确定各关键词的置信度;
搜索引擎采用两种以上的分词方法,对用户输入的被检索内容进行分词后,如果各分词方法的各组分词词汇不完全相同,则需对各分词词汇(关键词)进行评估,得出各关键词与用户输入的被检索内容之间的相关度,也就是各关键词的置信度。确定各关键词的置信度具体方法可为:根据各分词方法的分词准确度,确定各组分词词汇的准确度权值;根据各组分词词汇的准确度权值,确定各关键词的置信度。其中,各组分词词汇的准确度权值为各组分词词汇对应的分词方法的准确度,与各分词方法的准确度之和的比值。
具体地,各关键词的置信度确定,可采用对各分词方法的准确度进行加权求和的形式,各分词方法的准确率通过长期对分词方法的可信度统计获得。例如,“奶啤酒瓶”,采用正向最大匹配分词方法得到分词结果:“奶”、“啤酒”和“瓶”;采用逆向最大匹配分词方法得到分词结果:“奶啤酒”和“瓶”;假设正向最大匹配分词方法的准确率为90%,逆向最大匹配分词方法的准确率为80%。正向最大匹配分词方法的分词结果权重为90%/(90%+80%)=0.53, 逆向最大匹配分词方法的分词结果权重为80%/(90%+80%)=0.47。加权之后正向最大匹配分词方法的各分词置信度为:(奶,0.53)(瓶,0.53)(啤酒,0.53),逆向最大匹配分词方法的各分词置信度:(奶啤酒,0.47)(瓶,0.47)。则最终作为关键词的各分词的置信度为:(奶,0.53)(啤酒,0.53)(瓶,1.0)(奶啤酒,0.47)。
步骤14:通过文档到关键词置信度的关键词置信度索引,检索出各关键词在各文档中的置信度;
上述关键词的置信度为:关键词与用户输入的被检索内容之间的相关度。步骤14检索的是各关键词在检索出的各文档中的置信度,作为该关键词与包含该关键词的文档的相关度的一种度量因素。
步骤15:根据各关键词与各文档的第一相关度,对各文档进行排序。
其中,关键词的置信度、关键词在各文档中的置信度,和第二相关度;第二相关度包括:关键词在各文档中出现的频率、以及与各关键词相关的各文档在所有文档中出现的频率。
某个词在一篇文档中出现的频率,称为词频(Term Frequency,简称TF),具体可为:某个词在一篇文档中出现的次数与该文档中包含的词的个数之间的比值。如果某个词在一篇文档中出现的频率越高,并且在其他文档中很少出现,则认为该词具有很好的类别区分能力。与某个词相关的文档在所有文档中出现的频率,称之为反文档频率(Inverse Document Frequency,简称IDF)。如果包含词的文档越少,IDF越大,则说明词条具有很好的类别区分能力。使用TF-IDF可以判断某个词在某篇文档里的重要性,可以判断是否可用该词来表达文档所包含的含义。
例如,根据关键词检索出的文档为文档1和文档2。通过关键词置信度索引,查找出关键词“奶”、“啤酒”、“瓶”和“奶啤酒”在文档1中的置信度分别为A1、B1、C1和D1,在文档2中的置信度分别为A2、B2、C2和D2;上述关键词与用户输入的被检索内容“奶啤酒瓶”的相关度(即各关键词的置 信度)分别为:0.53、0.53、1.0、0.47。各文档1的排序值计算方式可如下:
文档1的排序值X:0.53×A1×TFA1/IDFA1+0.53×B1×TFB1/IDF B1+1×C1×TFC1/IDFC1+0.47×D1×TFD1/IDFD1;
文档2的排序值Y:0.53×A2×TFA2/IDFA2+0.53×B2×TFB2/IDF B2+1×C2×TFC2/IDFC2+0.47×D2×TFD2/IDFD2;
如果文档1的排序值X大于文档2的排序值Y,则在最终的检索结果中文档1排在文档2之前;否则,文档2排在文档1之前。
本发明实施例检索方法,通过至少两种分词方法对被检索内容进行分词处理,得到能全面反映被检索内容的分词结果,并根据对各分词结果评估得出各关键词的置信度。在根据各关键词结果检索出相关文档集后,根据各关键词的置信度、各分词在相关文档中置信度以及各分词的TF-IDF值,对检索出的相关文档集进行排序,使更接近于用户需求的相关文档排在前列。由于本实施例中将各关键词的置信度和各关键词在各文档中的置信度作为排序因素,使得关键词置信度高的相应文档排在关键词置信度低的相应文档之前,从而提高了检索系统排序结果的可靠性,而且使用户更容易找到所需求的信息。
图2为本发明索引建立方法实施例的流程图,本实施例的执行主体可为图1b中所示的索引建立装置。如图2所示,本实施例包括:
步骤21:通过至少两种分词方法分别对被选择文档进行分词处理,得到至少两组分词词汇,以所有分词词汇中互不相同的分词词汇作为关键词;
为检索系统中的文档集建立索引时,先选取一篇文档进行分析,并使用多个分词方法对该文档进行分词,得到多组分词词汇。
步骤22:采用倒排索引方法建立各关键词到被选择文档的关键词索引;
将所有分词词汇中互不相同的分词词汇作为关键词,在关键词和包含该关键词的上述文档之间建立倒排索引。具体过程可为:将关键词存储在关键词汇表中,关键词汇表用于存储检索系统中所有关键词。然后,将包含该关 键词的文档的编号存储在关键词索引表中该关键词相应记录中,以根据该关键词查找到与该关键词相关的文档。其中关键词索引表还可以存储该关键词出现在该文档中的位置。关键词索引表的结构可为:
关键词—>{(文档1的编号、出现位置),(文档2的编号、出现位置)}。
步骤23:确定各关键词在被选择文档中的置信度;
例如,“奶啤酒瓶”,采用正向最大匹配分词方法得到分词结果:“奶”、“啤酒”和“瓶”;采用逆向最大匹配分词方法得到分词结果:“奶啤酒”和“瓶”。上述正向最大匹配分词方法得到分词词汇“奶”和“啤酒”,与逆向最大匹配分词方法得到分词词汇“奶啤酒”,之间不完全相同。则对两种分词方法的分词词汇“奶”、“啤酒”、“瓶”和“奶啤酒”,计算其在索引内容“奶啤酒瓶”中的置信度,该置信度为上述分词词汇与索引内容“奶啤酒瓶”的相关度的一种度量因素。计算出每个关键词的置信度后,将每个关键词的置信度存储在置信度表中。
又例如,被检索内容为“长整形”。文档A中包含有“使用长整形变量”,通过分词方法一得到的分词结果为:“使用”、“长整形”和“变量”,通过分词方法二得到的分词结果为:“使用”、“长”和“整形变量”;文档B中包含有“上嘴唇过长整形”,通过分词方法一得到的分词结果为:“上嘴唇”、“过长”和“变量”,通过分词方法二得到的分词结果为:“上嘴唇”、“过”和“长整形”。假设在文档A和文档B中,“长整形”出现的次数相同。而通过长期的分词方法可信度统计可知,分词方法一的可信度高于分词方法二。在对检索结果排序时,如果引入本实施例中的置信度,文档A会排在文档B之前。
步骤24:建立被选择文档到各关键词在被选择文档中的置信度的关键词置信度索引。
为关键词与包含该关键词的所有文档之间建立关键词索引后,在检索时可根据关键词检索到包含该关键词的所有文档。为使检索出与该关键词相关的文档之后,通过该文档查找出该关键词在该文档中的置信度,还需建立关 键词置信度索引。上述关键词索引为一级索引,关键词置信度索引为二级索引。关键词置信度索引表的具体结构如下所示:
文档N—>{(关键词1在关键词词汇表中位置,关键词1置信度在置信度表中位置),(关键词2在关键词词汇表中位置,关键词2置信度在置信度表中位置)……}。
本实施例索引建立方法,通过多种分词方法对检索系统中被选择文档进行分词,得到能全面反映该文档的关键词。除根据关键词为该被选择文档建立索引外,还在该被选择文档和该关键词在该被选择文档中的置信度之间建立了关键词置信度索引。从而不仅可通过多个关键词检索到该被选择文档,而且还对检索出的文档集的排序提供了一种更接近于用户需求的排序依据,提高了检索系统排序结果的可靠性。
图3为本发明检索装置实施例一结构示意图,如图3所示,本实施例包括:检索关键词确定模块31、文档集检索模块32、第一置信度确定模块33、第二置信度确定模块34和排序模块35。
检索关键词确定模块31,用于通过至少两种分词方法分别对被检索内容进行分词处理,得到至少两组分词词汇,若不同组的分词词汇不完全相同,以所有分词词汇中互不相同的分词词汇作为关键词。文档集检索模块32,用于通过预先设置的关键词到文档的关键词索引,检索出与各关键词相关的文档集。第一置信度确定模块33,用于确定各关键词的置信度;关键词的置信度表示关键词与被检索内容的相关度。第二置信度确定模块34,用于通过文档到关键词置信度的关键词置信度索引,检索出各关键词在各文档中的置信度。排序模块35,用于根据各关键词与各文档的第一相关度,对文档集进行排序;第一相关度包括:关键词的置信度、关键词在各文档中的置信度,和第二相关度;第二相关度包括:关键词在各文档中出现的频率、以及与各关键词相关的各文档在所有文档中出现的频率。
图4为本发明检索装置实施例二结构示意图。如图4所示,在图3对应 实施例的基础上,第一置信度确定模块33包括:第一权值确定子模块331和第一置信度确定子模块332。
第一权值确定子模块331,用于根据各分词方法的分词准确度,确定各组分词词汇的准确度权值。第一置信度确定子模块332,用于根据各组分词词汇的准确度权值,确定各关键词的置信度。
图3、图4中各功能模块的工作机理参见图1对应实施例的描述。
本发明实施例检索装置,通过至少两种分词方法对被检索内容进行分词处理,得到能全面反映被检索内容的分词结果,并根据对各分词结果评估得出各关键词的置信度。在根据各关键词结果检索出相关文档集后,根据各关键词的置信度、各分词在相关文档中置信度以及各分词的TF-IDF值,对检索出的相关文档集进行排序,使更接近于用户需求的相关文档排在前列。由于本实施例中将各关键词的置信度和各关键词在各文档中的置信度作为排序因素,使得关键词置信度高的相应文档排在关键词置信度低的相应文档之前,从而提高了检索系统排序结果的可靠性,而且使用户更容易找到所需求的信息。
图5为本发明索引建立装置实施例一结构示意图,如图5所示,本实施例包括:文档关键词确定模块51、关键词索引建立模块52、第三置信度确定模块53和关键词置信度索引建立模块54。
文档关键词确定模块51,用于通过至少两种分词方法分别对被选择文档进行分词处理,得到至少两组分词词汇;若不同组的分词词汇不完全相同,以所有分词词汇中互不相同的分词词汇作为关键词。关键词索引建立模块52,用于采用倒排索引方法建立各关键词到被选择文档的关键词索引。第三置信度确定模块53,用于确定各关键词在各被选择文档中的置信度;关键词在被选择文档中的置信度,表示关键词与被选择文档的相关度。关键词置信度索引建立模块54,用于建立被选择文档到各关键词在被选择文档中的置信度的关键词置信度索引。
图6为本发明索引装置实施例二结构示意图。如图6所示,在图5对应实施例的基础上,第三置信度确定模块53,包括:第二权值确定子模块531和第三置信度确定子模块532。
第二权值确定子模块531,用于根据各分词方法的分词准确度,确定各组分词词汇的准确度权值。第三置信度确定子模块532,用于根据各组分词词汇的准确度权值,确定各关键词的置信度。
图5、图6中各功能模块的工作机理参见图1对应实施例的描述。
本发明实施例索引建立装置,通过多种分词方法对检索系统中被选择文档进行分词,得到能全面反映该文档的关键词。除根据关键词为该被选择文档建立索引外,还在该被选择文档和该关键词在该被选择文档中的置信度之间建立了关键词置信度索引。从而不仅可通过多个关键词检索到该被选择文档,而且还对检索出的文档集的排序提供了一种更接近于用户需求的排序依据,提高了检索系统排序结果的可靠性。
图7为本发明检索系统实施例结构示意图,如图7所示,本实施例包括:检索装置71和索引建立装置72。其中,检索装置71的具体工作机理参见图3和图4对应实施例中描述;索引建立装置72的具体工作机理参见图5和图6对应实施例中描述。
本发明实施例检索系统,通过至少两种分词方法对被检索内容进行分词处理,得到能全面反映被检索内容的关键词,从而根据关键词尽可能检索出与被检索内容相关的所有文档。同时,在为检索系统中文档集建立索引时,利用至少两种分词方法对被选择文档进行分词处理,得到能全面反映被选择文档内容的关键词,从而建立关键词到被选择文档之间的关键词索引。以根据关键词索引尽可能检索出与关键词相关的所有文档,从而进一步提高了检索系统的查全率。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读 取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。