一种在EI中论文查收结果快速处理的方法

2011-04-12 08:14王英春范红月
科学之友 2011年5期
关键词:字符串脚本条目

王英春,范红月

(大连海事大学图书馆,辽宁 大连 116026)

美国《工程索引》(The Engineering Index,简写 EI),1884年由美国工程信息公司(Engineering Information Inc·)创办,是一个主要收录工程技术期刊文献和会议文献的大型国际权威检索系统。《EI》发展至今,已有4种版本,即印刷版、光盘版、联机版和网络版。EI网络版数据库是目前全球最全面的工程检索二次文献数据库,文献来源于5 100多种工程类期刊、会议论文集和技术报告、数据库涵盖工程和应用科学领域的各学科。网上可以检索到1969年至今的文献,数据库每周更新数据,以确保用户可以跟踪其所在领域的最新进展。

大学教师发表论文的情况,在一定程度上反映了学校的科研实力和技术水平,尤其是被世界一些著名检索系统所收录的论文,其数量和质量更是衡量学校科研、学术实力的重要标志之一。许多院校和科研单位在每年年终时都要检索以本单位为第一作者单位发表的论文被Ei收录的情况,以此来客观评价大连海事大学的科研水平及发展状况,为单位领导了解、掌握本单位的科研能力、修订长期科研发展规划提供参考和决策的依据。

在实际检索中必须通过机构名称(Author Affiliation)进行检索,其检索结果过于冗长,包含很多不需要的条目。常规的做法是人工检查,逐条删除多余的条目。面对数百篇甚至数千篇的论文检索数据,如果由人工进行处理,通常需要数天时间,劳动强度极大,而且极易因为检索人员的疲劳造成漏删和误删的结果。笔者在对检索处理工作进行分析研究的基础上,研究出了一种检索数据自动处理方法,并运用了一种常见的文件编辑软件UltraEdit所具有Java脚本执行功能。通过编写脚本程序,实现了检索条目自动删除冗余信息、添加论文编号以及格式排版功能,极大地提高了论文检索结果处理的速度和质量。

文章的方法是,从EI检索到所查文章,选中后,以Plaint text format(ASCII)格式下载,并以.txt格式进行保存,然后用文本编辑器UltraEdit打开该文件,UltraEdit是一套功能强大的编辑器,能够满足大多数的编辑需要,支持用户用Java指令编写所需的脚本。下面分别介绍自动删除特定条目和添加论文标号及格式排版的实现。

1 删除特定条目的实现

Ultra Edit的脚本通过嵌入的JavaScript引擎启用。这允许用户在享受完整JavaScript语言的强大和灵活的同时使用以下指定的命令与编辑器(应用程序对象命令)和在编辑器中打开的文档(文档对象命令)进行特别交互。在一个Ultra Edit的脚本中Ultra Edit.active Document所对应的就是当前打开的文档,所有的操作针对该文档完成。通过该文档对象支持的find功能和deleteLine功能即可实现特定条目的删除。下面以删除全部检索结果中Corresponding author这个条目为例来详细介绍,流程图见图1。其简要说明:①通过编写代码定义对应Corresponding author条目的字符串Str;②通过Ultra Edit.active Document对象的top函数将处理开始位置置于文档起始行;③进入循环处理来删除全部包含Corresponding author的条目;④循环中搜索过程首先利用Ultra Edit.active Document对象find Replace子对象的find函数寻找包含Corresponding author字符串的行;⑤再通过if语句判断Ultra Edit.active Document对象的isFound函数返回值是否为真,如果为真,就代表找到了包含Corresponding author字符串的行;⑥通过Ultra Edit.active Document对象的delete Line函数删除该行;⑦通过Ultra Edit.active Document对象的top函数返回文档的起始行,重新开始搜索。需要注意的是第⑦步骤中代码非常重要,如果不返回起始行而继续往下搜索的话就会导致删除行不正确。如果if语句判断Ultra Edit.active Document对象的isFound函数返回值为假,则表示文档中已经没有包含Corresponding author字符串的行,执行else语句中的代码break结束循环。这样就完成了对检索结果中所有Corresponding author条目的自动删除工作。

