前一段时间利用大名鼎鼎的DBLP数据集做关于论文合作关系推荐的实验,感觉确实是一个非常不错的数据集,可挖掘的东西很多很多,在此对DBLP及其用法做一个简单介绍。

简介

DBLP——Digital Bibliography & Library Project的缩写。这里是DBLP的主页

DBLP是计算机领域内对研究的成果以作者为核心的一个计算机类英文文献的集成数据库系统,按年代列出了作者的科研成果。包括国际期刊和会议等公开发表的论文。DBLP没有提供对中文文献的收录和检索功能,国内类似的权威期刊及重要会议论文集成检索系统有C-DBLP。

这个项目是德国特里尔大学的Michael Ley负责开发和维护。它提供计算机领域科学文献的搜索服务,但只储存这些文献的相关元数据,如标题,作者,发表日期等。和一般流行的情况不同,DBLP并没有使用数据库而是使用XML存储元数据。

DBLP在学术界声誉很高,而且很多论文及实验都是基于DBLP的。所收录的期刊和会议论文质量较高,也比较全面。(我刚才看了下,已经大致集成2.1 million的文章,也包含了很多计算机科学研究者的主页连接。)文献更新速度很快(现在是2013年10月28日,系统显示最后一次更新是2013年10月27日。可见更新之快),能很好地反应了国外学术研究的前沿方向。

官网发了这篇文章,对DBLP做了详细解释。

另外,DBLP数据开放免费,版权和许可在这。

提供的服务

DBLP的支持团队基于DBLP数据做了很多工作。提供各种搜索、统计等服务,并提供了API和可下载数据集。这里有些有意思的统计数据,并用google chart tool做了可视化处理。例如:出版物类型分布,每个期刊或会议的作者数,每年论文数目,每个作者的合作者数目,并且每年、每月都会做些全局数据统计。

DBLP的API

DBLP数据文件1G多。假如不需要所有数据或者对获取数据速度没较高要求的话,可使用它的API。这里官网发了篇文章,里面解释了BDLP的基础API以及用法,还有几个例子(java、C)。有个是经典的“两个作者在合作网络上的最短路径”。

我这里列几个比较可能会用到的

  • 列出所有合作者:http://dblp.uni-trier.de/pers/xc/t/Tang:Jie(不好意思,这里是唐杰老师的名字。) 
    请求格式:倒数第二个参数是姓的首字母。倒数第一个参数是姓:名。(老外名字也是,Harry Potter,请求参数为p/Potter:Harry) 
    返回格式:

      <coauthors author="Jie Tang" urlpt="t/Tang:Jie"><author urlpt="a/Abbeel:Pieter" count="4">Pieter Abbeel</author><author urlpt="a/Aberer:Karl" count="1">Karl Aberer</author><author urlpt="a/Anderson:Steven_J=" count="1">Steven J. Anderson</author>...</coauthors>
    

    注意:urlpt是DBLP用来标识唯一作者的。第二级节点包括合作者的urlpt和合作数目。

  • 获取论文详细信息:http://dblp.uni-trier.de/rec/bibtex/key.xml 
    请求格式:最后一个参数key为论文在DBLP中的唯一标识,例如:http://dblp.uni-trier.de/rec/bibtex/journals/dke/TangCKW13.xml(不好意思又是唐老师大作)。 
    返回格式:

      <dblp><article key="journals/dke/TangCKW13" mdate="2013-10-17"><author>Jie Tang</author><author>Ling Chen</author><author>Irwin King</author><author>Jianyong Wang</author><title>Introduction to Special section on Large-scale Data Mining.</title><pages>355-356</pages><year>2013</year><volume>87</volume><journal>Data Knowl. Eng.</journal><ee>http://dx.doi.org/10.1016/j.datak.2013.05.001</ee><url>db/journals/dke/dke87.html#TangCKW13</url></article></dblp>
    

    注意:article的key唯一标识该文章,journals表示期刊,dke表示期刊名,(一般是期刊名首字母) 
    其他字段很明显了,不解释。

  • 搜索作者:http://dblp.uni-trier.de/search/author?author=Tang(HTML格式)http://dblp.uni-trier.de/search/author?xauthor=Tang(XML格式) 
    请求格式:author或者xauthor后面加搜索内容 
    返回格式:模糊匹配到的作者列表

      <authors><author urlpt="=/=Fayuan=:Kuo=Ming_Tang">Kuo-Ming Tang (Fayuan)</author><author urlpt="b/Basar:Tang=uuml=l_=Uuml==">Tangül Ü. Basar</author><author urlpt="b/Berre:Tanguy_Le">Tanguy Le Berre</author><author urlpt="b/Boespflug=Tanguy:Odile">Odile Boespflug-Tanguy</author><author urlpt="b/Bohnuud:Tanggis">Tanggis Bohnuud</author><author urlpt="b/Boyland:John_Tang">John Tang Boyland</author>...</authors>
    
  • 搜索某作者所有论文:http://dblp.uni-trier.de/pers/xk/urlpt 
    请求格式:http://dblp.uni-trier.de/pers/xk/t/Tang:Jie 
    返回格式:文章列表。给出的是dblpkey,即论文在DBLP中的唯一标识。

      <dblpperson name="Jie Tang"><dblpkey type="person record">homepages/t/JieTang</dblpkey><dblpkey>journals/dke/TangCKW13</dblpkey><dblpkey>journals/icl/BournakaTLL13</dblpkey><dblpkey>journals/jcst/TangTLLGG13</dblpkey><dblpkey>journals/joi/HeDTRB13</dblpkey><dblpkey>journals/kais/WangTFCTY13</dblpkey><dblpkey>journals/kbs/WangLZST13</dblpkey>...</dblpperson>
    

