一种问题分发方法及相关装置与流程

文档序号:15932609发布日期:2018-11-14 01:52阅读:158来源:国知局

本申请涉及互联网领域,尤其是涉及一种问题分发方法及相关装置。

背景技术

随着互联网领域的发展,互动问答平台越来越广泛地应用于日常生活中。用户可以通过互动问答平台创建问题,并由其他用户对该问题进行回复。

为了能够提高问题被回复的概率,需要将问题集合中的问题分发给用户集合中的用户,以便用户对分发的问题进行回复。目前,一种分发方式是针对问题集合中的每个问题,将该问题分发给与该问题匹配的用户。

然而,这种分发方式中,针对问题集合中的每个问题分别进行分发,并没有实现根据问题集合和用户集合进行全局分发,因此分发的合理性较低,问题需要多次分发才能得到回复,从而浪费了分发资源,并且降低了用户体验。



技术实现要素:

本申请解决的技术问题在于提供一种问题分发方法及相关装置,实现根据问题集合和用户集合进行全局分发,提高分发的合理性,从而节省了分发资源,并且提高了用户体验。

为此,本申请解决技术问题的技术方案是:

本申请实施例提供了一种问题分发方法,所述方法包括:

确定问题集合和用户集合,其中,所述问题集合中包括m个问题,所述用户集合中包括n个用户,m大于1并且n大于1;

获取所述m个问题与所述n个用户的匹配度矩阵,所述匹配度矩阵中的每个元素分别表示所述m个问题中的每一个问题与所述n个用户中的每一个用户之间的匹配度;

根据所述匹配度矩阵建立网络流模型,根据所述网络流模型获取所述m个问题与所述n个用户之间的分发方式;其中,所述网络流模型包括最小费用最大流模型或者最大费用最大流模型,所述网络流模型中的流对应问题分发次数,所述网络流模型中的费用对应所述匹配度矩阵;

根据所述分发方式将所述m个问题分发给所述n个用户。

可选的,其中,所述网络流模型中包括第一节点、m个第一类节点、n个第二类节点和第二节点;

所述第一节点与每个第一类节点之间分别建立有一条有向边,并且每个第二类节点与所述第二节点之间分别建立有一条有向边;其中,所述第一节点为源节点并且所述第二节点为终节点,或者所述第一节点为终节点并且所述第二节点为源节点;

所述每个第一类节点与所述每个第二类节点之间分别建立有一条有向边,其中所述m个第一类节点中第i个第一类节点与所述n个第二类节点中第j个节点之间的有向边所对应的费用为c(i,j),c(i,j)与所述m个问题中第i个问题与所述n个用户中第j个用户的匹配度相关,1≤i≤m,1≤j≤n。

可选的,所述网络流模型包括最小费用最大流模型,c(i,j)=-p(i,j);或者,所述网络流模型包括最大费用最大流模型,c(i,j)=p(i,j);

其中,p(i,j)为所述m个问题中第i个问题与所述n个用户中第j个用户之间的匹配度。

可选的,所述每个第一类节点分别与所述每个第二类节点之间建立的有向边对应的容量相同。

可选的,所述第一节点与所述每个第一类节点之间建立的有向边所对应的容量,根据单个问题对应的用户个数上限确定;和/或,所述第二节点与所述每个第二类节点之间建立的有向边所对应的容量,根据单个用户对应的问题个数上限确定。

可选的,所述m个问题中第i个问题与所述n个用户中第j个用户的匹配度的获取过程包括:

获取所述第i个问题对应的标签集合,所述标签集合包括至少一层标签,每层标签包括一个或多个标签;

根据所述第j个用户的历史行为数据和/或用户属性,确定所述标签集合中每一个标签分别与第j个用户的匹配度;

根据所述每一个标签分别与第j个用户的匹配度,获取所述第i个问题与所述第j个用户的匹配度;其中,1≤i≤m,1≤j≤n。

可选的,确定问题集合包括:确定上一次分发过程中的问题集合,从所述上一次分发过程中的问题集合中删除分发次数总数超过问题次数上限的问题;

和/或,

确定用户集合包括:确定所述上一次分发过程中的用户集合,从所述上一次分发过程中的用户集合中,删除被分发次数超过用户次数上限的用户。

本申请实施例提供了一种问题分发装置,所述装置包括:

确定模块,用于确定问题集合和用户集合,其中,所述问题集合中包括m个问题,所述用户集合中包括n个用户,m大于1并且n大于1;

第一获取模块,用于获取所述m个问题与所述n个用户的匹配度矩阵,所述匹配度矩阵中的每个元素分别表示所述m个问题中的每一个问题与所述n个用户中的每一个用户之间的匹配度;

