APP下载

一种适合大批量期刊元数据自动化提取的程序设计

2016-03-30毛善锋

中国科技期刊研究 2016年10期
关键词:窗体预置单元格

■冯 民 毛善锋

1)河北科技大学学报编辑部,河北石家庄市裕华东路70号 050018

2)《东南大学学报(自然科学版)》编辑部,南京市四牌楼2号 210096

当前,有关科技期刊元数据提取方面的研究已有一些研究成果[1_6],相关技术和产品也已较为成熟。例如,文献[1]提供一种为提取DOI数据而在排版模板中预置标签的方法,这种方法相对来说提取的元数据结果最准确,只是要求相关人员对排版软件有一定的了解。文献[2]提出利用VB读取方正排版文件以提取元数据,但技术相对复杂。文献[3]提出在程序中预置两个刊物的定位标签,使用Excel VBA从方正fbd小样文件中提取元数据,其要求人工先选择一些符号,预置为定位标签。

本文提出了一种用Excel VBA进行期刊元数据自动提取的程序设计,理论上可实现任意数量期刊元数据的提取。程序的创新之处在于无需预置定位标签,而是在元数据提取程序运行过程中,在人工辅助下,由程序根据预置规则自动确定定位标签。本文的研究适用对象是单刊或期刊集团、集群,期望为批量期刊元数据的提取提供一种减轻人工劳动、提高数据采集效率的新思路。

1 程序整体架构设计

本文的思路是,利用Excel打开fbd等类型的文件后,所有的数据都按顺序处于第1列单元格内(有时个别数据在第2列)[3],根据不同的元数据前后有不同的“〖”、“〗”、“[”、“]”等符号对及特殊文字,由程序采集,作为定位标签使用,然后程序根据定位标签进行元数据的定位和提取。最后,将提取的数据进行处理,提供数据下载功能。

期刊元数据的提取程序流程如图1所示,其各步骤的功能介绍如下。

图1 数据提取流程图

Step1:获得期刊名。程序开始后,首先弹出用户窗体(见图2),各部分实现的功能如下。

图2 用户窗体

a)下拉列表。用户窗体的初始化程序自动从“期刊名录.txt”文件中提取期刊名,赋值到下拉列表中。点击下拉列表中的刊名,则会出现在列表框中;直接在列表框中输入刊名亦可。容错机制:若打开“期刊名录.txt”出错,则先建立文件,此时列表会显示为空。

b)确定。对应图1中的“选择期刊”。点击后程序会将在列表框所获取的期刊名与“期刊名录”中的期刊名逐一进行对比,若已有此期刊则置isNewJournal为False;若 “期刊名录”中没有,则置isNewJournal为“True”。若没有选择期刊而点击“确定”,则程序提示“还未选择期刊”。

c)取消。对应图1中的“取消”。弹出“警告”对话框,提示已取消操作,并终止程序。

d)新增。对应图1中的“新增期刊”。点击“新增”后,弹出输入对话框,提示输入刊物名称。若输入为空时点击确定或点击取消则返回到用户窗体;若输入的内容经比对是新增刊名,则在“期刊名录.txt”中增加期刊名称,并置 isNewJournal为“True”;若“期刊名录”中已有此刊名,则弹出对话框,提示是否重新确定定位标签,选择是则置isNewJournal为“True”,但不存入期刊名录,选择否则置isNewJournal为False。可将“期刊名录”中的期刊名和新增期刊名在Excel表中排序,然后再写入,这样显示在用户窗体的下拉列表中的期刊名就是按序排列的了。

Step2:载入fbd数据。利用“打开”对话框获得fbd文件名及路径,用Excel打开、载入fbd数据。

Step3:确定定位标签。由人工辅助点击元数据所在的单元格,程序就会自动确定定位标签,并存入一个以期刊名命名的纯文本文件中,如河北科技大学学报.txt。

Step4:读取定位标签。根据从用户窗体所获得的期刊名,从当前路径下对应的txt文件中读取定位标签。若打开出错,则转到Step3。

Step5:提取、处理元数据。进行元数据的提取和处理。

Step6:下载数据。在数据提取完毕后,对数据进行处理,满足诸如勤云采编系统所需的Excel数据表,或者COAJ所需的Excel数据表等的下载,再者,可考虑增加不同格式的下载功能。

以上流程中,所涉及的编程技术已较为成熟,这方面本文不再赘述。因为Step3是由程序确定定位标签,其准确与否直接关系到元数据提取的正确性,是编程的关键点和难点,故下文只阐述由程序确定定位标签这方面的内容。

2 程序确定定位标签的设计

2.1 原理分析

本文认为,定位标签的提取类似于元数据的提取,即定位标签只不过是一种特殊的数据,故而可以在用户的辅助下,由程序依据一定的规则采集。

