欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 2020113456094
申请人: 杭州电子科技大学
专利类型:发明专利
专利状态:已下证
专利领域: 计算;推算;计数
更新日期:2024-01-05
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

1.一种基于社交网络用户属性的主题推荐方法,其特征在于,该方法包括以下步骤:步骤(1).获取用户的微博内容,对微博进行预处理;

步骤(2).过滤用户,剔除不活跃的用户和僵尸用户,标注数据集;

步骤(3).采用LDA模型求出用户微博的主题概率分布,得到最初的主题分布;

步骤(4).利用已标记的微博训练集求得不同性别在不同主题下的变异因子,与主题分布结合得到主题因子;

步骤(5).计算用户与友邻关系的亲密度,评价友邻用户的影响力,得到置信度;

步骤(6).利用分词软件提取个人描述和标签的关键词,转换成向量矩阵,求得相似性因子;

步骤(7).将上述三个因子融合得到用户主题模型。

2.如权利要求1所述的一种基于社交网络用户属性的主题推荐方法,其特征在于,步骤(1)具体是:

(1.1)利用爬虫工具爬取微博数据T、用户属性U和用户友邻关系R到关系型数据库中;

(1.2)对微博数据T进行预处理,使用正则表达式过滤特殊的字符和字段,将英文统一为小写;

(1.3)定义字典DictUser,用户User的Id为键,预处理完成的微博数据W为键对应的值;

(1.4)将字典DictUser转换成缓存。

3.如权利要求2所述的一种基于社交网络用户属性的主题推荐方法,其特征在于,步骤(2)具体是:

(2.1)过滤用户标签或个人描述为空的用户;

(2.2)过滤不符合规则的用户性别;

(2.3)过滤不活跃用户或一段时间未上线用户;活跃度 NT表示用户最近一年内发布、转发和评论微博总数;NMonth表示一年中活跃的月份数,是指用户在一年中最早发微博和最晚发微博的时间间隔;如果Active小于阈值σA,属于不活跃用户,活跃度的阈值σA=15~30;如果超过一年未发布、转发和评论微博,则属于未上线用户;

(2.4)过滤粉丝数小于粉丝阈值σF的用户,设定σF=30~100;

(2.5)采用人工标注的方法生成标记数据集Utopic={User,Topic},User表示用户,Topic表示标注的主题信息。

4.如权利要求3所述的一种基于社交网络用户属性的主题推荐方法,其特征在于,步骤(3)具体是:

(3.1)使用现有的LDA模型进行主题预测;

(3.2)设定LDA模型的参数,对步骤(1)中得到的字典DictUser进行遍历,利用DictUser中用户User对应的微博数据W对LDA模型建模;

(3.3)训练LDA模型,得到用户User对应的主题分布PT=(pt1,pt2,…,ptN)及其概率值其中N是预测的主题个数,在LDA模型参数中设置;

(3.4)筛选主题,将PT中的概率值ProbPT小于概率阈值σP的主题剔除,得到最终的初始主题分布的概率值 σP=0.01~0.02;

按概率从大到小排序:

其中, 表示第m个主题, 表示第m个主题对应的概率值,m=1,2,…,M,M为筛选后主题个数;

(3.5)判断字典中的用户User是否都处理完毕:如果处理完毕,则停止遍历;否则,重复执行步骤(3.2)~(3.4),得到Dicttopic={User,PrT};其中,User=(user1,user2,…,userK),PrT=(prt1,prt2,…,prtK),userk表示第k个用户,prtk表示第k个用户的初始主题分布,k=1,2,…,K,K是用户的个数。

5.如权利要求4所述的一种基于社交网络用户属性的主题推荐方法,其特征在于,步骤(4)具体是:

(4.1)选取多个已标记主题信息的男性和女性用户集合,建立用户列表User_Var=(vuser1,user2,…,vuserJ),其中,vuserj第j个用户,j=1,2,…,J,J为选取的用户个数;

(4.2)遍历用户列表User_Var,计算影响力Inf:第j个用户影响力表示粉丝数, 表示关注数;

(4.3)判断用户列表是否都处理完毕:如果处理完毕,则停止遍历;否则,重复执行步骤(4.2),得到DictInf={User_Var,Inf},其中键是选取的标记用户,值是求得的影响力;

(4.4)遍历主题列表Topics,Topics=(topic1,topic2,…,topicL),其中topicl表示第l个主题,l=1,2,…,L,L为已标记的所有主题个数;

计算某一个主题信息下的男性用户和女性用户的平均值meantopic;

(4.5)计算某一个主题信息下的男性用户和女性用户的标准差值standardtopic;

(4 .6)利用变异系数公式计算某个主题下的男性和女性的变异系数(4.7)判断主题列表中的主题是否处理完毕:如果处理完毕,则停止遍历;否则,重复执行步骤(4.4)~(4.6),得到变异系数集合V(Gender)=[v1,v2,…,vL];

(4.8)利用正则化公式,更新变异系数集合V(Gender),将值的范围控制在(0,1)内:(4.9)遍历字典Dicttopic,判断每个用户的性别对应的主题变异系数,如果vl大于0.15,则将两个值相加,更新到对应的 值;

