基于Python和Selenium的期刊论文施引侧数据挖掘程序设计

2024-12-23 00:00:00谭春林邵晓军王建平周志红
韩山师范学院学报 2024年6期
关键词:数据挖掘科技期刊

摘 要:为了研究中文科技期刊被国际期刊“施引侧”的引用行为,采用Python+Selenium+Chrome组合框架设计了WhoCiteMe程序,提出一种期刊论文施引侧引用信息的数据挖掘方法.文章提出了WhoCiteMe程序的设计思路,并分析了广东省10种中文科技期刊被国际期刊引用次数、学科分布、施引期刊的分区等特征.结果表明:提出的算法和设计的数据挖掘程序,可以获取国际期刊施引文献清单及引用数据,为评价中文科技期刊的国际影响力提供个性化数据,为办刊决策提供数据支撑.

关键词:科技期刊;施引侧;数据挖掘;Python;Selenium

中图分类号:G 255.2" 文献标识码:A" 文章编号:1007-6883(2024)06-0094-11

DOI:10.19986/j.cnki.1007-6883.2024.06.013

科技期刊承载着科学研究成果的传播重任,是学术交流的主流宣传阵地,在促进学科发展与社会进步中起到重要作用.如何提升中文科技期刊的学术影响力(特别是国际影响力),已成为期刊界共同关注的热点.如何采用量化指标定量评价和衡量各类期刊发展资助项目的投入、实施措施对提升期刊国际影响力的贡献,一直是办刊人共同关注的研究热点.2020年,中国科学技术协会支持的多家研究机构联合攻关项目提出了“科技期刊世界影响力指数(World Journal Clout Index of Scientific and Technological Periodicals,WJCI)”[1],引入总被引频次与影响因子双指标(WAJCI)、量效指数(JMI)、网络影响力指标(WI),基于“同类可比”原则,提出一套综合评价体系,避免了使用“影响因子”单一指数评价的局限性,使期刊的国际影响力评价更全面、更客观.胡小洋等[2]基于国际他引影响因子、国际即年指标、可被引文献量等数据,提出一种基于改进的DID模型和学术期刊综合表现力指数,用以构建对学术期刊资助项目实施效果的评价方法,该方法在学术期刊自主项目实施效果评价实践中具有推广价值.目前各类科技期刊的评价体系均基于被引数据,而基于“施引侧”的数据分析较少.2021年,徐琳宏等[3]以自然语言处理领域为例,尝试在施引文献视角下研究了正面引用和中性引用论文的影响力差异及其影响因素,以期矫正因引用同一化问题而导致的仅以被引频次评估带来的偏差.2023年,Francis等[4]针对目前包括Web of Science在内的几乎所有数据库都从“被引侧”(Cited side)设置文献计量指标的现状,首次提出“施引侧”(Citing side)文献计量指标设置的可行性,探讨其优势与应用,并建议文献计量指标由“被引侧”转向“施引侧”将提高文献计量指标的实用性、及时性.

生成式人工智能时代(GenAI Era)的到来为学术研究和出版带来了机遇与挑战[5],学术研究过程以及施引行为将变得更加扑朔迷离,单纯考察被引次数的影响因子不足以了解期刊论文的学术价值.Python数据挖掘与分析可为各行各业提供决策[6-7].尽管CiteSpace软件可以分别对中文文献、英文文献进行知识图谱分析,但无法挖掘中文论文被外文期刊施引数据,不能满足单篇论文和单本期刊的个性化数据分析需求。前期研究[8]通过Python编程对全国期刊编辑在1998~2018年期间发表编辑学相关论文的情况进行了挖掘与分析.本文利用Python+Selenium程序设计,挖掘广东省10种中文科技期刊论文被国际期刊(SCI收录)施引的大数据,分析施引侧的引用行为,以期为中文科技期刊提升学术影响力提供方法和参考.

1 研究方法

1.1 研究对象

选择广东省10种中文科技期刊,研究其被国际SCI期刊施引的情况.这10种期刊包括:《中山大学学报(医学版)》(Acta Sci Nat Univ Sun Yet-Semi)、《分析测试学报》(J Instrum Anal)、《中华肾脏病杂志》(Chin J Nephrol)、《南方医科大学学报》(J South Med Univ)、《中华创伤骨科杂志》(Chin J Orthop Trauma)、《华南农业大学学报》(J South Chin Agric Univ)、《华南理工大学学报(自然科学版)》(J South Chin Univ Tech)、《深圳大学学报(理工版)》(J Shenzhen Univ (Sci Eng))、《暨南大学学报(自然科学与医学版)》(J Jinan Univ(Nat Sci amp; Med Ed))、《华南师范大学学报(自然科学版)》(J South Chin Norm Univ(Nat Sci Ed)).