第二获取模块,用于根据所述匹配度矩阵建立网络流模型,根据所述网络流模型获取所述m个问题与所述n个用户之间的分发方式;其中,所述网络流模型包括最小费用最大流模型或者最大费用最大流模型,所述网络流模型中的流对应问题分发次数,所述网络流模型中的费用对应所述匹配度矩阵;

分发模块,用于根据所述分发方式将所述m个问题分发给所述n个用户。

可选的,其中,所述网络流模型中包括第一节点、m个第一类节点、n个第二类节点和第二节点;

所述第一节点与每个第一类节点之间分别建立有一条有向边,并且每个第二类节点与所述第二节点之间分别建立有一条有向边;其中,所述第一节点为源节点并且所述第二节点为终节点,或者所述第一节点为终节点并且所述第二节点为源节点;

所述每个第一类节点与所述每个第二类节点之间分别建立有一条有向边,其中所述m个第一类节点中第i个第一类节点与所述n个第二类节点中第j个节点之间的有向边所对应的费用为c(i,j),c(i,j)与所述m个问题中第i个问题与所述n个用户中第j个用户的匹配度相关,1≤i≤m,1≤j≤n。

可选的,所述网络流模型包括最小费用最大流模型,c(i,j)=-p(i,j);或者,所述网络流模型包括最大费用最大流模型,c(i,j)=p(i,j);

其中,p(i,j)为所述m个问题中第i个问题与所述n个用户中第j个用户之间的匹配度。

可选的,所述每个第一类节点分别与所述每个第二类节点之间建立的有向边对应的容量相同。

可选的,所述第一节点与所述每个第一类节点之间建立的有向边所对应的容量,根据单个问题对应的用户个数上限确定;和/或,所述第二节点与所述每个第二类节点之间建立的有向边所对应的容量,根据单个用户对应的问题个数上限确定。

可选的,所述m个问题中第i个问题与所述n个用户中第j个用户的匹配度的获取过程包括:

获取所述第i个问题对应的标签集合,所述标签集合包括至少一层标签,每层标签包括一个或多个标签;

根据所述第j个用户的历史行为数据和/或用户属性,确定所述标签集合中每一个标签分别与第j个用户的匹配度;

根据所述每一个标签分别与第j个用户的匹配度,获取所述第i个问题与所述第j个用户的匹配度;其中,1≤i≤m,1≤j≤n。

可选的,确定模块包括:

第一确定子模块,用于确定上一次分发过程中的问题集合,从所述上一次分发过程中的问题集合中删除分发次数总数超过问题次数上限的问题;

和/或,

第二确定子模块,用于确定所述上一次分发过程中的用户集合,从所述上一次分发过程中的用户集合中,删除被分发次数超过用户次数上限的用户。

本申请实施例提供了一种用于问题分发的装置,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:

确定问题集合和用户集合,其中,所述问题集合中包括m个问题,所述用户集合中包括n个用户,m大于1并且n大于1;

获取所述m个问题与所述n个用户的匹配度矩阵,所述匹配度矩阵中的每个元素分别表示所述m个问题中的每一个问题与所述n个用户中的每一个用户之间的匹配度;

根据所述匹配度矩阵建立网络流模型,根据所述网络流模型获取所述m个问题与所述n个用户之间的分发方式;其中,所述网络流模型包括最小费用最大流模型或者最大费用最大流模型,所述网络流模型中的流对应问题分发次数,所述网络流模型中的费用对应所述匹配度矩阵;

根据所述分发方式将所述m个问题分发给所述n个用户。

本申请实施例提供了一种机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行上述任一个问题分发方法。

通过上述技术方案可知,本申请实施例中建立网络流模型,其中网络流模型包括最小费用最大流模型或者最大费用最大流模型,根据该网络流模型获得的分发方式进行问题分发。其中,由于分发方式是根据最小费用最大流模型或者最大费用最大流模型获得的,而网络流模型中的流对应问题分发次数,网络流模型中的费用对应m个问题与n个用户之间的匹配度,因此能够保证分发方式中,m个问题的问题分发次数之和最大,并且n个用户和分发给n个用户的问题之间的匹配度之和最大,因此获得的分发方式实际上是根据问题集合和用户集合获得的全局最优解。提高分发的合理性,从而节省了分发资源,并且提高了用户体验。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其它的附图。

图1为本申请实施例提供的一种方法实施例的流程示意图;

图2为本申请实施例提供的一种网络流模型的结构示意图;

图3为图2所示的网络流模型的有向边的参数的示意图;

图4为问题与用户之间的匹配度的一种算法的流程示意图;

图5为本申请实施例提供的一种装置实施例的结构示意图;

图6为本申请实施例提供的另一种装置实施例的结构示意图;

图7为本申请实施例提供的一种服务器的结构示意图。

具体实施方式