DBLP可下载数据集

下载地址在这 。

其中:dblp.xml是我们需要的数据集。dblp.dtd是格式说明文件。解析的时候和前者放在一 起。

dblp.xml文件格式:除标签外的一级标签有:Article,inproceedings, proceedings, book,incollection, phdthesis, mastersthesis ,www

我对DBLP的处理

语言:Python

工具:SAX解析包(专门处理xml文档。Python的一个类库)

SAX解析代码:

sax是一个基于事件流的xml解析工具,边读文件边解析,好处是无内存限制,可以解析处理较大的xml文件。其代码如下。

from xml.sax import handler, make_parser
paperTag = ('article','inproceedings','proceedings','book','incollection','phdthesis','mastersthesis','www')
class mHandler(handler.ContentHandler):def __init__(self):def startDocument(self):print 'Document Start'def endDocument(self):print 'Document End'def startElement(self, name, attrs):print 'Element start'def endElement(self, name):print 'Element end'def characters(self, content):print contentdef parserDblpXml():handler = mHandler()parser = make_parser()parser.setContentHandler(handler)f = open(DBLP_XML_PATH,'r')parser.parse(f)f.close()if __name__ == '__name__':parserDblpXml()

简单总结

总的来说,DBLP集成元素不多,只有最基本的论文题目,时间,作者,发表类型及期刊或会议名称等等。可能很多人想要的标签、关键词都没有。但是,基于DBLP数据集这些基本的元素,可以挖掘、利用的也是很多。例如官网给出的统计信息,就能引申出很多东西。

涉及到DBLP,我能一下想到的关键词:经典的复杂网络,小世界,无标度,合作关系网,关系推荐,聚类,连接预测,随机游走,中心作者分析,作者影响力分析,研究热点发展等等,非常多。因此,DBLP是个很丰富宝贵的资源。

整理的有点乱,也不全面。仅作参考。欢迎补充、共享。

本文转载自:http://zchen.co/posts/2013-10-28-dblp-introduction.html

