Skip to content

liyumeng/SmpCup2016

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

2nd Place Solution for SMP CUP 2016

竞赛链接:https://biendata.com/competition/smpcup2016/

队伍成员:Yumeng Li, Peng Fei, Hengchao Li

任务介绍:

参赛队伍利用给定的新浪微博数据(包括用户个人信息、用户微博文本以及用户粉丝列表,详见数据描述部分),进行微博用户画像,具体包括以下三个任务: 任务1:推断用户的年龄(共3个标签:-1979/1980-1989/1990+) 任务2:推断用户的性别(共2个标签:男/女) 任务3:推断用户的地域(共8个标签:东北/华北/华中/华东/西北/西南/华南/境外)

1. 文件配置

程序依赖python3及以下程序包

anaconda3
theano 0.9.0
keras(使用theano作为backend)
xgboost
gensim
jieba

程序运行需要下载原始语料及训练好的word2vec的模型文件,已上传百度云,共1.3GB。

原始语料下载链接:http://pan.baidu.com/s/1o8lV37s 密码:wyk8

word2vec模型文件下载链接:http://pan.baidu.com/s/1ciWjpk 密码:cvlo

文件说明如下:

原始数据放于下面目录中

data/raw_data
    train
    valid

word2vec词向量文件放在下面目录中

data/word2vec/
    smp.w2v.300d     gensim使用的word2vec模型文件
    smp.w2v.300d.syn0.npy    gensim使用的word2vec模型文件

其余目录文件的作用

data/user_data/
    short_prov.dict  省份简称
    location.txt     省份与地域的对应表
    latitude.dict    省份与经纬度的对应表
    keywords.txt     整理出的关键词表
    enum_list.txt    三个任务的label值
    emoji.txt        整理出的表情文件
    city_prov.dict   城市与省份的对应表
    city_loca.dict   城市与地域的对应表
    stopwords.txt    停用词表
data/feature_data/ 用于存放程序运行过程中输出的各类临时文件
data/models/  用于存放程序运行中产生的模型权重参数

2. 运行

程序运行较为耗时,建议使用带有GPU的服务器运行 在Arch Linux, CPU i7-6700HQ, GPU GTX960M, 内存 16G, 固态硬盘 配置的笔记本上运行需要90分钟,占用硬盘空间10GB

#首先运行 run.sh 将使用data/models中保存的模型参数进行运行
./run.sh
#------------------------------------
#如果想从头开始运行,请依次运行
./clean.sh
./run.sh
#随机数种子设置不同,也会输出略微不同的结果

3. 输出文件说明

程序输出的文件将保存在以下两个文件夹中

data/feature_data/
    features.v1.pkl  初次处理后的特征文件,主要是按人进行了划分
    features.v2.pkl  将特征全部转变为numpy array保存
    f_letter_svd.300.cache  将微博原文按字符划分后,取tfidf特征并svd降维至300维
    f_word_svd.300.cache  将微博原文按词划分后,取tfidf特征并svd降维至300维
    f_source_svd.300.cache  将微博来源文本按字符划分后,取count特征并svd降维到300维
    f_w2v_tfidf.300.cache  用句子中每个单词的词向量经tfidf加权的结果作为300维句子向量
    loca.empty.pkl  程序输出的用于补全训练集中location标签缺失的部分
    loca.source.feature  将微博来源文本中出现地名的取出来计算count特征
    yuml.age.feature  由stack_age.py程序输出的经过xgb,mcnn,mcnn2模型输出的概率形式的结果
    
data/models/
    fp.age.feature        main.py在训练过程中产生的权重文件
    fp.gender.feature     main.py在训练过程中产生的权重文件
    loca.em_nn.weight     BP神经网络模型经Stack训练出的权重文件
    loca.em_knn.weight    KNN模型经Stack训练出的权重文件
    loca.em_mcnn.weight   MCNN模型经Stack训练出的权重文件
    loca.em_mcnn3.weight  MCNN3模型经Stack训练出的权重文件
    yuml.age.feature      stack_age.py训练出的权重文件

4. 其他

如果觉得不错的话,欢迎大家点击右上角star,谢谢!

ppt下载

我们参加的其他竞赛:

final winner solution for 2016CCF大数据精准营销中搜狗用户画像挖掘

1st Place Solution for 2016CCF大数据竞赛客户画像赛题(用户画像)

Tsinghua Data Science Winter School 2017 Link Prediction

About

2nd Place Solution for SMP CUP 2016

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published