一种应用场景中,提问者想在互联网上提出问题时,可以在互动问答平台中创建问题,并且对问题进行描述和发布,由回复者进行回复。例如,提问者创建的问题的描述信息为:“从a地到b地应该怎么坐车”,回复者可以发布从a地到b地的详细坐车路线,从而对该问题进行回复。问题被回复后,提问者或者其他用户可以通过点击相应的提示符,对回复内容执行采纳、点赞等操作。其中,可以根据回复内容是否被执行采纳、点赞等操作,确定该回复内容是否为优质回复内容。

为了能够提高互动问答平台中的问题被回复的概率,需要将问题集合中的问题分发给用户,以便用户对分发的问题进行回复。目前的分发方式都没有根据问题集合和用户集合进行全局分发,因此分发的合理性较低。例如,一种分发方式是针对问题集合中的每个问题,将该问题分发给与该问题匹配的用户,然而这种分发方式,在针对一个问题进行分发时不会考虑其他问题的分发情况,可能会导致向同一个用户分发过多的问题,使得该用户无法及时对所有问题进行回复。另一种分发方式是针对用户集合中的每个用户,向该用户分发与该用户匹配的问题,然而这种分发方式,在向一个用户分发问题时不会考虑其他用户的分发情况,可能会导致有些问题被分发的次数过多,出现重复回答,而另一些问题被分发的次数过少甚至为0,因此无法得到回复。可见,由于目前的分发方式都没有根据问题集合和用户集合进行全局分发,因此分发的合理性较低,问题需要多次分发才能得到回复,从而浪费了分发资源,并且降低了用户体验。

本申请解决的技术问题在于提供一种问题分发方法及相关装置,实现根据问题集合和用户集合进行全局分发,提高分发的合理性,从而节省了分发资源,并且提高了用户体验。

请参阅图1,本申请实施例提供了问题分发方法的一种方法实施例。本实施例的所述方法包括:

s101:确定问题集合和用户集合。

其中,所述问题集合中包括待分发的m个问题,用户集合包括需要将该m个问题分发至的n个用户,其中m大于1并且n大于1。在本申请实施例中,问题可以指的是问题的标题、描述内容等问题信息。

其中,所述问题集合中的问题和所述用户集合的用户都可以根据需求进行选取,下面分别说明。

一种可选的实施例中,可以根据问题的时效性、问题紧急程度、问题质量等一项或多项因素,获取问题集合中的m个问题。其中,时效性指的是问题的新旧程度,可以根据问题的创建时间确定,例如可以获取24小时内创建的没有被回复的问题。这种方式能够使得新创建的问题能够进入问题集合中,同时淘汰创建时间过长的问题,对于创建时间过长的问题,提问者可以通过其他渠道获得该问题的回复,或者可能对该问题失去了兴趣。问题的紧急程度指的是问题是否急需被回复,可以根据创建问题时设置的问题属性确定,例如,在创建问题时设置问题的属性为紧急问题。问题的质量可以根据问题的重复度等因素确定,例如获取问题重复度较高的问题并且没有优质回复内容的问题。除上述因素之外,也可以通过其他方式获取问题集合中的m个问题,本申请实施例对此并不加以限定。

一种可选的实施例中,可以根据用户的在线状态、活跃度、回复能力等一项或多项因素,获取用户集合中的n个用户。其中,在线状态可以根据用户的最近登陆时间确定,通常问题被分发给在线用户时,该问题被立刻回复的概率较大。活跃度可以根据用户的在线时间、登录次数等确定,其中,可以选取最近一段时间内活跃度较高的用户。回复能力可以根据用户的历史行为数据进行确定,通常回复能力较强的用户,回复问题和产生优质回复内容的概率较大。除上述因素之外,也可以通过其他方式获取用户集合中的n个用户,本申请实施例对此并不加以限定。

s102:获取所述m个问题与所述n个用户的匹配度矩阵,所述匹配度矩阵中的每个元素分别表示所述m个问题中的每一个问题与所述n个用户中的每一个用户之间的匹配度。

s102可以获取m个问题与所述n个用户的匹配度矩阵p,其中,该匹配度矩阵p包括m×n个元素,每个元素分别表示所述m个问题中每一个问题与所述n个用户中每一个用户之间的匹配度。

一种可选实施例中,该匹配度矩阵p可以为m×n矩阵,其中,该匹配度矩阵p中的第i行第j列的值p(i,j),可以为所述m个问题中第i个问题与所述n个用户中第j个用户之间的匹配度,1≤i≤m,1≤j≤n。

其中,第i个问题与第j个用户之间的匹配度可以根据第j个用户的历史行为数据、或者第j个用户属性、或者上述两个因素共同确定。历史行为数据包括用户历史回复的内容和个数,用户历史回复被采纳的个数、用户历史回复被点赞的个数等。用户属性包括用户设置的标签、用户个人信息等。或者,第i个问题与第j个用户之间的匹配度,也可以设置为预设值,例如设置为负的无穷大等等。

