CN103823906A - 一种基于微博数据的多维度检索排序优化算法和工具 - Google Patents
一种基于微博数据的多维度检索排序优化算法和工具 Download PDFInfo
- Publication number
- CN103823906A CN103823906A CN201410101816.3A CN201410101816A CN103823906A CN 103823906 A CN103823906 A CN 103823906A CN 201410101816 A CN201410101816 A CN 201410101816A CN 103823906 A CN103823906 A CN 103823906A
- Authority
- CN
- China
- Prior art keywords
- retrieval
- user
- data
- microblogging
- optimization
- 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
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/3331—Query processing
-
- 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/31—Indexing; Data structures therefor; Storage structures
- G06F16/313—Selection or weighting of terms for indexing
Abstract
一种基于微博数据的多维检索排序优化算法和工具,该算法从数据特征、用户特征和应用特征三个维度对Lucene原始检索排序结果进行优化,使优化后的排序结果在体现数据特征、符合用户查询意图和契合应用主题等方面得到提升。多维度检索排序优化工具,完成基于金融微博数据的实现,分为三个模块,每个模块完成一个维度的优化。数据特征的排序优化模块实现维度一数据特征优化;用户特征的排序优化模块实现维度二用户特征优化,其包括两个子模块——检索标签和检索日志的优化子模块;应用特征的排序优化模块实现维度三应用特征优化。该工具适合优化所有Lucene的基本检索结果,可在某系统检索模块中实现Lucene原始检索结果的优化排序,给予用户更好的检索体验。
Description
技术领域
本发明涉及一种多维度检索排序优化算法,从检索数据特征、检索用户特征和系统应用特征三个维度对Lucene的检索排序结果进行优化,实现了基于金融微博数据的Web系统的检索优化工具。
背景技术
社交网络数据正成为人们重要的消息来源,而微博数据在社交数据中占有非常重要的地位,面对互联网上的海量数据,利用数据检索系统进行信息检索是必要和重要的。针对某几个关键词,数据检索系统通过查找索引,返回包含这些关键词的结果数据。一般,数据检索系统会利用一定的公式计算这些结果数据与检索关键词的相关度,相关度高的则以较靠前的位置返回给用户。例如,在谷歌中输入关键词“上海自贸区”,进行检索,返回结果的第一条数据就应该是按照谷歌的数据检索系统的得分公式计算出来的、与检索关键词相关度最高的结果,往下检索结果与检索关键词的相关度依次递减。
这个检索结果的排序具有重要的意义,因为调查表明大部分用户只会查看前两页或者前30条检索结果,而且前10条检索结果是查看的重点,直接关系到用户对此检索服务的用户体验和评价。所以,如何保证检索结果的有效排序,使对用户更有价值的检索结果排在前位,这是数据检索领域的一个研究热点。
微博数据数据具有不同于传统数据的特点,例如数据长度一般有限制、数据具有较强的时效性、价值密度比较低、具有许多附加信息属性等等,这些数据特点对检索结果的排序具有重要的作用。例如,针对检索出的微博数据,具有相同的检索关键词信息,如果某一条微博的发布时间更近,应该认为这条微博具有更好的时效性,也具有更高的价值,排名应该靠前。显然,单一的词频 位置加权的检索排序算法不能满足以上的需求。
同时,除了数据特点之外,用户检索行为的特点也是检索结果排序需要考虑的重要方面。针对相同的关键词,用户的真实检索意图可能是不同的,还是“上海自贸区”这个检索词,有的用户希望找到的最近自贸区发生的新闻,而有的用户希望检索自贸区的相关位置。如果能够有效识别出用户的检索意图,就可以将更加符合用户意图的检索结果排位放前,这无疑会改善用户的检索体验。
再次,大部分检索服务是作为一个大系统的一部分进行工作的,它依赖于这个系统中已经获取并存储的数据,一般情况下,这个大系统有某一个特定方向的主题,例如金融、科技等等。系统的主要用户既然选择使用这个系统的检索服务,在很大概率上是希望能够检索到与系统主题相关的数据。基于以上的假设,如果检索结果与系统的主题相关,它应该是更有价值的,排名也应该更靠前。
发明内容
有鉴于此,本发明的目标是针对社交网络中的微博数据检索,提出一种多维度检索排序优化算法和工具,此算法基于Lucene简单词频位置加权排序算法,综合考虑检索数据特点、用户检索行为特点和系统应用特点,将排序结果进行优化。优化后的检索排序结果,将更加体现微博数据的数据特征,更加契合用户的真实检索意图,同时也更加贴近系统应用的主题。此多维度检索排序优化工具,完成基于金融微博数据的实现。本算法的设计与工具的实现,将会增加检索结果排名前列的数据的综合价值,将会极大的提高数据检索的用户体验。
本发明提出的多维度检索排序优化算法将在Lucene检索结果的基础上,对一个大系统的检索模块的排序结果进行优化。优化主要从三个维度进行:检索 数据特征,检索用户特征,系统应用特征。三个维度优化模块的具体定义如下:
维度一数据特征优化模块:检索数据特征表示被检索数据的特征,包括长度、语义、附属信息等等。定义检索数据特征(Data Attributes)为dataAttr={DA1,DA2,DA3,...DAn},其中DAi表示检索数据的不同特征,主要挖掘数据不同于传统网页数据的且Lucene检索排序模型没有考虑到的附属数据信息,例如数据的发布时间、数据传播度、作者信息、数据的权威程度等等。
维度二用户特征优化模块:检索用户特征表示用户的真实检索意图。定义检索用户特征(User Attributes)为userAttr={UA1,UA2,UA3,...UAn},其中UAi表示用户的检索意图。用户的查询意图是指用户在进行查询时,希望搜索引擎服务能够返回的信息。挖掘不同用户的真实意图,针对相同的检索词,不同的用户可能有不同的检索意图。例如相同的查询词“欧洲史”,用户A想找到相关的书籍介绍,用户B希望找到相关的研究学者或者机构。可以采用多种方法,例如要求用户输入额外信息来表明检索意图,或者挖掘用户查询历史推测用户可能的检索意图,从而返回给用户更加符合需求的检索结果。可以借助于用户查询日志或者查询标签完成用户真实检索意图的挖掘。
维度三应用特征优化模块:系统应用特征表示应用的特点,定义系统应用特征(App Attributes)为appAttr={AA1,AA2,AA3,...AAn},AAi表示应用的特征或者主题,挖掘系统应用的特征,不同的系统应用有不同的应用领域、数据特征,显然与应用更相关的查询结果是更有价值的,排名应该更靠前。可以通过将查询结果分类,对于与应用更相关的那类结果,认为更加符合查询需求,适当提高排名。例如,如果一个应用是检索矿产相关的信息,那么检索结果如果属于矿产类的信息,这类检索结果就应该有更高的排名。可以通过分类或者文本相似度方法完成系统应用特征挖掘。
本发明在以上三个维度上对Lucene原始的检索排序结果进行优化,分别从检索数据特征、检索用户特征和系统应用特征三方面根据相应的得分计算公式,计算其排序优化得分:
Optimizescore=f(ΣdataAttr)+g(ΣuserAttr)+h(ΣappAttr)
其中,f()表示数据特征优化得分的计算公式,g()表示用户特征优化得分的计算公式,h()表示应用特征优化得分的计算公式。优化后的最终排序得分Finalscore:
Finalscore=α+β
其中α表示调整后的Lucene排序得分,β表示排序优化得分,即Optimizescore。最后返回的检索结果排序就依据Finalscore进行。
所述的维度一数据特征维度优化模块的功能特点如下:
对数据特征进行分析,在基于金融微博数据的本工具的实现中,分析微博数据特征dataAttr包括但不限于:
1.微博的文本长度有一定的限制,例如新浪微博的限制为140个汉字(即280个字符),一般以为微博的文本长度越长,可能包含的有用信息越多,价值就越大;
2.微博除去文本内容外,其他附属信息对微博价值的影响也很重要,这些附属信息包括一下:
(1)发布的时间:微博作为社交网络数据,价值随着时间的递增而递减,即最新发布的微博应该具有越大的价值;
(2)评论数和转发数:这是微博数据数据不同于传统网页数据的重要特征,可以表示着此条微博具有的影响力;两者数目越大,表示此条微博传播的越广泛,具有的价值也就越大;
3.微博数据是人与人之间的一个巨大关系网,其数据的作者属性相比于传 统网页数据,对数据价值而言,拥有更大的影响因子:
(1)作者的粉丝数:作者的粉丝数越多,其微博的影响力越广泛,微博价值更大;
(2)作者的微博数:作者发布的微博数越多,表示他在社交网络中越活跃,其微博就更具有价值。
基于以上分析,本工具基于一下关键属性进行数据特征排序优化:
1.Attr1文本长度
2.Attr2发布时间
3.Attr3评论数+转发数
4.Attr4作者粉丝数
5.Attr5作者已发布微博数
以上五个关键属性,都是越大越好;针对在关键属性上表现更加优异的微博,其检索排序的结果应该更加靠前。
设定Lucene关键字检索后,返回相关微博N(设定N=100)条,这N条微博的初始排序是按照Lucene检索打分公式进行排序的。基于微博数据特点的检索排序优化模块统计N条微博以上1~5五个关键属性的值,然后调整排序,得到优化后的排序结果。
经过Lucene检索出的包含Query关键词的微博的ID集合{weibo_id},远程访问数据库,根据微博ID找到微博的详细信息(包含五条关键属性)。这里以属性“Attr1文本长度”为例进行介绍分析过程,其他属性处理过程类似:
分析的准则是属性Attr值越大,微博的价值越大,排名越靠前。将各微博的Attr属性值进行排序,按照排序结果,分配不同的排序影响权重,最后对Lucene的原始排序结果产生优化调整。但是考虑到检索用户的目标是一个集合 的微博,而非只关注个别微博,也就是说排名的前n个(例如n=10)微博的价值对检索用户是一致的,都属于最高的优先级,所以本文采用的策略是选择Attr属性值最大的n个微博,分配相同的排序影响权重。
经过属性统计分析之后,针对上面列出的五个数据特征得到如下格式的结果:
attr1_max={id_1_1,id_1_2,…id_1_n}
attr2_max={id_2_1,id_2_2,…id_2_n}
attr3_max={id_3_1,id_3_2,…id_3_n}
attr4_max={id_4_1,id_4_2,…id_1_n}
attr5_max={id_5_1,id_5_2,…id_5_n}
其中id_i_j(1<=i<=5,1<=j<=n)表示第i个属性的值在所有微博中从大到小排在前n位,不同属性的集合之间可能存在交集,需要对五个属性进行综合的处理,得到所有微博的最后排序影响权重。
计算数据特征排序优化得分:
在上式中,occurrence_times表示此条微博在attr{1-5}_max这5个数组中出现的次数。
所述的维度二用户特征维度优化模块的功能特点如下:
基于Lucene提供的基于关键词的检索,来自不同检索用户的相同的关键词可能具有不同的语境、语义信息。例如针对查询词“股票”,Lucene检索系统会返回包含“股票”的相关微博,但是用户A可能希望得到的是当前股市信息,用户B则是希望得到与股票相关的书籍推荐。单个关键词“股票”无法区别出用户的真实意图,返回的检索排序结果也是与用户真实意图不相关的,没有任何语 义、语境倾向的。在本模块中,将利用两种方法实现用户特征排序优化,挖掘用户的真实检索意图,将更符合检索意图的结果优先返回给用户。
本模块分为两个子模块来实现上面提及的两种方法:基于检索标签的优化,基于用户日志的优化。
所述的基于检索标签的优化子模块的功能特点如下:
为了表明用户的意图,检索用户需要额外给出一些辅助信息,例如上例中的检索关键词“股票书”,“书”就属于这类辅助信息,表明用户想要查找的是与股票相关的书,而非股票大盘走势等等。不用基本的检索系统将“书”当做一般的检索关键词,基于检索标签的检索排序优化系统提供特定的输入格式给用户,使用户可以标记“书”为用户的检索标签Search Tag(STag),表示查询的真实意图。同时,对于每一条微博数据,同样有相应的微博标签Weibo Tag(WTag)。针对Lucene返回的原始检索结果,计算每一条微博的WTag与STag的相关度,判定返回的微博与用户意图的相关性,从而对原始排序结果进行优化。
检索标签STag是来自用户的输入,相比之下,微博标签WTag需要以多种方式预先设定好,作为微博的附属信息,存储在数据库中。主要的设置方式包括:
1.微博作者在注册微博平台上时填写的用户标签。这个标签在系统利用微博API获取用户信息时已经获取并存储在数据库中。通常,在一定概率上认为具有某一标签的作者发布的微博更倾向于这一标签所表示的内容和方向;
2.微博内容中标注出的话题。以新浪微博为例,用户文本内容以“#abc#”两个井号之间标注出微博所属的话题,这个信息也可以提取出来作为微博的标签,用来表明微博内容的一个整体走向;
3.用户添加。用户通过查阅相关的微博,可以手动添加微博的标签,系统 将保留注册用户添加的微博标签信息,并累计相同标签的不同用户的添加次数。
通过以下公式计算标签排序优化得分:
在上式中,|stags|、|wtags|分别表示检索标签的向量和微博标签向量的个数;weight(wtag)表示wtag的权重sim(stag,wtag)表示检索标签和微博标签的相似度,当stag=wtag时为1,否则为0。
针对以上计算公式,举例如下:设定检索标签为{书籍,论文},设定Lucene返回的某条微博的标签为{<论文,3>,<搜索引擎,4>,<IT民工,1>,<书籍,1>},则计算微博标签的权重为{<论文,3/9=0.33>,<搜索引擎,4/9=0.44>,<IT民工,1/9=0.11>,<书籍,1/9=0.11>},然后带入计算公式得到代数表达式[(0.33×0+0.44×0+0.11×0+0.11×1)+(0.33×1+0.44×0+0.11×0+0.11×0)]/2=0.22,此处结果为标签排序优化得分。
所述的基于用户日志的优化子模块的功能特点如下:
基于Direct Hit的思想,检索模块记录所有注册用户的查询日志,记录用户查询的关键词、点击的微博ID以及在这条微博停留的时间。当该用户再次查询相同或相关的关键词时,分析该用户的日志,结合点击结果和页面访问时间,适当增加相关页面的排序得分,做出优化调整。
考虑到用户的累计和检索行为的增加空间,使用分布式的HBase数据库[29]进行查询日志的存储,具体格式如下:
表用户检索日志格式
在上表中:
1.Row Key设计为<User ID><Query Keyword><Weibo ID>,其中User ID为系统分配的用户唯一8位ID,Query Keyword为长度为10个字符的查询关键词(长度不到10字符后面补齐#,长度大于10字符,截取前10个字符),Weibo ID为返回的某条微博的ID;
2.由于Hbase可以用Timestamp保留多个版本(默认为3个版本)[30],所以相同的Row Key和Column可以存储多个记录。每次查找的时候可以指定返回的版本数,这样可以取多个版本的平均值,体现用户的平均历史行为。如果没有指定返回版本,则默认返回最新的版本,体现用户的最新行为;
3.查询某个用户的某个查询关键词的记录,可以使用HBase的Scan和PrefixFilter,根据<User ID><Query Keyword>进行前缀匹配查询,因为Hbase的每张表会根据Row Key形成索引文件,所以查询效率满足需求。
首先,用户User ID(UID)提交查询语句“keyword1keyword2…”,Lucene进行查询,得到包含关键词的微博ID列表;针对每一个keyword,以<UID><keyword>作为前缀,在Hbase的查询日志表中,查找相关的记录,取出三个版本(不足三个版本则取出全部版本),汇总得到{<WID1,avg_time1>,<WID2,avg_time2>…},其中WID为Row Key截断出来的用户曾经点击过的微博ID,avg_time=(stay_time1+stay_time2+stay_time3)/3;{<WID1,avg_time1>,<WID2,avg_time2>…}表示针对用户的输入查询语句“keyword1keyword2…”,用户曾经查询过全部或部分关键词,并点击了WIDi,并在WIDi页面平均停留了avg_timei的时间;计算日志排序优化得分,某条检索微博WIDi的得分为:
其中avg_timei表示在WIDi中停留的时间。
所述的维度三系统特征维度优化模块的功能特点如下:
不同的系统应用有不同的主要倾向和特点,在数据获得和抓取的过程中也有不同的关注点。分布式金融微博数据处理系统中,抓取的数据主要集中在各大微博平台认证的金融名人和金融机构,以求以更大的概率获得金融相关的微博数据。但是,无论以怎样的方式,都不能保证抓取的数据是完全符合系统应用特征的,例如将李开复认证为金融名人,抓取他的微博,但是李开复的所有微博并不一定都是金融相关的,有些仅仅是他个人生活的记录。不用的Web应用有相应的领域和侧重点,其数据如果与应用的特征相关,则显然在这个应用中是更有价值的。
微博数据在抓取的过程中已经通过分类系统实现了分类,并将分类的结果作为微博附属信息的一部分存储在数据库中。系统首先针对用户输入的查询关键词通过Lucene得到初始的查询结果(微博ID列表),然后根据微博ID查询数据库,得到微博的分类信息,如果微博的分类属于金融以及金融以下的任意一个子类,则累加sum(统计参数,统计所有分类在金融下的返回结果的个数)。最后确定分类为金融的微博其分类排序优化得分为:
所述的检索排序结果综合优化的功能特点如下:
通过数据特征维度优化模块、用户特征维度优化模块、应用特征维度优化模块分别得到各个维度的排序优化得分,包括数据征排序优化得分Attrscore、标签排序优化得分Tagscore、日志排序优化得分Logscore和应用特征排序优化得分Categoryscore。
最后,总排序得分计算调整Lucene原始得分,并一并汇总Attrscore、Tagscore、Logscore、Categoryscore,得到最终的排序得分,返回优化调整后的排序结果。
Lucene原始打分公式调整方法如下:
上式中,N表示返回的微博的总数,i表示此条微博原始的Lucene排名;例如,假设返回N=100个微博,原来排名第一的微博i=1,调整之后的得分为(100-1+1)/100=1。从而得到优化后的总得分为:
Finalscore=α+β=α+(β1+β2+β3+β4)
其中,α表示调整后的Lucene排序得分,β表示排序优化得分,它由四部分(β1,β2,β3,β4)组成,分别代表Attrscore、Tagscore、Logscore、Categoryscore。最后根据Finalscore的大小调整原始排序,将检索结果返回给用户。
所述的基于金融微博数据的测试部分的特点如下:
测试的数据是系统中已经获取、存储并索引的300,000条微博数据,测试的过程是对全体微博数据进行多次检索(设定检索结果共200条),针对Lucene原始检索结果的前50条微博和优化后检索结果的前50条微博,分别计算以下参数的值,进行比较:
(1)微博数据特征参数AttrParam:
其中,avg(length)、avg(comments&reposts)、avg(followers)分别表示前50条检索结果的平均长度、平均评论数和转发数、平均作者粉丝数,多次检索结果的以上平均数相加,再除以检索次数,得到的平均值为微博数据特征参数AttrParam。其中a、b、c是数量级调整因子,这里根据微博的实际情况,分别取1/10、1/10、1/100000的值。AttrParam可以表示排序结果体现的数据特征的 强度。
(2)检索用户特征参数UserParam:
其中,sim(stags,wtags)表明检索标签与微博标签的相似程度,UserParam通过计量所有检索标签与前50条检索结果微博标签的相似度和,来表示检索结果前50条与用户真实检索意图的相关性。
(3)系统应用特征参数AppParam:
按照平均准确率(Mean Average Precision,MAP)的思想,参考如下MAP公式:
其中,Q表示检索的集合,Aj表示与第j次检索主题相关的所有微博的集合,Bj表示第j次检索出的检索主题相关微博,Bj为Aj的子集,Wi表示Bj中的一条微博,i按照返回结果的顺序计数。Precision(Wi)=i/rank(Wi),rank表示Wi在所有返回结果中的位置。
MAP多用来表示检索的准确率,它主要反应了两方面的性能:(1)检索结果对所有相关文档Aj的覆盖率,返回的相关文档越少,第二部分求和值越小,MAP的值越小;(2)返回的相关文档Bj在检索结果中的相对位置,Wi排名越靠后,Precision的分母越大,第二部分求和值越小,MAP的值越小。
本文这部分的测试主要关注MAP的第二种性能评估能力,所以采用简化的MAP进行测试:
其中,Cj表示前50条检索结果中Bj中的微博,即Cj=Bj∩Dj,Dj表示第j次查询的前50条检索结果集合。
在系统中,微博在抓取存入时已经完成了分类,被分为7大类(保险、财务会计、银行黄金、电子商务、宏观、股票基金、债券期货),针对每一类别,从中国金融信息网的财经热词中分别选择30个检索词,计算每一类别的优化前后MAP(1),并设定AppParam为这些MAP(1)值的平均。
对全体微博数据进行多次检索,这里选定的检索关键词选自中国金融信息网的财经热词,从A-Z拼音开头的26个类别中各抽取10个,进行总共260次查询。设定每次查询的检索结果总数为200条微博,针对前50条微博进行上面三个性能参数的计算。分别得到排序优化前和排序优化后的数据。
以上所述的方法包括下列操作步骤:
(1)通过排序优化算法从三个维度计算排序优化得分
(2)汇总排序优化得分,调整Lucene原始得分,得到最终排序得分
所述步骤(1)进一步包括下列操作:
(1.1)计算维度一数据特征优化得分
(1.2)计算维度二用户特征优化得分
(1.3)计算维度三应用特征优化得分
所述步骤(1.1)中进一步包括下列操作:
(1.1.1)经过Lucene检索出的包含Query关键词的微博的ID集合{weibo_id},远程访问数据库,根据微博ID找到微博的详细信息(包含五条关键属性);
(1.1.2)将各检索结果(微博)分别按照五个属性进行排序,选取前n条微博,形成五个大小为n的集合;
(1.1.3)计算每个微博在五个集合中出现的次数occurrence_time(次数在1到5之间);
(1.1.4)按照方法中提到的公式计算数据特征优化得分。
所述步骤(1.2)中进一步包括下列操作:
(1.2.1)通过检索标签进行用户特征优化,计算优化得分
(1.2.2)通过检索日志进行用户特征优化,计算优化得分
所述步骤(1.2.1)检索标签优化中进一步包括下列操作:
(1.2.1.1)用户提交的查询语句的形式为“keyword1keyword2…keyword,stag1stag2…stagm”,其中第一个逗号之前为查询词,第一个逗号之后为检索标签STag,关键词之间或者检索标签之间以空格分隔;
(1.2.1.2)系统解析用户的查询语句,分离查询关键词和检索标签,将查询关键词交给Lucene进行查询,得到初始的排序结果;得到检索标签的向量search_tags={stag1,stag2,stag3…};
(1.2.1.3)按照上步得到的Lucene查询结果,针对每个结果微博,取出其<微博标签,出现次数>的向量weibo_tags={<stag1,count1>,<stag2,count2>,<stag3,count3>…};
(1.2.1.4)按照方法中提到的公式计算标签排序优化得分。所述步骤(1.2.2)检索日志优化中进一步包括下列操作:
(1.2.2.1)用户User ID(UID)提交查询语句“keyword1keyword2…”,Lucene进行查询,得到包含关键词的微博ID列表;
(1.2.2.2)针对每一个keyword,以<UID><keyword>作为前缀,在Hbase的查询日志表中,查找相关的记录,取出三个版本(不足三个版本则取出全部版本),汇总得到{<WID1,avg_time1>,<WID2,avg_time2>…},其中WID为Row Key截断出来的用户曾经点击过的微博ID,avg_time=(stay_time1+stay_time2+stay_time3)/3;
(1.2.2.3){<WID1,avg_time1>,<WID2,avg_time2>…}表示针对用户的输入查询语句“keyword1keyword2…”,用户曾经查询过全部或部分关键词,并点击了WIDi,并在WIDi页面平均停留了avg_timei的时间;
(1.2.2.4)按照方法中提到的公式计算日志排序优化得分。
所述步骤(1.3)中进一步包括下列操作:
(1.3.1)微博数据在抓取的过程中已经通过分类系统实现了分类,并将分类的结果作为微博附属信息的一部分存储在数据库中;
(1.3.2)系统首先针对用户输入的查询关键词通过Lucene得到初始的查询结果(微博ID列表),然后根据微博ID查询数据库,得到微博的分类信息,如果微博的分类属于金融以及金融以下的任意一个子类,则累加sum(统计参数,统计所有分类在金融下的返回结果的个数);
(1.3.3)按照方法中提到的公式计算应用特征排序优化得分。
所述步骤(2)进一步包括下列操作:
(2.1)对Lucene原始打分结果进行调整,方法如下:
上式中,N表示返回的微博的总数,i表示此条微博原始的Lucene排名;
(2.2)优化后的总得分为:
Finalscore=α+β=α+(β1+β2+β3+β4)
其中,α表示调整后的Lucene排序得分,β表示排序优化得分,它由四部分(β1,β2,β3,β4)组成,分别代表Attrscore、Tagscore、Logscore、Categoryscore;
(2.3)最后根据Finalscore的大小调整原始排序,将检索结果返回给用户。
附图说明
图1是多维度检索排序优化算法的功能模块说明示意图。
图2是多维度检索排序优化算法的实现总体架构的示意图。
图3是针对算法维度一基于微博数据特征的优化方案的示意图。
图4是针对算法维度二基于检索标签的优化方案的示意图。
图5是针对算法维度二基于检索日志的优化方案的示意图。
图6是针对算法维度三基于文本分类的优化方案的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。
参看图1,用户输入查询语句,包括查询的关键词keywords和表示用户查询意图的查询标签tags;Lucene解析查询关键词,检索索引文件,得到查询结果——微博ID列表weibo_list,同时得到原始的Lucene排序打分;排序优化部分主要有:
(1)Attr优化(微博数据特征优化)根据weibo_list,得到其中微博的Attrscore;
(2)Tag优化(检索标签优化)根据weibo_list和tags,得到list中微博的Tagscore;
(3)Log优化(检索日志优化)查询用户的检索日志,对日志中有记录的微博进行优化打分,得到Logscore;
(4)Category优化(分类优化)根据weibo_list,核对其中微博是否分类为与应用相关,根据打分公式,得到Categoryscore。
最后,总排序得分计算调整Lucene原始得分,并一并汇总Attrscore、Tagscore、 Logscore、Categoryscore,得到最终的排序得分,返回优化调整后的排序结果。
参看图2,经过Lucene检索出的包含Query关键词的微博的ID集合{weibo_id},远程访问数据库,根据微博ID找到微博的详细信息(包含五条关键属性)。这里以属性“Attr1文本长度”为例进行介绍分析过程,其他属性处理过程类似:
分析的准则是属性Attr值越大,微博的价值越大,排名越靠前。可以选择将各微博的Attr属性值进行排序,按照排序结果,分配不同的排序影响权重,最后对Lucene的原始排序结果产生优化调整。但是考虑到检索用户的目标是一个集合的微博,而非只关注个别微博[26],也就是说排名的前n个(例如n=10)微博的价值对检索用户是一致的,都属于最高的优先级,所以本文采用的策略是选择Attr属性值最大的n个微博,分配相同的排序影响权重。
经过属性统计分析之后,针对上面列出的五个数据特征得到如下格式的结果:
attr1_max={id_1_1,id_1_2,…id_1_n}
attr2_max={id_2_1,id_2_2,…id_2_n}
attr3_max={id_3_1,id_3_2,…id_3_n}
attr4_max={id_4_1,id_4_2,…id_1_n}
attr5_max={id_5_1,id_5_2,…id_5_n}
其中id_i_j(1<=i<=5,1<=j<=n)表示第i个属性的值在所有微博中从大到小排在前n位,不同属性的集合之间可能存在交集,需要对五个属性进行综合的处理,得到所有微博的最后排序影响权重。
参看图3,具体操作步骤如下:
1.用户提交的查询语句的形式为“keyword1keyword2…keyword,stag1 stag2…stagm”,其中第一个逗号之前为查询词,第一个逗号之后为检索标签STag,关键词之间或者检索标签之间以空格分隔;
2.系统解析用户的查询语句,分离查询关键词和检索标签,将查询关键词交给Lucene进行查询,得到初始的排序结果;
3.通过2得到检索标签的向量search_tags={stag1,stag2,stag3…};
4.按照2得到的Lucene查询结果,针对每个结果微博,取出其<微博标签,出现次数>的向量weibo_tags={<stag1,count1>,<stag2,count2>,<stag3,count3>…};按照公式计算排序优化得分。
参见图4,具体步骤如下:
1.用户User ID(UID)提交查询语句“keyword1keyword2…”,Lucene进行查询,得到包含关键词的微博ID列表;
2.针对每一个keyword,以<UID><keyword>作为前缀,在Hbase的查询日志表中,查找相关的记录,取出三个版本(不足三个版本则取出全部版本),汇总得到{<WID1,avg_time1>,<WID2,avg_time2>…},其中WID为Row Key截断出来的用户曾经点击过的微博ID,avg_time=(stay_time1+stay_time2+stay_time3)/3;
3.{<WID1,avg_time1>,<WID2,avg_time2>…}表示针对用户的输入查询语句“keyword1keyword2…”,用户曾经查询过全部或部分关键词,并点击了WIDi,并在WIDi页面平均停留了avg_timei的时间;
4.按照在WIDi中的平均停留时间计算日志排序优化得分。
参见图5,微博数据在抓取的过程中已经通过分类系统实现了分类,并将分类的结果作为微博附属信息的一部分存储在数据库中。系统首先针对用户输入的查询关键词通过Lucene得到初始的查询结果(微博ID列表),然后根据微博 ID查询数据库,得到微博的分类信息,如果微博的分类属于金融以及金融以下的任意一个子类,则累加sum(统计参数,统计所有分类在金融下的返回结果的个数)。最后确定分类为金融的微博其分类排序优化得分。
Claims (10)
1.一种基于微博数据的多维检索排序优化算法,其特征在于:结合微博数据特点,从检索数据特征、检索用户特征和系统应用特征三个维度,对Lucene原始检索排序结果进行综合多维度的优化调整,使优化后的排序结果更加体现数据特征、更加符合用户的真实查询意图、更加契合应用的主题。多维度检索排序优化工具定义了以下三个维度,使用多维检索排序优化算法,对基于金融微博数据Web应用进行检索排序优化的实现,最后对基于金融微博数据实现的工具进行数据测试,证明了此工具的有效性:
维度一是检索数据特征,在此维度上全面考虑数据的特点,尤其是微博数据不同于传统数据的显著区别,基于此区别对排序结果进行优化;
维度二是检索用户特征,主要探究用户的真实检索意图,使更符合用户检索意图的检索结果优先返回;
维度三是系统应用特征,针对某一应用的特定主题,对检索结果进行优化,使更契合主题的检索结果优先返回。
2.根据权利要求1所述的检索数据特征维度优化,其特征在于:定义检索数据特征(Data Attributes)为dataAttr={DA1,DA2,DA3,...DAn},其中DAi表示检索数据的不同特征,挖掘数据不同于传统网页数据的、且Lucene检索排序模块没有考虑到的附属数据信息,包括但不限于数据的发布时间、数据传播度、作者信息、数据的权威程度等等,这些附属信息将影响检索结果的综合价值,从而影响最终排序结果。在此维度的实现中,采用了具体方法计算各检索数据特征对检索结果价值的影响度。
3.根据权利要求1所述的检索用户特征维度优化,其特征在于:定义检索用户特征(User Attributes)为userAttr={UA1,UA2,UA3,...UAn},其中UAi表示用户的检索意图。用户的检索意图是指用户在进行查询时,希望检索服务能够返回的信息。针对相同的检索词,不同的用户可能有不同的检索意图。例如相同的查询词“欧洲史”,用户A想找到相关的书籍介绍,用户B希望找到相关的研究学者或者机构。在此维度的实现中,采用了具体方法计算各检索用户特征对检索结果价值的影响度。
4.根据权利要求1所述的系统应用特征维度优化,其特征在于:定义系统应用特征(App Attributes)为appAttr={AA1,AA2,AA3,...AAn},AAi表示应用的特征或者主题,不同的系统应用有不同的应用领域、主题,显然与应用主题更相关的查询结果是更有价值的,排名应该更靠前。例如,如果一个应用是检索矿产相关的信息,那么检索结果与矿产类相关度较大,就应该有更高的排名。在此维度的实现中,采用了具体方法计算各系统应用特征对检索结果价值的影响度。
5.根据权利要求2所述的检索数据特征维度优化,其特征在于基于金融微博数据,总结出微博数据相对传统网页数据的不同的特点,dataAttr集合为DA1=文本长度,DA2=发布时间,DA3=评论数+转发数,DA4=作者粉丝数,DA5=作者已发布微博数;以上五个关键属性,都是越大越好,针对在关键属性上表现更加优异的检索结果,其在最后的返回页面中应该更加靠前。分别取出在五个属性上表现最好的K条微博,形成5个集合,每个集合K条数据。按照具体公式计算检索数据特征维度优化得分。
6.根据权利要求3所述的检索用户特征维度优化,其特征在于利用两种方法分析用户意图,实现具体的优化:
一种是基于检索标签的优化,利用标签表明用户的意图,检索用户需要额外给出一些辅助信息,例如上例中的检索关键词“股票书”,“书”就属于这类辅助信息,表明用户想要查找的是与股票相关的书,而非股票大盘走势等等。
另一种是基于用户日志的优化,记录所有注册用户的查询日志,其中保存用户查询的关键词、点击行为以及停留的时间。认为点击次数越多、停留时间越长的检索结果更加符合用户检索意图,基于此建立某一用户检索关键词与其检索意图的关联,并利用此关联对相似查询进行优化处理。
7.根据权利要求6所述的基于检索标签的优化,其特征在于用户输入的检索信息分为检索关键词和检索标签,工具提供特定的输入格式区分两者。检索标签Search Tag(STag),表示查询的真实意图。在基于金融微博数据的工具的实现中,对于每一条微博数据,有相应的微博标签Weibo Tag(WTag)。WTag主要有微博作者在注册微博平台上时填写的用户标签、微博内容中标注出的话题、用户手动添加这三个来源。针对Lucene返回的原始检索结果,计算每一条微博的WTag与STag的相关度,判定返回的微博与用户意图的相关性,从而对原始排序结果进行优化。
8.根据权利要求4所述的系统应用特征维度优化,其特征在于对于基于金融微博数据的Web应用,数据在抓取的过程中已经通过分类系统实现了分类,并将分类的结果作为微博附属信息的一部分存储在数据库中。针对每一个检索结果,可以得到其分类信息,如果微博的分类属于金融以及金融以下的任意一个子类,则累加sum(统计参数,统计所有分类在金融下的返回结果的个数)。按照具体公式计算基于应用特征的排序优化得分。
9.根据权利要求1所述的对Lucene原始检索排序结果进行综合多维度的优化调整,其特征在于通过权利要求2、3、4所述的三个维度的优化之后,相加计算其排序优化总得分Optimizescore。
Optimizescore=f(ΣdataAttr)+g(ΣuserAttr)+h(ΣappAttr)
其中,f()表示检索数据特征优化得分的计算公式,g()表示检索用户特征优化得分的计算公式,h()表示系统应用特征优化得分的计算公式。优化后的最终排序得分Finalscore:
Finalscore=α+β
其中α表示调整后的Lucene排序得分,β表示排序优化得分,即Optimizescore。最后返回的检索结果排序就依据Finalscore进行。
10.根据权利要求1所述的对基于金融微博数据实现的工具进行数据测试,其特征在于提出了针对三个维度优化效果的度量参数,分别为微博数据特征参数AttrParam、检索用户特征参数UserParam、应用特征参数AppParam。通过比较优化前后的三个度量参数的值,证明优化算法的优化效果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410101816.3A CN103823906A (zh) | 2014-03-19 | 2014-03-19 | 一种基于微博数据的多维度检索排序优化算法和工具 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410101816.3A CN103823906A (zh) | 2014-03-19 | 2014-03-19 | 一种基于微博数据的多维度检索排序优化算法和工具 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103823906A true CN103823906A (zh) | 2014-05-28 |
Family
ID=50758970
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410101816.3A Pending CN103823906A (zh) | 2014-03-19 | 2014-03-19 | 一种基于微博数据的多维度检索排序优化算法和工具 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103823906A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104834731A (zh) * | 2015-05-15 | 2015-08-12 | 百度在线网络技术(北京)有限公司 | 一种自媒体信息的推荐方法及装置 |
CN105183803A (zh) * | 2015-08-25 | 2015-12-23 | 天津大学 | 一种社交网络平台中的个性化搜索方法及其搜索装置 |
CN105183833A (zh) * | 2015-08-31 | 2015-12-23 | 天津大学 | 一种基于用户模型的微博文本推荐方法及其推荐装置 |
CN105824951A (zh) * | 2016-03-23 | 2016-08-03 | 百度在线网络技术(北京)有限公司 | 检索方法和装置 |
CN106021513A (zh) * | 2016-05-23 | 2016-10-12 | 成都陌云科技有限公司 | 基于兴趣偏好的内容主动呈现方法 |
CN107092681A (zh) * | 2017-04-21 | 2017-08-25 | 安徽富驰信息技术有限公司 | 一种基于用户行为特征的司法检索结果自动学习排序方法 |
CN107766449A (zh) * | 2017-09-26 | 2018-03-06 | 杭州云赢网络科技有限公司 | 热点挖掘方法、装置、电子设备及存储介质 |
CN108415903A (zh) * | 2018-03-12 | 2018-08-17 | 武汉斗鱼网络科技有限公司 | 判断搜索意图识别有效性的评价方法、存储介质和设备 |
CN109447786A (zh) * | 2018-10-24 | 2019-03-08 | 中国银行股份有限公司 | 信息录入方法及装置 |
WO2019085236A1 (zh) * | 2017-10-31 | 2019-05-09 | 北京小度信息科技有限公司 | 检索意图识别方法、装置、电子设备及可读存储介质 |
CN111831786A (zh) * | 2020-07-24 | 2020-10-27 | 刘秀萍 | 完善主题词的全文数据库精准高效检索方法 |
CN113488144A (zh) * | 2021-07-14 | 2021-10-08 | 深圳市东亿健康服务有限公司 | 一种切片图像处理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102426610A (zh) * | 2012-01-13 | 2012-04-25 | 中国科学院计算技术研究所 | 微博搜索排名方法及微博搜索引擎 |
CN103455615A (zh) * | 2013-09-10 | 2013-12-18 | 中国地质大学(武汉) | 一种微信帐号的排序过滤检索方法 |
US20130339130A1 (en) * | 2012-06-15 | 2013-12-19 | Trustedad, Inc. | Interpersonal ad ranking |
-
2014
- 2014-03-19 CN CN201410101816.3A patent/CN103823906A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102426610A (zh) * | 2012-01-13 | 2012-04-25 | 中国科学院计算技术研究所 | 微博搜索排名方法及微博搜索引擎 |
US20130339130A1 (en) * | 2012-06-15 | 2013-12-19 | Trustedad, Inc. | Interpersonal ad ranking |
CN103455615A (zh) * | 2013-09-10 | 2013-12-18 | 中国地质大学(武汉) | 一种微信帐号的排序过滤检索方法 |
Non-Patent Citations (3)
Title |
---|
刘佳: ""基于微博的金融资讯检索平台查询优化技术的研究和实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
王海明: ""面向博文搜索的用户行为分析技术研究与应用"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
马尧: ""基于多维用户特征建模的个性化社交搜索引擎的设计与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104834731B (zh) * | 2015-05-15 | 2019-02-26 | 百度在线网络技术(北京)有限公司 | 一种自媒体信息的推荐方法及装置 |
CN104834731A (zh) * | 2015-05-15 | 2015-08-12 | 百度在线网络技术(北京)有限公司 | 一种自媒体信息的推荐方法及装置 |
CN105183803A (zh) * | 2015-08-25 | 2015-12-23 | 天津大学 | 一种社交网络平台中的个性化搜索方法及其搜索装置 |
CN105183833B (zh) * | 2015-08-31 | 2020-05-19 | 天津大学 | 一种基于用户模型的微博文本推荐方法及其推荐装置 |
CN105183833A (zh) * | 2015-08-31 | 2015-12-23 | 天津大学 | 一种基于用户模型的微博文本推荐方法及其推荐装置 |
CN105824951B (zh) * | 2016-03-23 | 2019-10-11 | 百度在线网络技术(北京)有限公司 | 检索方法和装置 |
CN105824951A (zh) * | 2016-03-23 | 2016-08-03 | 百度在线网络技术(北京)有限公司 | 检索方法和装置 |
CN106021513A (zh) * | 2016-05-23 | 2016-10-12 | 成都陌云科技有限公司 | 基于兴趣偏好的内容主动呈现方法 |
CN107092681A (zh) * | 2017-04-21 | 2017-08-25 | 安徽富驰信息技术有限公司 | 一种基于用户行为特征的司法检索结果自动学习排序方法 |
CN107766449A (zh) * | 2017-09-26 | 2018-03-06 | 杭州云赢网络科技有限公司 | 热点挖掘方法、装置、电子设备及存储介质 |
WO2019085236A1 (zh) * | 2017-10-31 | 2019-05-09 | 北京小度信息科技有限公司 | 检索意图识别方法、装置、电子设备及可读存储介质 |
CN108415903A (zh) * | 2018-03-12 | 2018-08-17 | 武汉斗鱼网络科技有限公司 | 判断搜索意图识别有效性的评价方法、存储介质和设备 |
CN108415903B (zh) * | 2018-03-12 | 2021-09-07 | 武汉斗鱼网络科技有限公司 | 判断搜索意图识别有效性的评价方法、存储介质和设备 |
CN109447786A (zh) * | 2018-10-24 | 2019-03-08 | 中国银行股份有限公司 | 信息录入方法及装置 |
CN111831786A (zh) * | 2020-07-24 | 2020-10-27 | 刘秀萍 | 完善主题词的全文数据库精准高效检索方法 |
CN113488144A (zh) * | 2021-07-14 | 2021-10-08 | 深圳市东亿健康服务有限公司 | 一种切片图像处理方法 |
CN113488144B (zh) * | 2021-07-14 | 2023-11-07 | 内蒙古匠艺科技有限责任公司 | 一种切片图像处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103823906A (zh) | 一种基于微博数据的多维度检索排序优化算法和工具 | |
CN100507920C (zh) | 一种基于用户行为信息的搜索引擎检索结果重排序方法 | |
CN101520785B (zh) | 信息检索方法和系统 | |
CN103838833A (zh) | 基于相关词语语义分析的全文检索系统 | |
CN103577432A (zh) | 一种商品信息搜索方法和系统 | |
CN103678576A (zh) | 基于动态语义分析的全文检索系统 | |
CN105022827A (zh) | 一种面向领域主题的Web新闻动态聚合方法 | |
CN102081668A (zh) | 基于领域本体的信息检索优化方法 | |
CN101320375A (zh) | 基于用户点击行为的数字图书搜索方法 | |
US20110307432A1 (en) | Relevance for name segment searches | |
CN103123653A (zh) | 基于贝叶斯分类学习的搜索引擎检索排序方法 | |
CN104899229A (zh) | 基于群体智能的行为聚类系统 | |
CN1983255A (zh) | 一种互联网搜索方法 | |
CN104077286A (zh) | 商品信息的搜索方法及系统 | |
CN105183803A (zh) | 一种社交网络平台中的个性化搜索方法及其搜索装置 | |
CN103399862A (zh) | 确定目标查询序列所对应的搜索引导信息的方法与设备 | |
CN102609539B (zh) | 一种搜索方法和系统 | |
CN114090762B (zh) | 一种期货领域的自动问答方法和系统 | |
Niu et al. | Predictive analytics of E-commerce search behavior for conversion | |
KR102122122B1 (ko) | 기사 검색을 이용한 물가 예측 시스템 및 방법 | |
CN106909626A (zh) | 改进的决策树分类算法实现搜索引擎优化技术 | |
Nawazish et al. | Integrating “Random Forest” with Indexing and Query Processing for Personalized Search | |
Ajoudanian et al. | Deep web content mining | |
Liao et al. | Improving farm management optimization: Application of text data analysis and semantic networks | |
CN105975508A (zh) | 个性化元搜索引擎检索结果合成排序方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140528 |