用户画像(user profiling)是指对用户的人口统计学特征、行为模式、偏好、观点、目标等进行标签化,是互联
网时代实现精准化服务、营销和推荐的必经之路,在网络安全、管理和营运等领域具有重要意义。
微博用户画像是指利用微博用户的内容信息(如发表的微博和评论)、行为记录(如浏览、转发、点赞、收藏
等)和链接结构(如用户之间的粉丝关系)等,对用户的不同维度进行画像,对完善及扩充微博用户信息、分析
微博生态以及支撑微博业务等方面具有非常重要的意义。
参赛队伍利用给定的新浪微博数据(包括用户个人信息、用户微博文本以及用户粉丝列表,详见数据描述部
分),进行微博用户画像,具体包括以下三个任务:
任务1:推断用户的年龄(共3个标签:-1979/1980-1989/1990+)
任务2:推断用户的性别(共2个标签:男/女)
任务3:推断用户的地域(共8个标签:东北/华北/华中/华东/西北/西南/华南/境外)
1、社交关系信息--包含一个约256.7万微博用户构成的社交网络,其中的社交关系可能是单向的(即单向关
注,即为粉丝关系)或双向的(即互相关注,即为好友关系)。
2、用户微博信息--包含约4.6万用户的微博文本,这些用户都属于上述社交网络。
3、用户标签信息--包含约5千用户的年龄、性别及地域标签,这些用户都属于上述4.6万带微博文本数据的用
户。我们将基于这5千带标签的用户划分训练集、验证集和测试集。
##说明:
1、训练集用于模型的学习,验证集用于在线实时评估算法效果,测试集用于最终的效果评测;
2、训练集包含了整个数据集社交网络;
3、验证集和测试集的用户标签信息不发布,用于组委会进行在线实时评测和最终评测。
1、info.txt:用户信息文件
每一行代表一个用户,包含三个属性,用||分开。包含的属性依次如下:
uid: 用户唯一标识,由数字组成
screen_name: 用户名,与uid一一对应,None代表此项信息缺失
avatar_large: 用户头像的网址,None代表此项信息缺失
2、labels.txt:用户标签文件
每一行代表一个用户,包含四个属性,用||分开。包含的属性依次如下:
uid: 用户唯一标识,由数字组成
gender: 用户性别,m代表男性,f代表女性,None代表此项信息缺失
birthday: 用户出生年份,None代表此项信息缺失
location: 用户地域,部分用户包含省份和城市信息,部分用户只有省份信息,None代表此项信息缺失
3、links.txt:用户关系文件
每一行代表一个用户的粉丝列表,由多个用户id组成,以空格分隔,从第二个用户到最后一个用户均为第一个用
户的粉丝
4、status.txt:微博文本文件
每一行代表一条用户微博,由6个属性组成,以英文逗号分隔。包含的属性依次如下:
uid: 用户唯一标识,由数字组成
retweet count: 转发数,数字
review count: 评论数,数字
source: 来源,文本
time: 创建时间,时间戳文本(目前有两种格式,yyyy-MM-dd HH:mm:ss和yyyy-MM-dd HH:mm)
content: 文本内容(可能包含@信息、表情符信息等)
- 对微博文本进行提取,利用结巴分词进行分词,然后进行word2vec训练(维度设置为100),得到每个词的词向量.
- 对于每一个用户,通过其发表的微博内容,得到用户所使用的词汇,然后求得用户的平均词向量.(词向量和除以词的数量)
- 通过训练集,分别对用户地区,年龄,性别进行建模,程序采用svm模型.
word2vec.data 为训练得到的word2vec词向量数据
doc_dis.txt 为计算得到的用户词向量
stopword.py 将训练集出现频率最高的100个词提取出来,写入output.txt中,然后认为观察,选取停用词
stopwords.txt 为停用词表
unit.py 用lda主题模型进行训练
word2vec.py 用word2vec进行训练