s103:根据s102中获取的匹配度矩阵建立网络流模型,根据所述网络流模型获取m个问题与n个用户之间的分发方式。

其中,网络流模型包括最小费用最大流模型或者最大费用最大流模型。最小费用最大流模型和最大费用最大流模型是用于运筹学的典型的网络流模型。其中,最小费用最大流模型中,用于确定在每条有向边都有容量和费用这两个限制的条件下,从源点到终点之间如何选择有向边以及分配经过有向边的流量,可以保证在流量最大的前提下,所用的费用最小。类似地,最大费用最大流模型用于确定在每条有向边都有容量和费用这两个限制的条件下,从源点到终点之间如何选择有向边以及分配经过有向边的流量,可以保证在流量最大的前提下,所用的费用最大。

在本申请实施例中,根据m个问题与n个用户之间的匹配度矩阵建立网络流模型,其中,网络流模型包括最小费用最大流模型或者最大费用最大流模型;将网络流模型中的流对应问题分发次数,将网络流模型中的费用对应所述匹配度矩阵,通过对建立的网络流模型求解,获得m个问题与n个用户之间的分发方式,其中分发方式实际上可以为m个问题与n个用户之间的配对方式,表示m个问题中的每个问题需要分发至n个用户中的哪一个或者多个用户。其中,该分发方式由于是根据最小费用最大流模型或者最大费用最大流模型获得的,因此能够保证该分发方式中,m个问题的问题分发次数之和最大,并且n个用户和分发给n个用户的问题之间的匹配度之和最大,因此获得的分发方式实际上是根据问题集合和用户集合获得的全局最优解。

s104:根据所述分发方式将所述m个问题分发给所述n个用户。

其中,可以通过发送推送消息、在问题显示栏中进行显示等多种方式,将m个问题分发给n个用户,本申请实施例对此并不加以限定。例如,分发方式中,第i个问题对应第j个用户和第j+1个用户,因此向第j个用户和第j+1个用户发送第i个问题相关的推送消息,或者在第j个用户和第j+1个用户的用户界面的问题显示栏中,优先显示第i个问题。

通过上述技术方案可知,本申请实施例中建立网络流模型,其中网络流模型包括最小费用最大流模型或者最大费用最大流模型,根据该网络流模型获得的分发方式进行问题分发。其中,由于分发方式是根据最小费用最大流模型或者最大费用最大流模型获得的,而网络流模型中的流对应问题分发次数,网络流模型中的费用对应所述匹配度矩阵,因此能够保证分发方式中,m个问题的问题分发次数之和最大,并且n个用户和分发给n个用户的问题之间的匹配度之和最大,因此获得的分发方式实际上是根据问题集合和用户集合获得的全局最优解。提高分发的合理性,从而节省了分发资源,并且提高了用户体验。

下面说明网络流模型的一种具体结构。

可选的,如图2所示,所述网络流模型中包括第一节点、m个第一类节点、n个第二类节点和第二节点。其中,第一节点为源节点s并且所述第二节点为终节点t。m个第一类节点包括集合{vq(i)},其中集合{vq(i)}包括:第1个第一类节点vq(1)、第2个第一类节点vq(2)、…、第i个第一类节点vq(i)、…、第m个第一类节点vq(m),1≤i≤m。n个第二类节点包括集合{vu(j)},其中集合{vu(j)}包括:第1个第二类节点vu(1)、第2个第二类节点vu(2)、…、第j个第二类节点vu(j)、…、第n个第二类节点vu(n),1≤j≤n。

所述源节点s与所述m个第一类节点{vq(i)}中的每个第一类节点之间分别建立有一条有向边,其中,建立的有向边的方向为从源节点s至所述每个第一类节点。例如,图2中源节点s与第i个第一类节点vq(i)之间建立有一条从源节点s至第i个第一类节点vq(i)的有向边。

所述n个第二类节点{vu(j)}中的每个第二类节点与所述终节点t之间分别建立有一条有向边,其中,建立的有向边的方向为从每个第二类节点至所述终节点t。例如,图2中第j个第二类节点vu(j)与终节点t之间建立一条从第j个第二类节点vu(j)至终节点t的有向边。

所述每个第一类节点与所述每个第二类节点之间分别建立有一条有向边,建立的有向边方向从每个第一类节点至每个第二类节点。其中,第i个第一类节点vq(i)与第j个第二类节点vu(j)之间的有向边所对应的费用为c(i,j),c(i,j)与所述m个问题中第i个问题与所述n个用户中第j个用户的匹配度相关,1≤i≤m,1≤j≤n。

