发明内容
有鉴于此,本公开提供一种用户关系网络的构建方法和装置,以更加准确的构建用户关系网络。
具体地,本说明书一个或多个实施例是通过如下技术方案实现的:
第一方面,提供一种用户关系网络的构建方法,所述方法包括:
获取用户产生的文本信息,所述用户产生的文本信息,包括:多个用户的用户标识、以及每个用户分别产生的文本信息;
根据所述用户产生的文本信息,统计分词词频数据,所述分词词频数据包括:将所述文本信息分词得到的多个词、以及每个词对应同一用户标识的词频;
根据所述分词词频数据,构建用户-词矩阵,并通过对所述用户-词矩阵进行矩阵分解,得到不同用户的用户特征向量;
计算两两用户特征向量之间的相似度,若两个用户特征向量之间的相似度符合相似条件,则建立所述两个用户特征向量对应的两个用户之间的关联关系。
第二方面,提供一种用户关系网络的构建装置,所述装置包括:
信息获取模块,用于获取用户产生的文本信息,所述用户产生的文本信息,包括:多个用户的用户标识、以及每个用户分别产生的文本信息;
统计处理模块,用于根据所述用户产生的文本信息,统计分词词频数据,所述分词词频数据包括:将所述文本信息分词得到的多个词、以及每个词对应同一用户标识的词频;
矩阵分解模块,用于根据所述分词词频数据,构建用户-词矩阵,并通过对所述用户-词矩阵进行矩阵分解,得到不同用户的用户特征向量;
关系构建模块,用于计算两两用户特征向量之间的相似度,若两个用户特征向量之间的相似度符合相似条件,则建立所述两个用户特征向量对应的两个用户之间的关联关系。
第三方面,提供一种用户关系网络的构建设备,所述设备包括存储器、处理器,以及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行指令时实现以下步骤:
获取用户产生的文本信息,所述用户产生的文本信息,包括:多个用户的用户标识、以及每个用户分别产生的文本信息;
根据所述用户产生的文本信息,统计分词词频数据,所述分词词频数据包括:将所述文本信息分词得到的多个词、以及每个词对应同一用户标识的词频;
根据所述分词词频数据,构建用户-词矩阵,并通过对所述用户-词矩阵进行矩阵分解,得到不同用户的用户特征向量;
计算两两用户特征向量之间的相似度,若两个用户特征向量之间的相似度符合相似条件,则建立所述两个用户特征向量对应的两个用户之间的关联关系。
本说明书一个或多个实施例的用户关系网络的构建方法和装置,通过根据用户产生的文本信息构建用户-词矩阵,并通过矩阵分解技术得到用户特征向量,从而为相似的向量对应的用户之间建立关联关系,该方法提供了一种基于文本信息来构建用户关系网络的方式,减少了网络构建对用户间行为交互数据的依赖,并且,该方法在应用于沉淀了大量用户产生文本信息的平台时,可以更加有效准确的构建用户关系网络。
具体实施方式
为了使本技术领域的人员更好地理解本说明书一个或多个实施例中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是一部分实施例,而不是全部的实施例。基于本说明书一个或多个实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。
本说明书一个或多个实施例提供的用户关系网络的构建方法,可以用于根据用户产生的文本信息来挖掘用户之间的关联,其中的用户产生的文本信息,可以是用户在网络上发表的文字内容,例如,以社交型平台为例,用户产生的文本信息可以是用户在社交型平台上发表的文章、评论、用户标识(如,用户的昵称)、用户的签名等。
文本信息的特点是,这类信息是由用户自身产生的,可以是用户在网络上输入生成。文本信息与“行为交互数据”是相对的,“行为交互数据”体现的是用户之间的交互,比如,用户之间相互加好友关系,或者加关注,或者用户之间进行转账;而“文本信息”体现的是用户单个人发表的内容,与其他用户无关。随着移动互联网时代的发展,用户产生的文本信息量很大,比如,社交型平台中每天都有亿级的用户源源不断的产生文本信息,本说明书一个或多个实施例的用户关系网络的构建方法,将基于该文本信息构建用户关系网络,以降低用户关系网络构建对行为交互数据的依赖,并更准确全面的覆盖没有行为交互数据的用户的用户关系的构建。
图1为本说明书一个或多个实施例提供的一种用户关系网络的构建方法的流程图,如图1所示,该方法可以包括:
在步骤100中,获取用户产生的文本信息,所述用户产生的文本信息,包括:多个用户的用户标识、以及每个用户分别产生的文本信息。
例如,以社交型平台为例,在平台上用户产生的文本信息,可以是用户在平台上发表的文章、用户发表的评论,以及用户的昵称、签名等内容。
本步骤采集的用户产生的文本信息中,可以包括多个用户的文本信息。例如,假设三个用户的用户标识分别是10001、10002、10003,可以分别采集获取这三个用户的文本信息,用户10001发表了一篇技术文章,用户10002对别人的文章发布了多次评论,用户10003在平台上发布了两篇对时事的看法观点的文章。用户产生的文本信息,可以是采集一段时间内(例如,一个月)产生的信息,信息中可以包括用户在这段时间内产生的所有文本内容。
在步骤102中,根据所述用户产生的文本信息,统计分词词频数据。
本步骤可以对文本信息进行分词,得到多个词。例如,假设采集到的用户10003产生的文本信息是C1,对C1进行分词后可以得到word1、word2、word3等多个词。如下的表1示例了部分用户的分词结果,如表1所示,可以分别对每一个用户的文本信息进行分词,得到同一用户对应的至少一个词,例如,用户10001对应的词包括word1和word2。
表1文本信息的分词
用户标识 |
文本信息分词后得到的词 |
10001 |
word1、word2 |
10002 |
word2、word3、word4 |
10003 |
word1、word3、word5 |
……. |
……. |
本步骤中,在分词得到各个词后,还可以统计每个词对应同一用户标识的词频。比如,在上述表1的示例中,word1在对应用户10001和用户10003的文本信息都出现了,在统计词频时,即要统计word1在用户10001的文本信息中出现的次数,还要统计word1在用户10003的文本信息中出现的次数。如下的表2示例,统计得到分词词频数据,该分词词频数据包括任一词在对应同一用户的文本信息中出现的次数作为词频。
表2分词词频数据
在步骤104中,根据所述分词词频数据,构建用户-词矩阵,并通过对所述用户-词矩阵进行矩阵分解,得到不同用户的用户特征向量。
例如,本步骤可以根据上述表2中示例的分词词频数据,构建一个矩阵,该矩阵的不同行可以对应不同的用户标识,不同列可以分别对应不同的词。如下的表3示例了该矩阵的一部分,该矩阵可以称为用户-词矩阵,其中,矩阵中的每一个元素值可以是对应一个用户标识和一个词的词频,比如,矩阵中的c12表示该元素值是词wor2在用户10001产生的文本信息中出现的次数。
表3用户-词矩阵
|
word2 |
word3 |
word4 |
10001 |
c12 |
c 13 |
c 14 |
10002 |
c22 |
c 23 |
c 24 |
10003 |
c32 |
c 33 |
c 34 |
……. |
……. |
……. |
……. |
本步骤还可以通过矩阵分解技术,将“用户-词矩阵”拆解得到“用户-主题”矩阵和“主题-词”矩阵,比如,上述的矩阵可以分解为如下的表4所示的“用户-主题”矩阵和表5的“主题-词”矩阵这两个矩阵的乘积,其中,表4和表5都是示例了实际矩阵的一部分内容,并不是矩阵的全部。
表4用户-主题矩阵
|
class2 |
class 3 |
class 4 |
10001 |
p12 |
p13 |
p14 |
10002 |
p22 |
p23 |
p24 |
10003 |
p32 |
p33 |
p34 |
……. |
……. |
……. |
……. |
表5主题-词矩阵
|
word2 |
word3 |
word4 |
class2 |
q12 |
q13 |
q14 |
class 3 |
q22 |
q23 |
q24 |
class 4 |
q32 |
q33 |
q34 |
……. |
……. |
……. |
……. |
上述的表4和表5中,其中的用户-主题矩阵中的每一行向量,可以作为对应该行用户标识的用户特征向量。比如,表4中的(p12,p13,p14)可以是对应用户10001的特征向量,(p22,p23,p24)可以是对应用户10002的特征向量。
经过上述的处理,可以得到各个用户对应的用户特征向量。
在步骤106中,计算两两用户特征向量之间的相似度,若两个用户特征向量之间的相似度符合相似条件,则建立所述两个用户特征向量对应的两个用户之间的关联关系。
本步骤中,可以计算两两用户特征向量之间的相似度,比如,可以计算两两用户特征向量之间的余弦相似度。如下公式所示:
在上述公式汇总,simij表示两个用户特征向量之间的余弦相似度,Pi表示其中一个用户特征向量,Pj表示另一个用户特征向量。
如果两个用户特征向量之间的相似度符合相似条件,比如超过设定的阈值threshold,则可以建立两个用户特征向量对应的两个用户之间的关联关系。比如,如(p12,p13,p14)和(p22,p23,p24)之间的余弦相似度超过阈值,则可以认为用户10001与用户10001是相似的,这种相似可以是这两个用户产生的文本信息是相似的,比如,两个用户都较多的谈论了股票涨跌方面的信息,或者两个用户都较多的发表了关于某个技术点的文章。
最终构建的用户关系网络可以参见图2的示例,该用户关系网络中可以包括P1至P9这9个用户,相互之间具有连线的用户表示这两个用户在产生的文本信息上具有相类似的内容。比如,图2中的用户P8,该用户可能在社交型平台上产生了多方面多领域的文本信息,他可以与多个用户之间都有相似内容。
本例子的用户关系网络的构建方法,通过根据用户产生的文本信息构建用户-词矩阵,并通过矩阵分解技术得到用户特征向量,从而为相似的向量对应的用户之间建立关联关系,该方法提供了一种基于文本信息来构建用户关系网络的方式,减少了网络构建对用户间行为交互数据的依赖,并且,该方法在应用于沉淀了大量用户产生文本信息的平台时,可以更加有效准确的构建用户关系网络。此外,还需要说明的是,本方法并不限制构建后的用户关系网络的应用场景,关系网络可以根据实际业务需求应用于多种场景,比如,可以向用户推荐与他具有相似兴趣的另一个用户发表的内容。
为了实现上述的用户关系网络的构建方法,本说明书一个或多个实施例还提供了一种用户关系网络的构建装置。如图3所示,该装置可以包括:信息获取模块31、统计处理模块32、矩阵分解模块33和关系构建模块34。
信息获取模块31,用于获取用户产生的文本信息,所述用户产生的文本信息,包括:多个用户的用户标识、以及每个用户分别产生的文本信息;
统计处理模块32,用于根据所述用户产生的文本信息,统计分词词频数据,所述分词词频数据包括:将所述文本信息分词得到的多个词、以及每个词对应同一用户标识的词频;
矩阵分解模块33,用于根据所述分词词频数据,构建用户-词矩阵,并通过对所述用户-词矩阵进行矩阵分解,得到不同用户的用户特征向量;
关系构建模块34,用于计算两两用户特征向量之间的相似度,若两个用户特征向量之间的相似度符合相似条件,则建立所述两个用户特征向量对应的两个用户之间的关联关系。
在一个例子中,统计处理模块32,具体用于:分别对每一个用户的文本信息进行分词,得到同一用户标识对应的至少一个词;统计任一词在对应同一用户标识的文本信息中出现的次数,作为所述词频。
在一个例子中,矩阵分解模块33,具体用于:
所述用户-词矩阵的行和列分别是不同的用户标识和不同的词,将对应一个用户标识和一个词的词频作为用户-词矩阵中对应所述用户标识和词的元素值;
通过矩阵分解技术,将所述用户-词矩阵拆解得到为用户-主题矩阵和主题-词矩阵,并将用户-主题矩阵中的每一行向量作为对应用户标识的用户特征向量。
在一个例子中,所述文本信息,包括:用户发表的文章或者评论。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
上述方法实施例所示流程中的各个步骤,其执行顺序不限制于流程图中的顺序。此外,各个步骤的描述,可以实现为软件、硬件或者其结合的形式,例如,本领域技术人员可以将其实现为软件代码的形式,可以为能够实现所述步骤对应的逻辑功能的计算机可执行指令。当其以软件的方式实现时,所述的可执行指令可以存储在存储器中,并被设备中的处理器执行。
例如,对应于上述方法,本说明书一个或多个实施例同时提供一种用户关系网络的构建设备,该设备可以包括处理器、存储器、以及存储在存储器上并可在处理器上运行的计算机指令,所述处理器通过执行所述指令,用于实现如下步骤:
获取用户产生的文本信息,所述用户产生的文本信息,包括:多个用户的用户标识、以及每个用户分别产生的文本信息;
根据所述用户产生的文本信息,统计分词词频数据,所述分词词频数据包括:将所述文本信息分词得到的多个词、以及每个词对应同一用户标识的词频;
根据所述分词词频数据,构建用户-词矩阵,并通过对所述用户-词矩阵进行矩阵分解,得到不同用户的用户特征向量;
计算两两用户特征向量之间的相似度,若两个用户特征向量之间的相似度符合相似条件,则建立所述两个用户特征向量对应的两个用户之间的关联关系。
上述实施例阐明的装置或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本领域内的技术人员应明白,本说明书一个或多个实施例可提供为方法、系统、或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于服务端设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开保护的范围之内。