本代码是微软-清华开放学术精准画像大赛的解决方案,我们团队是这次比赛的初赛No.4,决赛No.2。
整理后的可执行代码在code文件夹,其他的文件可以无视了喵。
This repo is the No.2 solution to Open Academic Data Challenge 2017.
Clean code in the code folder, please ignore other files.
task1程序,使用python3,入口是final_1.py文件,但是由于爬虫的不稳定性,比赛中还用到了其他代码,下面会有所说明。
final_1.py程序入口crawler.py爬虫模块,负责三部分,爬取搜索页面,爬取(认定的)主页并存储,爬取网页上的图片并存储data_io.py数据读取输出模块utility.py一些小工具,包括识别email的正则表达式,以及email图片的过滤器,这里设置email图片的代码没有写进final_1.pypagehome.py判断用户主页的模块,这里用到的xgb模型存储在./model/good_model.datloc_pos.py判断用户location 和position的模块first.py包含判断email,生成答案文件等函数
./final/文件夹存储爬取到的主页html,./head/文件夹存储头像图片数据。./output/存储中间暂存以及最终的结果task1_ans.txt
对于学者的多项属性,我们实现了不同的方法,为了尽可能提高分数,会对这些进行加权模型融合,但是考虑到效率问题,不推荐这么做。
环境要求:
- python 2.7
- gensim
- Networkx
原始文件需放在 ./raw_data 文件夹下,包含以下文件: (注:因 papers.txt 文件较大,没有放在文件夹中,请自行添加。) raw_data:
papers.txttraining.txttask2_test_final.txtlabels.txt
运行顺序:
python create_file.pypython create_citenet.pypython expand_paper.pypython expand_author_press.pypython task2_main.py
程序结果: 最终结果在task2_out里面,
- Python 版本:2.7.13
- Python package: sci-learn, numpy, scipy, random, csv, pickle。均为截至2017年10月8号的最新版。task3相关代码:
task3.py,ILearner.py,Paper.py。 - 保证代码所在路径下有
./data/task3/文件夹,同时,在task3文件夹中应有任务3的训练集train.csv、验证集validation.csv、训练集test.csv以及数据集papers.txt。考虑到papers.txt文件过大,不适宜放在邮件附件中,所以还请手动复制到相应目录。 - 运行:在代码所在路径,执行
python task3.py命令。 - 结果:在上述task3文件夹中,
output3_validation.txt是任务三的验证集输出;output3_final.txt是任务三的测试集输出。