发明内容
本发明的目的在于提供一种搜索方法和系统,利用词条相对频度抽取复合词单独建立索引,减小搜索词条的拆分粒度、减少集合运算次数。
本发明的技术方案是:一种搜索方法,在建立或更新索引数据库时,执行以下步骤:A1,读取一个网页正文,去掉停用词后进行分词;A2,对分词得到的词条的各种组合进行词频统计;A3,输出频次大于设定阈值的组合词条,并保存到复合词表中;A4,对复合词表中频次大于设定阈值的复合词建立索引。
具体的,在步骤A1中,网页正文中至少去掉停用词后的词条为有效词条。
作为优选,步骤A1中,在分词前首先将网页正文转换为标准数据格式,然后至少进行过滤脚本标示符和广告信息的操作。
作为优选,步骤A1中,对转换为标准数据格式的网页正文去掉停用词和虚词后进行分词。
本发明中所述复合词为二元以上的组合词条。
本发明一种搜索方法进一步包括步骤:B1,在接收到检索词后,根据复合词表对输入的检索词进行分词;所述复合词表包括频次大于设定阈值的所有复合词。
本发明还提供了一种搜索引擎的搜索系统,包括顺次相连的自动从互联网提取信息的网页抓取模块、用以保存提取信息的网页数据库、索引模块、索引数据库和搜索模块;所述索引模块包括用以将输入网页中不同的数据格式转换为标准数据格式的文档预处理单元、用以对转换格式后的网页内容进行分词处理的分词单元和索引建立单元;所述索引模块还包括词频统计单元,用于对所述分词单元输出的词条的各种组合进行词频统计,并将频次大于设定阈值的组合词条输出到索引建立单元,由索引建立单元对所述组合词条建立索引;所述索引数据库用于存储所述索引建立单元建立的索引;所述搜索模块负责在用户输入检索词搜索后,分解搜索请求,从所述索引数据库中找到符合该检索词的所有相关网页,进行计算和排序后返回给用户。
进一步的,所述索引数据库中还存储有复合词表,所述复合词表中存储着所述词频统计单元输出的组合词条。
进一步的,所述搜索模块包括顺次相连的检索词分词单元、搜索单元和结果处理单元;所述检索词分词单元用于根据所述复合词表对输入的检索词进行分词,并将分词后词条输出到所述搜索单元;所述搜索单元用于将所述分词后词条作为关键词在索引数据库中进行索引查询,并将查询结果发送到所述结果处理单元;所述结果处理单元用于对所述查询结果进行求并集、求交集,排序后发送到操作窗口进行显示。
本发明利用统计学原理统计出网页中出现频度高的复合词,对这些复合词单独建立索引,减小搜索时对搜索词条的拆分粒度,从而减少搜索引擎的索引查询次数和求交集、求并集运算的次数,大大地提高搜索引擎的检索速度,达到快速响应用户的目的,提高用户体验。同时,由于通过概率统计有选择的对多元词条建立索引,提高了索引数据库的利用率和系统的检索准确率。
具体实施方式
下面根据附图和具体实施例对本发明作进一步阐述。
如图1所示,搜索系统10包括顺次相连的网页抓取模块100、网页数据库200、索引模块300、索引数据库400和搜索模块500。
其中,网页抓取模块100负责自动从互联网提取信息,并将提取到的信息保存在网页数据库200中。一般的做法是:网页抓取模块100通过能够从互联网上自动收集网页的网络蜘蛛程序,自动访问互联网,并沿着任何网页中的所有URL(统一资源定位器)爬到其它网页,重复这过程,并把爬过的所有网页收集到网页数据库200中。搜索引擎的自动信息搜集功能分两种,一种是定期搜索,即每隔一段时间(比如28天),网页抓取模块100主动派出“蜘蛛”程序,对一定IP地址范围内的互联网站进行检索,一旦发现新的网站,“蜘蛛”程序会自动提取网站的信息和网址加入网页数据库200;另一种是提交网站搜索,即网站拥有者主动向搜索引擎提交网址,搜索引擎的网页抓取模块100会在一定时间内(2天到数月不等)定期对应网站派出“蜘蛛”程序,扫描网站并将有关信息存入网页数据库200。
网页数据库200负责存储网页抓取模块100获得的全部网页,以备用户搜索使用。
索引模块300负责对网页数据库200中存储的网页进行分析,提取相关网页信息(包括网页所在URL、编码类型、页面内容包含的关键词、关键词位置、生成时间、大小、与其它网页的链接关系等),根据一定的相关度算法进行大量复杂计算,得到每一个网页针对页面内容中及超链中每一个关键词的相关度(或重要性),然后用这些相关信息建立网页索引,并将建立好的索引存储到索引数据库400中。本实施例中,索引模块300包括文档预处理单元301、分词单元302、词频统计单元303和索引建立单元304。
文档预处理单元301负责从网页数据库200中读取一个网页,将输入的网页中不同的数据格式转换为标准数据格式,如将HTML页面、电子邮件或者PDF文件转换为文本文件,同时需要过滤掉一些脚本标示符和一些无用的广告信息,然后输出到分词单元302。
分词单元302负责对转换格式后的网页内容进行分词处理。为了提高系统效率,在分词前首先要把停用词和虚词等去掉(当然也可以在分词后去停用词和虚词等),只留下有效词条。本实施例中,分词单元302负责按照词典将转换后网页的正文和标题切分成词汇。如将“我看见了你在那里”去停用词后进行分词,分为“我”、“看见”、“你”、“在”“那里”五个词。现有的分词算法可分为三大类:基于字符串匹配的分词方法、基于理解的分词方法和基于统计的分词方法。本实施例中采用基于字符串匹配的分词方法。该方法又叫做机械分词方法,它是按照一定的策略将待分析的汉字串与一个“充分大的”机器词典中的词条进行匹配,若在词典中找到某个字符串,则匹配成功(识别出一个词)。
词频统计单元303负责进行词频统计,为建立复合词索引奠定基础。顾名思义,复合词就是由两个或两个以上词语组成的组合词条(即二元以上的组合词条),是有一定意义或者有一定关系的词语。例如“吃苹果”就是一个复合词,它其实是由“吃”和“苹果”两个词组成,再例如“中国银行”和“陶瓷沙”都是由两个词组成的复合词。某个词条的词频就是词条在文档出现的次数,例如一个词语在某文档中出现的次数为三十,此词条对这个文档的频度即为三十。词频统计单元303首先对分词单元302输出的词条进行各种组合,如将“中国知识产权的国际战略选择与国内战略安排”分词后的词语组合为“中国知识”、“知识产权”、“中国知识产权”、“产权国际”、“国际战略”、“战略选择”等等,然后将上述组合词条在网页原文中进行词频统计,当所有的组合词都统计完之后按照频次高低进行排序,将出现频次大于设定阈值的组合词条作为复合词输出到索引建立单元304。这样用概率统计出的复合词非常接近实际,而且不需要人工干预,能够达到很好的效果。
索引建立单元304负责对分词单元302输出的所有词条、以及词频统计单元303输出的复合词建立索引,并将建立好的索引保存到索引数据库400中。索引建立单元304还将词频统计单元303输出的复合词发送到索引数据库400中,索引数据库400将接收到的所有复合词保存在复合词表中(图1中未示出)。
搜索模块500负责在用户输入检索词搜索后,分解搜索请求,从索引数据库400中找到符合该检索词的所有相关网页,进行计算、排序后返回给用户。搜索模块500包括检索词分词单元501、搜索单元502和结果处理单元503。
检索词分词单元501根据上述复合词表对检索词进行分词(这样,就可以直接将检索词“中国人民银行”分词为“中国人民”和“银行”两个词),再发送到搜索单元502。搜索单元502负责分别对检索词分词后的词条为关键词在索引数据库400中进行搜索,提取满足条件的网页,发送到结果处理单元503。
结果处理单元503将收到的网页进行求交集和求并集运算得到一个结果页面集合,然后计算网页和关键词的相关度,根据相关度的数值返回前K篇结果(K为自然数,放在一个页面中)给用户。如果用户查看的第二页或者第多少页,再把排序结果中在第K+1到2*K的网页组织返回给用户。本发明的其它实施例中,可一次性将全部搜索结果返回给用户。本发明的其它实施例中,用户输入的检索词中的复合词所对应的结果页面排在最前面。
为了理解本发明搜索引擎的搜索系统10,还需要介绍的是,与建立索引同时进行的还有“链接信息提取处理”,即把网页链接信息(包括锚文本、链接本身等信息)保存在一个链接数据库(图1中未示出)中,为网页评级模块(图1中未示出)的网页评级提供依据。在用户进行搜索时,搜索模块500要在索引数据库400中进行相关网页的查找,同时网页评级模块把查询请求和链接信息结合起来对搜索结果进行相关度的评价,搜索模块500再按照相关度进行排序,并提取关键词的内容摘要,组织最后的页面返回给用户。
这样,如果用户输入“中国人民银行”进行搜索,系统就可以将检索词拆分为“中国人民”和“银行”,进行两次索引查询,再进行一次求交集运算,一次求并集运算即可向用户返回搜索结果,相对现有技术来说,减少了求交集和求并集的运算次数,提高了搜索速度。
综上所述,如图2所示,本发明所述的搜索方法在建立或更新索引数据库400时包括以下步骤:
步骤S11,读取一个网页,将正文转换为标准数据格式,过滤掉脚本标示符、广告信息等无关信息;
步骤S12,去停用词、虚词后进行分词;
步骤S13,对分词得到的词条的各种组合进行词频统计;
步骤S14,输出频次大于设定阈值的组合词条作为复合词;
步骤S15,对频次大于设定阈值的复合词以及分词得到的所有词条建立索引并保存。
如图3所示,以检索词是“中国人民银行”为例,一种搜索引擎的搜索方法在收到用户的检索关键词之后包括以下步骤:
步骤S21,根据复合词表对检索词进行分词,得到“中国人民”和“银行”;
步骤S22,在索引数据库中对“中国人民”进行索引查询,得到结果集合R1;对“银行”进行索引查询,得到结果集合R2;
步骤S23,对集合R1和R2进行求交集运算,得到集合R3;
步骤S24,对集合R1和R2进行求并运算,得到集合R4;
步骤S25,对结果进行排序后返回给用户,将集合R3中的网页排在最前面,其次是集合R4中的不在集合R3的网页。
本发明方法的其它实施例中,可在搜索的时候同时对复合词进行拆分搜索,以达到结果全面完整地目的。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。