基于社区的相关帖推荐系统及推荐方法

文档序号:6491181阅读:398来源:国知局
基于社区的相关帖推荐系统及推荐方法
【专利摘要】本发明提供一种基于社区的相关帖推荐系统及相关帖推荐方法,以解决传统方法下基于社区的搜索引擎在相关帖推荐上针对性不足的技术问题。所述相关帖推荐系统,包括用户接入层、在线检索层和离线数据处理层。所述用户接入层向http接口服务模块发出检索请求,所述在线检索层通过检索模块访问所述离线数据处理层。本发明提供的基于社区的相关帖推荐系统和方法通过所述离线数据处理层保证数据的有效性和正确性以供在线检索层下载,所述在线检索层的检索模块时效性较高,更新频率快,更新周期短,所述检索策略服务模块可以根据其所应用的社区的特点制定合适的检索策略,从而为用户推荐出与当前贴相关度较高的相关帖。
【专利说明】基于社区的相关帖推荐系统及推荐方法
【技术领域】
[0001]本发明涉及计算机网络技术,特别涉及基于社区的相关帖推荐系统及推荐方法。【背景技术】
[0002]搜索引擎是目前互联网上使用频繁的一种服务,主要功能是方便人们搜索各种站点,它还会分门别类的把一些优秀的站点列出来,以方便人们查找资料。社区搜索是以海量社区(论坛、SNS网站、微博等)资源为信息基础组织起来的搜索引擎功能。它用起来和普通的搜索引擎类似,但有将社区信息优先的特点。正如社交网络一样,社区搜索也是人们对信息内容更新和个性化的一种新的诉求。
[0003]目前在互联网上散落着许多的论坛,小规模的论坛或许会采用自行维护,论坛内的搜索功能也是依附于一些基本的提供查询的数据库(例如MySql);大一些规模的论坛或许会依托于一些已经成型的解决方案,例如Discuz或者PhpWind,其采用的搜索方式基本上与目前主流的搜索引擎类似,以为用户推荐当前贴的相关帖,来吸引用户深入、全面了解一个话题。然而,通用的搜索引擎用于社区搜索时的检索方式较简单,无法为用户提供更具针对性的相关帖。

【发明内容】

[0004]本发明的目的在于,解决传统方法下基于社区的搜索引擎在相关帖推荐上检索方式简单,检索策略单一的技术问题。
[0005]本发明的目的及解决其技术问题是采用以下技术方案来实现的。
[0006]一种基于社区的相关帖推荐系统,包括用户接入层、在线检索层和离线数据处理层。其中,所述在线检索层包括:http接口服务模块、检索代理服务模块、检索策略服务模块、检索模块。其中,所述http接口服务模块用于接收所述用户接入层发出的针对当前贴的相关帖检索请求,转发所述检索请求,并将相关帖检索结果返回至所述用户接入层以向用户显示相关帖。所述检索代理服务模块用于接收所述http接口服务模块转发的检索请求并将其转发至所述检索策略服务模块以及所述检索模块,并将相关帖检索结果返回至所述http接口服务模块。所述检索策略服务模块用于根据所述检索请求生成相应的相关帖检索策略。所述检索模块用于根据所述相关帖检索策略进行检索并取得相关帖检索结果。所述离线数据处理层用于处理离线数据并向所述在线检索层提供离线数据;所述在线检索层通过所述检索模块、所述检索策略服务模块访问所述离线数据处理层。
[0007]—种基于社区的相关帖推荐方法,包括以下步骤:用户接入层发送检索请求至在线检索层;在线检索层的http接口服务模块将所述检索请求转发至在线检索层的检索代理服务模块;检索代理服务模块向所述检索模块请求查找当前帖子的相关帖;如果检索模块未找到当前帖子的相关帖,则根据所述检索请求直接请求在线检索层的检索策略服务模块;所述检索策略服务模块根据当前帖子的核心内容与所述检索请求生成最终的查询核心词和查询策略;所述查询核心词和查询策略经由所述检索代理服务模块传给所述检索模块进行检索,所述检索模块通过访问离线数据处理层下载所述离线数据处理层所处理的离线数据获得并返回检索结果;所述检索结果依次经由所述检索代理服务模块、所述http接口服务模块返回所述用户接入层。
[0008]本发明提供的基于社区的相关帖推荐系统和方法通过所述离线数据管理模块保证数据的有效性和正确性以供在线检索层下载,所述在线检索层的检索模块时效性较高,更新频率快,更新周期短,所述检索策略服务模块可以根据其所应用的社区的特点制定合适的检索策略,所述整套的相关帖推荐系统的各个模块之间紧密联系,从而可以为用户推荐出与当前贴的相关度较高的相关帖。
[0009]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
【专利附图】

