python实现arxiv论文数据解析处理

        今天搞了一个小项目,就是从网络上爬取下来了一些arxiv论文数据,然后想着后面对这些数据进行建模处理,然后实现论文的主题分类,早上完成了arxiv论文数据爬虫,也从网上爬取下来的需要的论文数据,截图如下:
 

python实现arxiv论文数据解析处理_第1张图片

        一共是六个大类别,这里面数据格式比较奇怪,需要用到一个叫做shelve的第三方库才能完成数据的读取操作,这里的目的是将这些不可以直接使用的数据转化为json数据对象,然后存储本地,内容很简单,这里就不再多解释了,具体实现如下:

#!usr/bin/env python
#encoding:utf-8
from __future__ import division


'''
__Author__:沂水寒城
功能: 论文数据处理
'''

import os
import json
import shelve


#论文类别数据列表
category_list=['q-fin_2018-1-1','cs_2019-3-25','econ_2017-1-1','eess_2019-3-25',
               'math_2019-3-25','stat_2019-3-25']


def dataProcess(dataDir='data/',saveDir='json/'):
    '''
    加载原始数据,存储为json格式
    '''
    if not os.path.exists(saveDir):
        os.makedirs(saveDir)
    for one_cate in category_list:
        one_cate_path=dataDir+one_cate
        one_json_path=saveDir+one_cate+'.json'
        data=shelve.open(one_cate_path,protocol=2)
        print 'data_num: ',len(data.keys())
        res_dict={}
        for one_key in data:
            res_dict[one_key]={}
            one_data=data[one_key]
            one_author,one_id=one_data['author'],one_data['id']
            one_sub,one_title=one_data['subject'],one_data['title']
            print 'one_author: ',one_author
            print 'one_id: ',one_id
            print 'one_sub: ',one_sub
            print 'one_title: ',one_title
            res_dict[one_key]['author']=one_author
            res_dict[one_key]['subject']=one_sub
            res_dict[one_key]['title']=one_title
        with open(one_json_path,'w') as f:
            f.write(json.dumps(res_dict))



if __name__=='__main__':
    print 'paperHelper!!!'
    #将原始不可读的数据解析处理为json对象
    dataProcess(dataDir='data/',saveDir='json/')

    

       经过处理后,结果数据截图如下:
 

python实现arxiv论文数据解析处理_第2张图片

     我们打开eess_2019-3-25.json数据对象内容数据截图如下:
 

python实现arxiv论文数据解析处理_第3张图片

你可能感兴趣的:(编程技术)