图1 删除特定条目算法流程图

要删除其他条目只需在脚本中复制上述代码,将str=“Corresponding author”一行中的字符串改成对应条目的特定字符串即可,非常简便、可操作性极强。

2 添加论文编号和格式排版功能的实现

图2 添加论文编号算法流程图

原始检索结果中通过来对应检索结果第n条的编号,在实际应用中通常需要自定的编号,例如[n]。另外检索结果导出后,文字排版是很随意的,通常需要整齐的排版,例如编号后全部采用相同的缩进量等等。通过下述脚本可以实现添加论文编号和格式排版的功能。算法流程见图2,其简要说明:①初始定义。其中,a)定义一个记录行号的变量lineNum,初值赋为0;b)再定义一个记录编号的变量x,初值赋为1,如果希望从零开始编号则可将x的初值赋为0;c)定义了对应Accession number条目,也就是每一个检索项的起始条目的字符串Str。②通过Ultra Edit.active Document对象的top函数将处理开始位置置于文档起始行。③进入循环处理,来给每一个检索项添加编号,之后首先利用Ultra Edit.active Document对象find Replace子对象的find函数寻找包含Accession number字符串的行。④通过if语句判断Ultra Edit.active Document对象的isFound函数返回值是否为真,如果为真,就代表找到了新的检索项,进入步骤⑤。⑤通过Ultra Edit.active Document对象的current Line Num属性获得该行编号,通过Ultra Edit.active Document对象的gotoLine函数跳转到文档该行的第一列。⑥通过Ultra Edit.active Document对象的write函数将[x]编号加在该检索项所有条目之前,将检索项编号加一。⑦跳转至下一行继续处理。如果if语句判断Ultra Edit.active Document对象的isFound函数返回值为假,则表示文档中已经没有新的检索项了,执行else语句中的代码break结束循环。这样就完成了对检索结果中所有检索项的自动编号工作。

图3 自动排版算法流程图

接下来是自动排版的算法。①通过Ultra Edit.active Document对象的top函数将处理开始位置重新置于文档起始行。②记录行号的变量line Num的值赋为0。③进入循环处理,来给除检索项编号外的所有行进行排版,循环通过Ultra Edit.active Document对象isEof函数判断是否已经到了文档的结尾,来作为循环结束条件。如果没到文档结尾,则执行第④步,跳转至lineNum所对应的行的第一列。④通过Ultra Edit.active Document对象的isChar函数判断该行的第一个字符是否为[,如果是则代表该行是检索项编号,无需处理,如果不是则执行第⑤步。⑤Ultra Edit.active Document对象的write函数在该行写入一个制表符,将该行缩进四个字符。⑥将行编号加一,继续处理下一行。循环结束后就完成了对检索结果的自动排版工作。

3 结论

文章介绍了一种在EI中论文查收结果快速处理的方法。利用UltraEdit的脚本功能,编写了自动删除特定条目和添加论文标号及格式排版的功能,极大地提高了文献检索结果处理的自动化程度和速度。以本校为例,2009年度EI检索总篇数近300篇,采用文章方法处理总耗时仅为47 s,而以往该项工作需耗时1天以上,还需要进行人工校核。本人对图书馆信息检索自动化处理方面进行了有益的尝试,相关人员可以根据需要编写适当的脚本,提高工作效率,享受信息化和数字化带来的便利。

猜你喜欢
字符串脚本条目
酒驾
以患者为主的炎症性肠病患者PRO量表特异模块条目筛选
基于文本挖掘的语词典研究
《词诠》互见条目述略
自动推送与网站匹配的脚本
SQL server 2008中的常见的字符串处理函数
倍增法之后缀数组解决重复子串的问题
最简单的排序算法(续)
对县级二轮修志采用结构体式的思考
愚公移山