【附图说明】
[0010]图1为本发明第一实施例提供的基于社区的相关帖推荐系统的结构示意图。
[0011]图2为本发明第二实施例提供的基于社区的相关帖推荐系统的结构示意图。
[0012]图3为本发明第三实施例提供的基于社区的相关帖推荐系统的结构示意图。
[0013]图4为本发明第四实施例提供的基于社区的相关帖推荐系统的结构示意图。
[0014]图5是本发明第五实施例提供的基于社区的相关帖推荐方法的流程图。
[0015]图6是本发明第五实施例提供的相关帖推荐方法的时序图。
[0016]图7是本发明第六实施例提供的基于社区的相关帖推荐方法的流程图。
[0017]图8是本发明第七实施例提供的基于社区的相关帖推荐方法的流程图。
[0018]图9是本发明第八实施例提供的基于社区的相关帖推荐方法的流程图。
【具体实施方式】
[0019]为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的基于社区的相关帖推荐系统及方法的【具体实施方式】、方法、步骤、特征及其功效,详细说明如下。
[0020]有关本发明的前述及其他技术内容、特点及功效,在以下配合参考图式的较佳实施例的详细说明中将可清楚呈现。通过【具体实施方式】的说明,当可对本发明为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图式仅是提供参考与说明之用,并非用来对本发明加以限制。
[0021]第一实施例
[0022]请参阅图1,图1为本发明第一实施例提供的基于社区的相关帖推荐系统10的结构示意图。
[0023]图中用水平虚线将整个相关帖推荐系统10自上而下划分为3层,最上层为用户接入层11,中间为在线检索层12,最下层为离线数据处理层13。带箭头的实线表示在线流程。带箭头的虚线表示离线流程,具体表示离线数据处理层13的某个的数据会被在线检索层12中的哪个模块用到。
[0024]用户接入层11可以通过javascript向在线检索层12发出的检索请求联系起来。所述在线检索层12包括http接口服务模块(httpServer) 121,检索代理服务模块(SearchBroker)122,检索策略服务模块(StrategeServer)123,检索模块(Search Unit,简称SU) 124。在线检索层12和离线数据处理层13主要通过检索模块124对离线数据层13的访问联系起来。所述离线数据处理层13将网页数据处理好之后,生成索引文件,所述在线检索层12启动时就会加载这些索引文件,并在这些索引文件中寻找需要的数据。所述索引文件的格式是预设好的,离线数据处理层13按照所述格式建立数据,在线检索层12按照所述格式读取数据。
[0025]所述http接口服务模块121用于接收所述用户接入层11发出的针对当前贴的相关帖检索请求,转发所述检索请求,并将相关帖检索结果返回至所述用户接入层11以向用户显示相关帖。所述http接口服务模块121还支持全局灰度放量策略,以及实现对下游不同模块的结果进行合并和重新组织结果顺序(或称为洗脸)。
[0026]所述检索代理服务模块122用于接收所述http接口服务模块121转发的检索请求,转发所述检索请求至下游模块(包括且不限于:所述检索策略服务模块123、所述检索模块124以及后续将介绍的分布式检索缓存服务模块(seach cache) 125),并将返回至所述检索代理服务模块122的相关帖检索结果返回至所述http接口服务模块121。
[0027]所述检索策略服务模块123用于根据所述检索请求生成相应的相关帖检索策略。所述相关帖检索策略例如包括:核心词提取策略、核心词组合策略、核心词检索顺序策略(多样性策略)、请求结果数策略、查询策略等等。
[0028]所述检索模块124用于根据所述相关帖检索策略进行检索并取得相关帖检索结果。所述检索模块124支持顶层和底层这两层的与或操作,即顶层是或操作,底层是phrase运算或者松散的与运算,例如PHRASE (A&B) |AND(C&D) |E。并将顺排信息作为相关性计算的一个维度,支持高效的顺排信息检索,支持业务特性紧耦合的检索方式,例如优先查找和主贴发表时间接近的贴以及最近发表的帖子,然后再查找其他时间窗口内的帖子。所述检索模块124时效性较高,更新频率快,更新周期短。
[0029]可选的,所述在线检索层12还包括分布式检索缓存服务模块125,所述分布式检索缓存服务模块125用于缓存所述检索模块124所取得的相关帖检索结果。所述分布式检索缓存服务模块125包括服务(server)模块和用户(client)模块。服务模块存储实际数据并按照特定策略淘汰掉部分过期数据。用户模块处理相关帖请求,并按照分布式哈希表策略进行寻址,将请求分发给对应的服务(server)进行处理。此外,所述分布式检索缓存服务模块125还支持动态扩、缩容,支持数据持久化、故障快速恢复、批量查询等功能。
[0030]可选的,所述在线检索层12还可以包括聚类服务模块(ClusterServer) 126,同时,所述离线数据处理层13还包括聚类索引服务模块(Cluster Index Server) 133。
[0031]所述聚类服务模块126用于接收由所述检索代理服务模块122转发的检索结果,并从聚类的角度对检索结果进行处理。所述聚类服务模块126能够计算出哪些帖子可以聚成一个类,例如,如果计算得出帖子1、帖子2、帖子3可以归在一起,则当帖子2发出检索相关贴请求的时候,所述聚类服务模块126可直接给出帖子I和帖子3与帖子2相关这样一个结果。聚类索引服务模块133用于对聚类服务模块126中的数据进行离线数据处理,例如建立索引,接上例,所述聚类索引服务模块133根据聚类服务模块126中的数据建立出来的索引是:帖子1:帖子2和帖子3与其相关;帖子2:帖子I和帖子3与其相关;帖子3:帖子I和帖子2与其相关。
[0032]可选的,所述在线检索层12还可以包括过滤模块(screen unit,简称S⑶)129,所述过滤模块129用于过滤所述相关帖检索结果中的无效文档。
[0033]进一步的,所述离线数据处理层13可以包括索引服务模块131,用于生成索引文件以供所述在线检索层12下载;以及离线数据管理模块132,用于管理离线数据。
[0034]本实施例提供的基于社区的相关帖推荐系统10通过所述离线数据处理层13保证数据的有效性和正确性以供所述在线检索层12下载,所述在线检索层12的检索模块124提供时效性高,更新频率快,更新周期短的检索服务,所述检索策略服务模块123可以根据其所应用的社区的特点制定合适的检索策略,所述整套的相关帖推荐系统10的各个模块之间紧密联系,从而可以在用户浏览当前贴时,推荐出与当前贴相关度较高的相关帖。
[0035]第二实施例
[0036]请参阅图2,图2为本发明第二实施例提供的基于社区的相关帖推荐系统20的结构示意图。
[0037]相关帖推荐系统20与相关帖推荐系统10基本相同,自上而下划分为3层,最上层为用户接入层21,中间为在线检索层22,最下层为离线数据处理层23。所述在线检索层22包括http接口服务模块221,检索代理服务模块222,检索策略服务模块223,检索模块224,分布式检索缓存服务模块225,聚类服务模块226,过滤模块229。离线数据处理层23包括:索引服务模块231,离线数据管理模块232,聚类索引服务模块234。
[0038]不同之处在于:所述在线检索层22还包括第一点击反馈服务模块(ClickB00St)2271和用户属性服务模块(UserPiOfile) 2272。所述用户属性服务模块2272用于以用户为维度记录用户行为信息,所述第一点击反馈服务模块2271用于接收所述http接口服务模块221发出的检索请求,并根据所述用户行为信息向所述http接口服务模块221返回文档ID列表,以及根据检索日志、帖子查看页浏览日志、点击日志等用户行为来优化推荐效果。如果所述第一点击反馈服务模块2271返回的文档ID结果数目足够,则通过http接口服务模块221将结果文档的文本属性和非文本属性传给用户接入层21,本次检索结束;如果所述文档ID列表的结果数目不足,则http接口服务模块221将所述检索请求转发至检索代理服务模块222。所述离线数据处理层23可以向所述第一点击反馈服务模块2271和用户属性服务模块2272提供相关的离线数据。也就是说本实施例中的第一点击反馈服务模块2271和用户属性服务模块2272与相关帖推荐系统20的其他模块配合可以更加快捷的提供相关帖检索结果。
[0039]第三实施例
[0040]请参阅图3,图3为本发明第三实施例提供的基于社区的相关帖推荐系统30的结构示意图。
[0041]相关帖推荐系统30与相关帖推荐系统20基本相同,自上而下划分为3层,最上层为用户接入层31,中间为在线检索层32,最下层为离线数据处理层33。所述在线检索层32包括http接口服务模块321,检索代理服务模块322,检索策略服务模块323,检索模块324,分布式检索缓存服务模块325,聚类服务模块326,过滤模块329,第一点击反馈服务模块3271,用户属性服务模块3272。离线数据处理层33包括:索引服务模块331,离线数据管理模块332,聚类索引服务模块333。[0042]不同之处在于,所述在线检索层32还包括词推荐代理服务模块(TermBiOker)3281,文档相关搜索词服务模块(Doc2Query) 3282,缓存模块(Termcache) 3283。
[0043]所述词推荐代理服务模块3281用于将http接口服务模块321发出的推荐词请求转发给下游模块(包括且不限于所述缓存模块3283)进行处理以获取推荐词。推荐词是由系统向用户推荐的搜索词,例如,用户搜索“茄子”,则系统向用户给出“茄子吃法”、“茄子的价钱”、“茄子药用价值”等搜索词。
[0044]所述文档相关搜索词服务模块3282用于将通过搜索词获得的结果文档和所述搜索词关联起来,并以结果文档为key (key表示key-value系统,例如,一套学生管理系统,key是学生的学号,value是所有和该学生相关的信息)来组织数据,以服务形式提供给上游模块改善推荐效果。所述文档相关搜索词服务模块3282可以接收所述词推荐代理服务模块3281发出的推荐词请求进行推荐词处理。所述缓存模块3283用于缓存相关搜索词。
[0045]同时,所述离线数据处理层33包括基准数据集检索服务模块334,用于构造一个基准数据集,并根据所述缓存模块3283的数据提供标题检索服务,以判断搜索词和站点的相关性。
[0046]第四实施例
[0047]请参阅图4,图4为本发明实施例提供的基于社区的相关帖推荐系统中离线数据管理模块的结构示意图。需要说明的是,前面实施例中提到的离线数据管理模块132、232、332均可以采用本实施例中离线数据管理模块432的具体结构。
[0048]所述离线数据管理模块432包括:源数据管理单元(SMU)4321,数据合并服务单元(DM)4322,顺排服务单元(FSU)4323,倒排服务单元(ISU)4324,协同单元(zooke印er,简称ZK) 4325,机器调度单元4326,第二点击反馈服务模块(ClickBoost) 4327。离线数据管理模块432所进行的离线数据处理是为了在线服务的。所述离线数据管理模块432用于将处理后的文件准备好,供在线检索层下载,通过所述离线数据管理模块432来保证数据的正确性和有效性。其中,所述源数据管理单元4321用于对抓取模块(crawler unit,简称⑶)发送下载到的帖子数据和帖子删除信息进行管理并向下游模块分发,同时也负责管理顺排数据。源数据管理单元4321由若干台存储型服务器组成。主帖按照MD值取模路由到对应的所述源数据管理单元4321的机器上,回帖根据主帖的MD值取模路由到所述源数据管理单元4321的机器上。这样保证同一个主题的数据在同一台所述源数据管理单元4321机器上,便于后续的二次处理。
[0049]所述数据合并服务单元4322用于将同一个主题下的主帖和回帖数据组织在一起。
[0050]所述协同单元4325用于存储和同步流程相关的重要信息,如所有机器完成索引重建后,通知离线数据管理模块432可以进行下一轮更新流程。所述离线数据管理模块用于调度整套数据流程,以及索引重建等流程。
[0051]在所述倒排服务单元4324用于对所述顺排信息进行倒排索引的构建,重建的时候需要备机提供服务。考虑到机器资源,备机规模远小于主机,倒排服务单元4324需要根据一定的策略去争抢备机资源,所述机器调度单元4326用于提供这种机器调度策略。倒排服务单元4324完成构建后会把倒排索引数据推送给在线检索层的检索模块,检索模块在下次启动的时候会加载。[0052]所述第二点击反馈服务模块4327用于接受新的帖子删除信息,以决定是否对每天的点击数据进行删除。
[0053]第五实施例
[0054]请参阅图5,图5是本发明第五实施例提供的基于社区的相关帖推荐方法的流程图,其包括以下步骤:
[0055]S51:用户接入层发送检索请求至在线检索层。
[0056]S52:在线检索层在线或通过访问离线数据处理层所处理的离线数据查找当前帖子的相关帖获得相关帖检索结果。
[0057]在线检索层的http接口服务模块将所述检索请求转发至在线检索层的检索代理服务模块。检索代理服务模块向所述检索模块请求查找当前帖子的相关帖,检索模块通过在线或者通过访问离线数据处理层所处理的离线数据查找当前帖子的相关帖获得相关帖检索结果。
[0058]S53:如果未找到当前帖子的相关帖,则根据当前帖子的核心内容与所述检索请求生成查询核心词和查询策略,根据所述查询核心词和查询策略在线或通过访问离线数据处理层所处理的离线数据获得并返回相关帖检索结果。
[0059]如果检索模块未找到当前帖子的相关帖,则根据所述检索请求直接请求在线检索层的检索策略服务模块。所述检索策略服务模块根据当前帖子的核心内容与所述检索请求生成最终的查询核心词和查询策略。所述查询核心词和查询策略经由所述检索代理服务模块传给所述检索模块进行检索,所述检索模块在线或通过访问离线数据处理层下载数据获得并返回检索结果。所述检索结果依次经由所述检索代理服务模块、所述http接口服务模块返回所述用户接入层。
[0060]具体的,生成最终的查询核心词和查询策略包括获取离线计算得到的核心词,以及,如果无法离线获得核心词则在线计算核心词。
[0061]所述查询策略即如何查询,例如用户输入或javascript请求的搜索词是:“中国共产党成立”,那么查询策略可以是:“(中国&共产党)成立”,即检索这样的文章:要么含有“成立”这个关键词;要么同时含有“中国” “共产党”两个词。
[0062]具体的查询策略根据具体应用场景的不同而不同,一般先根据javascript发出的请求搜索词中的信息进行片段词组合,包括与操作组合或者或操作等逻辑运算的组合。有针对性地选取片段词,并建立对应的倒排信息,可以有效的提高系统性能,同时提升结果质量。
[0063]片段词的选取包括两个方面:一是搜索词中经常出现的词组构成的片段:如(A|B|C)、(A|B|D)、(A|B|E),其中(A|B)出现次数较多,可以做成片段词。同样的,(A&B)|C、(A&B) |d、(A&B) |e、(a|b)也可以做成片段词;二是用户浏览的当前贴的标题中有价值的词组构成的片段:比如标题为“重磅推出经典蓝清爽地方社区-社交型模板”,分词后变成“重磅推出经典蓝清爽地方社区社交型模版”,其中,“地方、社区、社交型、模版”为核心词,采用“或”操作,而根据词的互信息、Idf (invert documentfrequency,即逆文档频率)等地方社区”、“社交型模版”可能分别拼接成两个片段词,也可以将“地方社区&社交型模版”直接拼成一个片段词。如果搜索词中包括地方社区、社交型模版,且被搜索词识别模块优先组合在一起,那么先用这个片段词去检索,同时,相应的检索请求数也可以比普通的“或”操作更少些,因为其相关性质量更好。但为了保证多样性,即便结果数满足要求,可能需要适当的召回部分非片段词结果。
[0064]必要时,所述检索结果连同所述查询核心词被缓存在所述分布式检索缓存服务模块中。如果在所述相关帖推荐系统中存在大量如下场景,即当在查找A文档的相关帖时,需要计算B文档和A文档的相似度;在查找B文档的相关帖时,需要计算A文档和B文档的相似度,则考虑对相似度计算的结果进行缓存。相对于相关帖结果缓存,相似度结果缓存的粒度更小,这样当新增帖子时,如果是对相关帖结果进行了缓存,则推荐出来的相关帖是不会变化的,但如果采用相似度结果这种细粒度的缓存,那么就有可能推荐出不一样的结果。可选的,所述检索结果返回至所述http接口服务模块后,由所述http接口服务模块对所述检索结果进行重新组织结果顺序后返回给用户。
[0065]还可以采用其他优化手段对检索过程进行优化,例如:倒排+正排的压缩优化、用文档指纹以优化相似度的计算、数据分层优化、检索方式优化、聚类优化等等。
[0066]可选的,于所述步骤在线或通过访问离线数据处理层所处理的离线数据查找当前帖子的相关帖获得相关帖检索结果前进一步包括:查看相关帖检索结果是否已被缓存,如果已被缓存,则直接返回所述相关帖检索结果;如果所述相关帖检索结果未被缓存,则进行所述在线或通过访问离线数据处理层所处理的离线数据查找当前帖子的相关帖获得相关帖检索结果的步骤。也就是说,检索代理服务模块先在在线检索层的分布式检索缓存服务模块进行查找,查看检索结果是否已被缓存,如果已被缓存,则直接返回所述检索结果;如果所述检索结果未被缓存,则向所述检索模块请求查找当前帖子的相关帖。
[0067]可选的,所述方法还可以包括步骤:在线检索层从聚类的角度对所述相关帖检索结果进行处理再将所述相关帖检索结果返回用户接入层。也就是说,在线检索层的检索代理服务模块将所述检索结果转发至在线检索层的聚类服务模块,所述聚类服务模块从聚类的角度对所述检索结果进行处理后再返回至所述http接口服务模块,所述聚类服务模块的离线数据进一步由离线数据处理层的聚类索引服务模块进行处理。
[0068]可选的,所述方法进一步包括步骤:过滤所述相关帖检索结果中的无效文档,对过滤后的相关帖检索结果进行重新组织结果顺序后返回给用户接入层。也就是说,所述检索结果可以先由过滤模块过滤掉无效文档后,再由所述http接口服务模块对过滤后的检索结果进行重新组织结果顺序后返回给在线检索层。
[0069]本实施例提供的基于社区的相关帖推荐方法通过所述离线数据处理层保证数据的有效性和正确性以供所述在线检索层下载,所述在线检索层的检索模块提供时效性高,更新频率快,更新周期短的检索服务,所述检索策略服务模块可以根据其所应用的社区的特点制定合适的检索策略,所述整套的相关帖推荐系统的各个模块之间紧密联系,从而可以在用户浏览当前贴时,推荐出与当前贴相关度较高的相关帖。
[0070]第六实施例
[0071]请参阅图6,图6是第六实施例提供的相关帖推荐方法的流程图,图7是第六实施例提供的相关帖推荐方法的时序图。请参照图6及图7,于本实施例中,所述方法包括以下步骤:
[0072]S61:用户接入层发送检索请求至在线检索层;
[0073]S62:在线检索层在线或通过访问离线数据处理层所处理的离线数据查找当前帖子的相关帖获得相关帖检索结果;
[0074]S63:如果未找到当前帖子的相关帖,则根据当前帖子的核心内容与所述检索请求生成查询核心词和查询策略,根据所述查询核心词和查询策略在线或通过访问离线数据处理层所处理的离线数据获得并返回相关帖检索结果。
[0075]与第五实施例不同的是,所述步骤S62前进一步包括:S620:在线检索层根据所述检索请求获取文档ID列表,如果文档ID结果数目足够,则将结果文档的文本属性和非文本属性传给用户接入层,本次检索结束;如果所述文档ID列表的结果数目不足,则进行步骤S62。
[0076]也就是说吗,所述http接口服务模块发送所述检索请求至在线检索层的第一点击反馈服务模块。所述第一点击反馈服务模块返回文档ID列表,如果所述第一点击反馈服务模块返回的文档ID结果数目足够,则通过http接口服务模块将结果文档的文本属性和非文本属性传给用户接入层,本次检索结束;如果所述文档ID列表的结果数目不足,则进行所述步骤S62。
[0077]所述文档ID列表是例如123、345的文档ID的列表。由所述检索代理服务模块获取123、345这些文档ID对应的文档文本属性(主要是标题)和非文本属性(例如发表时间等)。文档ID结果数目为多少视为“足够”是由后台来控制的,一般取10条。
[0078]进一步的,所述http接口服务模块还可以根据所述文档ID列表向检索代理服务模块请求摘要。所述检索代理服务模块返回摘要给所述http接口服务模块。
[0079]第七实施例
[0080]请参阅图8,图8是本发明第七实施例提供的相关帖推荐方法中的所述离线数据处理层处理离线数据的方法流程图,其包括以下步骤:
[0081]S71:用户接入层发送检索请求至在线检索层;
[0082]S72:在线检索层在线或通过访问离线数据处理层所处理的离线数据查找当前帖子的相关帖获得相关帖检索结果;
[0083]S73:如果未找到当前帖子的相关帖,则根据当前帖子的核心内容与所述检索请求生成查询核心词和查询策略,根据所述查询核心词和查询策略在线或通过访问离线数据处理层所处理的离线数据获得并返回相关帖检索结果。
[0084]与第五实施例不同的是,于本实施例中,所述方法进一步包括以下步骤:
[0085]S74:向在线检索层发出推荐词请求。
[0086]于此步骤中,所述http接口服务模块向在线检索层的词推荐代理服务器发出推荐词请求。
[0087]S75:根据所述推荐词请求关联搜索词和通过所述搜索词获取的结果文档,并以所述结果文档为key组织数据。
[0088]于此步骤中,文档相关搜索词服务模块接收所述词推荐代理服务模块转发的推荐词请求,并根据所述推荐词请求关联搜索词和通过所述搜索词获取的结果文档,并以所述结果文档为key组织数据。
[0089]优选的,于本实施例中,在线检索层的缓存模块缓存所述推荐词请求的相关搜索词;离线数据处理层的基准数据集检索服务模块构造基准数据集,并根据所述缓存模块的相关搜索词提供标题检索服务,以判断搜索词和站点的相关性。[0090]于本实施例中为提高检索性能、优化检索过程,所述检索请求先发送至所述第一点击反馈服务模块,在结果数不足的情况下,再请求所述检索代理服务模块。
[0091]第八实施例
[0092]请参阅图9,图9是本发明第八实施例提供的相关帖推荐方法中的所述离线数据处理层处理离线数据的方法流程图,需要说明的是,前面第五至七施例中提到的离线数据处理层处理离线数据的方法均可以采用本实施例中离线数据处理层处理离线数据的方法。其包括以下步骤:
[0093]S81:离线数据处理层接收贴子数据和删除信息,并判断是否满足更新流程启动前置条件,以决定是否启动数据更新和索引重建。
[0094]于此步骤中,离线数据处理层的源数据管理单元接收贴子数据和删除信息,并判断是否满足更新流程启动前置条件,以决定是否启动数据更新和索引重建。
[0095]S82:过滤掉点击日志中记录的已经被删除的贴子。
[0096]于此步骤中,离线数据处理层的第二点击反馈服务模块接收所述源数据管理单元发送的删除信息,过滤掉点击日志中记录的已经被删除的贴子。
[0097]S83:将同一个主题下的主帖和回帖数据组织在一起。
[0098]于此步骤中,数据合并服务单元将同一个主题下的主帖和回帖数据组织在一起。
[0099]S84:对新数据或者更新数据进行顺排处理,输出文档的信息,所述文档的信息包括顺排信息。
[0100]于此步骤中,顺排服务单元对所述数据合并服务单元发送的新数据或者更新数据进行顺排处理,输出文档的信息,所述文档的信息包括顺排信息。
[0101]S85:对所述顺排信息进行倒排索引重建,在倒排索引重建前,进一步包括确认是否有备份机器资源对待建索引的数据进行临时备份和提供临时的服务,如果有,则将数据同步到备份机器上,并由备份机器提供服务,同时主机开始重建数据,完成重建后再将服务从备份机器切换成主机。
[0102]于此步骤中,倒排服务单元对所述顺排信息进行索引重建,在索引重建前,进一步包括通过机器调度模块来确认是否有备份机器资源对待建索引的数据进行临时备份和提供临时的服务。
[0103]S86:对数据进行存储和更新。
[0104]重建完成后,由协同单元更新状态。
[0105]综上所述,本发明结合社区业务特性,设计了一个通用的相关帖推荐方法及系统,包括数据组织、检索方式及性能和效果改进上的技术方案。本发明提供的基于社区的相关帖推荐方法及系统通过所述离线数据处理层保证数据的有效性和正确性以供所述在线检索层下载,所述在线检索层的在线检索过程进一步优化,其检索模块时效性较高,更新频率快,更新周期短,所述检索策略服务模块可以根据其所应用的社区的特点制定合适的检索策略,所述整套的相关帖推荐系统的各个模块之间紧密联系,从而可以为用户推荐出与当前贴的相关度较高的相关帖。
[0106]需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0107]本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0108]以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单 修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
【权利要求】
1.一种基于社区的相关帖推荐系统,其特征在于:包括用户接入层、在线检索层和离线数据处理层;其中, 所述在线检索层包括:http接口服务模块、检索代理服务模块、检索策略服务模块、检索模块,其中, 所述http接口服务模块用于接收所述用户接入层发出的针对当前贴的相关帖检索请求,转发所述检索请求,并将相关帖检索结果返回至所述用户接入层以向用户显示相关帖; 所述检索代理服务模块用于接收所述http接口服务模块转发的检索请求并将其转发至所述检索策略服务模块以及所述检索模块,并将相关帖检索结果返回至所述http接口服务模块; 所述检索策略服务模块用于根据所述检索请求生成相应的相关帖检索策略; 所述检索模块用于根据所述相关帖检索策略进行检索并取得相关帖检索结果; 所述离线数据处理层用于处理离线数据并向所述在线检索层提供离线数据;所述在线检索层通过所述检索模块、所述检索策略服务模块访问所述离线数据处理层。
2.如权利要求1所述的相关帖推荐系统,其特征在于:所述系统进一步包括: 分布式检索缓存服务模块,用于缓存所述检索模块所取得的相关帖检索结果。
3.如权利要求1所述的相关帖推荐系统,其特征在于:所述在线检索层进一步包括用户属性服务模块和第一点击反馈服务模块,所述用户属性服务模块用于以用户为维度记录用户行为信息,所述第一点击反馈服务模块用于接收所述http接口服务模块发出的检索请求,并根据所述用户行为信息向所述http接口服务模块返回文档ID列表。`
4.如权利要求1所述的相关帖推荐系统,其特征在于:所述http接口服务模块还发出推荐词请求, 所述在线检索层进一步包括:词推荐代理服务模块、文档相关搜索词服务模块、缓存模块,所述词推荐代理服务模块用于将所述推荐词请求转发给所述文档相关搜索词服务模块;所述文档相关搜索词服务模块用于接收所述词推荐代理服务模块转发的推荐词请求,并根据所述推荐词请求关联搜索词和通过所述搜索词获取的结果文档,并以所述结果文档为key组织数据;所述缓存模块,用于缓存所述推荐词请求的相关搜索词; 所述离线数据处理层包括基准数据集检索服务模块,用于构造一个基准数据集,并根据所述缓存模块的相关搜索词提供标题检索服务,以判断搜索词和站点的相关性。
5.如权利要求1所述的相关帖推荐系统,其特征在于:所述在线检索层进一步包括过滤模块,用于过滤所述http接口服务模块转发的所述相关帖检索结果中的无效文档。
6.如权利要求1所述的相关帖推荐系统,其特征在于:所述在线检索层进一步包括聚类服务模块,所述离线数据处理层进一步包括聚类索引服务模块,所述聚类服务模块用于接收由所述检索代理服务模块转发的相关帖检索结果,并从聚类的角度对相关帖检索结果进行处理,所述聚类索引服务模块用于对所述聚类服务模块的离线数据进行处理。
7.如权利要求1所述的相关帖推荐系统,其特征在于:所述离线数据处理层包括: 索引服务模块,用于生成索引文件以供所述在线检索层下载; 离线数据管理模块,用于管理离线数据。
8.如权利要求7所述的相关帖推荐系统,其特征在于:所述离线数据管理模块包括:源数据管理单元,用于对下载的帖子数据和帖子删除信息进行管理,同时也负责管理顺排数据; 数据合并服务单元,用于将同一个主题下的主帖和回帖数据组织在一起; 顺排服务单元,用于对所述数据合并服务单元发送的新数据或者更新数据进行顺排处理,输出文档的信息,所述文档的信息包括顺排信息; 倒排服务单元,用于对所述顺排信息进行倒排索引重建; 协同单元,用于存储和同步流程相关的信息; 机器调度模块,用于为所述倒排服务单元提供机器调度策略; 第二点击反馈服务模块,用于接受所述源数据管理单元的帖子删除信息,以决定是否对每天的点击数据进行删除。
9.一种基于社区的相关帖推荐方法,其特征在于:包括以下步骤: 用户接入层发送检索请求至在线检索层; 在线检索层在线或通过访问离线数据处理层所处理的离线数据查找当前帖子的相关帖获得相关帖检索结果; 如果未找到当前帖子的相关帖,则根据当前帖子的核心内容与所述检索请求生成查询核心词和查询策略,根据所述查询核心词和查询策略在线或通过访问离线数据处理层所处理的离线数据获 得并返回相关帖检索结果。
10.如权利要求9所述的相关帖推荐方法,其特征在于:于所述步骤在线检索层在线或通过访问离线数据处理层所处理的离线数据查找当前帖子的相关帖获得相关帖检索结果前进一步包括: 查看相关帖检索结果是否已被缓存,如果已被缓存,则直接返回所述相关帖检索结果;如果所述相关帖检索结果未被缓存,则进行所述在线或通过访问离线数据处理层所处理的离线数据查找当前帖子的相关帖获得相关帖检索结果的步骤。
11.如权利要求9所述的相关帖推荐方法,其特征在于:所述方法进一步包括: 在线检索层从聚类的角度对所述相关帖检索结果进行处理再将所述相关帖检索结果返回用户接入层。
12.如权利要求9所述的相关帖推荐方法,其特征在于:所述离线数据处理层处理离线数据的方法包括以下步骤: 离线数据处理层接收贴子数据和删除信息,并判断是否满足更新流程启动前置条件,以决定是否启动数据更新和索引重建; 过滤掉点击日志中记录的已经被删除的贴子; 将同一个主题下的主帖和回帖数据组织在一起; 对新数据或者更新数据进行顺排处理,输出文档的信息,所述文档的信息包括顺排信息; 对所述顺排信息进行倒排索引重建,在倒排索引重建前,进一步包括确认是否有备份机器资源对待建索引的数据进行临时备份和提供临时的服务,如果有,则将数据同步到备份机器上,并由备份机器提供服务,同时主机开始重建数据,完成重建后再将服务从备份机器切换成主机; 对数据进行存储和更新。
13.如权利要求9所述的相关帖推荐方法,其特征在于:进一步包括以下步骤:过滤所述相关帖检索结果中的无效文档,对过滤后的相关帖检索结果进行重新组织结果顺序后返回给用户接入层。
14.如权利要求9所述的相关帖推荐方法,其特征在于:进一步包括以下步骤: 向在线检索层发出推荐词请求; 根据所述推荐词请求关联搜索词和通过所述搜索词获取的结果文档,并以所述结果文档为key组织数据。
15.如权利要求14所述的相关帖推荐方法,其特征在于:在线检索层缓存所述推荐词请求的相关搜索词;离线数据处理层构造基准数据集并根据在线检索层中所缓存的相关搜索词提供标题检索服务,以判断搜索词和站点的相关性。
16.如权利要求9所述的相关帖推荐方法,其特征在于:于所述步骤在线或通过访问离线数据处理层所处理的离线数据查找当前帖子的相关帖获得相关帖检索结果前进一步包括: 在线检索层根据所述检索请求获取文档ID列表,如果文档ID结果数目足够,则将结果文档的文本属性和非文本属性传给用户接入层,本次检索结束;如果所述文档ID列表的结果数目不足,则进行所述在线或通过访问离线数据处理层所处理的离线数据查找当前帖子的相关帖获得相关帖检索结果的步骤。`
【文档编号】G06F17/30GK103823805SQ201210464694
【公开日】2014年5月28日 申请日期:2012年11月16日 优先权日:2012年11月16日
【发明者】赵燕斌, 刘威, 郭强, 张文龙 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1