可见,由于从源节点s到终节点t的每条流量,表示问题的一次分发,例如,从源节点s,依次经过第i个第一类节点vq(i)、第j个第二类节点vu(j)到达终节点t的流量,可以表示将第i个问题分发至第j个用户。因此通过最大流模型能够使得m个问题的问题分发次数之和最大。由于m个第一类节点与所述n个第二类节点之间的有向边所对应的费用,与问题和用户之间的匹配度相关,因此通过最小费用模型或者最大费用模型,能够使得n个用户和分发给n个用户的问题之间的匹配度之和最大。

需要说明的是,在图2中以第一节点为源节点并且所述第二节点为终节点为例。实际上,所述第一节点也可以为终节点并且所述第二节点也可以为源节点,此时第二节点与每个第二类节点之间分别建立一条有向边,建立的有向边的方向从第二节点至每个第二类节点,每个第一类节点与每个第二类节点之间分别建立有一条有向边,建立的有向边方向从每个第二类节点至每个第一类节点,所述每个第一类节点与所述第一节点之间分别建立有一条有向边,其中,建立的有向边的方向为从每个第一类节点至所述第一节点。

网络流模型中每一条有向边可以包括两种类型的参数:容量和费用,其中容量表示这条有向边的最大流量,费用可以与问题与用户之间的匹配度矩阵相关。下面对这两种类型的参数进行具体说明。

可选的,最小费用最大流模型中,c(i,j)=-p(i,j),其中,c(i,j)为所述m个第一类节点中第i个第一类节点vq(i)与所述n个第二类节点中第j个第二类节点vu(j)之间的有向边所对应的费用,p(i,j)为所述m个问题中第i个问题与所述n个用户中第j个用户之间的匹配度。例如图3所示,第一类节点vq(i)与第二类节点vu(1)之间的有向边所对应的费用c(i,1)可以为-p(i,1),第一类节点vq(i)与第二类节点vu(2)之间的有向边所对应的费用c(i,2)可以为-p(i,2),第一类节点vq(i)与第二类节点vu(j)之间的有向边所对应的费用c(i,j)可以为-p(i,j),第一类节点vq(i)与第二类节点vu(n)之间的有向边所对应的费用c(i,n)可以为-p(i,n)。

可见,由于m个第一类节点与所述n个第二类节点之间的有向边所对应的费用,为问题和用户之间的匹配度的负值,因此通过最小费用最大流模型,能够使得n个用户和分发给n个用户的问题之间的匹配度之和最大。

基于类似的推理,当网络流模型为最大费用最大流模型时,有向边的费用的对应方式可以与匹配度的正值相关,例如c(i,j)=p(i,j),同样能够使得n个用户和分发给n个用户的问题之间的匹配度之和最大。

可选的,有向边对应的容量可以与该有向边对应的分发方式的优先级相关。例如,网络流模型中,所述m个第一类节点中每个第一类节点分别与所述n个第二类节点中每个第二类节点之间建立的有向边对应的容量可以相同。例如图3所示,该容量可以为1,具体地,第一类节点vq(i)分别与第二类节点vu(1)、第二类节点vu(2)、…、第二类节点vu(j)、…、第二类节点vu(n)之间的有向边所对应的容量均为1,表示第i个问题与每个用户的分发方式的优先级相同。

如果为了避免某一个问题被分发给某一个或多个特定的用户,可以设置该问题和该用户之间的匹配度为预设值,从而根据该预设值对该问题和该用户对应的有向边的参数进行设置,使得该有向边对应的分发可能性为0。例如,m个问题中的第k个问题在上一次分发过程中被分发至n个用户中的第r个用户,为了避免在本次分发过程中该第k个问题被分发至该第r个用户,该第k个问题与该第r个用户的匹配度可以为负的无穷大,从而设置m个第一类节点中第k个第一类节点与n个第二类节点中第r个第二类节点之间的有向边所对应的容量为0,并且该有向边对应的费用为无穷大(假设为最小费用最大流模型),从而使得在本次分发过程中该第k个问题不会被分发至该第r个用户。

其中,通过设置网络流模型中第一节点与m个第一类节点的有向边所对应的容量,以及第二节点与所述n个第二类节点的有向边所对应的容量,能够对单个用户分发的问题个数,以及问题被分发至的用户个数进行限制。下面具体说明。

可选的,所述第一节点与所述m个第一类节点中的每个第一类节点之间建立的有向边所对应的容量,根据单个问题对应的用户个数上限确定。例如图3所示,源节点s与第一类节点vq(i)之间的有向边,容量可以为a,费用可以为0。由于第一类节点vq(i)分别与第二类节点vu(1)、第二类节点vu(2)、…、第二类节点vu(j)、…、第二类节点vu(n)之间的有向边所对应的容量均为1,因此,a表示单个问题对应的用户个数上限,即单个问题最多能够分发给多少个用户。例如a=1时,表示单个问题最多分发给1个用户。可见,通过这种方式使得每个问题的分发次数有上线,避免过度消耗分发资源。