DBLP数据集简介及简单用法相关推荐

  1. Spring AOP 简介以及简单用法

    Spring AOP 简介以及简单用法 如果你去面试java开发, 那么Spring的AOP和DI几乎是必问的问题. 那么AOP是什么呢? 一. AOP 所谓Aop就是 Aspect-Oriented ...

  2. HttpServlet类简介和简单用法

    一, servlet 的三种模式 1.1 实现servlet 接口 如果1个类要实现servlet接口.则要重写如下所有方法: void destroy()ServletConfig getServl ...

  3. Java 缓冲流简介及简单用法

    在java编程中, 我们有时会听到缓冲流和原始流等字眼. 其实在之前的博文中, 提到过流可以分为原始流和处理流. http://blog.csdn.net/nvd11/article/details/ ...

  4. Java Iterator 接口简介和简单用法.

    Iterator 的中文意思是迭代器. 单单从中文翻译也不易理解迭代器的意思啊,  其实Iterator是1个接口,  它的作用就是遍历容器的所有元素. 一, Iterator 接口简介 Iterat ...

  5. 数据库学习笔记---connect by的简单用法

    connect by的简单用法 技术qq交流群:JavaDream:251572072  教程下载,在线交流:创梦IT社区:_______以前的网站现在不弄了,抱歉  ---------------- ...

  6. knockout.js的简介和简单使用

    1.knockout简介 knockout是一个轻量级的UI类库,通过MVVM模式使JavaScript前端UI简单化 knockout有四大重要概念: 1)声明式绑定:使用简明移读的语法很容易地将模 ...

  7. DBLP数据集用weka数据挖掘 xml转csv格式文件

    DBLP数据集用weka数据挖掘 xml转csv格式文件 写在前面 xml转csv格式文件 数据预处理 weka数据挖掘 写在前面 之前做了中国科学院大学的一门研讨课<数据挖掘技术与应用> ...

  8. fer2013人脸表情数据集简介

    fer2013人脸表情数据集简介 fer2013人脸表情数据集由35886张人脸表情图片组成,其中,测试图(Training)28708张,公共验证图(PublicTest)和私有验证图(Privat ...

  9. CNN表情识别系统制作(1)----fer2013人脸表情数据集简介

    fer2013人脸表情数据集简介 fer2013人脸表情数据集由35886张人脸表情图片组成,其中,测试图(Training)28708张,公共验证图(PublicTest)和私有验证图(Privat ...

最新文章

  1. OSI七层 TCP/IP四层 TCP/IP协议栈: 不同的通信协议的大集合
  2. 健身励志——肌肉不经锤炼不会增长
  3. python语言程序设计2019版第二章课后答案-《python语言程序设计》_第二章编程题...
  4. 题目1165:字符串匹配
  5. 完美搞定《DOCKER IN ACTION》第二章示例
  6. j@2ff4f00f_J4F的完整形式是什么?
  7. 找了前锤子CTO钱晨加入SLG ,百度终于认了……新的一年第4批CDN牌照公布;亚马逊开设云计算技术培训工作 | 极客头条...
  8. 2017.9.12 claris的剑 失败总结
  9. grafana入门学习
  10. sts 工具下载与安装
  11. SAP生产模式和计划策略
  12. Android最全UI库合集
  13. Thinkpad T410i-2516A21 安装Ubuntu10.0.4记录
  14. Apple Push Notification service
  15. 银行统一支付平台(介绍、架构)
  16. mysql5.5免安装版教程_mysql 5.5.56免安装版配置方法
  17. 小马的白痴日常2019.12.20
  18. H5常见问题 微信踩过得坑
  19. 基于tauri打造的HTTP API客户端工具-CyberAPI
  20. 【Matlab】关于matlab开启多核并行计算时SPMD测试失败的解决方法

热门文章

  1. RuntimeError: NCCL error in: ../torch/csrc/distributed/c10d/ProcessGroupNCCL.cpp:1123, internal erro
  2. x7系统怎么锁定计算机,CorelDRAW X7如何锁定对象和解锁对象
  3. 【B2G】B2G揭秘:首款完全由HTML构建的开放移动操作系统 [复制链接]
  4. 联通为何不问iphone用户为何拆机
  5. android+显示html内容居中显示图片,Android开发中对HTML内容的显示
  6. PHP:GD库 生成验证码图片
  7. 咸鱼菌CAD实战—绘制圆角矩形
  8. 电子信息工程专业打工人的单片机原理与接口技术课程笔记
  9. YesDev客户通知反馈介绍:如何给甲方客户反馈项目进度?
  10. 使用 jQuery Jcrop 实现图像裁剪