(4.10)判断字典是否处理完毕:如果处理完毕,则停止遍历;否则,重复执行步骤(4.9),得到最终更新完毕的Dicttopic={User,PrT}。

6.如权利要求5所述的一种基于社交网络用户属性的主题推荐方法,其特征在于,步骤(5)具体是:

(5.1)遍历待提取主题的用户列表Users,计算用户影响力,过滤低于阈值σU的用户,σU=0.4~0.5,得到后续迭代更新所需要的初始种子用户集合SeedU=(seedu1,seedu2,…,seeduP)和对应的影响力值 seedup表示第p个种子用户,p=1,2,…,P,P为种子用户的个数;

(5.2)遍历种子用户集合SeedU,选取对应的粉丝列表表示第q个粉丝,q=1,2,…,Q,Q为粉丝个数;

(5.3)遍历粉丝列表,处理粉丝的微博T,统计@种子用户的次数(5.4)统计粉丝转发种子用户微博的次数(5.5)统计粉丝评论种子用户微博的次数(5.6)将三个变量结合,得到粉丝亲密度(5 .7)将亲密度和影响力相加得到每个粉丝对应的种子用户得分(5.8)判断种子列表的用户是否都处理完毕:如果处理完毕,则停止遍历;否则,重复执行步骤(5.2)~(5.7),得到用户得分集合为第q粉丝得分,q=1,2,…,Q;

(5.9)遍历用户列表Users,如果是非种子用户,对关注列表做以下操作;

(5.10)遍历关注列表,如果关注用户followu的邻居neighb与其有相同的主题信息,则累加邻居用户得分;

(5.11)根据步骤(5.3)~(5.6)计算他们之间的亲密度和影响力,得到该关注用户的最终用户得分:

(5.12)将scoreufollwu取对数得到置信度(5.13)判断关注列表的用户是否处理完毕:如果处理完毕,则停止遍历;否则,重复执行步骤(5.10)~(5.12),得到某个用户的置信度集合 其中 表示第s个关注用户的置信度,s=1,2,…,S,S为关注用户个数;

(5.14)判断用户列表的用户是否处理完毕:如果处理完毕,则停止遍历;否则,重复执行步骤(5.9)~(5.13),得到所有用户的置信度集合γ=(γ1,γ2,…,γK);γk表示第k个用户的置信度,k=1,2,…,K;

(5.15)迭代更新种子用户,在原来的用户得分上加入关注者的用户得分。

7.如权利要求6所述的一种基于社交网络用户属性的主题推荐方法,其特征在于,步骤(6)具体是:

(6.1)遍历用户列表Users,对个人描述和标签做预处理,采用步骤(1.2)的方法过滤特殊字符、字段,利用jieba分词工具分词,进行词性筛选,选取某一类词作为关键词列表KW=(kw1,kw2,…,kwG),其中kwg表示第g个词,g=1,2,…,G,G为关键词的个数;

(6.2)利用Word2Vec对关键词进行向量化,使用Tencent_AILab_ChineseEmbedd‑ing作为语料库,得到关键词向量矩阵KM=(km1,km2,…,kmR),其中kmr表示第r个向量,r=1,

2,…,R,R为矩阵的向量个数;

(6.3)对主题列表的主题进行向量化,得到主题向量化矩阵TM=(tm1,tm2,…,tmR);

(6.4)使用欧氏距离计算每个关键词与主题的相似性,得到关键词‑主题映射θg:kwg→topicg,欧氏距离

(6.5)利用公式计算相似因子α,得到相似度因子分布(6.6)判断用户列表中的用户是否处理完毕:如果处理完毕,则停止遍历;否则,重复执行步骤(6.1)~(6.5),得到用户的相似度因子集合α={α1,α2,…,αk}。

8.如权利要求7所述的一种基于社交网络用户属性的主题推荐方法,其特征在于,步骤(7)具体是:

(7.1)遍历用户列表Users,将步骤(6.6)得到的相似度因子与步骤(4.9)的主题概率分布 结合,对于每一个主题值 如果通过步骤(6.4)的映射θg得到的主题topicg与某一个初始主题相同,则进行如下操作: 其中,num表示在某一个主题下相同的个数;

(7.2)遍历用户userk的主题列表,对每个主题做步骤(7.1)的操作,判断是否处理完毕:如果处理完毕,则停止遍历;否则,继续执行,得到更新后的主题值:(7.3)如果关注者与用户处于相同的主题,则进行如下操作:userk和users在相同整体下,则func(userk,users)=1,否则func(userk,users)=0;

(7.4)遍历用户userk的主题列表,对每个主题做步骤(7.3)的操作,判断是否处理完毕:如果处理完毕,则停止遍历;否则,继续执行,得到更新后的主题值:(7.5)将intvalk中的值进行与步骤(4.8)相同的正则化处理,使之控制在(0,1)范围内,并进行排序 ,筛选掉值小于σP的主题 ,得 到userk 最终的主题分 布:(7.6)判断用户列表的用户是否处理完毕,如果是,则停止遍历;否则,重复执行步骤(7.1)~(7.5),得到主题分布集合Inte=(inte1,inte2,…,inteK)。