可选的,所述第二节点与所述n个第二类节点中的每个第二类节点之间建立的有向边所对应的容量,根据单个用户对应的问题个数上限确定。例如图3所示,终节点t与第二类节点vu(j)之间的有向边,容量可以为b,费用可以为0。由于第二类节点vu(i)分别与第一类节点vq(1)、第一类节点vq(2)、…、第一类节点vq(i)、…、第一类节点vq(m)之间的有向边所对应的容量均为1,因此,b表示单个用户对应的问题个数上限,即单个用户最多能够分发到多少个问题。例如b=1时,1个用户最多能够分发到1个问题。可见,通过这种方式能够使得分发至每个用户的问题的个数有上限,避免用户因分发的问题过多而无法及时回复,而且避免对用户造成骚扰,提高用户体验。

可见,通过建立如图2和图3所述的网络流模型,能够将问题的分发次数与网络流模型的流量进行关联,以及将问题与用户之间的匹配度与网络流模型中的费用进行关联,从而通过对网络流模型进行求解,得到根据问题集合和用户集合获得的全局最优解。例如,将有向边的容量、费用等参数输入到网络流模型中,通过对网络流模型进行求解,获得网络流模型输出的结果,其中,该输出的结果可以包括:最大流值、有向边对应的流量值,其中,最大流值表示问题的最大分发次数,有向边对应的流量值表示该有向边对应的问题是否需要分发至有向边对应的用户,例如流量值为1代表需要分发,流量值为0代表不需要分发。其中,可以通过最小费用增广路等解法来求解网络流模型。最小费用增广路是一种多项式的基于时间复杂度的算法,可以非常快速的求出最优解。

下面对本申请实施例中,对步骤102中问题与用户之间的匹配度的一种算法进行示例性说明。

如图4所示,所述m个问题中第i个问题与所述n个用户中第j个用户的匹配度的获取过程可以包括:

s401:获取所述第i个问题对应的标签集合。其中,所述标签集合包括至少一层标签,每层标签包括一个或多个标签。

其中,根据第i个问题的描述信息,可以通过自然语言处理(英文:naturallanguageprocessing,简称:nlp)、实体词抽取、相关性扩展等方式,获得该第i个问题对应的标签集合。

其中,标签的层级关系可以是树形结构,也可以是有向无环图的结构。因此,在确定标签集合时,可以先确定所述第i个问题对应的一个分类标签,根据该分类标签确定出该分类标签对应的层级更高的x层分类标签,将确定出的第i个问题对应的该分类标签,以及层级更高的x层分类标签,作为该第i个问题对应的标签集合中的多层标签,其中,每层标签都可以包括一个或多个标签,x≥1。

s402:根据所述第j个用户的历史行为数据和/或用户属性,确定所述标签集合中每一个标签分别与第j个用户的匹配度。

其中,该匹配度可以根据第j个用户的历史行为数据和/或用户属性确定,下面具体说明。

用户的历史行为数据可以包括用户历史回复的内容和个数,用户历史回复被采纳的个数、用户历史回复被点赞的个数等。具体的,可以根据用户历史回复的内容确定该用户历史回复对应的至少一个标签;根据用户历史回复的个数、用户历史回复被采纳的个数、和/或用户历史回复被点赞的个数等,确定该用户历史回复与对应的每一个标签之间的分值;由于该用户历史回复能够反映出该用户的特性(例如擅长内容或者感兴趣内容),因此将该用户历史回复与对应的每一个标签之间的分值,分别作为该用户与对应的每一个标签之间的分值。进一步,将第j个用户与每一个标签之间的分值,直接作为或者根据其计算出第j个用户与第一个标签的匹配度。

例如,计算第j个用户与标签d之间的分值s(j,d),s(j,d)=alpha×a+beta×b+gamma×c。其中,a为第j个用户的用户历史行为数据中,标签d对应的用户历史回复的个数;b为第j个用户的用户历史行为数据中,标签d对应的用户历史回复被采纳的个数;c为第j个用户的用户历史行为数据中,标签d对应的用户历史回复被点赞的个数;alpha,beta和gamma分别为相应的权重值。一种实施例中,alpha=3,beta=9并且gamma=1。

根据n个用户中每个用户与标签d之间的分值,可以对每个用户的分值进行归一化,该归一化能够使得不同标签下的分值之间可以相互比对。其中,可以采取最小-最大值方法进行归一化,第j个用户与标签d之间的分值为s(j,d)被归一化后的结果为s'(j,d)=(smax-s(j,d))/(smax-smin)。其中,smax为n个用户中每个用户与标签d之间的分值的最大值,smin为n个用户中每个用户与标签d之间的分值的最小值。

用户属性可以包括用户设置的标签、用户个人信息、用户活跃度等。例如,用户个人信息包括用户职业信息,可以根据用户职业信息确定与标签之间的匹配度,例如,用户为学生时,与图书等标签之间的匹配度较高。