1.2 检索方法

利用爱思唯尔网站的高级搜索功能,对广东省10种中文科技期刊被国际外文刊物引用的情况进行初步统计.搜索方法:在高级搜索的References输入框中搜索中文科技期刊的英文刊名,检索中文科技期刊被国际外文期刊引用的总引频次.例如以《分析测试学报》为目标期刊,在References输入框中输入英文刊名“J Instrum Anal”.抓取施引年度、施引文献类型、施引刊名等统计数据.表1列举了2条施引文献引用《分析测试学报》刊载论文的情况.第一条施引论文发表在一本国内的《分析化学》(SCI收录),该施引论文同时引用了3篇《分析测试学报》的文献;第二条施引论文发表在荷兰创办的《International Journal of Biological Macromolecules》(中科院分区1区)期刊上,施引年为

2019年,被引文献为《分析测试学报》在2007年刊载的文献.另外,程序还抓取了施引文献网址,便于随时访问施引论文,为分析施引行为(正面、负面或中性引用)提供访问路径.

通过人工手动检索施引侧期刊论文元数据,往往耗时费力易出错,采用Python+Selenium编写WhoCiteMe.py程序(图1),输入指令“J Instrum Anal|2017”,再按回车键,程序将根据查询的结果清单,逐一访问每条施引论文的HTML全文网页,从这些网页中的参考文献查找目标期刊(例如J Instrum Anal)并提取该引用信息,将施引信息存入Excel表格文件.参考本程序设计思路,可在Web of Science数据库以及国内数据库(如知网、万方、维普等)网站上进行类似人工检索的自动化访问和数据挖掘.

1.3 编程环境搭建

Python是一种功能强大的开源程序设计语言,也是大数据挖掘与人工智能应用的首选语言,其简单易用的特性以及强大的功能使其成为处理大数据和进行人工智能应用开发的理想选择.Selenium是一个用于网页应用程序测试的API接口工具,可以编写程序通过API接口操作Chrome浏览器的ChromeDriver程序,模拟用户在浏览器上进行各种Web操作.

编程环境:基于64位Windows 11操作系统,安装Python 3.6.5程序以及PyCharm 2018.1.2(Community Edition)集成开发编辑器程序.安装Chrome浏览器,查看浏览器的版本号,例如:72.0.3626.7,检索并下载符合该版本号的ChromeDriver.exe程序,并保存在“C:\”文件夹下.为了防止Chrome浏览器自动更新导致版本号变化而使ChromeDriver不可用,需要关闭自动更新.

本研究设计基于Python+Selenium+Chrome组合框架的自动搜索与数据挖掘程序,实现对施引文献及其引用信息的大数据挖掘.如表2所示,该程序需要使用Python标准库(re、os、time、random)以及第三方库(selenium、requests、lxml).在编写Python程序文件的头部位置,通过import或from…import…等语句导入所需标准库和第三方库.

标准库为Python环境提供的内置库,而第三方库需要安装.第三方库的安装方法:pip install.以安装Selenium为例,按Win+R打开“运行”窗口,输入cmd,按回车键打开DOS命令执行窗口.输入cd命令切换当前路径为Python环境路径,假设Python安装在C:\Python下,命令如下:

cd C:\Python\Python36-32\Scriptsgt;

然后运行命令:

pip install selenium

采用上述pip命令安装requests和lxml库.

1.4 算法流程图

程序的主体算法流程图如图2所示.程序开始运行时,等待用户输入指令,例如:

J Instrum Anal|2017

回车后,程序将从指令字符串中以“|”为分隔符提取刊名j_nm_s和年度yy.检索网址格式:

…/advanced?date={}amp;references={}amp;show=100amp;sortBy=relevance

