百度百科   
 
高教思政
 
 
 
 
 
 
 
 
 
 
曾咏梅 彭丽 杨华 黄映国 宋颖 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号
所有论文资料均源于网上的共享资源及期刊共享,请特别注意勿做其他非法用途
如有侵犯您论文的版权或其他有损您利益的行为,请联系指出,论文网在线会立即进行改正或删除有关内容