s403:根据所述标签集合中每一个标签分别与第j个用户的匹配度,获取所述第i个问题与所述第j个用户的匹配度;其中,1≤i≤m,1≤j≤n。

第i个问题和第j个用户的匹配度p(i,j)能够反映第j个用户回复第i个问题的概率。其中,可以获得标签集合中每一个标签与第j个用户的匹配度,并根据获得的每一个标签与第j个用户的匹配度的加权和,获得第i个问题与所述第j个用户的匹配度p(i,j)。

例如,第i个问题对应四个标签:c1,c2,c3和c4,该四个标签:c1,c2,c3,c4对应的权重值分别为q1,q2,q3和q4。则p(i,j)=[s'(j,c1)×q1+s'(j,c2)×q2+s'(j,c3)×q3+s'(j,c4)×q4]/[q1+q2+q3+q4]。其中,s'(j,c1)表示第j个用户与标签c1之间的分值被归一化后的结果,s'(j,c2)表示第j个用户与标签c2之间的分值被归一化后的结果,s'(j,c3))表示第j个用户与标签c3之间的分值被归一化后的结果,s'(j,c4)表示第j个用户与标签c4之间的分值被归一化后的结果。

在本申请实施例中,可以每隔一段时间就进行问题的分发,其中每次分发时都可以对待分发的问题集合和/或用户集合进行更新,下面分别说明。

可选的,确定上一次分发过程中的问题集合,对所述上一次分发过程中的问题集合执行以下任一种或者多种操作:删除分发次数总数超过问题次数上限的问题、增加新增的问题、以及删除被回复的问题。其中,通过删除分发次数总数超过问题次数上限的问题,能够使得在一段时间内,每个问题被分发的总次数有上限,避免过度消耗分发资源。通过删除被回复的问题能够使得上一次分发后被回复的问题不会进行本次分发。

可选的,确定所述上一次分发过程中的用户集合,对所述上一次过程中的用户集合,执行以下任一种或者多种操作:删除被分发次数超过用户次数上限的用户以及增加新增的用户。其中,删除被分发次数超过用户次数上限的用户,能够使得在一段时间内,每个用户被分发的总次数有上限,避免对用户造成频繁的骚扰,提高用户体验。

执行上述操作后,获得本次分发过程中的用户集合和问题集合,重新计算问题集合和用户集合之间的匹配度,根据匹配度和网络流模型获得最新的分发方式,从而进行本次分发。通过这种方式能够定期对互动问答平台中的问题进行多次分发,每次分发都能够根据全局最优解进行分发,从而提高了问题的回复率。

对应上述方法实施例,本申请还提供了相应的装置实施例,下面具体说明。

请参阅图5,本申请提供了问题分发装置的一种装置实施例,包括:确定模块501、第一获取模块502、第二获取模块503和分发模块504。

确定模块501,用于确定问题集合和用户集合,其中,所述问题集合中包括m个问题,所述用户集合中包括n个用户,m大于1并且n大于1。

第一获取模块502,用于获取所述m个问题与所述n个用户的匹配度矩阵,所述匹配度矩阵中的每个元素分别表示所述m个问题中的每一个问题与所述n个用户中的每一个用户之间的匹配度。

第二获取模块503,用于根据所述匹配度矩阵建立网络流模型,根据所述网络流模型获取所述m个问题与所述n个用户之间的分发方式;其中,所述网络流模型包括最小费用最大流模型或者最大费用最大流模型,所述网络流模型中的流对应问题分发次数,所述网络流模型中的费用对应所述匹配度矩阵。

分发模块504,用于根据所述分发方式将所述m个问题分发给所述n个用户。

可选的,其中,所述网络流模型中包括第一节点、m个第一类节点、n个第二类节点和第二节点;

所述第一节点与每个第一类节点之间分别建立有一条有向边,并且每个第二类节点与所述第二节点之间分别建立有一条有向边;其中,所述第一节点为源节点并且所述第二节点为终节点,或者所述第一节点为终节点并且所述第二节点为源节点;

所述每个第一类节点与所述每个第二类节点之间分别建立有一条有向边,其中所述m个第一类节点中第i个第一类节点与所述n个第二类节点中第j个节点之间的有向边所对应的费用为c(i,j),c(i,j)与所述m个问题中第i个问题与所述n个用户中第j个用户的匹配度相关,1≤i≤m,1≤j≤n。

可选的,所述网络流模型包括最小费用最大流模型,c(i,j)=-p(i,j);或者,所述网络流模型包括最大费用最大流模型,c(i,j)=p(i,j);

其中,p(i,j)为所述m个问题中第i个问题与所述n个用户中第j个用户之间的匹配度。

可选的,所述每个第一类节点分别与所述每个第二类节点之间建立的有向边对应的容量相同。