程序在以上网址格式中的两处“{}”分别填入yy和j_nm_s,构造一条用于查询J Instrum Anal出现在施引论文末尾参考文献的检索网址URL.注意:上述网址格式中“...”需改为域名路径(全文同),“show=100”表示检索结果页面中,每页显示100条结果.利用totalResult(URL)函数获得检索的满足条件的总记录数N,用N整除100再加1得到总页数P.以追加模式创建一个输出文件.依据循环变量i≤P条件遍历访问每个搜索页面,获取文末参考文献数C.判断刊名是否在文献列表中,“是”则提取引文信息并拼接字符串,“否”则查找下一条参考文献.由于存在同一篇施引论文引用多次目标期刊的情况(表1第一条示例),因此需要遍历施引论文的所有参考文献.当所有参考文献匹配结束,将拼接字符串追加到输出文件中.当完成访问时(igt;P),关闭输出程序,结束.

1.5 程序设计

1.5.1 主程序

Python程序运行的逻辑是被调函数需要在调用模块之前出现,因此主程序模块的代码需要编写在程序文件的末尾.为了使本文更易理解,采用与程序代码模块顺序相反的顺序介绍.

主程序的功能框架与图2所示的流程图基本一致,其代码以及主要注释如表3所示.主程序的入口代码:

if __name__ == '__main__':

入口代码下方无其他函数模块,主程序调用的创建文件夹mkDir()、记录数totalResults()、保存到txt文件saveToTxt()、施引论文的网址citingUrls()等函数均按被调用的先后顺序出现在主程序之前.

1.5.2 请求头

Chromedriver与Chrome浏览器进行通信,通过模拟用户在浏览器中的操作来实现自动化.在Python数据挖掘程序中,通过设置请求头可以模拟不同的浏览器行为,包括设置User-Agent(用户代理)来伪装成不同的浏览器、设置Referer来模拟用户跳转来源、设置Cookie来保持用户会话等.

定义getHeaders()函数,用于在频繁访问URL所指向的网页时,随机切换不同的浏览器“皮肤”.表4列出getHeaders()函数代码及其注释,预设了PC端用户代理表user_agent_list_1、移动端用户代理表user_agent_list_2.限于篇幅,表4中这2类用户代理表仅列举2条用户代理字符串,为了增强浏览器的伪装性,可以为user_agent_list_1和user_agent_list_2列表添加更多的浏览器用户代理字符串.例如增加各类终端(电脑、平板、手机等)、各种浏览器(360、Edge等)等用户代理.

根据参数user传递值(0或1),将用户代理表分配给user_agent_list列表.采用随机函数random.choice(user_agent_list)从user_agent_list列表中随机选择一个元素并赋值给User-Agent,最后将字典数据{'User-Agent':UserAgent}赋值给headers.

1.5.3 搜索的记录数

施引大数据的搜索与挖掘需要统计匹配的搜索结果文献总数,定义totalResults()函数如表5所示.第6行的xpath可通过对浏览器按F12启用开发者模式,单击需要抓取的信息区域,右击选择“Copy Xpath”即可复制该区域的XML元素路径.第4行的转义函数transhtml()(本文略)通过替换法来保护上标(lt;supgt;)和下标(lt;subgt;)的代码而不至于被清洗.

1.5.4 搜索结果采集

定义施引文献网址的采集函数citingUrls(URL),其代码及注释如表6所示.第2~4行访问并获取网页代码;第5~7行创建HTML选择器、获取施引论文超链接列表totalItems和施引论文信息列表citingRef_list.第10~20行采用While True:循环对未知记录数进行遍历,其跳出循环的机制在于采用try…except…容错机制,当遍历完成或找不到匹配时,报错执行except中的break终止循环,从而跳出无限循环.第21~24行遍历已知记录数的循环,该记录数为施引论文数,采用len()函数获取totalItems列表的记录数.totalItems列表中存储的是施引论文HTML网页超链接的相对路径,需要通过第22行添加域名来构造网页超链接的绝对路径.第24行调用WhoCite()函数访问每篇施引论文网页超链接,对其文末参考文献中目标期刊文献信息进行采集并追加写入输出文件.

1.5.5 施引信息采集

采用whoCite()函数采集施引论文对目标期刊文献的引用信息,其代码及主要注释如表7所示.第2~4行设置Chrome浏览器并打开网页.第6~15行是等待模块利用While True:无限循环等待Chrome浏览器加载结束.第5行读取初始时间,第9~11行判断该函数运行时间超过100 s时跳出循环,避免超时终止运行.当某记录在访问受限或网络超时等情况下,放弃对该记录的采集,屏幕输出运行时间,并自动跳转至下一记录的采集.第12~15行判断当采集源ref_source的len()长度大于0(非空)时,表明已采集到信息,此时,可以跳出等待模块.第16~26行用于拼接采集的信息、输出屏幕和追加写入文件.第27行及时退出已打开的浏览器,避免因后续程序重复打开而导致出错.

1.5.6 结果的输出

利用Python进行数据挖掘离不开读写文件操作,通常需要将采集的文本数据输出到txt或csv文件中.创建mkDir()、saveToFile()自定义函数分别用于创建存储文件夹、存入文件等操作.

通常有6种文件操作方式:(1)只读模式“r”,如果文件不存在则引发“FileNotFoundError(文件未找到)”错误;(2)读写模式“r+”,如果文件不存在则引发“FileNotFoundError”错误;(3)写入模式“w”,如果文件不存在则创建,否则清空内容;(4)读写模式“w+”,同“w”模式;(5)追加模式“a”,如果文件不存在则创建,否则在末尾追加内容;(6)读写追加模式“a+”,同“a”模式.

打开文件的代码:

with open('output.txt','r',encoding='utf-8')as ftxt:

其中,encoding='utf-8'表示采用utf-8编码,避免乱码.

读操作的代码:content=ftxt.read()

写操作的代码:ftxt.write('Hello')

mkDir()函数利用os.path.exists(path)查找文件,利用os.makedirs(path)创建文件夹.

saveToTxt()函数用于新建输出文件(表8).第2行拼接路径字符串.第4行创建保存的文件夹.第5~6行按writemode写入模式(“w+”或“a+”)打开文件,用于创建或追加数据文件.

2 结果与分析

以广东省10种中文科技期刊为对象期刊,通过设计Python数据挖掘程序,查询SCI期刊论文末尾引文的刊名获取了广东省10种中文科技期刊被SCI期刊引用的施引文献清单,对施引频次和施引期刊学科进行分析.

2.1利用数据挖掘可分析中文期刊被SCI期刊施引频次的年度变化趋势

提取施引文献清单中的刊名和施引年,按施引年统计出各对象期刊被某种SCI期刊施引的总次数,得到1996-2019年广东省10种中文科技期刊被国际SCI期刊的施引频次逐年变化趋势(图3).广东省10种中文科技期刊被SCI期刊引用的施引频次呈逐年增长态势,其中有4种期刊(《分析测试学报》、《中山大学学报(医学版)》《南方医科大学学报》《中华肾脏病杂志》)被SCI期刊施引频次增涨速度较快.

本文提出的数据挖掘方法可以获取中文科技期刊被国际SCI收录期刊论文引用的施引频次,一方面可以为中文科技期刊国际影响力的评价提供参考,另一方面为单刊的办刊实践与业绩量化提供参考.快速提升中文科技期刊的国际影响力的途径主要有:(1)搭建期刊英文网站和采取英文长摘要出版模式[9],扩大读者面;(2)组建国际编委团队,扩大期刊品牌影响力;(3)加入PubMed、Scopus等国际文献检索系统和数据库,通过国际化传播平台增加论文的国际可达性和能见度.从图3可以看出,有2种期刊(《分析测试学报》和《中山大学学报(医学版)》)从2013年开始,其被国际SCI期刊引用的施引频次快速上升,具体是因哪些办刊措施获得了国际影响力的快速提升,需要结合自身办刊实践进行分析.本文方法为期刊办刊决策提供个性化数据支撑,可以量化评价办刊举措与实际提升效果.

2.2 利用数据挖掘可了解施引期刊的学科和层次

按施引总次数倒序排序,统计出各对象期刊被SCI期刊施引次数的前10名(即TOP10施引期刊),查询TOP10施引期刊的学科分布和JCR分区层次,从施引侧期刊的影响力和学科分布情况,了解对象期刊的国际影响力、分析其提升效果.

