百度百科   
 
高教思政
 
 
 
 
 
 
 
 
 
 
曾咏梅 彭丽 杨华 黄映国 宋颖 Python语言在WOS论文清洗中的应用初探
论文编辑部-新丝路理论网   2021-11-08 09:32:31 作者: 来源: 文字大小:[][][]


曾咏梅 彭丽 杨华 黄映国 宋颖
(四川农业大学 图书馆  四川成都  611130)
摘 要:Python语言是目前最接近自然语言的编程语言,本文通过实例将Python语言在WOS论文清洗工作中的应用进行初步探讨,为高校图书馆在WOS论文信息收集与分析工作提供一个新的途径。
关键词:Python;WOS论文;数据清洗;学科分析;图书馆
作者简介:
曾咏梅(1979--)女,硕士,四川农业大学图书馆馆员,已发表论文20余篇。
彭丽(1981--)女,硕士,四川农业大学图书馆馆员。
杨华(1973--)女,硕士,四川农业大学图书馆馆员。
黄映国(1968--)男,副研究馆员,四川农业大学成都校区图书馆馆长。
宋颖(1981--)女,硕士,四川农业大学图书馆馆员。
基金项目:本文系四川省社会科学重点研究基地项目“基于区块链技术的高校图书馆社会服务体系研究”(项目编号:XSCG2020-009)和Calis全国农学信息中心研究项目“Python编程语言在学科服务数据处理中的应用研究”(项目编号:2021053)的研究成果之一。