观察可见,多数期刊中各篇论文的格式、体例至少在一期中是基本一致的,即各篇论文的相同项元数据的定位标签是基本相同的,这就为程序确定定位标签提供了条件。由载入Excel中的方正fbd小样文件可知,几乎每一项元数据的开始和末尾都有一些标志性的、与正文内容没有重合的符号,有的元数据前还有特殊的文字字符,如“摘要”“关键词”等,故定位标签的确定主要是程序对这些特殊文字和“〖”、“〗”以及“[”、“]”符号的判断和提取。

2.2 程序设计

2.2.1 设计思路

自动化采集定位标签的程序设计说明如下。

(1)尽量全面的考虑元数据项目

将这些元数据以及某些特殊数据(如“首页页眉”)的中文名称赋值给一个一维数组,如

示例中有21个数据,这些数据项目可根据需要增减、调整。

(2)循环采集定位标签

按上述一维数组的下标顺序,由程序弹出对话框(见图3),提示用户点击某个元数据(如题名)所在的单元格,用户可根据具体情况选择是、否、取消,对应的后续处理程序分别是采集定位标签、再等3秒以待选中单元格和取消此项数据的采集;循环上述步骤,即可采集所有元数据的定位标签。程序在采集定位标签的同时,还采集定位标签所在的行号,以便按元数据实际出现的顺序排序,最后可将排序后的定位标签写入以期刊名命名的txt文件。

图3 程序提示、人工点击单元格示例

说明:1)为了准确切分稿件,首页页眉需与其他页眉不同。2)定位标签排序后存储的目的是按顺序定位、采集元数据。不同的期刊其定位标签出现的顺序可能不同,但都是按照先后出现的顺序存储的。

图4显示的是《河北科技大学学报》的定位标签。因为是txt文件,故可以复制、移动,另外,也可以在必要时编辑txt文件里的定位标签。

图4 定位标签示例

2.2.2 定位标签采集过程中的关键子程序

(1)在采集定位标签的循环过程中,一个重要的子程序是要确定用户已选中单元格,这是程序采集定位标签的前提,其主要程序语句如下。

(2)另一个重要的子程序是在用户选中单元格后,程序如何自动确定定位标签。对于元数据前有特殊字符作为先导的,如前面有“文章编号”“doi”,“摘要”等,依靠特殊字符进行定位标签的提取;对于无特殊字符作为先导的,如“题名”“作者姓名”“单位”等,则进行另外的统一设计。限于篇幅,本文只给出“统一设计”部分的程序以供参考。

3 结语

本文提出了利用Excel VBA在程序运行过程中确定元数据的定位标签继而采集元数据的思路,一般只需在首次提取某个刊物元数据时进行定位标签的采集,其后不必重复采集。这种方式可在较大程度上降低对人员的技术要求,减轻人工劳动,实现批量期刊自动化数据提取。对几种刊物的初步测试表明,该方法能较准确地采集定位标签,较好地实现元数据的提取,证明这种方法有一定的可行性。此种方法理论上可满足任意数量期刊元数据提取的需要。

本文不足之处是,针对首页页眉与其他页眉相同、排版较为特殊(如题名、作者姓名、单位等在同一个单元格内)、个别元数据定位标签与其他不同(如某篇文章题名的定位标签与其他篇的不同)等等情况还不能进行有效的数据提取。今后,除针对上述问题进行深入研究外,还需对更多期刊进行测试,以发现问题、改进程序。

[1]毛善锋,田杰,张莞.预置XML标签 定制DOI元数据[J].科技与出版,2009(11):14_16.

[2]杨海亮,徐用吉.利用 VB读取方正排版文件提取元数据[J].中国科技期刊研究,2015,26(6):612_617.

[3]冯民,高绍强.用excel宏程序提取fbd期刊数据的简易编程[J].中国科技期刊研究,2015,26(9):969_974.

[4]李朝光,张铭,邓志鸿,等.论文元数据信息的自动抽取[J].计算机工程与应用,2002(21):189_191.

[5]狄涤,周竞扬,潘金贵.基于规则的 HTML文档元数据提取[J].计算机工程,2004,30(9):85_86.

[6]郭志鑫.基于本体的文档引文元数据信息抽取[J].微计算机信息,2006,22(18):304_306.

猜你喜欢

窗体预置单元格
合并单元格 公式巧录入
流水账分类统计巧实现
基于排队论的水下预置反舰导弹部署优化
玩转方格
玩转方格
试谈Access 2007数据库在林业档案管理中的应用
基于Qt的多窗体快速并行图形绘制方法研究
可预置工作点脉动直流工况电感测量仪研制
多级网络物资预置—前送模型及改进布谷鸟搜索算法研究
预置缝线减张缝合法预防低位直肠癌术后吻合口瘘效果观察