对图3中国际施引频次增长较快的2种中文科技期刊进行重点研究.统计出每种国际期刊引用同一种中文科技期刊的次数并进行排序,列出TOP10的国际施引期刊、查出期刊的学科大类名称、统计其施引次数,结果如图4所示.《分析测试学报》的TOP10国际施引期刊中,有2种1区、5种2区、1种3区、2种4区国际期刊引用该刊;施引侧单刊对其施引频次最少8次、最多39次;施引侧期刊的学科分布上,主要是化学-分析化学类期刊(5种),这与《分析测试学报》的学科特色有关.《中山大学学报(医学版)》的TOP10国际施引期刊中,有3种1区、1种2区、3种3区、2种4区国际期刊引用该刊;施引侧单刊对其施引频次最少2次、最多8次;施引侧期刊的学科分布上,主要是医学类期刊(7种),也与其医学版学科定位有关.因此,分析国际施引期刊的分区和学科分布比总被引次数更能客观评价中文科技期刊的国际影响力水平,这为中文科技期刊的办刊定位提供见解和决策依据.

3 结论

基于Python+Selenium+Chrome组合框架,设计了WhoCiteMe.py程序,提出一种期刊论文施引侧引用信息的数据挖掘方法.通过分析施引侧引用数据,了解施引期刊的SCI分区、学科分布、施引频次等大数据,为中文科技期刊提升国际影响力提供数据支撑.本文的程序设计思路可被应用于编辑、出版与传播等其他数据挖掘与数据分析领域.

参考文献:

[1]肖宏,潘云涛,伍军红,等.科技期刊世界影响力评价实证分析——以WJCI为例[J].科技与出版,2023(5):49-57.

[2]胡小洋,马力,马建强.一种基于改进的DID模型和学术期刊综合表现力指数的学术期刊资助项目实施效果评价方法构建[J].学术出版与传播,2022,1(1):43-53.

[3]徐琳宏,丁堃,孙晓玲,等.施引文献视角下正面引用论文的影响力及其影响因素的研究——以自然语言处理领域为例[J].情报学报,2021,40(4):354-363.

[4]FRANCIS N,栾春娟,胡志刚.施引侧文献计量指标的设置、优势与应用研究[J].科学与管理,2023,43(6):56-61.

[5]谭春林,王维朗,王建平.AIGC在学术研究和出版中的使用边界、透明度与伦理[J].编辑学报,2024,36(6):661-666.

[6]陈烁权,钟银婷,佘梓润,等.基于数据挖掘算法的大学生就业分析——以韩山师范学院统计学专业为例[J].韩山师范学院学报,2024,45(3):68-75.

[7]佘梓航,徐嘉桦,姚志玉,等.基于皮尔逊相关系数的网购大数据分析——以天猫佰润居旗舰店交易记录为例[J].韩山师范学院学报,2020,41(3):16-22.

[8]谭春林,刘清海.期刊编辑发表论文情况的文本挖掘与分析[J].编辑学报,2019,31(4):407-410.

[9]许文颖,付宁,吴迪,等.中文科技期刊国际影响力的提升策略与途径——以《红外与激光工程》为例[J].天津科技,2023,50(11):82-88.

Design of Data Mining Program for the Citation Side

of Journal Articles Based on Python and Selenium

TAN Chun-lin1,SHAO Xiao-jun2*,WANG Jian-ping1,ZHOU Zhi-hong3

(1. Editorial Office of Journal of South China Normal University(Natural Science Edition),Guangzhou,Guangdong,510631;2. Editorial Department of Journal of Shaoguan University,Shaoguan,Guangdong,512005;3. Editorial Department of Journal of South China Agricultural University, Guangzhou,Guangdong,510642)

Abstract:In order to study the citation behavior of Chinese scientific journals by international journals on the citation side,the WhoCiteMe program was designed using the Python+Selenium+Chrome framework,proposing a data mining method for citation information on the citation side of journal articles.It outlined the design concept of the WhoCiteMe program,and analyzed the citation frequency,disciplinary distribution,and zone distribution of citing journals for 10 Chinese scientific journals in Guangdong province.The results have indicated that the proposed algorithm and designed data mining program can obtain a list of cited literature and citation data for international journals,providing personalized data for evaluating the international influence of Chinese scientific journals and offering data support for journal decision-making.

Key words:scientific journals; citation side; data mining; Python; Selenium

责任编辑 周春娟

猜你喜欢
数据挖掘科技期刊
科技期刊的分类
科技期刊的分类
科技期刊”
探讨人工智能与数据挖掘发展趋势
科技期刊的分类
基于并行计算的大数据挖掘在电网中的应用
电力与能源(2017年6期)2017-05-14 06:19:37
一种基于Hadoop的大数据挖掘云服务及应用
基于GPGPU的离散数据挖掘研究