论文部分内容阅读
〔摘 要〕本文以年度外文电子资源建设评价为目标,以SCI文献的引文分析为切入点,以数据库技术、爬虫技术、SQL语言为基础,以.NET架构的C#开发构建了基于WOS引文分析的定向自动挖掘分析系统,并测试运行,所得数据准确,对分析用时和易用性较DDA或Citespace方式有一定优势。本研究在一定程度上解决了专业分析人员及经费不足所带来的问题,使非专业人员也能快速获取基本分析数据。
〔关键词〕引文分析;引文挖掘;数据挖掘;SQL;爬虫技术;C#开发;分析系统;资源建设评价
DOI:10.3969/j.issn.1008-0821.2018.06.015
〔中图分类号〕G254 〔文献标识码〕A 〔文章编号〕1008-0821(2018)06-0099-07
〔Abstract〕This paper aimed at the evaluation of the construction of the library’s foreign language electronic resources,took the citation analysis of SCI literature as the breakthrough point,based on the database technology,SQL language,and the C# development of the.NET framework,constructing a directional automatic mining analysis system based on WOS citation analysis.And test ran.The Results were accurate,the time of analysis and the intensity of work were greater than that of DDA or Citespace,to a certain extent.This was a good solution to the problems of professional analysts and lack of funds.It also enabled non professionals to quickly obtain basic analytical data.
〔Key words〕citation analysis;citation mining;data mining;SQL;crawler technology;C# development;analysis system;resources construction evaluation
作为一所现代教育体制下的中医类高校,在建设“双一流”以及地方高水平大学的政策驱动下,在基于论文和课题的科研绩效考核体系下,图书馆资源建设只有和学科服务紧密结合,才可能对专业文献资源有相当的了解以及对国内外的最新学术动向和科研成果予以关注[1]。因此,要提升本校的科研实力,就必须要对图书馆的资源做出梳理和优化。
那么,如何梳理和优化呢?一般来说,首先要对图书馆现有资源建设做出一个科学的评价。而评价的本质就在于,用户的需求是否得到满足。而利用引文分析法进行用户研究是了解用户需求的一种重要途径[2-3],而用户满意度的实质,就在于2个核心数值,一是科研中的文献保障率;二是资源的有效利用率。
这两个数值的获取,就需要对学校历年的论文进行基于参考文献(引文)的梳理、统计、以及分析。目前,论文的挖掘分析基本基于2种模式:一是利用数据库平臺所提供的一些固有的统计分析功能,再加上人工筛选和分析。例如Web of Science平台引文分析主要是对检索结果中的作者、国家/地区、文献类型、基金资助机构、机构扩展、出版年、研究方向、来源出版物、Web of Science类别等多个分析指标进行统计分析[4],而如果要基于每个学校的不同状况,不同的目的,进行个性化分析时,就显得力不从心了;二是人工借助一些自动化软件进行,比如人工数据筛选和清洗,外加一些数据分析软件,例如CiteSpace、Bicomb或者DDA等,进行自定义分析。
很多情况下,这样确实能获得所需要的数据。但是,这种解决方案却存在着两个问题:第一,通用数据分析软件,对个性化分析要求较高,一般只有情报学专业或有一定数据分析基础的专业学科馆员才能操作。对于中医院校而言,这样的学科馆员并不像综合性大学那样普遍,在人手不够的情况下,这样的工作往往来不及做,其他馆员爱莫能助;第二,每年需要的数据采样、噪声处理、数据加工,乃至最后所生成的结果数据往往都是相对固定的。对于学科馆员来说,每年要花大量的时间重复这样的一系列动作去获取一些基础分析数据,在某种情况下,是对其专业能力的一种浪费,他们应该花更多的时间和精力去基于这些基础数据做一些深层次的分析、预测以及报告。
在这种情况下,将一些对专业要求不高的数据采集工作交由普通馆员,再将一系列重复的动作剥离出来,使采集数据的清理、基础分析、统计、以及报表输出工作以编程技术加以自动化实现,是一种较好的解决方式。
这种系统旨在最大限度地减少人工参与,提高工作效率[5],即在获得标准输入的情况下(比如每年从数据库商处获得的年度期刊列表),就能将每年图书馆需要的个性化数据和分析结果进行文本或图表输出,进而为学科馆员的进一步分析或者高层决策提供基础支持。
1 理论及模型研究
如绪论所言,对图书馆资源建设评价的目的,就是对馆藏资源的梳理和优化,其实质就是通过引文分析,获取科研中的文献保障率以及资源的有效利用率。
以SCI发文的引文分析为例,以这两个值为核心,在分析中可以得到期刊的引用排名,由此可以得到高频被引期刊及所占百分比,再由此可以获得其SCI占比、ESI学科分布、SCI分区分布、年份分布等基础分析数据。 要实现以上目标的自动化统计分析,首先要对科研文献保障率以及资源有效利用率这两个核心数值进行概念定义并建立数学模型。
1.1 科研文献保障率模型的建立
科研文献保障率,一般包括两层含义。
一是能在我校数据库获取到全文的论文引文所在期刊的数量,和论文引文所在的所有期刊数量的比值,一般称之为引文期刊保障率。
二是能在我校数据库获取到全文的论文引文次数,和论文引文总次数的比值,一般称之为引次保障率。常用的是引文期刊保障率,这里用d表示,推导过程如下:
设一篇论文引文数量为C,能在某一全文型数据库中(设为DB)获取的引文数为c,这篇论文在DB中的文献保障率就是d1=c/C。
如果设年度发文量为n,那么,DB对机构论文发文的年度保障率d2就是:
由于不可能去手动查询每一篇引文获取与否,以上概念经适当变换,基于现有的条件,可以将引文所在期刊的列表和我校数据库所提供的期刊列表进行一一匹配,经过计算,同样能获取这一值。
这样,对引文文献保障率描述就能等效变换为:
能在某一全文数据库获取到全文的论文引文所在期刊的数量,和论文引文所在的所有期刊数量的比值,即引文期刊保障率。
基于以上变换,设单一全文型数据库的期刊集合为DBJ,我校所有全文型数据库所含期刊集合为UDBJ,机构所有全文型数据库数量为k,那么:
进而,引文期刊保障率即:
其中JQ为引文所在的所有期刊的集合。
1.2 馆藏电子期刊资源利用率的模型建立
该指标能有效反映我校数据库对论文引文获取的贡献效率,即我校数据库所收录的期刊里面真正对科研论文发文有效的是否多,我校购买数据库所付出的,和所得到的是否具有性价比。该指标越高,说明该数据库的利用率就越高、越具有性价比。
同样,由于不可能去手动查询每一篇引文获取与否,以上概念经适当变换,基于现有的条件,可以将引文所在期刊的列表和我校的全文数据库所提供的期刊列表进行一一匹配,经过计算,同样能获取这一值。
这样,对馆藏电子期刊利用率的描述就能等值变换为:能在某一数据库获取到全文的论文引文所在期刊的数量,和该数据库所含所有期刊数量的比值。
基于以上变换,一般情况下以SCI发文为例建立“馆藏资源有效利用率”的模型:
同1.2章节一样,这里的UDBJ是全校每一个全文数据库期刊列表的并集,JQ为引文所在的所有期刊的集合。
1.3 其他基础分析数据模型的引入
要完整的评价馆藏资源的结构,仅依靠科研文献保障率以及资源有效利用率这两个核心数据模型是远远不够的。在分析过程中,以此2项为核心,需要建立起一整套评价数据体系。
从实际需求出发,在分析中需要引入论文引文期刊的引用排名数据,得出引入高频被引期刊及所占百分比,再由此可以获得高频被引期刊的SCI占比、ESI学科分布、SCI分区分布、引用年份分布、ESI学科分布,以及基于ESI学科的科研文献保障率等基础分析数据。
其中,期刊引用的排名对图书馆电子资源的采购有以下作用:排名很靠前,同时又属于图书馆收录范围但却没有购买的期刊,应仔细考察,分析没有购买的原因;排名非常靠后,但却被图书馆收藏的期刊,应慎重考察,这类期刊的利用率可能比较低,为了提高经费的利用率,经调研之后看是否有必要继续订购这类期刊[6]。
而引文量是指论文引用的参考文献篇次数,它能从侧面反映作者对他人科研成果的吸收情况和论文质量[7]。对引文年代进行统计分析有助于了解期刊老化规律及利用的最佳时期,能够为确定期刊保存年限、调整馆藏期刊布局提供重要依据[8]。在高被引期刊分析中,一般將被引量在5次以上(含5次)的期刊列为高被引期刊[7]。而被引期刊的SCI占比从某种程度上反映了在领域内的研究层次。
2 数据挖掘及分析自动机的实现
以上章节论述了对电子资源评价的思路,以及在评价过程中所运用到的基于引文分析的研究方法。进而在这个方法中分析了所需的若干基础数据模型及其意义和算法。
基于这些数据模型和算法,就能运用编程技术将其挖掘和统计过程实现自动化。从而在图书馆资源建设的评价、梳理和优化的实施过程中达到本文开始所希望的两个目的:1)将一部分基础的数据收集工作分配给普通馆员甚至学生,并使这些非专业的人员能够方便地使用本软件,在短时间内获得引文分析的基础数据。2)将专业学科馆员从繁琐的重复劳动中间解放出来,把更多的精力投入对以上这些基础数据的深层分析中去。
本文以馆藏外文期刊数据库以及上年度我校SCI发文为基础,构建基于我校SCI发文的引文分析自动机系统。
2.1 整体设计
根据需求,系统界面设计要适合非专业人员使用,因此尽量以简洁的扁平化区块分布,并以CS架构构建Windows桌面应用程序。
系统以Windows Server 2016为服务端,以SQL SERVER 2012为服务端数据库,客户端软件环境只需Windows XP以上操作系统,具备校内网络条件即可。
在编程上,系统使用.NET架构,基于C#,以爬虫技术、统计算法配合SQL,实现系统的大部分功能、算法以及数据的输入输出。
根据目标用户的界定,以目标用户为视角,系统的业务流程如图1所示:
根据业务流程,整个自动机系统分为3个模块,分别是数据采集整理模块、数据分析模块以及结果导出模块。如图2。
2.2 数据库设计
数据库基于SQLServer构建,将导入原始数据分别设计成四张原始数据表,分别为wostable、jcrtable、esitable以及dbtable。基于这4张基础表,通过SQL对其进行整理、合并、噪声处理,由此生成3张进一步分析数据所需衍生表,基于这3张衍生表,和之前4个基础表的不同组合,通过SQL的设计以及算法,进行多表多维度数据分析,可以获取本文所需的所有基础分析数据以及数据视图。数据库建模和相互关系图如图3。 2.3 实现逻辑和算法
根据2.1章节论述,整个自动机系统包括3个模块,分别是数据采集导入模块、数据整理分析模块,以及结果导出模块。下面分别就3个模块的功能及其实现的算法、SQL查询及技术难点进行论述。
2.3.1 数据挖掘导入模块。
该模块是系统的输入模块,需要引导用户输入4个基础数据,分别为WOS的全记录及参考文献数据、JCR的期刊全称简称以及分区数据、ESI的期刊学科类型数据以及现有馆藏资源数据。
其中,前3项可以在相应的网站通过特定链接下载获取,而第4项馆藏电子资源数据,则需要基于各个数据库厂商所提供的期刊列表,根据给定Excel格式合并而成。
对于需要由数据库商提供期刊列表并经人工合并而导入的数据,系统需要给出标准格式引导用户按给定格式制作数据表;而需要由网站,经过人工过滤而下载获取的标准化数据,则可以经过浏览器的开发工具对检索和下载过程中的Post和Get通信数据流进行截取和抓包,分析其表头、Cookie、请求表单、响应数据后,通过爬虫技术将这一过程自动化。
爬虫以HttpWebRequest为基类,构建数据访问层DAL的操作类RequestHelper。以RequestHelper类构建实体Request,在Request中构造请求表单、Cookie,再以Post方法提交给远端服务器,获得服务器302响应后,将数据流合并写入文件。调用专用文件操作类,打开文件逐条读取后,调用DAL层的数据库操作类,写入数据库表备用。
由此,本文认为在自动机所需要获取的4张基础表中,除了已购数据库期刊表dbtable之外,其余3张基础数据表都可以通过爬虫一键获取后直接导入数据库。其中,WOS的爬取关键在于http数据流的分析以及sid(会话识别号)、qid(查询识别号)的识别和获取;JCR爬取的关键是期刊分区信息的重复性,以及在基于issn的去重的同时进行分区信息的合并。
爬虫技术的运用,极大的减少了数据采集和整理的工作强度和专业难度,使得非专业的图书馆馆员,甚至勤工助学的学生,在不经过专门培训的情况下,也可以方便的帮助学科馆员采集整理基础数据。系统界面如图4。
2.3.2 数据整理和分析模块
数据分析和统计模块是本自动机系统的核心模块,所有的数据模型都在该模块通过统计、分析、计算,最终得出结论。
系统首先要将在模块一中所获得的wostable中的数据进行初步的归集和整理,以获得自动机所需要的格式化的、归一化的引文刊次信息和引文期刊信息。
第一步,读取数据库wostable表中的CR字段,分析字符串后,以“;”分割所有引用次數,形成有若干个元素的一维String数组,设为Cite1[i]。对Cite1[i]进行循环,对其每个元素再以“,”再分割成若干个元素的一维String数组,设为Cite2[j]。再对Cite2[j]循环匹配,获得期刊名和引用年份后调用DAL层的数据库操作类,写入数据库表citetable备用。将此过程在Helper类中定义为CreateCitetable()方法。
第二步,对citetable、jcrtable、esitable进行多表组合查询,以citetable为基础,将jcrtable中的期刊全称fulljname、issn以及分区信息Q进行整合,形成引用刊次详情表citedetail。其SQL语句如下:
insert into citedetail(jname,citeyear,year) select jname,citeyear,year from citetable;
update citedetail set citedetail.fulljname=jcrtable.fulljname,citedetail.issn=jcrtable.issn,citedetail.Q=jcrtable.Q,citedetail.[IF]=jcrtable.[IF]from citedetail,jcrtable where citedetail.jname=jcrtable.jname;
update citedetail set citedetail.type=esitable.type from citedetail,esitable where citedetail.issn=esitable.issn;
此过程中,并不是所有记录都能匹配到issn以及fulljname的,原因在于并不是所有的引文期刊都被SCI和JCR收录,即凡是匹配到issn的期刊,都是SCI和JCR收录期刊。此过程在Helper类中定义为CreateCitedetail()方法。
第三步,对citedetail表,基于jname分组统计后获得基于jname的频次数据,并对jname去重,由此形成引用期刊信息表cjtable。其SQL语句如下:
Insert into cjtable(jname,fulljname,issn,Q,type,times,[IF],year) select jname,fulljname,issn,Q,type,count(jname) as times,[IF],year from citedetail group by jname,fulljname,issn,Q,type,[IF],year;
此过程在Helper类中定义为CreateCjtable()方法。
由此,所有的基础表、中间表均已完备,数据整理完成,接下来,基于以上的数据表进行组合分析查询获取中间数据,再经由程序算法处理,获取目标数据。
例1:如需要获得所有SCI引刊在我校已购外文数据库的收录和未收录情况汇总,这种情况下,就需要进行cjtable和dbtable的多表联合查询,SQL语句为: select case when dbname is null then‘null’else dbname end,count(case when dbname is null then‘no’else dbname end) as 收录量 from(Select distinct cjtable.jname,fulljname,dbtable.ISSN,[IF],[Q],dbname from cjtable left join dbtable on cjtable.issn=dbtable.issn where cjtable.issn is not null) as t group by dbname;
程序获取该查询表后,在datagrid容器显示,或经由导出模块导出成Excel文档或者柱状图,供学科馆员参考分析。
例2:以cjtable和dbtable为基础,进行组合查询,获取文献保障率和资源利用率。根据第1.1章节所述,SCI文献保障率UD。
UD=JQ∩UDBJJQ×100%
其中JQ为引文期刊的总集合,即cjtable表;UDBJ为学校所购外文数据库期刊总集合,即dbtable表。于是,JQ∩UDBJ的SQL为:
Select count(id) as cjq from cjtable where issn in(select issn from dbtable) and issn<>″;
接下来,JQ,就是在cjtable中有issn的,即引文期刊为sci期刊的数量,其SQL为:
Select count(*) from cjtable where issn<>″;
程序获得这两个数值后进行计算并进行字符串格式化,并将百分比显示在客户端界面。
进一步的,由文献保障率的计算,可以引申出一系列周边数据的获取,如:被引用较多但在我校尚未购买的期刊,其SQL为:
Select* from cjtable where issn not in(select dbtable.issn from cjtable,dbtable where cjtable.issn=dbtable.issn) and times>=5 order by times desc;
由以上可知,几乎所有的分析统计功能通过SQL辅以程序计算,都能获得结果,因此,将这些SQL语句和算法封装成Helper类中的静态方法,并在Winform窗体中的按钮点击事件中进行不同的组合调用,即能实现所需要的引文分析的各项数据结果。如图5。
2.3.3 结果导出模块
在本系统中,结果一般以3种形式呈现:文本、列表、图。
一般而言,文本输出以事先编辑好的格式化文本内容为基础,在内容中以变量替代数据,运行时结合实时分析数据合并成统计结果概要输出。如图5所示。
列表以DataGrid数据容器绑定分析函数返回的Datatable数据类后显示。如图6。
图表以Chart控件绑定分析函数返回的Datatable数据类后,辅以chart属性对应datatable值后,以不同形式显示在chart控件的area中。如图7。
而导出一般针对表格或图形数据,导出形式一般为基于Excel的图表。实现方式上,系统引用了Excel Library组件作为Excel读写的基础。在显示窗体上外加导出按钮,在按钮点击事件中调用Excel Library的方法生成目标文件。
3 软件测试及结论
以下文字主体由本系统根据实时统计结果自动生成。部分出于论文论述需要稍加整理或添加得出:
以上海中医药大学、2016年两个条件使自动机爬取SCIe发文全记录及参考文献,共589篇SCI文献;又以2016年为条件,爬取JCR分区信息和影响因子,合并4个文件共14 254条记录,以issn去重的同时合并分区信息后共11 483条记录;再爬取ESI期刊学科信息共11 520条记录。这里可以看出,SCI、JCR、ESI的记录数总体是相差不大的。最后将我校所购买的Medline、Springer、ScinceDriect、OVID等外文数据库合并后获得5 968条期刊信息。
在此基础上,获取了589篇SCI论文的22 513次引用,涉及期刊4 237种,其中SCI及JCR收录期刊为2 356种,4 237种期刊中高频引用(引用次数≥5)期刊848种,其中高频SCI期刊784种。高频SCI期刊中我校数据库未涵盖310种,高频SCI期刊保障率为60.5%。
784种高频SCI引刊中,引用次数最多的是PLOS ONE、J BIOL CHEM,引次分别达到407次、324次;310种未购买的高频SCI引刊中,引次最多的是J BIOL CHEM和P NATL ACAD SCI USA,引次分别达到324次、253次。
所有22 513次引用中,涉及学科21种,ESI学科引次分布图见图7,其中非ESI期刊引用为3 210次。最多引用学科为CLINICAL MEDICINE(临床医学),达到6 573次。
所有引用中,最早引用为1816年,引用最多在2013年和2014年,分别达到2 164次和2 339次。
最后涉及引用的SCI及JCR期刊数量为2 356种,我校数据库可获取的有1 397种,总的SCI引文期刊保障率为59.3%。另外,由于存在1个期刊被多个数据库收录的情况,将5 968条信息去重处理后,我校所有外文期刊购买量为5 154种,外文电子期刊的资源利用率为27.1%。
以上为本系统试运行分析结果数据,对标同样以相关数据在DDA(原TDA)中分析结果来看,相关数据偏差率低于1%,数据结果基本准确可信,但使用本系统,使得学科馆员的工作时间强度大大缩减,重要的是,由于本系统友好极简的操作界面,简易的使用难度,高效的运算效率,使得非专业人员也能快速掌握相关统计数据,在专业学科馆员數量紧缺的中医类院校乃至其他专业类小型机构,显得更具价值。
参考文献
[1]曹进军.学科服务视角下资源评价与资源建设联动模式研究[J].现代情报,2017,37(4):103-107.
[2]邱均平.信息计量学[M].武汉:武汉大学出版社,2007.
[3]李峰,涂文波.基于重点学科引文分析的我国高校人文社会科学外文文献保障率研究[J].图书情报工作,2013,57(2):64-69.
[4]穆亚凤,都平平,齐近图,等.基于引文分析工具的学科发展态势研究[J].现代情报,2017,37(3):126-131.
[5]张素芳,宋虎.论文引文检索与分析自动化系统的构建[J].数据分析与知识发现,2014,30(1):92-96.
[6]张元晶,高彦静,谢智敏.基于引文分析法的外文电子期刊馆藏结构优化研究[J].图书情报导刊,2014,(20):1-3.
[7]李海霞.基于引文分析的图书馆期刊资源建设策略研究——以哈尔滨工程大学图书馆为例[J].图书馆建设,2011,(8):43-45.
[8]马建华.引文分析在图书馆文献采集中的作用:北京大学有机化学专业博士论文的文献计量研究[J].大学图书馆学报,2003,(3):70-73.
(实习编辑:陈 媛)
〔关键词〕引文分析;引文挖掘;数据挖掘;SQL;爬虫技术;C#开发;分析系统;资源建设评价
DOI:10.3969/j.issn.1008-0821.2018.06.015
〔中图分类号〕G254 〔文献标识码〕A 〔文章编号〕1008-0821(2018)06-0099-07
〔Abstract〕This paper aimed at the evaluation of the construction of the library’s foreign language electronic resources,took the citation analysis of SCI literature as the breakthrough point,based on the database technology,SQL language,and the C# development of the.NET framework,constructing a directional automatic mining analysis system based on WOS citation analysis.And test ran.The Results were accurate,the time of analysis and the intensity of work were greater than that of DDA or Citespace,to a certain extent.This was a good solution to the problems of professional analysts and lack of funds.It also enabled non professionals to quickly obtain basic analytical data.
〔Key words〕citation analysis;citation mining;data mining;SQL;crawler technology;C# development;analysis system;resources construction evaluation
作为一所现代教育体制下的中医类高校,在建设“双一流”以及地方高水平大学的政策驱动下,在基于论文和课题的科研绩效考核体系下,图书馆资源建设只有和学科服务紧密结合,才可能对专业文献资源有相当的了解以及对国内外的最新学术动向和科研成果予以关注[1]。因此,要提升本校的科研实力,就必须要对图书馆的资源做出梳理和优化。
那么,如何梳理和优化呢?一般来说,首先要对图书馆现有资源建设做出一个科学的评价。而评价的本质就在于,用户的需求是否得到满足。而利用引文分析法进行用户研究是了解用户需求的一种重要途径[2-3],而用户满意度的实质,就在于2个核心数值,一是科研中的文献保障率;二是资源的有效利用率。
这两个数值的获取,就需要对学校历年的论文进行基于参考文献(引文)的梳理、统计、以及分析。目前,论文的挖掘分析基本基于2种模式:一是利用数据库平臺所提供的一些固有的统计分析功能,再加上人工筛选和分析。例如Web of Science平台引文分析主要是对检索结果中的作者、国家/地区、文献类型、基金资助机构、机构扩展、出版年、研究方向、来源出版物、Web of Science类别等多个分析指标进行统计分析[4],而如果要基于每个学校的不同状况,不同的目的,进行个性化分析时,就显得力不从心了;二是人工借助一些自动化软件进行,比如人工数据筛选和清洗,外加一些数据分析软件,例如CiteSpace、Bicomb或者DDA等,进行自定义分析。
很多情况下,这样确实能获得所需要的数据。但是,这种解决方案却存在着两个问题:第一,通用数据分析软件,对个性化分析要求较高,一般只有情报学专业或有一定数据分析基础的专业学科馆员才能操作。对于中医院校而言,这样的学科馆员并不像综合性大学那样普遍,在人手不够的情况下,这样的工作往往来不及做,其他馆员爱莫能助;第二,每年需要的数据采样、噪声处理、数据加工,乃至最后所生成的结果数据往往都是相对固定的。对于学科馆员来说,每年要花大量的时间重复这样的一系列动作去获取一些基础分析数据,在某种情况下,是对其专业能力的一种浪费,他们应该花更多的时间和精力去基于这些基础数据做一些深层次的分析、预测以及报告。
在这种情况下,将一些对专业要求不高的数据采集工作交由普通馆员,再将一系列重复的动作剥离出来,使采集数据的清理、基础分析、统计、以及报表输出工作以编程技术加以自动化实现,是一种较好的解决方式。
这种系统旨在最大限度地减少人工参与,提高工作效率[5],即在获得标准输入的情况下(比如每年从数据库商处获得的年度期刊列表),就能将每年图书馆需要的个性化数据和分析结果进行文本或图表输出,进而为学科馆员的进一步分析或者高层决策提供基础支持。
1 理论及模型研究
如绪论所言,对图书馆资源建设评价的目的,就是对馆藏资源的梳理和优化,其实质就是通过引文分析,获取科研中的文献保障率以及资源的有效利用率。
以SCI发文的引文分析为例,以这两个值为核心,在分析中可以得到期刊的引用排名,由此可以得到高频被引期刊及所占百分比,再由此可以获得其SCI占比、ESI学科分布、SCI分区分布、年份分布等基础分析数据。 要实现以上目标的自动化统计分析,首先要对科研文献保障率以及资源有效利用率这两个核心数值进行概念定义并建立数学模型。
1.1 科研文献保障率模型的建立
科研文献保障率,一般包括两层含义。
一是能在我校数据库获取到全文的论文引文所在期刊的数量,和论文引文所在的所有期刊数量的比值,一般称之为引文期刊保障率。
二是能在我校数据库获取到全文的论文引文次数,和论文引文总次数的比值,一般称之为引次保障率。常用的是引文期刊保障率,这里用d表示,推导过程如下:
设一篇论文引文数量为C,能在某一全文型数据库中(设为DB)获取的引文数为c,这篇论文在DB中的文献保障率就是d1=c/C。
如果设年度发文量为n,那么,DB对机构论文发文的年度保障率d2就是:
由于不可能去手动查询每一篇引文获取与否,以上概念经适当变换,基于现有的条件,可以将引文所在期刊的列表和我校数据库所提供的期刊列表进行一一匹配,经过计算,同样能获取这一值。
这样,对引文文献保障率描述就能等效变换为:
能在某一全文数据库获取到全文的论文引文所在期刊的数量,和论文引文所在的所有期刊数量的比值,即引文期刊保障率。
基于以上变换,设单一全文型数据库的期刊集合为DBJ,我校所有全文型数据库所含期刊集合为UDBJ,机构所有全文型数据库数量为k,那么:
进而,引文期刊保障率即:
其中JQ为引文所在的所有期刊的集合。
1.2 馆藏电子期刊资源利用率的模型建立
该指标能有效反映我校数据库对论文引文获取的贡献效率,即我校数据库所收录的期刊里面真正对科研论文发文有效的是否多,我校购买数据库所付出的,和所得到的是否具有性价比。该指标越高,说明该数据库的利用率就越高、越具有性价比。
同样,由于不可能去手动查询每一篇引文获取与否,以上概念经适当变换,基于现有的条件,可以将引文所在期刊的列表和我校的全文数据库所提供的期刊列表进行一一匹配,经过计算,同样能获取这一值。
这样,对馆藏电子期刊利用率的描述就能等值变换为:能在某一数据库获取到全文的论文引文所在期刊的数量,和该数据库所含所有期刊数量的比值。
基于以上变换,一般情况下以SCI发文为例建立“馆藏资源有效利用率”的模型:
同1.2章节一样,这里的UDBJ是全校每一个全文数据库期刊列表的并集,JQ为引文所在的所有期刊的集合。
1.3 其他基础分析数据模型的引入
要完整的评价馆藏资源的结构,仅依靠科研文献保障率以及资源有效利用率这两个核心数据模型是远远不够的。在分析过程中,以此2项为核心,需要建立起一整套评价数据体系。
从实际需求出发,在分析中需要引入论文引文期刊的引用排名数据,得出引入高频被引期刊及所占百分比,再由此可以获得高频被引期刊的SCI占比、ESI学科分布、SCI分区分布、引用年份分布、ESI学科分布,以及基于ESI学科的科研文献保障率等基础分析数据。
其中,期刊引用的排名对图书馆电子资源的采购有以下作用:排名很靠前,同时又属于图书馆收录范围但却没有购买的期刊,应仔细考察,分析没有购买的原因;排名非常靠后,但却被图书馆收藏的期刊,应慎重考察,这类期刊的利用率可能比较低,为了提高经费的利用率,经调研之后看是否有必要继续订购这类期刊[6]。
而引文量是指论文引用的参考文献篇次数,它能从侧面反映作者对他人科研成果的吸收情况和论文质量[7]。对引文年代进行统计分析有助于了解期刊老化规律及利用的最佳时期,能够为确定期刊保存年限、调整馆藏期刊布局提供重要依据[8]。在高被引期刊分析中,一般將被引量在5次以上(含5次)的期刊列为高被引期刊[7]。而被引期刊的SCI占比从某种程度上反映了在领域内的研究层次。
2 数据挖掘及分析自动机的实现
以上章节论述了对电子资源评价的思路,以及在评价过程中所运用到的基于引文分析的研究方法。进而在这个方法中分析了所需的若干基础数据模型及其意义和算法。
基于这些数据模型和算法,就能运用编程技术将其挖掘和统计过程实现自动化。从而在图书馆资源建设的评价、梳理和优化的实施过程中达到本文开始所希望的两个目的:1)将一部分基础的数据收集工作分配给普通馆员甚至学生,并使这些非专业的人员能够方便地使用本软件,在短时间内获得引文分析的基础数据。2)将专业学科馆员从繁琐的重复劳动中间解放出来,把更多的精力投入对以上这些基础数据的深层分析中去。
本文以馆藏外文期刊数据库以及上年度我校SCI发文为基础,构建基于我校SCI发文的引文分析自动机系统。
2.1 整体设计
根据需求,系统界面设计要适合非专业人员使用,因此尽量以简洁的扁平化区块分布,并以CS架构构建Windows桌面应用程序。
系统以Windows Server 2016为服务端,以SQL SERVER 2012为服务端数据库,客户端软件环境只需Windows XP以上操作系统,具备校内网络条件即可。
在编程上,系统使用.NET架构,基于C#,以爬虫技术、统计算法配合SQL,实现系统的大部分功能、算法以及数据的输入输出。
根据目标用户的界定,以目标用户为视角,系统的业务流程如图1所示:
根据业务流程,整个自动机系统分为3个模块,分别是数据采集整理模块、数据分析模块以及结果导出模块。如图2。
2.2 数据库设计
数据库基于SQLServer构建,将导入原始数据分别设计成四张原始数据表,分别为wostable、jcrtable、esitable以及dbtable。基于这4张基础表,通过SQL对其进行整理、合并、噪声处理,由此生成3张进一步分析数据所需衍生表,基于这3张衍生表,和之前4个基础表的不同组合,通过SQL的设计以及算法,进行多表多维度数据分析,可以获取本文所需的所有基础分析数据以及数据视图。数据库建模和相互关系图如图3。 2.3 实现逻辑和算法
根据2.1章节论述,整个自动机系统包括3个模块,分别是数据采集导入模块、数据整理分析模块,以及结果导出模块。下面分别就3个模块的功能及其实现的算法、SQL查询及技术难点进行论述。
2.3.1 数据挖掘导入模块。
该模块是系统的输入模块,需要引导用户输入4个基础数据,分别为WOS的全记录及参考文献数据、JCR的期刊全称简称以及分区数据、ESI的期刊学科类型数据以及现有馆藏资源数据。
其中,前3项可以在相应的网站通过特定链接下载获取,而第4项馆藏电子资源数据,则需要基于各个数据库厂商所提供的期刊列表,根据给定Excel格式合并而成。
对于需要由数据库商提供期刊列表并经人工合并而导入的数据,系统需要给出标准格式引导用户按给定格式制作数据表;而需要由网站,经过人工过滤而下载获取的标准化数据,则可以经过浏览器的开发工具对检索和下载过程中的Post和Get通信数据流进行截取和抓包,分析其表头、Cookie、请求表单、响应数据后,通过爬虫技术将这一过程自动化。
爬虫以HttpWebRequest为基类,构建数据访问层DAL的操作类RequestHelper。以RequestHelper类构建实体Request,在Request中构造请求表单、Cookie,再以Post方法提交给远端服务器,获得服务器302响应后,将数据流合并写入文件。调用专用文件操作类,打开文件逐条读取后,调用DAL层的数据库操作类,写入数据库表备用。
由此,本文认为在自动机所需要获取的4张基础表中,除了已购数据库期刊表dbtable之外,其余3张基础数据表都可以通过爬虫一键获取后直接导入数据库。其中,WOS的爬取关键在于http数据流的分析以及sid(会话识别号)、qid(查询识别号)的识别和获取;JCR爬取的关键是期刊分区信息的重复性,以及在基于issn的去重的同时进行分区信息的合并。
爬虫技术的运用,极大的减少了数据采集和整理的工作强度和专业难度,使得非专业的图书馆馆员,甚至勤工助学的学生,在不经过专门培训的情况下,也可以方便的帮助学科馆员采集整理基础数据。系统界面如图4。
2.3.2 数据整理和分析模块
数据分析和统计模块是本自动机系统的核心模块,所有的数据模型都在该模块通过统计、分析、计算,最终得出结论。
系统首先要将在模块一中所获得的wostable中的数据进行初步的归集和整理,以获得自动机所需要的格式化的、归一化的引文刊次信息和引文期刊信息。
第一步,读取数据库wostable表中的CR字段,分析字符串后,以“;”分割所有引用次數,形成有若干个元素的一维String数组,设为Cite1[i]。对Cite1[i]进行循环,对其每个元素再以“,”再分割成若干个元素的一维String数组,设为Cite2[j]。再对Cite2[j]循环匹配,获得期刊名和引用年份后调用DAL层的数据库操作类,写入数据库表citetable备用。将此过程在Helper类中定义为CreateCitetable()方法。
第二步,对citetable、jcrtable、esitable进行多表组合查询,以citetable为基础,将jcrtable中的期刊全称fulljname、issn以及分区信息Q进行整合,形成引用刊次详情表citedetail。其SQL语句如下:
insert into citedetail(jname,citeyear,year) select jname,citeyear,year from citetable;
update citedetail set citedetail.fulljname=jcrtable.fulljname,citedetail.issn=jcrtable.issn,citedetail.Q=jcrtable.Q,citedetail.[IF]=jcrtable.[IF]from citedetail,jcrtable where citedetail.jname=jcrtable.jname;
update citedetail set citedetail.type=esitable.type from citedetail,esitable where citedetail.issn=esitable.issn;
此过程中,并不是所有记录都能匹配到issn以及fulljname的,原因在于并不是所有的引文期刊都被SCI和JCR收录,即凡是匹配到issn的期刊,都是SCI和JCR收录期刊。此过程在Helper类中定义为CreateCitedetail()方法。
第三步,对citedetail表,基于jname分组统计后获得基于jname的频次数据,并对jname去重,由此形成引用期刊信息表cjtable。其SQL语句如下:
Insert into cjtable(jname,fulljname,issn,Q,type,times,[IF],year) select jname,fulljname,issn,Q,type,count(jname) as times,[IF],year from citedetail group by jname,fulljname,issn,Q,type,[IF],year;
此过程在Helper类中定义为CreateCjtable()方法。
由此,所有的基础表、中间表均已完备,数据整理完成,接下来,基于以上的数据表进行组合分析查询获取中间数据,再经由程序算法处理,获取目标数据。
例1:如需要获得所有SCI引刊在我校已购外文数据库的收录和未收录情况汇总,这种情况下,就需要进行cjtable和dbtable的多表联合查询,SQL语句为: select case when dbname is null then‘null’else dbname end,count(case when dbname is null then‘no’else dbname end) as 收录量 from(Select distinct cjtable.jname,fulljname,dbtable.ISSN,[IF],[Q],dbname from cjtable left join dbtable on cjtable.issn=dbtable.issn where cjtable.issn is not null) as t group by dbname;
程序获取该查询表后,在datagrid容器显示,或经由导出模块导出成Excel文档或者柱状图,供学科馆员参考分析。
例2:以cjtable和dbtable为基础,进行组合查询,获取文献保障率和资源利用率。根据第1.1章节所述,SCI文献保障率UD。
UD=JQ∩UDBJJQ×100%
其中JQ为引文期刊的总集合,即cjtable表;UDBJ为学校所购外文数据库期刊总集合,即dbtable表。于是,JQ∩UDBJ的SQL为:
Select count(id) as cjq from cjtable where issn in(select issn from dbtable) and issn<>″;
接下来,JQ,就是在cjtable中有issn的,即引文期刊为sci期刊的数量,其SQL为:
Select count(*) from cjtable where issn<>″;
程序获得这两个数值后进行计算并进行字符串格式化,并将百分比显示在客户端界面。
进一步的,由文献保障率的计算,可以引申出一系列周边数据的获取,如:被引用较多但在我校尚未购买的期刊,其SQL为:
Select* from cjtable where issn not in(select dbtable.issn from cjtable,dbtable where cjtable.issn=dbtable.issn) and times>=5 order by times desc;
由以上可知,几乎所有的分析统计功能通过SQL辅以程序计算,都能获得结果,因此,将这些SQL语句和算法封装成Helper类中的静态方法,并在Winform窗体中的按钮点击事件中进行不同的组合调用,即能实现所需要的引文分析的各项数据结果。如图5。
2.3.3 结果导出模块
在本系统中,结果一般以3种形式呈现:文本、列表、图。
一般而言,文本输出以事先编辑好的格式化文本内容为基础,在内容中以变量替代数据,运行时结合实时分析数据合并成统计结果概要输出。如图5所示。
列表以DataGrid数据容器绑定分析函数返回的Datatable数据类后显示。如图6。
图表以Chart控件绑定分析函数返回的Datatable数据类后,辅以chart属性对应datatable值后,以不同形式显示在chart控件的area中。如图7。
而导出一般针对表格或图形数据,导出形式一般为基于Excel的图表。实现方式上,系统引用了Excel Library组件作为Excel读写的基础。在显示窗体上外加导出按钮,在按钮点击事件中调用Excel Library的方法生成目标文件。
3 软件测试及结论
以下文字主体由本系统根据实时统计结果自动生成。部分出于论文论述需要稍加整理或添加得出:
以上海中医药大学、2016年两个条件使自动机爬取SCIe发文全记录及参考文献,共589篇SCI文献;又以2016年为条件,爬取JCR分区信息和影响因子,合并4个文件共14 254条记录,以issn去重的同时合并分区信息后共11 483条记录;再爬取ESI期刊学科信息共11 520条记录。这里可以看出,SCI、JCR、ESI的记录数总体是相差不大的。最后将我校所购买的Medline、Springer、ScinceDriect、OVID等外文数据库合并后获得5 968条期刊信息。
在此基础上,获取了589篇SCI论文的22 513次引用,涉及期刊4 237种,其中SCI及JCR收录期刊为2 356种,4 237种期刊中高频引用(引用次数≥5)期刊848种,其中高频SCI期刊784种。高频SCI期刊中我校数据库未涵盖310种,高频SCI期刊保障率为60.5%。
784种高频SCI引刊中,引用次数最多的是PLOS ONE、J BIOL CHEM,引次分别达到407次、324次;310种未购买的高频SCI引刊中,引次最多的是J BIOL CHEM和P NATL ACAD SCI USA,引次分别达到324次、253次。
所有22 513次引用中,涉及学科21种,ESI学科引次分布图见图7,其中非ESI期刊引用为3 210次。最多引用学科为CLINICAL MEDICINE(临床医学),达到6 573次。
所有引用中,最早引用为1816年,引用最多在2013年和2014年,分别达到2 164次和2 339次。
最后涉及引用的SCI及JCR期刊数量为2 356种,我校数据库可获取的有1 397种,总的SCI引文期刊保障率为59.3%。另外,由于存在1个期刊被多个数据库收录的情况,将5 968条信息去重处理后,我校所有外文期刊购买量为5 154种,外文电子期刊的资源利用率为27.1%。
以上为本系统试运行分析结果数据,对标同样以相关数据在DDA(原TDA)中分析结果来看,相关数据偏差率低于1%,数据结果基本准确可信,但使用本系统,使得学科馆员的工作时间强度大大缩减,重要的是,由于本系统友好极简的操作界面,简易的使用难度,高效的运算效率,使得非专业人员也能快速掌握相关统计数据,在专业学科馆员數量紧缺的中医类院校乃至其他专业类小型机构,显得更具价值。
参考文献
[1]曹进军.学科服务视角下资源评价与资源建设联动模式研究[J].现代情报,2017,37(4):103-107.
[2]邱均平.信息计量学[M].武汉:武汉大学出版社,2007.
[3]李峰,涂文波.基于重点学科引文分析的我国高校人文社会科学外文文献保障率研究[J].图书情报工作,2013,57(2):64-69.
[4]穆亚凤,都平平,齐近图,等.基于引文分析工具的学科发展态势研究[J].现代情报,2017,37(3):126-131.
[5]张素芳,宋虎.论文引文检索与分析自动化系统的构建[J].数据分析与知识发现,2014,30(1):92-96.
[6]张元晶,高彦静,谢智敏.基于引文分析法的外文电子期刊馆藏结构优化研究[J].图书情报导刊,2014,(20):1-3.
[7]李海霞.基于引文分析的图书馆期刊资源建设策略研究——以哈尔滨工程大学图书馆为例[J].图书馆建设,2011,(8):43-45.
[8]马建华.引文分析在图书馆文献采集中的作用:北京大学有机化学专业博士论文的文献计量研究[J].大学图书馆学报,2003,(3):70-73.
(实习编辑:陈 媛)