发明内容
本发明的目的是提供基于词语对狄利克雷过程的用户画像方法,能够充分挖掘微博类数据生产平台产生用户数据中的碎片化内容信息,有效提升利用该类用户数据进行用户画像的准确率。
本发明提供了如下技术方案:
一种基于词语对狄利克雷过程的用户画像方法,提取用户数据中的短文档,利用词语对狄利克雷过程获取短文档的关键词,该关键词用于建立用户画像。
本发明的一个方法实施例中,利用词语对狄利克雷过程获取短文档的关键词的方法包括:获取用户数据中的所有短文档,并组成短文档集;利用词语对狄利克雷过程建立该短文档集的短文档集模型,短文档集模型中包括文档-主题分布矩阵和主题-词汇分布矩阵;将全部文档-主题分布矩阵求和获得用户-主题分布矩阵;将用户-主题分布矩阵与主题-词汇矩阵相乘获得用户-词汇分布矩阵;选取用户-词汇分布矩阵中的元素对应的词汇作为关键词。
本发明的一个方法实施例中,关键词只包含名词和/或形容词。
本发明的一个优选方法实施例中,通过关键词建立用户画像的方法包含:提取并使用用户数据中的标签信息对关键词进行数据清洗。
本发明的一个优选方法实施例中,设置用户画像中标签信息的信度大于关键词。
本发明的一个方法实施例中,选取的狄利克雷过程的基分布为对称狄利克雷分布。
本发明的一个方法实施例中,后验推演选取的采样方法为吉布斯抽样方法。
本发明还提供了一种基于词语对狄利克雷过程的用户画像系统,其特征在于:用于用户画像系统的输入数据或者中间数据由本发明提供的方法得到或者间接得到,数据包括本发明的方法得到的关健词。
本发明的一个方面带来的有益效果是:相较狄利克雷分布,本发明提供的词语对狄利克雷过程(Biterm Dirichlet Process,即BDP)能够自动从文档中推断隐含主题的数目。
本发明的一个方面带来的有益效果是:本发明提供的词语对狄利克雷过程并不直接得到文档-主题分布,而是打破文档之间的边界限制,从整个文档集中统计词语的共现信息,避免了单一文档如果是短文本时,其词语共现信息严重不足的问题。根据整个文档集的词语共现信息可以得到主题-词语分布,然后可以利用贝叶斯公式得到每篇文档的文档-主题分布。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。
首先应当说明的是,狄利克雷过程(DP)是一种无限混合模型,其认为一组数据是由一个混合模型(mixture model)抽样产生的。该模型包含多个混合成分(mixturecomponents),每个数据都与一个混合成分相关。其基本原理可以通过如下的中国餐馆过程(CRP)简单阐述:假设一个中国餐馆有无限的桌子,第一个顾客到来之后坐在第一张桌子上。第二个顾客来到可以选择坐在第一张桌子上,也可以选择坐在一张新的桌子上,假设第n+1个顾客到来的时候,已经有k张桌子上有顾客了,分别坐了n1,n2,...,nk个顾客,ni为第i张桌子上的顾客数,那么第n+1个顾客可以以一个概率坐在第i张桌子上,同时也可以以一个概率选取一张新的桌子坐下。那么在n个顾客坐定之后,很显然CRP把这n个顾客分为了K个堆,即K个簇(clusters),该过程(CRP)就是一个狄利克雷过程。该过程的一个限定是每张桌子上只能有同一个菜,同时该桌顾客均喜欢吃该道菜。对于有有限顾客的中国餐馆过程,可以得到一种桌子数量的确定方法,一张桌子相当于一个隐含主题,而每篇文档都对应有一个隐含主题的分布。狄利克雷过程具有两个特点:1)簇的个数的增长是比元素的个数的增长要缓慢得多的;2)该聚类过程存在马太效应,对于包含元素更多的簇,有更大概率加入新的数据。
本发明提供的词语对狄利克雷过程,将上述中国餐馆过程中的桌子视为隐含主题,将文档中的词语作为顾客,文档是若干隐含主题按一定比例的混合,文档中的每个词语都是由相应的隐含主题抽样生成的,通过提取占比较大的隐含主题,即可从语义层面对文档进行分析,即从隐含主题中提取占比较大的词语,可从语义层面提取关键词,并可以以下述方法处理由多个短文档组成的短文档集:
如图1所示,将由多个短文档组成的短文档集视为一组文档数据,假设该组文档数据的隐含主题先验分布服从狄利克雷过程G~DP(α,G0),其中G表示该组文档数据的全局测度,G0为全局基测度,α是聚焦参数,|B|为文档集中的词语对数目。同时,对该组文档数据中的每一个词语对(biterm)标记为bj,对每个bj,可以从G中抽取隐含主题θj,使得可以由θj生成bj所包含的两个词语wj1和wj2;采用Gibbs Sampling方法对上述狄利克雷过程进行后验推理,通过Gibbs Sampling方法的迭代式由式1表达,第j个词语对与隐含主题z相关的条件概率分布为:
其中,上标中的-表示不包含相应变量的计数,例如表示由主题z生成的词语对(biterm)的数目(不包括第j个biterm),B表示所有词语对组成的词语对集合;
假设每一隐含主题在该组文档数据中均服从对称狄利克雷分布Dir(β),β为主题-词语分布的狄利克雷先验参数,则对式1中有如下式2计算:
其中,V为特征数目,即词典大小,表示由主题z生成的特征v的数目(不包含词语wji),/>表示由主题z生成的特征数目(不包含词语wji);
通过模型推理,可以得到文档中的K个主题z1,z2,…,zK。并且每一隐含主题zk的词语概率分布(又记为p(w|zk))的计算方法如式3所示:
其中,为由隐含主题z生成的特征w的数目;
每一隐含主题zk在文档集内的概率分布p(zk)的计算方法如式4所示:
其中,为由隐含主题zk生成的词语对数目;
每一隐含主题zk在一个短文档s内的概率分布p(zk|s)的计算方法为如式5所示:
其中,|B|s表示短文档s包含的词语对数目,式中p(zk|b)和p(b|s)采用式6和式7的方法计算得到:
其中,wi和wj为每一词语对b包含的词语,ms(b)为词语对b在短文档s中出现的次数。
通过上述描述可知,对于由短文档组成的短文档集,经过词语对狄利克雷过程的后验推理,可以得到词汇在一个指定的隐含主题zk中的概率分布p(w|zk)、隐含主题zk在组成短文档集的一个指定短文档s内的概率分布p(zk|s)、隐含主题的数量K以及隐含主题z1,z2,…,zK。
下面结合实施例进一步说明通过词语对狄利克雷过程实现用户画像的具体方案。
实施例一
如图2所示,本实施例提供了一种基于词语对狄利克雷过程的用户画像方法,用于通过提取的新浪微博中的用户数据对用户进行画像。该方法可以包含以下步骤:
S101,提取用户数据中的短文档。
具体实施时,如图3所示的一个新浪微博用户的信息面板,提供了该用户包括基本信息、工作信息、教育信息的账户信息以及通过网络社交活动被自己或其他人标识的标签信息,这些信息都是用户数据的一部分。本实施例中,该用户的用户数据还包括用户日常发布或更新的微博和公开留言等内容信息,每一条微博或者公开留言均为一篇短文档。建立一个包括所有短文档的数据表,数据表的字段至少包括一个与短文档对应的短文档id和短文档的文本信息。该数据表可以被视为一个短文档集,可以通过检索词语定位其所在短文档的位置。在本发明中的其他实施例中也可以加入其它字段,如发布日期、发布地点等以增加更多的分析条件。
S102,利用词语对狄利克雷过程获取短文档的关键词。
根据本发明采用的词语对狄利克雷过程,具体实施时,可以按照如图4所示的以下步骤实现:
S201,选取隐含主题在短文档集中可能的先验分布作为基分布,该先验分布满足狄利克雷过程的条件;本实施例中认为先验分布为对称狄利克雷分布Dir(β),其中β为该先验分布的先验参数。在本发明的其他实施例中,也可以选用其它符合狄利克雷过程要求的先验分布作为基分布;
S202,选取一个基于词语对的采样方法对基分布进行后验推理(词语对是包含两个以上短文档集中的不同词语的集合),得到每一个隐含主题zk中的词语概率分布p(w|zk)、每一个隐含主题在一个具体的短文档内的概率分布p(zk|s);可以从各个短文档中通过分词算法,得到整个短文档集的分词数据,分词数据包括一个词语id、一个词语字段和一个用于定位其所在短文本的外链字段,词语字段的文本w可以为本实施例的词语;本实施例中采样方法选用吉布斯抽样方法(Gibbs Sampling),词语对bj为根据隐含主题θj生成的、包含两个词语wj1和wj2的集合,基于词语对bj以及吉布斯抽样方法的迭代式的,每个隐含主题的条件概率分布满足式1,又根据先验分布为对称狄利克雷分布Dir(β),式1中的算子满足式2,因此可以推导出短文档集的隐含主题的数目K和通过式3得到的一个隐含主题zk的词语概率分布p(w|zk)。进一步的,通过式4得到每一隐含主题zk在文档集内的概率分布p(zk),p(zk)也可以用于表示隐含主题zk,同时,通过式5得到每一隐含主题zk在一个短文档s内的概率分布p(zk|s);
S203,建立该短文档集的短文档集模型,短文档集模型中包括文档-主题分布矩阵和主题-词汇分布矩阵;具体实施时,可以将所有的p(zk|s)组成D行K列的文档-主题分布矩阵D*K,其中D为短文档的个数,K为上述得到的隐含主题的个数,将所有的p(w|zk)组成K行V列的主题-词语分布矩阵K*V,其中V为不同词语的个数;
S204,将所有短文档对应的文档-主题分布p(zk|s)求和,得到用户-主题分布矩阵1*K;具体实施时,假设经过后验推理得到了K个子话题z1,z2,...,zK,通过对文档-主题分布矩阵每列元素求和,并组成新的1行K列用户-主题分布矩阵1*K;
S205.将用户-主题分布矩阵和主题-词语分布矩阵进行相乘,得到用户-词语矩阵,并从用户-词语矩阵选择关健词;具体实施时,用户-主题分布矩阵和主题-词语分布矩阵进行相乘后,得到一个1行V列的用户-词语矩阵,该矩阵中数值最大的元素对应的词语,可以认为与该用户的关联程度越大,越能代表用户的特征,应该优先选择,本实施例中选取最大的二十个数值所对应的词语作为该用户的关键词。
S103,提取并使用用户数据中的标签信息对关键词进行数据清洗。具体实施时,通过上述方法获取指定用户的关键词,有些并不适合用于用户画像,而且有些词语与用户已有标签信息存在重复;考虑到用户画像的标签以名词和形容词为主,本发明仅保留关键词中的名词和形容词,然后抽取用户数据原有的标签信息中的词语,并删除用户关键词中与这些信息中的词语重复的词语;
S104,设置用户画像中标签信息的信度大于关键词;本实施例按照先标签,然后关键词的顺序进行排序,并将排序结果直接作为用户最终画像;在本发明的其他实施例中,可以结合具体关健词对应的概率分布的权重,转换为信度,进行数值化的用户画像。
实施例二
本实施例提供了一种基于词语对狄利克雷过程的用户画像方法,用于通过提取新浪微博中的用户数据对用户进行画像。本实施例与实施例一的区别在于,将用户数据中提取的短文档,按照时间轴分段,每一段作为一个短文档集提取关键词,根据关健词概率分布的变化,进行用户画像,如发现关键词“美食”的数值变低,可以判断用户处于节食的状态。
实施例三
对应本申请的所有方法实施例,本实施例提供了一种基于词语对狄利克雷过程的用户画像系统。该系统用于产生用户画像的数据全部或者部分来自通过本申请的方法获取的关键词或者来自在本方法实施过程中获取的任何过程数据。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可。每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要,选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上对本发明所提供的基于词语对狄利克雷过程的用户画像方法及系统,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本申请的限制。