CN112487303B - 一种基于社交网络用户属性的主题推荐方法 - Google Patents

一种基于社交网络用户属性的主题推荐方法 Download PDF

Info

Publication number
CN112487303B
CN112487303B CN202011345609.4A CN202011345609A CN112487303B CN 112487303 B CN112487303 B CN 112487303B CN 202011345609 A CN202011345609 A CN 202011345609A CN 112487303 B CN112487303 B CN 112487303B
Authority
CN
China
Prior art keywords
user
topic
users
list
traversing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011345609.4A
Other languages
English (en)
Other versions
CN112487303A (zh
Inventor
徐向华
胡杰
王然
李平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Dianzi University
Original Assignee
Hangzhou Dianzi University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Dianzi University filed Critical Hangzhou Dianzi University
Priority to CN202011345609.4A priority Critical patent/CN112487303B/zh
Publication of CN112487303A publication Critical patent/CN112487303A/zh
Application granted granted Critical
Publication of CN112487303B publication Critical patent/CN112487303B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9536Search customisation based on social or collaborative filtering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/335Filtering based on additional data, e.g. user or group profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于社交网络用户属性的主题推荐方法。本发明方法首先获取用户的微博内容并预处理,过滤用户,标注数据集;采用LDA模型求出用户微博的主题概率分布,得到最初的主题分布,求得不同性别在不同主题下的变异因子,与主题分布结合得到主题因子;再计算用户与友邻关系的亲密度,评价友邻用户的影响力,得到置信度;利用分词软件提取个人描述和标签的关键词,转换成向量矩阵,求得相似性因子;最后将上述三个因子融合得到用户主题模型。本发明方法利用大数据时代获取数据的便利性,提取用户基本资料、用户关系数据和用户微博,针对三个因素构建动态权重主题模型,预测用户的主题分布并进行标注,提高了推荐准确度。

Description

一种基于社交网络用户属性的主题推荐方法
技术领域
本发明属于计算机应用与互联网技术领域,涉及一种基于社交网络用户属性的主题推荐方法。
背景技术
社交网站作为新型的互联网应用,为人们提供了信息交流和分享的便捷平台,近些年,随着社交网络的兴起,Facebook,twitter,微博等社交平台的崛起,社交网络发展迅速,大量用户涌入社交平台,形成了复杂的网络结构。
社交媒体的发展已经改变了人们的生活方式,人们更倾向于在社交网络上关注自己的兴趣爱好,分享自己的喜欢的事物,除此以外,用户的友邻关系也能给主题挖掘带来相当大的价值。从数以亿计的用户发表的短文本和网络结构中提取出精确的主题信息,对个性化推荐,舆情引导,营销策略规划有重要的指导意义,产生了巨大的商业价值。
社交网络主题推荐方法是为了确定社交用户的兴趣倾向的一种主题挖掘方法,可以将社交用户的历史推文概括性地转换为特定的主题,使一些商家或平台能更加直观的了解用户的喜好,制定合理的营销策略。本专利的目的是挖掘社交用户的主题信息,为商家用户推荐、舆论引导打下基础。
目前的社交用户主题推荐方法包括两个方面:主题建模和兴趣挖掘,社交网络。首先,Raghuram等利用用户特征,推文特征和时间序列特征对社交用户主题进行分类,虽然作者加入了时间维度,使得分类结果更准确,但是对于用户属性的提取太简单,而且分类结果不具有普适性。其次,Piao等认为社交网络不仅仅存在主动发推文的活跃用户,还有一些只消费关注者信息,不发表任何推文的群体,称为“被动用户”,作者将这些“被动用户”的个人简介和维基百科结合,提取用户兴趣,由于推特和微博在个人信息上的处理截然不同,该方法容易被简介中与兴趣无关的个人描述误导。
发明内容
本发明目的是解决现有技术中的不足,提供一种基于社交网络用户属性的主题推荐方法。
本发明方法包括以下步骤:
步骤(1).获取用户的微博内容,对微博进行预处理,为后续向量化做准备;
步骤(2).过滤用户,剔除不活跃的用户和僵尸用户,标注数据集;
步骤(3).采用LDA模型求出用户微博的主题概率分布,得到最初的主题分布;
步骤(4).利用若干已标记的微博训练集求得不同性别在不同主题下的变异因子,与步骤(3)的主题分布结合得到主题因子;
步骤(5).计算用户与友邻关系的亲密度,评价友邻用户的影响力,得到置信度;
步骤(6).利用分词软件提取个人描述和标签的关键词,转换成向量矩阵,求得相似性因子;
步骤(7).将上述三个因子融合得到用户主题模型。
步骤(1)具体是:
(1.1)利用爬虫工具爬取微博数据T、用户属性U和用户友邻关系R到关系型数据库中;
(1.2)对微博数据T进行预处理,使用正则表达式过滤特殊的字符和字段,将英文统一为小写;
所述的特殊的字符和字段,包括“@XXX”、“[表情符号]”、超链接;其中,“@XXX”表示微博正文或评论中提到某一用户或对用户说的话,以引起该用户注意;“[表情符号]”是指微博中特有的表情,代表发帖人内心的想法,可以是开心,难受,惊恐等;超链接一般指http和https协议下的链接,通过点击链接可以转到第三方页面,如:https://weibo.com/;
(1.3)定义字典DictUser,用户User的Id为键,预处理完成的微博数据W为键对应的值;
(1.4)将字典DictUser转换成缓存,以便后续使用。
步骤(2)具体是:
(2.1)过滤用户标签或个人描述为空的用户;
(2.2)过滤不符合规则的用户性别;
(2.3)过滤不活跃用户或一段时间未上线用户;活跃度
Figure BDA0002799724960000021
NT表示用户最近一年内发布、转发和评论微博总数;NMonth表示一年中活跃的月份数,是指用户在一年中最早发微博和最晚发微博的时间间隔;如果Active小于阈值σA,属于不活跃用户,活跃度的阈值σA=15~30;如果超过一年未发布、转发和评论微博,则属于未上线用户;
(2.4)过滤粉丝数小于粉丝阈值σF的用户,设定σF=30~100;
(2.5)采用人工标注的方法生成标记数据集Utopic={User,Topic},User表示用户,Topic表示标注的主题信息。
步骤(3)具体是:
(3.1)使用现有的LDA模型进行主题预测,包括Python的第三方库Gensim;
(3.2)设定LDA模型的参数,对步骤(1)中得到的字典DictUser进行遍历,利用DictUser中用户User对应的微博数据W对LDA模型建模;
(3.3)训练LDA模型,得到用户User对应的主题分布PT=(pt1,pt2,…,ptN)及其概率值
Figure BDA0002799724960000031
其中N是预测的主题个数,在LDA模型参数中设置;
(3.4)筛选主题,将PT中的概率值ProbPT小于概率阈值σP的主题剔除,得到最终的初始主题分布的概率值
Figure BDA0002799724960000032
σP=0.01~0.02;
按概率从大到小排序:
Figure BDA0002799724960000033
其中,
Figure BDA0002799724960000034
表示第m个主题,
Figure BDA0002799724960000035
表示第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是用户的个数。
步骤(4)具体是:
(4.1)选取多个已标记主题信息的男性和女性用户集合,建立用户列表User_Var=(vuser1,user2,…,vuserJ),其中,vuserj第j个用户,j=1,2,…,J,J为选取的用户个数;
(4.2)遍历用户列表User_Var,计算影响力Inf:第j个用户影响力
Figure BDA0002799724960000036
Figure BDA0002799724960000037
表示粉丝数,
Figure BDA0002799724960000038
表示关注数;
(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)利用变异系数公式计算某个主题下的男性和女性的变异系数
Figure BDA0002799724960000041
(4.7)判断主题列表中的主题是否处理完毕:如果处理完毕,则停止遍历;否则,重复执行步骤(4.4)~(4.6),得到变异系数集合V(Gender)=[v1,v2,…,vL];
(4.8)利用正则化公式,更新变异系数集合V(Gender),将值的范围控制在(0,1)内:
Figure BDA0002799724960000042
l=1,2,…,L;该方法在一般的正则化公式基础上添加了修改,在分子处加1,目的是使范围严格控制在(0,1)内,不包括边界;
(4.9)遍历字典Dicttopic,判断每个用户的性别对应的主题变异系数,如果vl大于0.15,则将两个值相加,更新到对应的
Figure BDA0002799724960000043
值;
(4.10)判断字典是否处理完毕:如果处理完毕,则停止遍历;否则,重复执行步骤(4.9),得到最终更新完毕的Dicttopic={User,PrT}。
步骤(5)具体是:
(5.1)遍历待提取主题的用户列表Users,使用步骤(4.2)中的公式计算用户影响力,过滤低于阈值σU的用户,σU=0.4~0.5,得到后续迭代更新所需要的初始种子用户集合SeedU=(seedu1,seedu2,…,seeduP)和对应的影响力值
Figure BDA0002799724960000044
seedup表示第p个种子用户,p=1,2,…,P,P为种子用户的个数;
(5.2)遍历种子用户集合SeedU,选取对应的粉丝列表
Figure BDA0002799724960000045
Figure BDA0002799724960000046
表示第q个粉丝,q=1,2,…,Q,Q为粉丝个数;
(5.3)遍历粉丝列表,处理粉丝的微博T,统计@种子用户的次数
Figure BDA0002799724960000047
(5.4)统计粉丝转发种子用户微博的次数
Figure BDA0002799724960000048
(5.5)统计粉丝评论种子用户微博的次数
Figure BDA0002799724960000051
(5.6)将三个变量结合,得到粉丝亲密度
Figure BDA0002799724960000052
(5.7)将亲密度和影响力相加得到每个粉丝对应的种子用户得分
Figure BDA0002799724960000053
(5.8)判断种子列表的用户是否都处理完毕:如果处理完毕,则停止遍历;否则,重复执行步骤(5.2)~(5.7),得到用户得分集合
Figure BDA0002799724960000054
Figure BDA0002799724960000055
为第q粉丝得分,q=1,2,…,Q;
(5.9)遍历用户列表Users,如果是非种子用户,对关注列表做以下操作;
(5.10)遍历关注列表,如果关注用户followu的邻居neighb与其有相同的主题信息,则累加邻居用户得分;
(5.11)根据步骤(5.3)~(5.6)计算他们之间的亲密度和影响力,得到该关注用户的最终用户得分:
Figure BDA0002799724960000056
(5.12)将scoreufollwu取对数得到置信度
Figure BDA0002799724960000057
(5.13)判断关注列表的用户是否处理完毕:如果处理完毕,则停止遍历;否则,重复执行步骤(5.10)~(5.12),得到某个用户的置信度集合
Figure BDA0002799724960000058
其中
Figure BDA0002799724960000059
表示第s个关注用户的置信度,s=1,2,…,S,S为关注用户个数;
(5.14)判断用户列表的用户是否处理完毕:如果处理完毕,则停止遍历;否则,重复执行步骤(5.9)~(5.13),得到所有用户的置信度集合γ=(γ12,…,γK);γk表示第k个用户的置信度,k=1,2,…,K;
(5.15)迭代更新种子用户,在原来的用户得分上加入关注者的用户得分。
步骤(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,欧氏距离
Figure BDA0002799724960000061
T表示转置;
(6.5)利用公式计算相似因子α,得到相似度因子分布
Figure BDA0002799724960000062
Figure BDA0002799724960000063
mr∈KM,nr∈TM;
(6.6)判断用户列表中的用户是否处理完毕:如果处理完毕,则停止遍历;否则,重复执行步骤(6.1)~(6.5),得到用户的相似度因子集合α={α12,…,αk}。
步骤(7)具体是:
(7.1)遍历用户列表Users,将步骤(6.6)得到的相似度因子与步骤(4.9)的主题概率分布
Figure BDA0002799724960000064
结合,对于每一个主题值
Figure BDA0002799724960000065
如果通过步骤(6.4)的映射θg得到的主题topicg与某一个初始主题相同,则进行如下操作:
Figure BDA0002799724960000066
其中,num表示在某一个主题下相同的个数;
(7.2)遍历用户userk的主题列表,对每个主题做步骤(7.1)的操作,判断是否处理完毕:如果处理完毕,则停止遍历;否则,继续执行,得到更新后的主题值:
Figure BDA0002799724960000067
(7.3)如果关注者与用户处于相同的主题,则进行如下操作:
Figure BDA0002799724960000068
userk和users在相同整体下,则func(userk,users)=1,否则func(userk,users)=0;
(7.4)遍历用户userk的主题列表,对每个主题做步骤(7.3)的操作,判断是否处理完毕:如果处理完毕,则停止遍历;否则,继续执行,得到更新后的主题值:
Figure BDA0002799724960000069
(7.5)将intvalk中的值进行与步骤(4.8)相同的正则化处理,使之控制在(0,1)范围内,并进行排序,筛选掉值小于σP的主题,得到userk最终的主题分布:
Figure BDA0002799724960000071
(7.6)判断用户列表的用户是否处理完毕,如果是,则停止遍历;否则,重复执行步骤(7.1)~(7.5),得到主题分布集合Inte=(inte1,inte2,…,inteK)。
至此,社交用户的主题信息推荐完毕。
本发明方法利用大数据时代获取数据的便利性,提取用户基本资料、用户关系数据和用户微博。在分析用户推文的基础上加入两个新的元素,一是用户的性别、个人描述等基本属性,二是用户的网络特征,针对以上三个因素构建动态权重主题模型,预测用户的主题分布并进行标注。本发明利用用户的友邻结构、个人属性,提高了推荐准确度。
附图说明
图1本发明方法流程图;
图2微博信息预处理流程图;
图3过滤用户和标注用户流程图;
图4利用LDA生成初始主题分布流程图;
图5利用标注数据集求变异因子流程图;
图6亲密度计算和影响力评价流程图;
图7向量化个人描述和标签流程图;
图8将三个因子融合成最终的主题模型流程图。
具体实施方式
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
如图1所示,基于社交网络用户属性的主题推荐算法,将个人描述和标签向量化,与主题求得相似性作为相似性因子,定义为α,利用用户的性别求得不同主题下的变异因子,与初始主题分布结合得到变异因子β,利用社交用户的友邻关系,量化用户间亲密度和影响力,求得置信度因子γ,最后将三者融合得到用户主题模型。
该方法包含以下步骤:
步骤(1).获取用户的微博内容,对微博进行预处理,为后续向量化做准备;如图2所示,具体步骤是:
步骤(1.1)利用爬虫工具爬取微博数据T、用户属性U和用户友邻关系R到关系型数据库中;
步骤(1.2)对微博数据T进行预处理,使用正则表达式过滤特殊的字符和字段,将英文统一为小写;
特殊的字符和字段包括“@XXX”、“[表情符号]”、超链接;其中,“@XXX”表示微博正文或评论中提到某一用户或对用户说的话,以引起该用户注意;“[表情符号]”是指微博中特有的表情,代表发帖人内心的想法,可以是开心,难受,惊恐等;超链接一般指http和https协议下的链接,通过点击链接可以转到第三方页面,如:https://weibo.com/;
(1.3)定义字典DictUser,用户User的Id为键,预处理完成的微博数据W为键对应的值;
(1.4)将字典DictUser转换成缓存,以便后续使用。
步骤(2).过滤用户,剔除不活跃的用户和僵尸用户,标注数据集;如图3所示,具体步骤是:
步骤(2.1)过滤用户标签或个人描述为空的用户;
步骤(2.2)过滤不符合规则的用户性别:过滤用户性别属性值为0的用户,定义1为男性,2为女性,0为性别不明;
步骤(2.3)过滤不活跃用户或一段时间未上线用户;活跃度
Figure BDA0002799724960000081
NT表示用户最近一年内发布、转发和评论微博总数;NMonth表示一年中活跃的月份数,是指用户在一年中最早发微博和最晚发微博的时间间隔;如果Active小于阈值σA,属于不活跃用户,活跃度的阈值20;如果超过一年未发布、转发和评论微博,则属于未上线用户;
步骤(2.4)过滤粉丝数小于粉丝阈值50的用户;
步骤(2.5)采用人工标注的方法生成标记数据集Utopic={User,Topic},User表示用户,Topic表示标注的主题信息。
步骤(3).采用LDA模型求出用户微博的主题概率分布,得到最初的主题分布;如图4所示,具体步骤是:
步骤(3.1)使用现有的LDA模型进行主题预测,包括Python的第三方库Gensim;
步骤(3.2)设定LDA模型的参数,包括:预测主题个数,迭代次数,随机种子数,对步骤(1)中得到的字典DictUser进行遍历,利用字典DictUser中用户User对应的微博数据W对LDA建模,包含原创,转发和评论,将每个用户的所有博文当成LDA的语料库,求得主题的分布以及概率值;
步骤(3.3)训练LDA模型,得到用户User对应的主题分布PT=(pt1,pt2,…,ptN)及其概率值
Figure BDA0002799724960000091
其中N是预测的主题个数,在LDA模型参数中设置;
步骤(3.4)筛选主题,将PT中的概率值ProbPT小于概率阈值0.015的主题剔除,得到最终的初始主题分布的概率值
Figure BDA0002799724960000092
按概率从大到小排序:
Figure BDA0002799724960000093
其中,
Figure BDA0002799724960000094
表示第m个主题,
Figure BDA0002799724960000095
表示第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是用户的个数。
步骤(4).利用若干已标记的微博训练集求得不同性别在不同主题下的变异因子,与步骤(3)的主题分布结合得到主题因子;如图5所示,具体步骤是:
步骤(4.1)选取多个已标记主题信息的男性和女性用户集合,建立用户列表User_Var=(vuser1,user2,…,vuserJ),其中,vuserj第j个用户,j=1,2,…,J,J为选取的用户个数;
步骤(4.2)遍历用户列表User_Var,计算影响力Inf:第j个用户影响力
Figure BDA0002799724960000096
Figure BDA0002799724960000097
表示粉丝数,
Figure BDA0002799724960000098
表示关注数;一般地,关注的个数都大于0,否则,剔除该用户;
步骤(4.3)判断用户列表是否都处理完毕:如果处理完毕,则停止遍历;否则,重复执行步骤(4.2),得到DictInf={User_Var,Inf},以键值对形式存储,键是选取的标记用户,值是求得的影响力,范围是(0,MAX_INT),MAX_INT表示计算机中能表示的最大整型数字;
步骤(4.4)遍历主题列表Topics,Topics=(topic1,topic2,…,topicL),其中topicl表示第l个主题,l=1,2,…,L,L为已标记的所有主题个数;
计算某一个主题信息下的男性用户和女性用户的平均值meantopic
步骤(4.5)计算某一个主题信息下的男性用户和女性用户的标准差值standardtopic
步骤(4.6)利用变异系数公式计算某个主题下的男性和女性的变异系数
Figure BDA0002799724960000101
步骤(4.7)判断主题列表中的主题是否处理完毕:如果处理完毕,则停止遍历;否则,重复执行步骤(4.4)~(4.6),得到变异系数集合V(Gender)=[v1,v2,…,vL];
步骤(4.8)利用正则化公式,更新变异系数集合V(Gender),将值的范围控制在(0,1)内:
Figure BDA0002799724960000102
l=1,2,…,L;该方法在一般的正则化公式基础上添加了修改,在分子处加1,目的是使范围严格控制在(0,1)内,不包括边界;
步骤(4.9)遍历字典Dicttopic,判断每个用户的性别对应的主题变异系数,如果vl大于0.15,说明该性别下大多数用户倾向于这个主题,则将两个值相加,更新到对应的
Figure BDA0002799724960000103
值;
步骤(4.10)判断字典是否处理完毕:如果处理完毕,则停止遍历;否则,重复执行步骤(4.9),得到最终更新完毕的Dicttopic={User,PrT},以键值对形式存储。
步骤(5).计算用户与友邻关系的亲密度,评价友邻用户的影响力,得到置信度;如图6所示,具体步骤是:
步骤(5.1)遍历待提取主题的用户列表Users,使用步骤(4.2)中的公式计算用户影响力,过滤低于阈值0.45的用户,得到后续迭代更新所需要的初始种子用户集合SeedU=(seedu1,seedu2,…,seeduP)和对应的影响力值
Figure BDA0002799724960000104
seedup表示第p个种子用户,p=1,2,…,P,P为种子用户的个数;
步骤(5.2)遍历种子用户集合SeedU,选取对应的粉丝列表
Figure BDA0002799724960000105
Figure BDA0002799724960000106
表示第q个粉丝,q=1,2,…,Q,Q为粉丝个数;
步骤(5.3)遍历粉丝列表,处理粉丝的微博T,统计@种子用户的次数
Figure BDA0002799724960000111
次数越多代表粉丝对该用户的互动频繁,了解更深,主题信息更具参考性;
步骤(5.4)统计粉丝转发种子用户微博的次数
Figure BDA0002799724960000112
转发次数越多代表粉丝对该用户的主题感兴趣;
步骤(5.5)统计粉丝评论种子用户微博的次数
Figure BDA0002799724960000113
步骤(5.6)将三个变量结合,得到粉丝亲密度
Figure BDA0002799724960000114
步骤(5.7)将亲密度和影响力相加得到每个粉丝对应的种子用户得分
Figure BDA0002799724960000115
步骤(5.8)判断种子列表的用户是否都处理完毕:如果处理完毕,则停止遍历;否则,重复执行步骤(5.2)~(5.7),得到用户得分集合
Figure BDA0002799724960000116
Figure BDA0002799724960000117
为第q粉丝得分,q=1,2,…,Q;
步骤(5.9)遍历用户列表Users,如果是非种子用户,对关注列表做以下操作;
步骤(5.10)遍历关注列表,如果关注用户followu的邻居neighb与其有相同的主题信息,说明两者具有相同爱好,邻居用户的用户得分对目标用户的主题信息具有一定贡献,因此累加邻居用户得分;
步骤(5.11)根据步骤(5.3)~(5.6)计算他们之间的亲密度和影响力,得到该关注用户的最终用户得分:
Figure BDA0002799724960000118
步骤(5.12)将scoreufollwu取对数得到置信度
Figure BDA0002799724960000119
使不同的分数差距较小;
步骤(5.13)判断关注列表的用户是否处理完毕:如果处理完毕,则停止遍历;否则,重复执行步骤(5.10)~(5.12),得到某个用户的置信度集合
Figure BDA00027997249600001110
其中
Figure BDA00027997249600001111
表示第s个关注用户的置信度,s=1,2,…,S,S为关注用户个数;
步骤(5.14)判断用户列表的用户是否处理完毕:如果处理完毕,则停止遍历;否则,重复执行步骤(5.9)~(5.13),得到所有用户的置信度集合γ=(γ12,…,γK),集合中的每个元素代表该用户的邻居主题对于其主题信息的贡献程度;γk表示第k个用户的置信度,k=1,2,…,K;
步骤(5.15)迭代更新种子用户,在原来的用户得分上加入关注者的用户得分。
步骤(6).利用分词软件提取个人描述和标签的关键词,转换成向量矩阵,求得相似性因子;如图7所示,具体步骤是:
步骤(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,欧氏距离
Figure BDA0002799724960000121
T表示转置;
步骤(6.5)利用公式计算相似因子α,得到相似度因子分布
Figure BDA0002799724960000122
Figure BDA0002799724960000123
mr∈KM,nr∈TM;
步骤(6.6)判断用户列表中的用户是否处理完毕:如果处理完毕,则停止遍历;否则,重复执行步骤(6.1)~(6.5),得到用户的相似度因子集合α={α12,…,αk}。
步骤(7).将上述三个因子融合得到用户主题模型;如图8所示,具体步骤是:
步骤(7.1)遍历用户列表Users,将步骤(6.6)得到的相似度因子与步骤(4.9)的主题概率分布
Figure BDA0002799724960000124
结合,其中
Figure BDA0002799724960000125
已经与β相加,对于每一个主题值
Figure BDA0002799724960000126
如果通过步骤(6.4)的映射θg得到的主题topicg与某一个初始主题相同,则进行如下操作:
Figure BDA0002799724960000127
其中,num表示在某一个主题下相同的个数;
步骤(7.2)遍历用户userk的主题列表,对每个主题做步骤(7.1)的操作,判断是否处理完毕:如果处理完毕,则停止遍历;否则,继续执行,得到更新后的主题值:
Figure BDA0002799724960000131
步骤(7.3)如果关注者与用户处于相同的主题,则进行如下操作:
Figure BDA0002799724960000132
userk和users在相同整体下,则func(userk,users)=1,否则func(userk,users)=0;
步骤(7.4)遍历用户userk的主题列表,对每个主题做步骤(7.3)的操作,判断是否处理完毕:如果处理完毕,则停止遍历;否则,继续执行,得到更新后的主题值:
Figure BDA0002799724960000133
步骤(7.5)将intvalk中的值进行与步骤(4.8)相同的正则化处理,使之控制在(0,1)范围内,并进行排序,筛选掉值小于σP的主题,得到userk最终的主题分布:
Figure BDA0002799724960000134
步骤(7.6)判断用户列表的用户是否处理完毕,如果是,则停止遍历;否则,重复执行步骤(7.1)~(7.5),得到主题分布集合Inte=(inte1,inte2,…,inteK)。
至此,社交用户的主题信息推荐完毕。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

Claims (7)

1.一种基于社交网络用户属性的主题推荐方法,其特征在于,该方法包括以下步骤:
步骤(1).获取用户的微博内容,对微博进行预处理;
步骤(2).过滤用户,剔除不活跃的用户和僵尸用户,标注数据集;
步骤(3).采用LDA模型求出用户微博的主题概率分布,得到最初的主题分布;
步骤(4).利用已标记的微博训练集求得不同性别在不同主题下的变异因子,与主题分布结合得到主题因子;
步骤(5).计算用户与友邻关系的亲密度,并评价友邻用户的影响力,利用该亲密度和影响力得到置信度;
步骤(6).利用分词软件提取个人描述和标签的关键词,转换成向量矩阵,求得相似性因子;
步骤(7).将三个因子融合得到用户主题模型,具体是:
(7.1)遍历用户列表Users,将相似度因子与主题概率分布结合,对于每一个主题值
Figure FDA0003535427640000011
如果关键词-主题映射θg得到的主题topicg与某一个初始主题相同,则进行如下操作:
Figure FDA0003535427640000012
其中,num表示在某一个主题下相同的个数;
Figure FDA0003535427640000013
为相似度因子,k=1,2,…,K,g=1,2,…,G,K为用户的个数,G为关键词的个数;
Figure FDA0003535427640000016
表示第m个主题对应的概率值,m=1,2,…,M,M为筛选后主题个数;
(7.2)遍历用户userk的主题列表,对每个主题做步骤(7.1)的操作,判断是否处理完毕:如果处理完毕,则停止遍历;否则,继续执行,得到更新后的主题值:
Figure FDA0003535427640000014
(7.3)如果关注者与用户处于相同的主题,则进行如下操作:
Figure FDA0003535427640000015
S为关注用户个数;
userk和users在相同整体下,则func(userk,users)=1,否则func(userk,users)=0;
(7.4)遍历用户userk的主题列表,对每个主题做步骤(7.3)的操作,判断是否处理完毕:如果处理完毕,则停止遍历;否则,继续执行,得到更新后的主题值:
Figure FDA0003535427640000021
(7.5)将intvalk中的值进行正则化处理,使之控制在(0,1)范围内,并进行排序,筛选掉值小于概率阈值σP的主题,得到userk最终的主题分布:
Figure FDA0003535427640000022
(7.6)判断用户列表的用户是否处理完毕,如果是,则停止遍历;否则,重复执行步骤(7.1)~(7.5),得到主题分布集合Inte=(inte1,inte2,…,inteK)。
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)过滤不活跃用户或一段时间未上线用户;活跃度
Figure FDA0003535427640000023
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)及其概率值
Figure FDA0003535427640000031
其中N是预测的主题个数,在LDA模型参数中设置;
(3.4)筛选主题,将PT中的概率值ProbPT小于概率阈值σP的主题剔除,得到最终的初始主题分布的概率值
Figure FDA0003535427640000032
σP=0.01~0.02,
Figure FDA0003535427640000033
表示第m个主题;
按概率从大到小排序:
Figure FDA0003535427640000034
(3.5)判断字典中的用户User是否都处理完毕:如果处理完毕,则停止遍历;否则,重复执行步骤(3.2)~(3.4),得到Dicttopic={User,PrT};其中,User=(user1,user2,…,userK),PrT=(prt1,prt2,…,prtK),userk表示第k个用户,prtk表示第k个用户的初始主题分布。
5.如权利要求4所述的一种基于社交网络用户属性的主题推荐方法,其特征在于,步骤(4)具体是:
(4.1)选取多个已标记主题信息的男性和女性用户集合,建立用户列表User_Var=(vuser1,user2,…,vuserJ),其中,vuserj第j个用户,j=1,2,…,J,J为选取的用户个数;
(4.2)遍历用户列表User_Var,计算影响力Inf:第j个用户影响力
Figure FDA0003535427640000035
Figure FDA0003535427640000036
表示粉丝数,
Figure FDA0003535427640000037
表示关注数;
(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)利用变异系数公式计算某个主题下的男性和女性的变异系数
Figure FDA0003535427640000041
(4.7)判断主题列表中的主题是否处理完毕:如果处理完毕,则停止遍历;否则,重复执行步骤(4.4)~(4.6),得到变异系数集合V(Gender)=[v1,v2,…,vL];
(4.8)利用正则化公式,更新变异系数集合V(Gender),将值的范围控制在(0,1)内:
Figure FDA0003535427640000042
(4.9)遍历字典Dicttopic,判断每个用户的性别对应的主题变异系数,如果vl大于0.15,则将两个值相加,更新到对应的
Figure FDA00035354276400000410
值;
(4.10)判断字典是否处理完毕:如果处理完毕,则停止遍历;否则,重复执行步骤(4.9),得到最终更新完毕的Dicttopic={User,PrT}。
6.如权利要求5所述的一种基于社交网络用户属性的主题推荐方法,其特征在于,步骤(5)具体是:
(5.1)遍历待提取主题的用户列表Users,计算用户影响力,过滤低于阈值σU的用户,σU=0.4~0.5,得到后续迭代更新所需要的初始种子用户集合SeedU=(seedu1,seedu2,…,seeduP)和对应的影响力值
Figure FDA0003535427640000043
seedup表示第p个种子用户,p=1,2,…,P,P为种子用户的个数;
(5.2)遍历种子用户集合SeedU,选取对应的粉丝列表
Figure FDA0003535427640000044
Figure FDA0003535427640000045
表示第q个粉丝,q=1,2,…,Q,Q为粉丝个数;
(5.3)遍历粉丝列表,处理粉丝的微博T,统计@种子用户的次数
Figure FDA0003535427640000046
(5.4)统计粉丝转发种子用户微博的次数
Figure FDA0003535427640000047
(5.5)统计粉丝评论种子用户微博的次数
Figure FDA0003535427640000048
(5.6)将三个变量结合,得到粉丝亲密度
Figure FDA0003535427640000049
(5.7)将亲密度和影响力相加得到每个粉丝对应的种子用户得分
Figure FDA0003535427640000051
(5.8)判断种子列表的用户是否都处理完毕:如果处理完毕,则停止遍历;否则,重复执行步骤(5.2)~(5.7),得到用户得分集合
Figure FDA0003535427640000052
Figure FDA0003535427640000053
为第q粉丝得分;
(5.9)遍历用户列表Users,如果是非种子用户,对关注列表做以下操作;
(5.10)遍历关注列表,如果关注用户followu的邻居neighb与其有相同的主题信息,则累加邻居用户得分;
(5.11)根据步骤(5.3)~(5.6)计算他们之间的亲密度和影响力,得到该关注用户的最终用户得分:
Figure FDA0003535427640000054
(5.12)将scoreufollwu取对数得到置信度
Figure FDA0003535427640000055
(5.13)判断关注列表的用户是否处理完毕:如果处理完毕,则停止遍历;否则,重复执行步骤(5.10)~(5.12),得到某个用户的置信度集合
Figure FDA0003535427640000056
其中
Figure FDA0003535427640000057
表示第s个关注用户的置信度;
(5.14)判断用户列表的用户是否处理完毕:如果处理完毕,则停止遍历;否则,重复执行步骤(5.9)~(5.13),得到所有用户的置信度集合γ=(γ12,…,γK);γk表示第k个用户的置信度;
(5.15)迭代更新种子用户,在原来的用户得分上加入关注者的用户得分。
7.如权利要求6所述的一种基于社交网络用户属性的主题推荐方法,其特征在于,步骤(6)具体是:
(6.1)遍历用户列表Users,对个人描述和标签做预处理,采用步骤(1.2)的方法过滤特殊字符、字段,利用jieba分词工具分词,进行词性筛选,选取某一类词作为关键词列表KW=(kw1,kw2,…,kwG),其中kwg表示第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,欧氏距离
Figure FDA0003535427640000061
(6.5)利用公式计算相似度因子,得到相似度因子分布
Figure FDA0003535427640000062
Figure FDA0003535427640000063
(6.6)判断用户列表中的用户是否处理完毕:如果处理完毕,则停止遍历;否则,重复执行步骤(6.1)~(6.5),得到用户的相似度因子集合α={α12,…,αk}。
CN202011345609.4A 2020-11-26 2020-11-26 一种基于社交网络用户属性的主题推荐方法 Active CN112487303B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011345609.4A CN112487303B (zh) 2020-11-26 2020-11-26 一种基于社交网络用户属性的主题推荐方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011345609.4A CN112487303B (zh) 2020-11-26 2020-11-26 一种基于社交网络用户属性的主题推荐方法

Publications (2)

Publication Number Publication Date
CN112487303A CN112487303A (zh) 2021-03-12
CN112487303B true CN112487303B (zh) 2022-04-22

Family

ID=74934818

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011345609.4A Active CN112487303B (zh) 2020-11-26 2020-11-26 一种基于社交网络用户属性的主题推荐方法

Country Status (1)

Country Link
CN (1) CN112487303B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116644239B (zh) * 2023-07-19 2023-10-13 中国标准化研究院 一种重大服务质量事件信息监控方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105183833A (zh) * 2015-08-31 2015-12-23 天津大学 一种基于用户模型的微博文本推荐方法及其推荐装置
US9275148B1 (en) * 2011-09-23 2016-03-01 Shauki Elassaad System and method for augmented browsing and knowledge discovery
CN105740342A (zh) * 2016-01-22 2016-07-06 天津中科智能识别产业技术研究院有限公司 一种基于社会关系主题模型的社交网络朋友推荐方法
CN107526850A (zh) * 2017-10-12 2017-12-29 燕山大学 基于多重个性化特征混合架构的社交网络好友推荐方法
CN108596205A (zh) * 2018-03-20 2018-09-28 重庆邮电大学 基于地域相关因子与稀疏表示的微博转发行为预测方法
CN109002490A (zh) * 2018-06-26 2018-12-14 腾讯科技(深圳)有限公司 用户画像生成方法、装置、服务器及存储介质
CN111274485A (zh) * 2020-01-20 2020-06-12 北京工业大学 一种基于社区发现的个性化推荐方法
US10831814B2 (en) * 2005-10-26 2020-11-10 Cortica, Ltd. System and method for linking multimedia data elements to web pages

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160203221A1 (en) * 2014-09-12 2016-07-14 Lithium Technologies, Inc. System and apparatus for an application agnostic user search engine
CA2944920A1 (en) * 2015-10-13 2017-04-13 The Governing Council Of The University Of Toronto Systems and methods for online analysis of stakeholders

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10831814B2 (en) * 2005-10-26 2020-11-10 Cortica, Ltd. System and method for linking multimedia data elements to web pages
US9275148B1 (en) * 2011-09-23 2016-03-01 Shauki Elassaad System and method for augmented browsing and knowledge discovery
CN105183833A (zh) * 2015-08-31 2015-12-23 天津大学 一种基于用户模型的微博文本推荐方法及其推荐装置
CN105740342A (zh) * 2016-01-22 2016-07-06 天津中科智能识别产业技术研究院有限公司 一种基于社会关系主题模型的社交网络朋友推荐方法
CN107526850A (zh) * 2017-10-12 2017-12-29 燕山大学 基于多重个性化特征混合架构的社交网络好友推荐方法
CN108596205A (zh) * 2018-03-20 2018-09-28 重庆邮电大学 基于地域相关因子与稀疏表示的微博转发行为预测方法
CN109002490A (zh) * 2018-06-26 2018-12-14 腾讯科技(深圳)有限公司 用户画像生成方法、装置、服务器及存储介质
CN111274485A (zh) * 2020-01-20 2020-06-12 北京工业大学 一种基于社区发现的个性化推荐方法

Also Published As

Publication number Publication date
CN112487303A (zh) 2021-03-12

Similar Documents

Publication Publication Date Title
Li et al. Multi-label maximum entropy model for social emotion classification over short text
Zou et al. Microblog sentiment analysis using social and topic context
CN110046228B (zh) 短文本主题识别方法和系统
Wu et al. Personalized microblog sentiment classification via multi-task learning
Yang et al. Microblog sentiment analysis via embedding social contexts into an attentive LSTM
Vamshi et al. Topic model based opinion mining and sentiment analysis
Kang et al. Deep recurrent convolutional networks for inferring user interests from social media
CN112084333B (zh) 一种基于情感倾向分析的社交用户生成方法
CN111241425A (zh) 一种基于层次注意力机制的poi推荐方法
Iparraguirre-Villanueva et al. Sentiment analysis of tweets using unsupervised learning techniques and the k-means algorithm
Wijesekara et al. Source credibility analysis on Twitter users
Yarushkina et al. The social portrait building of a social network user based on semi-structured data analysis
Li et al. Twitter sentiment analysis of new ikea stores using machine learning
Zou et al. Collaborative community-specific microblog sentiment analysis via multi-task learning
Ghobakhloo et al. Design of a personalized recommender system using sentiment analysis in social media (case study: banking system)
Bhattacharya et al. Recent trends in recommendation systems and sentiment analysis
Paliwal et al. Sentiment analysis of COVID-19 vaccine rollout in India
CN112487303B (zh) 一种基于社交网络用户属性的主题推荐方法
Modupe et al. Post-authorship attribution using regularized deep neural network
Baboo et al. Sentiment analysis and automatic emotion detection analysis of twitter using machine learning classifiers
Gan et al. Microblog sentiment analysis via user representative relationship under multi-interaction hybrid neural networks
Guo et al. Web table column type detection using deep learning and probability graph model
Zhu Rumour detection based on deep hybrid structural and sequential representation networks
Abdi et al. Using an auxiliary dataset to improve emotion estimation in users’ opinions
Mahalakshmi et al. Twitter sentiment analysis using conditional generative adversarial network

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant