马坤
〔摘 要〕为了提高文献录入效率和准确率,减少录入文献的人工审核,提出一种基于DOI和论文数据库的在线文献元数据获取方法,设计DOI解析代理集成异构的DOI注册代理机构的服务接口,通过RoadRunner算法实现基于论文数据库详情页的文献元数据抽取。最后实现在线文献元数据智能录入系统,验证上述方法的有效性和实用性。
〔关键词〕数字对象标识符;论文数据库;Web信息抽取;网页聚类
为了改善文献录入方式,自动验证录入文献归属,本文结合DOI与论文数据库,提出了一种新颖的在线文献元数据智能获取方法。
1 相关工作
目前,国内外在线文献管理系统中文献获取与录入方法主要有文献题录直接导入、基于DOI的文献题录导入、基于论文数据库网页的题录抓取和论文文件题录抓取等方式[1]。
1.1 文献题录直接导入
文献题录导入方法是指文献管理工具从论文数据库导入文献各项元数据(作者、题目、来源、卷期号、起始页码、摘要等)[1]。该方法一般需要手工从论文数据库将文献题录导出,然后再进行导入。目前部分文献管理工具已经实现文献题录的直接导入,自动检测论文数据库题录格式(EndNote Citation File、Research Information Systems Citation File和BibTex等),无需人工参与。但是,该方法需要论文数据库出版系统提供规范置标的题录可读输出以及相应的API,不同出版系统API又具有异构性,缺乏一个可以共同遵循的标准。
1.2 基于DOI的文献题录导入
DOI是一组由数字、字母或其他符号组成的文献标识符,已经在2012年5月正式被批准成为ISO国际标准[2],覆盖大多数研究领域,具有永久性、惟一性、可解析和互操作性等特征。DOI解析提供了一种由永久惟一的DOI链接到文献元数据和包含文献元数据的网页的符合国际标准化的映射方式[3]。以国外DOI的注册代理机构之一的Cross Ref为例,截止到2012年10月26日,注册DOI数量超过5 679万个[4]。在国内,DOI在数字资源的应用虽刚刚起步,但也成为一种必然趋势[5]。据International DOI Foundation(IDF)统计,中文DOI的DOI注册数量已居全球第二位[6]。截止到2012年10月8日,中文DOI注册总量达到195万,期刊DOI注册数量193万[6]。
DOI注册代理机构为用户提供了游客式或注册式的DOI解析服务,并提供了灵活的API接口。例如,国外DOI注册代理机构Cross Ref为用户提供了文本查询、OpenURL和HTTP等查询方式[7];国内DOI注册代理机构在ChinaDOI.cn网站上为个人用户提供免费的DOI链接解析服务[8]。除此之外,其它DOI注册代理机构,如台湾华艺数位、欧洲mEDRA,也为用户提供了类似的DOI查询接口。DOI普及度以及DOI的查询接口的存在,为在线文献管理系统文献获取和文献录入创造了前提条件。基于DOI查询接口获取文献元数据的实践研究在国内外还刚刚起步,目前支持基于DOI文献题录导入的在线文献管理系统主要有EndNote Web、新科学[9]等。
1.3 基于论文数据库出版系统网页的题录抓取
包含文献元数据的网页通常由后台结构化的论文数据库数据与前台半结构化的网页模板合并而成。从论文数据库出版系统详情页中提取文献元数据的问题则转换为半结构化网页的目标数据抽取问题。
近年来,研究人员和互联网公司开始着手研究网页信息抽取问题。研究者根据Web数据抽取方法的自动化程度,将Web数据抽取方法划分为手工构造和半自动构造数据抽取方法[10]。手工方法是通过观察网页源码,由编程人员找出一些模式,再根据模式编写相应的抽取程序获取目标数据;半自动包装器归纳方法是有监督学习方法,该方法通过从手工标注的网页中集中学习一组抽取规则,然后利用这些规则从具有类似格式的网页中抽取目标数据项。这类方法虽然成功率较高,但是仍需要人工干预。
现有的国内外主流文献管理工具(例如EndNote Web、RefWorks、Zotero、Mendeley等)中的抽取器采用网页题录抓取,抽取器插件需要进行升级或调整,才能适应改版或调整风格后的论文数据库出版系统文献元数据抽取[1]。
论文文件题录抓取是指直接从排版后的论文文件抓取文献题录[1],其原理为解析符合常见出版系统模板的论文源文件(Microsoft Word或LaTeX Style Files)或非图形模式的可打印文件(Portable Document Format或PostScript),从中提取文献元数据。由于论文模板并不统一,该方法文献元数据提取失败率较高,仍需人工干预,更适合作为文献录入的辅助工具。该方法可进一步优化,若从文件中提取到论文DOI,可以同时采用基于DOI的文献题录导入方法作为补充,提高文献元数据提取成功率。目前支持论文文件题录抓取的在线文献管理系统主要有EndNote、Zotero、Mendeley等。
2 文献元数据获取方法
2.1 基于DOI的文献信息获取方法的研究
基于DOI的文献信息获取方法的步骤如下,如图1所示。
①判断待查询文献DOI是否已经在本地DOI文献元数据库内,若存在,则直接从本地库中取出文献元数据返回。
②若待查询DOI不在本地DOI数据库,DOI解析代理模块采用权值轮询调度算法,将查询请求按照负载均衡原则分发到不同DOI注册代理机构提供的查询接口。DOI解析代理以异构的DOI注册代理机构的查询接口为基础,提供支持负载均衡的统一查询服务。
③若从注册代理接口可以查询到文献元数据,则将文献元数据返回,将DOI与文献元数据的映射关系存入到本地DOI数据库。
④若从注册代理接口查询不到文献元数据,则表明有可能DOI与文献元数据的映射关系还未及时同步到查询接口。此时,尝试从DOI单一解析或DOI多重解析的论文数据库详情页抽取文献元数据,具体的方法参见方案第二部分。
2.2 基于论文数据库出版系统的文献信息获取方法的研究 包含文献元数据的论文数据库页面是一个数据详情页,从详情页提取文献元数据的问题转化为一个Web数据抽取的基本问题。基于论文数据库的文献信息获取方法的步骤如下,如图2所示。
①检测论文数据库详情页是否存在模板,若存在,按照详情页模板直接从论文数据库页面中抽取文献元数据。
②若论文数据库详情页没有模板,对详情页进行预处理。使用开源Java JTidy工具库[11]对网页中的HTML标签进行清理,转化为标准的XHTML页面。
③将该详情页放入待识别页面队列。对待识别页面队列的大量页面,按照层次聚类算法[12]进行聚类。若得到每个类别页面(即同模板网页集)数量达到阈值,转步骤④;若同模板网页集数量达不到阈值,则一定时间后进行重试,若重试次数超过阈值,转步骤⑥。
④采用Roadrunner算法[13]寻找同模板网页集的相似点和不同点,在此过程中生成一个没有析取项的正则表达式表示的页面模板,作为Web数据抽取的包装器,实现了无监督自动数据抽取。若Roadrunner算法成功提取出模板,将得到的页面模板存入论文数据库模板库,将抽取到的文献元数据返回;若Roadrunner算法提取模板失败,则等待一定时间后重试,若重试次数超过阈值,转步骤⑥。图1 基于DOI的文献信息获取方法流程图
⑤按照模板抽取论文数据库详情页文献元数据,结束算法。
⑥手工方式标注论文数据库详情页面模板,并将模板存入论文数据库模板库。
3 文献元数据获取实现
3.1 技术架构
根据用户需求,系统采用云端/终端体系架构,如图3所示。用户文献智能录入的终端支持传统的PC或者移动终端(智能手机、平板电脑、笔记本、电子阅读器等)等多种展现方式,在终端录入DOI或者论文数据库的URL,通过云端中的相应服务接口获取到文献元数据,并在用户界面上显示;而云端是提供租用服务的文献智能获取服务接口以及DOI解析器、Web数据抽取器的业务实现。系统业务逻辑位于云端,通过相应的服务接口为不同类型的终端租户提供服务。
3.2 关键技术实现
3.2.1 方案选择器实现
DOI注册代理机构提供了文献DOI的模糊查询,以此可以判断文献是否存在DOI。例如,Cross Ref为个人用户提供了根据文献标题等元数据查询文献DOI的开放接口。
查询接口URL http:∥api.labs.crossref.org/search?q=<文献标题等元数据>
从返回页面中可以提取出该文献的DOI,进而通过DOI解析器获取文献元数据;若提取失败则说明该文献没有DOI,进而从通过论文数据库详情页抽取文献元数据。
3.2.2 DOI解析器的实现
①DOI解析代理图2 基于论文数据库的文献信息获取方法流程图
图3 系统架构
由于文献元数据分散在不同的DOI注册代理机构,设计的DOI解析代理,一方面按照DOI归属(由DOI前缀确定)将请求分散到各自注册代理的解析服务接口。另一方面,DOI解析代理还按照负载均衡原则,分担请求压力,将DOI查询请求分散到不同的镜像服务器。
②DOI查询接口
以DOI注册代理机构Cross Ref提供的查询接口为例。Cross Ref为个人用户提供了开放URL查询接口,通过一组带有相关参数HTTP Get请求可以同时获取到多个DOI的文献元数据。具体Get请求的参数格式如下:
查询接口URL http:∥api.labs.crossref.org/
其中
而中文DOI注册代理,则提供了基于OpenURL的DOI查询服务,接口如下:
http:∥www.chinadoi.cn/openurl.do?pid=wf:wf&id=doi:
DOI解析代理负责将异构的各注册机构DOI解析服务集成在一起。
3.2.3 论文数据库文献元数据抽取器实现
论文数据库详情页XHTML页面可以表示为一个文档对象模型(标签树),即DOM(Document Object Model)树[15]。论文数据库详情页集合聚类转变为标签树的聚类。对于标签树聚类,传统的层次聚类方法[11]能实现比较好的结果。为了描述层次聚类算法,首先给出树编辑距离概念。
标签树A与标签树B的树编辑距离[16]为将标签树A变换为标签树B所需要的最小操作成本,操作集包括节点替换、删除和插入。解标签树编辑距离的问题也就是寻找两棵树的最小代价映射。设两棵树A与B之间的映射为M。在M包含的数据对(i, j)中i,j分别表示标签树A和标签树B的节点元素,令S表示i和j不相同的数据对数量,即需要替换的标签;D表示A中没有出现却在M中的节点,即需要删除的标签;I表示B中没有出现却在M中的节点,即需要插入的标签。则标签树编辑距离D(A,B)=S*p+D*q+I*r,其中p、q、r分别表示替换、删除和插入权值。
本文使用自下而上的合并聚类方法进行聚类,聚类过程从树状图最底层开始,每一次通过合并最相似(距离最近)的聚类来形成上一层聚类。整个过程当全部数据点都合并到一个聚类(根节点聚类)时停止,得到各类同模板网页集。基于树编辑距离的合并层次聚类算法描述如下:
将待聚类的N个网页分别标号0,1,…,n-1,D=[d(i,j)]表示N*N的树编辑距离矩阵,记L(k)表示第k个类所处的层次,类r与类s距离记为d[(r),(s)]。
(1)初始化共有N个类,每个类由一个网页标签树构成。令m=0,L(m)=0;
(2)在D中寻找最小距离d[(r),(s)]=min(d[(i),(j)]);
(3)将两个类r与s合并为新类(r,s),令m=m+1,L(m)=d[(r),(s)];
(4)更新距离矩阵D,将表示类r与s的行列删除,同时加入表示新类(r,s)的行和列,同时定义新类(r,s)与旧类k的距离为d[(k),(r,s)]=min(d[(k),(r)],d[(k),(s)]);
(5)反复步骤2-4,直到所有网页标签树合并成一个类为止。
经上述聚类算法后,论文数据库详情页分成了多簇,对于得到的每类同模板网页集执行Roadrunner算法[12]生成一个正则表达式作为网页模板。具体算法如下:
在同模板网页集中随机取一张网页作为正则表达式表示的模板W;W通过顺序与其余每个网页pi的HTML匹配而被提纯。算法通过通过深度遍历标签树寻找模板W和网页标签树pi的失配来泛化模板W。一个失配发生在pi的一些标签与模板语法不匹配的时候,存在以下两种失配:
(1)文本元素失配,表示为文献数据域或数据项;
(2)标签元素失配,表示为可选数据项;或者是一个迭代器(重复出现的模式列表)。在这种情况,一个失配发生在一个重复出现的模式的开头以及一个列表的结尾。找到失配为止的最后标志并从包装器和网页pi中通过向前搜索识别一些候选的重复模式。随后它比较这些候选模式和网页pi上方部分确认。
3.2.4 云端服务租用接口实现
服务接口实现采用二进制Web服务协议Hessian[17]用于数据传输。云端服务器提供DOI解析器和论文数据库抽取器服务租用接口IService,如表1。其中doiExtract为根据DOI获取单个或批量DOI的文献元数据接口,而paperExtract为根据论文数据库URL获取单个或批量DOI的文献元数据接口。表1 服务层DOI解析器和论文数据库文献元数据
抽取器租用服务接口IService
服务接口参 数返回值doiExtractdoi:String文献元数据MetaLiteraturedoiExtractdois:List
本文实验环境为:CPU为2*28GHz,内存8G,100M网络出口带宽。首先,对DOI解析器进行测试。由于DOI解析器的结果来自DOI注册代理机构查询接口,该接口的数据又来自DOI官方注册库。因此,在网络畅通情况下,通过DOI获取文献元数据查准率趋近100%。由于DOI解析代理采用负载均衡,该方法可以有效的分担查询压力。该方法成功用于济南大学研究生导师遴选系统中导师论文成果的录入,大大提高文献录入的效率和准确率。通过DOI方式录入的文献,通过匹配获取到的文献元数据作者和单位信息,实现录入文献的自动审核。
其次,对论文数据库文献元数据抽取器进行测试。首先选用ACM、Elsevier Science Direct、Wiley InterScience、Springer Link、IEEE Xplore、CiteSeerX、中国知网、万方数据8个常用论文数据库,各从每类数据库随机选取50张论文详情页,对详情页XHTML源码进行清理预处理。然后将上述400个URL打乱顺序,测试自动学习网页模板的能力。经测试,基于标签树编辑距离的层次聚类算法准确得到8个分类,符合实际情况,这主要是因为不同模板论文数据库详情页标签树差别较大的原因。使用Roadrunner算法对每类同模板网页集计算网页模板,其查准率和查全率如表2。系统检测到论文数据库网站改版后(即模板发生变化),根据已有的论文数据库详情页分类,会自动重新计算其网页模板,真正实现零干预。表2 RoadRunner算法8个论文数据库文献元数据抽取实验结果
论文数据库查准率%查全率%ACM855899Elsevier Science Direct795773Wiley InterScience857844Springer Link824863IEEE Xplore693751CiteSeerX892883中国知网756783万方数据882867平 均819833
RoadRunner算法认为网页是由标签和字符串组成,当字符串中又含有标签的时候,查准率和查全率明显降低。IEEE Xplore正式因为这个原因,查准率和查全率较低。对于该类论文数据库进一步可以借助人工标注模板规则,来辅助提高查准率和查全率。
最后,终端客户端增加了移动支持,原型系统文献录入界面如图4。通过智能移动终端,用户可以选用通过输入DOI或者论文数据库URL方式获取文献元数据。
图4 同时支持智能移动终端的原型系统文献智能录入界面
5 结 语
DOI解析提供了一种由永久惟一DOI标识符到文献元数据的符合国际标准的映射方式,研究并实现根据DOI自动获取文献元数据的方法,可大大提高文献录入的效率和准确率。对于没有DOI的文献,从论文数据库出版系统详情页自动抽取文献元数据是另一种文献智能录入方法,作为DOI文献录入方式的补充,该研究对Web数据抽取方法的研究有着重要的推动意义。本文研究并实现基于DOI和论文数据库的在线文献元数据智能获取方法可以用于文献智能录入,该方法可以与已有的科研成果管理系统进行结合,实现论文成果的自动审核。
参考文献
[1]赵飞.常用文献管理软件功能比较[J].现代图书情报技术,2012,28(3):67-72.
[2]International DOI Foundation,ISO 26324:2012,Information and documentation—Digital object identifier system[S].Switzerland:International Organization for Standardization,2012.
[3]谷琦.数字对象惟一标识DOI的应用研究[J].现代情报,2009,29(5):73-76.
[4]CrossRef.CrossRef Indicators[EB/OL].http:∥www.crossref.org/01company/crossrefindicators.html,2012-10-26.
[5]徐健.Handle System在中文DOI系统中的应用[J].现代图书情报技术,2008,24(9):16-20.
[6]中国科学技术信息研究所.中文DOI注册统计信息表[EB/OL].http:∥www.chinadoi.cn/portal/Doisum.htm,2012-10-08.
[7]CrossRef.CrossRef Query Services[EB/OL].http:∥www.crossref.org/requestaccount,2012-10-26.
[8]中国科学技术信息研究所.DOI自动化接口[EB/OL].http:∥www.chinadoi.cn/portal/newsAction!help.action?type=4,2012-10-26.
[9]钱俊斌.一种基于互联网Web20平台构建的在线文献管理系统:中国,CN2010105111873[P].2011-03-16.
[10]Chang Chia-Hui,Kayed Mohammed,Girgis Moheb Ramzy,Shaalan Khaled.A Survey of Web Information Extraction Systems[J].IEEE Transactions on Knowledge and Data Engineering,2006,18(10):1411-1428.
[11]Dave Raggett,Andy Quick.Java HTML Tidy Project[EB/OL].http:∥jtidy.sourceforge.net,2009-12-01.
[12]Bing Liu,Web Data Mining:Exploring Hyperlinks,Contents,and Usage Data[M].New York:Springer,2011:147-150.
[13]Valter Crescenzi,Giansalvatore Mecca,Paolo Merialdo.RoadRunner:Towards Automatic Data Extraction from Large Web Sites[C].Proceedings of the 27th International Conference on Very Large Databases,2001:109-118.
[14]Jonathan Hedley,jsoup:Java HTML Parser[EB/OL].http:∥jsoup.org,2012-09-23.
[15]W3C.Document Object Model(DOM)[EB/OL].http:∥www.w3.org/DOM,2009-01-06.
[16]Stanley MSelkow.The tree-to-tree editing problem[J].Information Processing Letters,1977,6(6):184-186.
[17]Daniel Gredler.Java Remoting:Protocol Benchmarks[EB/OL].http:∥daniel.gredler.net/2008/01/07/java-remoting-protocol-benchmarks,2012-10-26.
(本文责任编辑:马 卓)