基于PageRank算法的问题推荐方法及系统与流程

文档序号:11627746阅读:215来源:国知局
基于PageRank算法的问题推荐方法及系统与流程
本发明涉及基于pagerank算法的问题推荐方法及系统。
背景技术
:互联网、云计算的崛起让软件开发商遇到转型难题的同时,也给有好的创意产品、优质资源或技术的社会群体乃至个人带来了机会,众筹、众智、众创成为最有效的资源。问答社区是信息检索领域一种新的形式,用户使用自然语言发起提问和回答行为。与传统的信息检索技术(如搜索引擎)相比,问答社区解决了如下两个方面的问题:一方面,用户由使用零星的关键字作为检索条件转变为使用语义更加丰富、明确的自然语言问题这一形式,因此可以更加清晰地表达和描述其需求,为得到理想的结果提供了更加充足、完备的条件。另一方面,问答社区允许其他用户回答提问者提出的问题,通过这种协作的方式,能够最大限度地发挥人类智力,从而克服机器自身的一些限制。由上可知,问答社区具有高效、实用、方便等特点,它的不断完善必将为信息检索领域的发展注入新鲜活力和推动力。目前在网络社区中,对于用户权威性的分析,主要采用链接分析算法。链接分析最初在搜索引擎领域使用。目前很多链接分析研究领域的算法都是基于pagerank算法。使用pagerank算法来给网页排序时是根据网页的pagerank值,简称pr值。对于网页pr值的计算,主要基于这样的假设:一方面,如果目标页面被越多的其他网页链接,那么目标页面越重要;另一方面,由于指向目标页面的其他页面质量不同,因此其他页面的质量越高,则目标页面的质量也越高。pagerank算法通过迭代、递归的思想来计算和更新每个页面的pr值,直到得分趋于稳定为止。在实际应用这种,这种算法有若干问题:pagerank算法采用随机游走模型,并没有考虑各网页在质量上存在的差别,对于提供答案的用户,不去考虑用户回答的质量。在用户的回答中,可能包含错误答案、随意的作答甚至是垃圾广告。互动问答平台中用户提供的答案质量参差不齐,如果将这些答案在衡量用户权威性时视为等同,仅仅根据用户的回复数量来确定用户权威性,显然与客观事实不符;即便是互动问答平台中的问答专家,也不可能在每个领域都有丰富的专业知识。任何一位专家势必在某些领域有丰富的专业知识,而在其他领域则并非如此。传统pagerank算法由于其具有主题无关性的特点,每一位用户只有一个权威值,显然无法适应问答社区丰富的分类体系。根据互动问答平台中用户注册日期的不同,老用户更可能回答更多的问题。这类似于在进行网页链接分析时对新旧网页计算pr值的情况。老用户相较于新用户回答的问题数量多,即便考虑了答案的质量,老用户回答中被采纳为最佳答案的数量也更多。这就造成了在计算用户权威性时,存在偏爱老用户的现象,而实际情况是在新注册的用户中也存在一部分潜在的问答专家。为有效缓解知识社区中提问者被动等待他人回答且得不到满意回答的情况,需要引用一种主动推荐机制,使得最合适的问题能够推送到最合适的用户来解答。技术实现要素:为了解决知识社区中评价机制和推荐机制的不足,本发明提供了一种基于pagerank算法的问题推荐方法及系统。通过对答案相关度、答案质量、问题难度等语义信息进行分析找出高权权重用户;进一步的,本发明还采用基于用户建模的问题推荐机制,将最合适的问题推荐给最合适的用户。基于pagerank算法的问题推荐方法,包括如下步骤:步骤(1):用户提出待解决问题,对问题进行分词,通过lda算法,挖掘出问题所属的分类;步骤(2):对社区的用户进行权威性分析;步骤(3):将用户提出的待解决问题与社区的用户进行匹配度计算;步骤(4):将待解决问题根据匹配度计算结果推荐给对应的社区用户进行解答。基于pagerank算法的问题推荐方法,还包括如下步骤:步骤(5):用户对解答发表主观评价和客观评价,对于客观评价,收集答案,统计结果;对于主观评价和解决方案回答,根据参与答题用户的质量权重,再发布到社区中进行评价,计算参与答题用户的质量。所述步骤(1)的挖掘出问题所属的分类,例如:生活常识类、法律知识类、娱乐新闻类、培训教学类等等。所述步骤(2)的步骤为:对于用户进行任务类型和领域的权重计算,步骤如下:步骤(21):在pagerank算法的基础上,构建一个用户问答关系图g=(u,r),其中用户问答关系图中的每一个结点ui∈u表示为一个用户,用户问答关系图中的每一条有向边rij∈r表示为用户ui到用户uj之间的问答交互关系;其中,pr(a)代表网页a的pr值,d代表阻尼系数,取值范围是0<d<1;pr(ti)代表链接到网页a的网页ti的pr值;c(ti)代表网页ti链出的网页数量;pr值全称为pagerank(网页级别),用来表现网页等级的一个标准,级别分别是0到10;步骤(22):引入对答案质量的分析,分析用户的行为,得出初步的用户权威性的计算方法;所述用户的行为,包括:回答问题、选择最佳答案、赞成和反对;设回答问题的权重分数为x,其中x>0,选择最佳答案的权重分数为ax,其中a>1,赞成的权重为bx,其中b>0,反对的权重为-cx,其中c>0;其中,auth(ui,c)代表用户ui在问题类别c的权威性值,n代表总的用户数量,代表用户uj到用户ui链接的权重,代表用户uj到所有用户链接权重之和。步骤(23):引入对问题难度的分析,得出用户权威性计算方法;问题难度的计算公式如下:dif(q)代表解决方案或创意q的难易程度,1<dif(q)<2,a(q)是解决方案或创意q的回答集合,|a(q)|代表解决方案或创意q的回复数量;ta(q)代表回复a的日期,tq(q)代表解决方案或创意的提出日期;ta(q)-tq(q)的单位是秒;其中,tavg是回答问题q的平均耗费时间;η是调节参数;问题的回答数量越多,表明有越多的用户知道问题的答案,问题相对简单,当问题的平均回答时间越长,表明用户无法在短时间之内回答该问题,问题相对困难。最终计算用户权威性的方法:代表加入了问题难度因素之后用户uj到用户ui链接的权重。此时,用户行为和权重分数的对应关系为:回答问题的权重分数为x,x>0,选择最佳答案的权重分数为ax·dif(q),a>1,赞成的权重为bx·dif(q),b>0,反对的权重为-cx×(2-dif(q)),c>0;所述步骤(3)的步骤为:设问题类别构成集合c={c1,c2,c3,…,cn},注册用户构成集合u={u1,u2,u3,…,un},表征用户与某个问题类别相关程度的计算方法公式如下:rij=inm(ui,cj)×authij;(6)其中,rij代表用户ui与问题类别cj的相关程度,其含义为:当某个问题属于类别cj时,用户ui回答这一问题的可能性;inm(ui,cj)代表用户ui在注册之后的第m个月对于问题类别cj的兴趣度,即用户ui是否有兴趣回答类别cj的问题;authij代表用户ui对于问题类别cj的权威度,即用户ui是否有能力回答问题类别cj的问题;initin是用户兴趣度的初始值;qm-1(ui,cj)代表用户ui在注册之后的第m-1个月对类别cj的提问总数,aqm-1(ui,cj)代表用户ui在注册之后的第m-l个月对类别cj的回答总数。所述步骤(4)的步骤为:将待解决问题按照领域推荐给合适用户,包含以下几个步骤:步骤(41):计算待解决问题的优先级,按照优先级从高到低进行排序,从而得到排序之后的待解决问题列表;待解决问题优先级的计算方法如下:在公式中,priority(q)指问题q的优先级,interval(q)代表问题q已发布的时间,单位为天,score(q)代表问题q的悬赏分数;当已发布时间相同时,悬赏分高的问题的优先级高;当问题悬赏分相同时,发布时间更长的问题获得更高的优先级;步骤(42):对待解决问题列表做非空判断,如果存在待解决问题,则进入步骤(43),否则结束推荐;步骤(43):从用户问答数据库中读取可用用户集合,并对可用用户集合做非空判断,如果可用用户集合为空,代表目前没有用户有余力接收推荐的问题,推荐结束,否则进入步骤(44);步骤(44):从有序的待解决问题列表中获取优先级最高的问题,根据步骤(3),获取该问题所在的问题类别与各用户的相关程度值,选取相关程度值最高的用户作为与该问题最匹配的用户,将问题推荐给该用户;步骤(45):当完成当前问题推荐后,判断待解决问题列表中是否还有问题,如果还有问题,则跳转至步骤(43),否则结束推荐。可用用户集合中用户获取方法如下:设u={u1,u2,u3,…,un}为平台所有用户的集合,list(ui)代表用户ui的推荐问题列表,当用户ui回答了list(ui)中的某个问题后,该问题从用户ui的问题推荐列表list(ui)删除。ml(ui)为用户ui的问题推荐列表的最大长度。当且仅当用户ui的问题推荐列表list(ui)的当前长度小于问题推荐列表的最大长度ml(ui),认为用户ui为可用用户。为了解决评价机制和推荐机制的不足,本发明还提供了另一种基于pagerank算法的问题推荐系统,所述系统包括:待解决问题提出模块,用于用户提出待解决问题;用户权威性分析模块,用于对社区的用户进行权威性分析;匹配度计算模块,用于计算用户提出的待解决问题与社区的用户进行匹配度计算;问题推荐模块,用于将待解决问题根据匹配度计算结果推荐给对应的社区用户进行解答。所述系统还包括:用户管理模块:用于维护用户的基本资料和操作行为,并且从数据库中提取基本资料和操作行为用以构建用户模型,计算用户的权重,以用户模型来表征用户的偏好、兴趣、习惯;知识重用模块:利用历史问答记录和现有知识库来解决新问题;答案聚类评估模块:将众多答案根据各自的语义特征,进行聚类操作,达到方便用户浏览和检索的目的。进一步的,用户权威性分析模块:在pagerank算法的基础上,分析用户回复的质量,回复内容的相关性和问题的难度,对每个用户的权重进行量化,得出用户的每个领域中的权威度。进一步的,匹配度计算模块:首先,取出可用用户集合。此处的可用用户集合,是指尚有余力回复他人问题的用户构成的集合;然后从用户问答数据库中取出可用用户特性分析的结果,与在列表排序模块中完成优先级排序的待解决问题进行匹配,选取匹配度最高的用户,将问题推荐至该用户处。进一步的,匹配度的计算方法是:用户对于某个问题类别的兴趣度乘以用户对于该问题类别的权威度。进一步的,兴趣度的计算方法是:根据用户在某个时间段内在某一问题类别提出或者回答的问题的数量,建立兴趣度模型。如果数量多,则兴趣度高,反之,兴趣度低。进一步的,问题推荐模块:根据问题列表优先级算法对待解决问题列表进行排序,从而得到排序之后的待解决问题列表;对待解决问题列表做非空判断,即如果存在待解决问题,则进入下一步,否则结束推荐。从用户问答数据库中读取可用用户集合,并对该集合做非空判断,即如果可用用户集合为空,代表目前没有用户有余力接收推荐的问题,推荐结束,否则进入下一步。从有序的待解决问题列表中获取优先级最高的问题,根据用户特性分析的结果,获取该问题所在的问题类别与各用户的相关程度值,选取相关程度值最高的用户作为与该问题最匹配的用户,将问题推荐给该用户。当完成当前问题推荐后,判断待解决问题列表中是否还有问题,如果还有问题,则跳转至读取可用用户集合的步骤,否则结束推荐。具体的,问题列表优先级的计算方法是:根据待解决问题已发布的时间和问题的悬赏分,基于操作系统领域中的高响应比优先的调度算法,通过建立函数模型,得出当前时刻待解决问题的优先级。具体的,用户可用性计算方法是:根据用户当前问题推荐列表的长度和其问题推荐列表的最大长度,判断该用户是否是可用用户。如果某用户当前问题推荐列表的长度小于其问题推荐列表的最大长度,则该用户是可用用户,否则为不可用用户。与现有技术相比,本发明的有益效果是:改进了传统的pagerank算法,传统pagerank算法仅根据用户问答之间的链接数量来确定用户权重,本发明对答案相关度、答案质量、问题难度等语义信息进行分析,融入到权重的计算中。设计了一种基于知识社区的问题推荐机制,结合用户的权威性和兴趣度,将最合适的问题问题推荐给最合适的用户,确保任务的合理分配。基于pagerank算法,结合答案相关度、答案质量、问题难度等语义信息,得出用户的权威度。针对系统发布的创新创意、创新方案,结合任务和参与者的匹配度,用户兴趣度和用户可用性,设计了一种推荐机制,将合适的问题推荐给合适的用户,进行主观和客观评价。参与者将获得参与积分,积分可以兑换物质奖励,并作为企业挑选人才的参考。采用本发明,创新设计将作为大众参与的活动。附图说明构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。图1为本发明的系统调度示意图;图2为本发明一个实施例的流程图。具体实施方式应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属
技术领域
的普通技术人员通常理解的相同含义。具体来说:一是基于pagerank算法进行改进,对系统用户的权威性进行评价。二是建立一种问题推荐架构和推荐流程,让系统自动将待解决问题推荐给最合适的用户。为了实现上述目的,本发明采用的技术方案具体包括:用户分析模块:用于对用户提出的问题,提取特征内容加以分析,用户在各个领域的权威性。分析匹配模块:根据用户与问题的匹配结果,最终决定将待解决问题推荐到哪一个用户处作答。问题推荐模块:与问题分析模块相联系,并结合系统构造的用户模型为问题寻找到合适的用户并推荐给他。用户管理模块:用于维护用户的基本资料、操作行为等,并且从数据库中提取这些信息用以构建用户模型,计算用户的权重,以此模型来表征其偏好、兴趣、习惯等。知识重用模块:利用历史问答记录和现有知识库来解决新问题。答案聚类评估模块:将众多答案根据各自的语义信息,通过数据挖掘中聚类的思想进行聚类操作,达到方便用户浏览和检索的目的。具体的,计算用户在各个领域的权威性的方法是:在pagerank算法的基础上,分析用户回复的质量,回复内容的的相关性和问题的难度,对每个用户的权重进行量化,得出用户的每个领域中的权威度。具体的,分析匹配模块的方法是:首先,取出可用用户集合。此处的可用用户集合,是指尚有余力回复他人问题的用户构成的集合。然后从用户问答数据库中取出可用用户特性分析的结果,与在列表排序模块中完成优先级排序的待解决问题进行匹配,选取匹配度最高的用户,将问题推荐至该用户处。具体的,匹配度的计算方法是:用户对于某个问题类别的兴趣度乘以用户对于该问题类别的权威度。具体的,兴趣度的计算方法是:根据用户在某个时间段内在某一问题类别提出或者回答的问题的数量,建立兴趣度模型。如果数量多,则兴趣度高,反之,兴趣度低。具体的,问题推荐模块包括以下实现步骤:a.系统初始化时,根据问题列表优先级算法对待解决问题列表进行排序,从而得到排序之后的待解决问题列表。b.对待解决问题列表做非空判断,即如果存在待解决问题,则进入下一步,否则结束推荐。c.从用户问答数据库中读取可用用户集合,并对该集合做非空判断,即如果可用用户集合为空,代表目前没有用户有余力接收推荐的问题,推荐结束,否则进入下一步。d.从有序的待解决问题列表中获取优先级最高的问题,根据用户特性分析的结果,获取该问题所在的问题类别与各用户的相关程度值,选取相关程度值最高的用户作为与该问题最匹配的用户,将问题推荐给该用户。e.当完成当前问题推荐后,判断待解决问题列表中是否还有问题,如果还有问题,则跳转至步骤c,否则结束推荐。具体的,问题列表优先级的计算方法是:根据待解决问题已发布的时间和问题的悬赏分,基于操作系统领域中的高响应比优先的调度算法,通过建立函数模型,得出当前时刻待解决问题的优先级。具体的,用户可用性计算方法是:根据用户当前问题推荐列表的的长度和其问题推荐列表的最大长度,判断该用户是否是可用用户。如果某用户当前问题推荐列表的的长度小于其问题推荐列表的最大长度,则该用户是可用用户,否则为不可用用户。如图1所示,本发明中的基于众智众创社区的创新协同设计与评价系统包括用户权威性分析模块、分析匹配模块、解决方案、创意推荐模块。用户权威性分析模块,读取用户问答数据库中存放的用户基本资料和操作信息,计算用户在各问题领域的兴趣度和权威性,以此为依据构建每个用户的用户模型,进而确定用户与某个问题领域的相关程度,并将结果存入用户问答数据库中。由于用户的基本资料和操作信息是动态变化的,为了保证用户特性分析模块计算的结果能够适应动态变化这一特点,应当定期调用用户特性分析模块,使用户模型保持在一个较新的状态。分析匹配模块,根据用户与问题的匹配结果,最终决定将待解决问题推荐到哪一个用户处作答。在分析匹配模块中,主要完成如下工作:首先,取出可用用户集合。此处的可用用户集合,是指尚有余力回复他人问题的用户构成的集合。然后从用户问答数据库中取出可用用户特性分析的结果,与在列表排序模块中完成优先级排序的待解决问题进行匹配,选取匹配度最高的用户,将问题推荐至该用户处。解决方案、创意推荐模块,问题推送模块根据分析匹配模块计算生成的推荐列表,将问题推荐至指定的用户处作答。如图2所示,下面以一个实施例对创新协同设计与评价机制进行具体的阐述。步骤201:根据社区提供模板,发布创意、解决方案。步骤202:对于平台用户进行任务类型和领域的权重计算,其步骤如下:分步骤1:在pagerank算法的基础上,构建一个用户问答关系图g=(u,r),其中图中的每一个结点ui∈u表示为一个用户,图中的每一条有向边rij∈r表示为用户ui到uj之间的问答交互关系。在上面pagerank算法中,pr(a)代表网页a的pr值,d代表阻尼系数,取值范围是0<d<1,一般取为0.85;pr(ti)代表链接到网页a的网页ti的pr值;c(ti)代表网页ti链出的网页数量。分步骤2:在pagerank算法的基础上,引入对答案质量的分析,分析用户的行为,得出初步的用户权威性的计算方法。这里的用户行为,包括回答问题,选择最佳答案,赞成和反对。得出下面公式。设回答问题的权重分数为x(x>0),选择最佳答案的权重分数为ax,a>1,赞成的权重为bx(b>0),反对的权重为-cx(c>0)。auth(ui,c)代表用户ui在问题类别c的权威性值,n代表总的用户数量,代表用户uj到用户ui链接的权重,代表用户uj到所有用户链接权重之和。分步骤3:在上述算法基础上,引入对问题难度的分析,得出用户权威性计算方法。问题难度的计算公式如下:dif(q)代表解决方案或创意q的难易程度,1<dif(q)<2,a(q)是解决方案或创意q的回答集合,|a(q)|代表解决方案或创意q的回复数量。ta(q)代表回复a的日期,tq(q)代表解决方案或创意的提出日期。ta(q)-tq(q)的单位是秒。其中,tavg是回答问题q的平均耗费时间。η是一个调节参数,为避免计算时结果下降太快在这里被设置为1/3600。可以看出,问题的回答数量越多,表明有越多的用户知道问题的答案,问题相对简单,当问题的平均回答时间越长,表明用户无法在短时间之内回答该问题,问题相对困难。根据上述讨论,给出最终计算用户权威性的方法:代表加入了问题难度因素之后用户uj到用户ui链接的权重。此时,用户行为和权重分数的对应关系为:回答问题的权重分数为x(x>0),选择最佳答案的权重分数为ax·dif(q),a>1,赞成的权重为bx·dif(q),(b>0),反对的权重为-cx×(2-dif(q))(c>0)。分步骤4:在上述算法基础上,引入对答案相关性的分析,得出最终的用户权威性计算方法。步骤203:计算任务和参与者的匹配度;设众智众创社区的问题类别构成集合c={c1,c2,c3,…,cn},注册用户构成集合u={u1,u2,u3,…,un},表征用户与某个问题类别相关程度的计算方法公式如下:rij=inm(ui,cj)×authij其中,rij代表用户ui与问题类别cj的相关程度,其含义为:当某个问题属于类别cj时,用户ui回答这一问题的可能性。inm(ui,cj)代表用户ui在注册之后的第m个月对于问题类别cj的兴趣度,即用户ui是否有兴趣回答类别cj的问题;authij代表用户ui对于问题类别cj的权威度,即用户ui是否有能力回答问题类别cj的问题。initin是用户兴趣度的初始值,设定为1。qm-1(ui,cj)代表用户ui在注册之后的第m-1个月对类别cj的提问总数,aqm-1(ui,cj))代表用户ui在注册之后的第m-l个月对类别cj的回答总数。步骤204:将任务按照领域推荐给合适用户,包含以下几个步骤:分步骤1:根据问题列表优先级算法对待解决问题列表进行排序,从而得到排序之后的待解决问题列表。待解决问题优先级的计算方法如下:在公式中,priority(q)指问题q的优先级,interval(q)代表问题q已发布的时间,单位为天,score(q)代表问题q的悬赏分数。下面通过一个实例加以说明。表1问题已发布时间悬赏分优先级a1天5分3.32b1天10分4.32c2天5分5.64可见,当已发布时间相同时,悬赏分高的问题的优先级高。当问题悬赏分相同时,发布时间更长的问题获得更高的优先级。同时,为避免资深用户设定很高的悬赏分数从而在待解决问题列表中获得更靠前的排名,使用对数形式以减少悬赏分数对优先级产生的影响。分步骤2:对待解决问题列表做非空判断,即如果存在待解决问题,则进入下一步,否则结束推荐。分步骤3:从用户问答数据库中读取可用用户集合,并对该集合做非空判断,即如果可用用户集合为空,代表目前没有用户有余力接收推荐的问题,推荐结束,否则进入下一步。用户可用性的计算方法如下:设u={u1,u2,u3,…,un}为平台所有用户的集合,list(ui)代表用户ui的推荐问题列表,当用户ui回答了list(ui)中的某个问题后,该问题从用户ui的问题推荐列表list(ui)删除。ml(ui)为用户ui的问题推荐列表的最大长度。当且仅当用户ui的问题推荐列表list(ui)的当前长度小于其问题推荐列表的最大长度ml(ui),认为用户ui为可用用户。分步骤4:从有序的待解决问题列表中获取优先级最高的问题,根据用户特性分析的结果,获取该问题所在的问题类别与各用户的相关程度值,选取相关程度值最高的用户作为与该问题最匹配的用户,将问题推荐给该用户。分步骤5:当完成当前问题推荐后,判断待解决问题列表中是否还有问题,如果还有问题,则跳转至第三步,否则结束推荐。步骤205:用户对创意或解决方案发表主观和客观评价,对于客观回答,收集答案,统计结果。对于主观评价和解决方案回答,根据参与者的质量权重,再发布到众智社区中进行评价,计算参与者的质量。以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1