可选的,所述第一节点与所述每个第一类节点之间建立的有向边所对应的容量,根据单个问题对应的用户个数上限确定;和/或,所述第二节点与所述每个第二类节点之间建立的有向边所对应的容量,根据单个用户对应的问题个数上限确定。

可选的,所述m个问题中第i个问题与所述n个用户中第j个用户的匹配度的获取过程包括:

获取所述第i个问题对应的标签集合,所述标签集合包括至少一层标签,每层标签包括一个或多个标签;

根据所述第j个用户的历史行为数据和/或用户属性,确定所述标签集合中每一个标签分别与第j个用户的匹配度;

根据所述每一个标签分别与第j个用户的匹配度,获取所述第i个问题与所述第j个用户的匹配度;其中,1≤i≤m,1≤j≤n。

可选的,确定模块包括:

第一确定子模块,用于确定上一次分发过程中的问题集合,从所述上一次分发过程中的问题集合中删除分发次数总数超过问题次数上限的问题;和/或,

第二确定子模块,用于确定所述上一次分发过程中的用户集合,从所述上一次分发过程中的用户集合中,删除被分发次数超过用户次数上限的用户。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

图6是根据一示例性实施例示出的一种用于问题分发的装置600的框图。例如,装置600可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。

参照图6,装置600可以包括以下一个或多个组件:处理组件602,存储器604,电源组件606,多媒体组件608,音频组件610,输入/输出(i/o)的接口612,传感器组件614,以及通信组件616。

处理组件602通常控制装置600的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件602可以包括一个或多个处理器620来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件602可以包括一个或多个模块,便于处理组件602和其他组件之间的交互。例如,处理部件602可以包括多媒体模块,以方便多媒体组件608和处理组件602之间的交互。

存储器604被配置为存储各种类型的数据以支持在设备600的操作。这些数据的示例包括用于在装置600上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器604可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。

电源组件606为装置600的各种组件提供电力。电源组件606可以包括电源管理系统,一个或多个电源,及其他与为装置600生成、管理和分配电力相关联的组件。

多媒体组件608包括在所述装置600和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件608包括一个前置摄像头和/或后置摄像头。当设备600处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。

音频组件610被配置为输出和/或输入音频信号。例如,音频组件610包括一个麦克风(mic),当装置600处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器604或经由通信组件616发送。在一些实施例中,音频组件610还包括一个扬声器,用于输出音频信号。

i/o接口612为处理组件602和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。

传感器组件614包括一个或多个传感器,用于为装置600提供各个方面的状态评估。例如,传感器组件614可以检测到设备600的打开/关闭状态,组件的相对定位,例如所述组件为装置600的显示器和小键盘,传感器组件614还可以检测装置600或装置600一个组件的位置改变,用户与装置600接触的存在或不存在,装置600方位或加速/减速和装置600的温度变化。传感器组件614可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件614还可以包括光传感器,如cmos或ccd图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件614还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。

通信组件616被配置为便于装置600和其他设备之间有线或无线方式的通信。装置600可以接入基于通信标准的无线网络,如wifi,2g或6g,或它们的组合。在一个示例性实施例中,通信部件616经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信部件616还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。

在示例性实施例中,装置600可以被一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子组件实现,用于执行上述方法。

在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器604,上述指令可由装置600的处理器620执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。

一种非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端的处理器执行时,使得移动终端能够执行一种问题分发方法,所述方法包括:

确定问题集合和用户集合,其中,所述问题集合中包括m个问题,所述用户集合中包括n个用户,m大于1并且n大于1;

获取所述m个问题与所述n个用户的匹配度矩阵,所述匹配度矩阵中的每个元素分别表示所述m个问题中的每一个问题与所述n个用户中的每一个用户之间的匹配度;

根据所述匹配度矩阵建立网络流模型,根据所述网络流模型获取所述m个问题与所述n个用户之间的分发方式;其中,所述网络流模型包括最小费用最大流模型或者最大费用最大流模型,所述网络流模型中的流对应问题分发次数,所述网络流模型中的费用对应所述匹配度矩阵;

根据所述分发方式将所述m个问题分发给所述n个用户。

图7是本发明实施例中服务器的结构示意图。该服务器700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessingunits,cpu)722(例如,一个或一个以上处理器)和存储器732,一个或一个以上存储应用程序742或数据744的存储介质730(例如一个或一个以上海量存储设备)。其中,存储器732和存储介质730可以是短暂存储或持久存储。存储在存储介质730的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器722可以设置为与存储介质730通信,在服务器700上执行存储介质730中的一系列指令操作。

服务器700还可以包括一个或一个以上电源726,一个或一个以上有线或无线网络接口750,一个或一个以上输入输出接口758,一个或一个以上键盘756,和/或,一个或一个以上操作系统741,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1