对图书馆的学科分析人员而言,论文清洗工作是一个费时、费力的大工程。论文少了还能逐条整理,如果论文数量较多,逐条整理方法容易造成视觉疲劳,极易出错,而纠错也需较大工作量。经费充裕的图书馆可以通过购买数据来满足数据清洗的要求,但是学科分析是灵活多变的,可能随时更改分析角度和纬度,而购买的数据无法实时达到所需要求。Python语言具有“优雅、明确、简单”等特点,适合作为编程小白的学科分析人员们学习和掌握,利用Python强大的语言功能,论文的清洗工作只需要打几行代码便可以轻松完成,可以使学科分析人员从繁琐的数据清洗工作中解脱出来,让其有更多的精力与时间从事其他更多具有创造性的工作。
一、Python编程语言简介
Python语言是1989年由荷兰人Guido van Rossum发明,1991年发行第一个公开版本。该语言是目前最接近自然语言的通用编程语言[1]。这种语言像C语言那样,能够全面调用计算机的功能接口,又可以像shell那样,轻松的编程[2]。
Python语言具有以下特点:可拓展性。程序员可以在高层直接编写.py拓展模块,也可以在底层直接引用C语言的库。对象与过程均支持。Python语言在面向对象时进行模块化处理,也可以在自己编写的函数中引入固定化的模块。语法简洁清晰,代码可读性强。即使没有编程基础也可以逐渐掌握。具有功能齐全的标准库和丰富的第三方模块[3]。随着Python的第三方库与Excel表格进行结合以后,很多Excel工作可以利用Python来处理。应用范围广。被越来越多独立、大型的项目用于软件开发[4]。基于以上特点,Python语言适合没有编程基础的学科分析馆员学习、掌握及运用。
二、Python语言在WOS论文清洗中的实际应用
学科分析中常用的WOS论文分析指标有:发表年份、被引频次、作者排位、是否通讯、二级机构、合作单位等等。对于可以直接获取利用的指标数据,不作表述;而对于涉及到论文作者的相关信息,数据库提供的数据通常无法直接利用,必须根据本校的实际情况,对相关信息进行分类和提取。针对WOS论文清洗所涉及信息提取问题,对于编程语言来说,就是字符串的匹配、提取、索引、排序等问题。其自带的字符串操作方法可以轻松的完成很多复杂的工作。以2篇四川农业大学发表的WOS论文为例来说明Python语言的应用过程。
表1  2篇四川农业大学发表的WOS论文作者相关信息表
UT AF(作者排序列) C1(作者地址信息列) RP(通讯作者信息列)
WOS:000582629700012 Ma,Yuanhong;Cao,Yunzhong;Li,Liangqiang;Zhang,Jing;Clement,Addo Prince [Ma,Yuanhong] Beihang Univ,Sch Econ & Management, Beijing,Peoples R China;[Cao, Yunzhong] Sichuan Agr Univ,Coll Architecture & Urban Rural Planning,Chengdu,Peoples R China;[Li, Liangqiang] Sichuan Agr Univ,Business Sch,Chengdu,Peoples R China;[Zhang,Jing] Harbin Inst Technol,Sch Management,Harbin,Peoples R China;[Clement,Addo Prince] Univ Elect Sci & Technol China,Sch Management & Econ,Chengdu,Peoples R China Ma,YH (corresponding author),Beihang Univ,Sch Econ & Management,Beijing,Peoples R China.
WOS:000608397900007 Zhang,Qing;Jeganathan,Brasathe;Dong,Hongmin;Chen,Lingyun;Vasanthan,Thava [Zhang,Qing;Jeganathan,Brasathe;Dong,Hongmin;Chen,Lingyun;Vasanthan,Thava] Univ Alberta,Dept Agr Food & Nutr Sci,Edmonton,AB T6G 2P5,Canada;[Zhang, Qing] Sichuan Agr Univ,Coll Food Sci,Inst Food Proc & Safety,46 Xinkang Rd,Yaan 625014,Sichuan,Peoples R China Zhang,Q;Vasanthan,T(corresponding author),Univ Alberta,Dept Agr Food & Nutr Sci,Edmonton,AB T6G 2P5,Canada.
1.Python语言对字符串的操作方法
Python语言中有很多字符串的操作方法,比如字符串索引,分片,大小写互换等方法都比较实用。针对WOS论文数据清洗中作者排序问题,Python语言可以利用按照固定字符串进行数据分割的方法split(),本实例是按照“;”进行分割;再根据分割量,统计个数获得作者排序;最后根据最终设想的结果形式,制定格式化输出模式,以format()方法进行直观体现。以表1中的第一篇论文的AF列作者信息为例。代码如下:
authors_rank='''AF列中第一篇论文的相关内容直接拷贝过来'''
reviews=[review.strip() for review in authors_rank.split(‘;’)]
i=0
for review in reviews:
i+=1
print('第{}作者:'.format(i),review)
#输出结果为:
第1作者:Ma,Yuanhong
第2作者:Cao,Yunzhong
第3作者:Li,Liangqiang
第4作者:Zhang,Jing
第5作者:Clement,Addo Prince
2.Python语言对作者机构筛选的应用
一篇WOS论文作者通常较多,那到底有多少个本机构的作者,他们的排序又将怎样?这是每个学科分析人员在论文清洗过程中都会遇到的问题。这个问题在Python中可以很好的解决。以表1中第一篇论文的C1列作者地址信息为例。实现目标为:获取C1列作者地址信息中有“Sichuan Agr Univ”的作者排序信息。代码如下:
authors='''C1列中第一篇论文的相关内容直接拷贝过来'''
reviews=[review.strip() for review in authors.split(";")]
i=0
for review in reviews:
i1=review.find("[")
i2=review.find("]")
i+=1
if"Sichuan Agr Univ"in review:
print('第{}作者:'format(i),review)
#输出结果:
第2作者:[Cao,Yunzhong] Sichuan Agr Univ,Coll Architecture & Urban Rural Planning,Chengdu,Peoples R China
第3作者:[Li,Liangqiang]Sichuan Agr Univ,Business Sch,Chengdu,Peoples R China
经验证结果与AF列的作者排序一致,目标实现。为了验证该代码的适用性,把代码authors中的内容换成C1列第二篇文章内容。
#输出结果:
第6作者:[Zhang,Qing] Sichuan Agr Univ,Coll Food Sci,Inst Food Proc & Safety,46 Xinkang Rd,Yaan 625014,Sichuan,Peoples R China
这个结果与第二篇论文的AF列作者排序不一致。原因是第一作者“Zhang,Qing”有两个地址,第二个地址才是“Sichuan Agr Univ”,而程序仍然是按照作者顺序来排序的,第一个地址5个作者排完后,再按照顺序排第二个地址,所以为第6作者。对于无法实现目标的代码,需要进行修改和调整。针对这个问题,原代码修改为:
authors='''C1列中第二篇论文的相关内容直接拷贝过来'''
authors_rank='''Zhang,Qing;Jeganathan,Brasathe;Dong,Hongmin;Chen,Lingyun;Vasanthan,Thava'''
reviews=[review.strip()for review in authors.split(";")]
for review in reviews:
i1=review.find("[")
i2=review.find("]")
if"Sichuan Agr Univ"in review:
n=authors_rank.index(review[i1+1:i2])+1
print('第{}作者:'format(n),review)
输出结果为:
第1作者:[Zhang,Qing] Sichuan Agr Univ,Coll Food Sci,Inst Food Proc & Safety,46 Xinkang Rd,Yaan 625014,Sichuan,Peoples R China
经验证该结果与作者实际排序一致,达到预期效果。
只要代码能够实现一个单元格的预期目标,后续对于整个Excel表格处理来说就是实施模块化程序,而且不会出错。如果发现有具体的细节处理不完全,可以通过调整代码来完善整个程序。最后实现批量处理。
对于C1列信息,我们还需要提取作者二级机构的信息,这个因为涉及到不同高校的二级机构库不同,同RP列通讯作者列信息一样,在此不做进一步展示。但均可以用Python语言中的字符串查找find()及字符串替换replace()等方法,直接将相应信息进行提取和保存。
三、小结
无论是何种类型的高校图书馆,在学科分析时,都需要对论文相关信息进行提取归类,对于涉及到论文作者的相关信息,数据库提供的数据通常无法直接利用,必须根据本校的实际情况,对相关信息进行分类和提取,而这类工作很多高校图书馆都是通过人工筛选来完成,工作量既大又易出错。Python语言是最接近自然语言的编程语言,是结合解释性、编译性、互动性和面向对象的脚本语言,其语法简洁清晰,代码可读性强,适合图书馆编程小白的学科分析人员掌握与运用。本文展示了Python语言在WOS论文清洗中的一个小板块,依据Python丰富的语言功能以及强大的第三方模块库,完全可以实现WOS数据清理中的各个部分,最终实现数据清洗目标,本课题组也将在后续研究与实践中进一步探索与呈现。本文只是初步探索,以期为图书馆同仁们提供一个新的数据处理方法或思想,供学科分析人员参考。

