人工智能和机器学习国际顶级会议NeurIPS2019 论文收集 python脚本 以及 论文打包下载
人工智能和机器学习顶级会议NeurIPS 2019公布了接受论文,有效提交论文6743篇论文, 总共有1430接受论文, 21.1%接受率,包括36篇Oral,164篇Spotlights。
会议将于2019年12月8日-14日在加拿大温哥华举办,根据会议公布的接受论文题目,在arxiv.org进行检索收集论文preview版本,使得大家可以提前两个月就能欣赏到大部分NIPS2019论文。
论文下载百度云链接:链接:https://pan.baidu.com/s/1X6yyTmweOmvZ3p99XnJCkg
提取码:cd9r 文件名:【nips2019.preview.tar.xz】 解压方式:7-zip
md5sum: 55447b0bef998e1539e29cfb245c09b5
Last updated: 2019/09/30
如果喜欢,或觉得有帮助到你,请点击右上角 ⭐️Star, 帮我加颗星,并推荐给好友加更多的✨Star,谢谢.
- 2019/09/26 * - 更新710/1430篇文章
- 2019/09/30 * - 更新736/1430篇文章 改进论文题目相似度
本项目服务于三类情况:
-
1.不看程序,只要论文打包下载(会定期更新) 🎉
-
2.使用检索下载论文脚本get_arxiv.py
✈️ -
3.根据脚本运行的中间结果在ipython中play around 🚀
欢迎大家,以各种形式传播扩散本项目,谢谢。
1.下载程序
git clone https://github.com/lvzongting/nips2019.preview.git
2.安装需要的python依赖
pip install pandas arxiv --user
3.运行get_arxiv.py脚本
cd nips2019.preview/script
python get_arxiv.py
4.目录与文件
- 目录结构,在nips2019.preview/script 中运行python get_arxiv.py 会在上一级目录nips2019.preview 中存放所下载的pdf文件
- 将需要作查询query的论文名称,保存在paper.list中,本项目提供的paper.list存放的是nips2019公布的接受论文Accepted Papers
- 项目中提供的paper_query_arxiv.pkl 是2019/09/30所做检索结果的cache,如果打算重新做一遍query,请将这个文件删掉后再运行get_arxiv.py脚本
- 生成的pdf下载地址列表保存在pdf.list 可以根据这个文件直接使用wget下载pdf文件
5.运行过程
6.去掉cache文件,重新检索arxiv.org过程
设置相似度threshold,根据如下观察:
- 论文发表时间,不可以 ❌
- 多了一个简称,可以 ✅
- 同义词有拼写误差,可以 ✅
- 用词误差,可以 ✅
- 多了一个非实意词,可以 ✅
通过NIPS2019公布的接受论文列表Accepted Papers 在浏览器DevTools中检查元素模式(Cmd/Ctrl + Shift + C),临时编辑CSS属性,隐藏显示作者信息,然后批量复制黏贴论文题目保存到paper.list文件
在pdf.list文件所在目录执行
wget -c -U definitely-not-wget -P ../ -i pdf.list
- -c 断点续传,避免重复下载,如果下载过且完整则跳过,如果下载过不完整则继续下载
- -U definitely-not-wget 指定users-agent 不指定arxiv.org 会报403错误
- -i 指定批量pdf下载地址url的文件,即pdf.list
- -P ../ 指定下载目录,为了方便文件管理,区分脚本和下载下来的pdf文件,指定pdf下载到上一级目录,如果不指定,就在当前目录下载
pdf.list文件大概是这个样子的:
http://arxiv.org/pdf/1908.02265v1
http://arxiv.org/pdf/1905.10630v1
http://arxiv.org/pdf/1908.10553v1
http://arxiv.org/pdf/1902.03245v1
http://arxiv.org/pdf/1906.05909v1
http://arxiv.org/pdf/1909.04630v1
http://arxiv.org/pdf/1907.03395v2
http://arxiv.org/pdf/1909.02466v1
http://arxiv.org/pdf/1909.03951v1
http://arxiv.org/pdf/1906.02830v1
wget 直接下载下来之后文件名就是这样的
1908.02265v1
1905.10630v1
1908.10553v1
1902.03245v1
1906.05909v1
1909.04630v1
1907.03395v2
1909.02466v1
1909.03951v1
1906.02830v1
根据需要,可以进行批量重命名,比如GUI工具gprename,krename
在ipython中执行
%run get_arxiv.py
在等待10s的时候,或者开始下载之前ctrl+c 暂停程序回到ipython开始play around
查看内存中的所有变量
whos
核心变量是pandas的Dataframe表,df_paper
df_paper.loc[5]
常用到的columns有:
- title: 论文题目
- paper_name: 论文列表名称
- arxiv_url: 下载地址
- name_title_match_ratio: 论文列表名称和论文题目单词相似度
本文中检索arxiv.org 网站使用的是lukasschwab的 arxiv工具包
检索得到的结果存在变量paper中,paper是Dict字典类型,df_paper中的某条记录df_arxiv就是直接对这个字典直接转换(Dict to DataFrame)得到的
df_arxiv = pd.DataFrame([paper])
然后再把这条记录update更新到df_paper表
df_paper = df_paper.combine_first(df_arxiv)
如果update失败,那就是检索到的paper字典里面包含的项目columns比主表df_paper多,那么要合并这些新的columns并且更新记录
unique_arxiv_set = set(df_arxiv.columns) - set(df_paper.columns)
df_paper = df_paper.join(df_arxiv[unique_arxiv_set])
初始化df_paper表的时候,是根据接受论文名字列表paper.list生成的
df_paper = pd.read_csv("paper.list",names=['paper_name'],sep='=')
总的来说主表df_paper比字典paper多一个项目columns['paper_name']
后面的题目相似度name_title_match_ratio就是计算df['paper_name']和df['title']的相似度
如果使用arxiv工具包中的下载工具arxiv.download那么就要通过df_paper还原字典paper,直接对某条记录进行DataFrame to Dict转换就可以了
for idx in df_paper.index:
paper = df_paper.loc[idx].to_dict()
arxiv.download(arxiv_paper)
主表df_paper中包含了关于paper的全部信息,查询/操作这个表就能轻易的生成任何我们想要的结果
如果想要补充关于paper的信息,可以直接向这个表添加项目(columns)即可
f = open("nips2019_preview.txt", "a")
for idx in df_paper.index:
print(df_paper['paper_name'][idx],file=f)
if df_paper['name_title_match'][idx]:
print(df_paper['pdf_url'][idx],file=f)
print('',file=f)
f.close()
或者更加随意的写法
for idx in df_paper.index:
print(df_paper['paper_name'][idx],file=open("nips2019_preview.txt", "a"))
if df_paper['name_title_match'][idx]:
print(df_paper['pdf_url'][idx],file=open("nips2019_preview.txt", "a"))
以上,
这些信息希望对大家有用,如果还有什么需求,或者还有什么需要说明的,可以发issue,我会尽量快速的回答。
Have fun.