参考文献:
[1]黄天羽、嵩天.以图形牵引兴趣的Python案例教学方法与实践[J].计算教育,2017(8):32-37
[2]张怡华.基于Python的图书馆业务报表自动生成研究[J].智库时代,2018(28):218-219
[3]李菁.基于Python的Excel文档处理程序的设计[J].科技经济导刊,2020(22):14-15
[4]周延熙.基于Python的Excel文档处理程序的设计与实现[J].信息与电脑,2019(23):85-87

 

编辑部投稿邮箱:tougao85@163.com  tougao58@163.com

编辑部投稿热线:029-87362792  13309215487

24小时查稿专线:13309215487(同微信)

编辑部投稿QQ:693891972   1071617352

最新评论
发表评论
评论标题
评论内容
图片上传
表情图标

 
李 彬 以司法行政改革 
冯志军 戚叶雯 张  
魏明英 避税与反避税探 
靳利华 中俄毗邻区域生 
卿 红 基于宪法思维的 


覃俊丽 公益助学类社会 
蒲一帆 讲好中国扶贫故 
吴化杰 张瑞敏 “后扶 
周荣 昆明市巩固提升脱 
崔国鹏 三大行动背景下 
杂志简介 稿件要求 汇款方式 联系方式

CopyRight (C)2005-2015 Www.xinxi86.Com  All Rights Reserved..  陕ICP备15009280号
所有论文资料均源于网上的共享资源及期刊共享,请特别注意勿做其他非法用途
如有侵犯您论文的版权或其他有损您利益的行为,请联系指出,论文网在线会立即进行改正或删除有关内容