Python语言在WOS论文清洗中的应用初探

2021-02-12 09:05曾咏梅黄映国
时代人物 2021年33期
关键词:字符串排序代码

曾咏梅 彭 丽 杨 华 黄映国 宋 颖

(四川农业大学图书馆 四川成都 611130)

对图书馆的学科分析人员而言,论文清洗工作是一个费时、费力的大工程。论文少了还能逐条整理,如果论文数量较多,逐条整理方法容易造成视觉疲劳,极易出错,而纠错也需较大工作量。经费充裕的图书馆可以通过购买数据来满足数据清洗的要求,但是学科分析是灵活多变的,可能随时更改分析角度和纬度,而购买的数据无法实时达到所需要求。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语言的应用过程。

Python语言对字符串的操作方法

Python语言中有很多字符串的操作方法,比如字符串索引,分片,大小写互换等方法都比较实用。针对WOS论文数据清洗中作者排序问题,Python语言可以利用按照固定字符串进行数据分割的方法split(),本实例是按照“;”进行分割;再根据分割量,统计个数获得作者排序;最后根据最终设想的结果形式,制定格式化输出模式,以format()方法进行直观体现。以表1中的第一篇论文的AF列作者信息为例。代码如下:

1.5.1 有效性指标及观测时点 ①SBM频次及应答率;②中医证候疗效;③单项主要症状有效率。排便次数每天记录,其他均基线、用药满(7±1)d记录并评估。以SBM应答率为主要观察指标。

表1 2篇四川农业大学发表的WOS论文作者相关信息表

Python语言对作者机构筛选的应用

一篇WOS论文作者通常较多,那到底有多少个本机构的作者,他们的排序又将怎样?这是每个学科分析人员在论文清洗过程中都会遇到的问题。这个问题在Python中可以很好的解决。以表1中第一篇论文的C1列作者地址信息为例。实现目标为:获取C1列作者地址信息中有“Sichuan Agr Univ”的作者排序信息。代码如下:

这个结果与第二篇论文的AF列作者排序不一致。原因是第一作者“Zhang,Qing”有两个地址,第二个地址才是“Sichuan Agr Univ”,而程序仍然是按照作者顺序来排序的,第一个地址5个作者排完后,再按照顺序排第二个地址,所以为第6作者。对于无法实现目标的代码,需要进行修改和调整。针对这个问题,原代码修改为:

经验证该结果与作者实际排序一致,达到预期效果。

只要代码能够实现一个单元格的预期目标,后续对于整个Excel表格处理来说就是实施模块化程序,而且不会出错。如果发现有具体的细节处理不完全,可以通过调整代码来完善整个程序。最后实现批量处理。

对于C1列信息,我们还需要提取作者二级机构的信息,这个因为涉及到不同高校的二级机构库不同,同RP列通讯作者列信息一样,在此不做进一步展示。但均可以用Python语言中的字符串查找find()及字符串替换replace()等方法,直接将相应信息进行提取和保存。

无论是何种类型的高校图书馆,在学科分析时,都需要对论文相关信息进行提取归类,对于涉及到论文作者的相关信息,数据库提供的数据通常无法直接利用,必须根据本校的实际情况,对相关信息进行分类和提取,而这类工作很多高校图书馆都是通过人工筛选来完成,工作量既大又易出错。Python语言是最接近自然语言的编程语言,是结合解释性、编译性、互动性和面向对象的脚本语言,其语法简洁清晰,代码可读性强,适合图书馆编程小白的学科分析人员掌握与运用。本文展示了Python语言在WOS论文清洗中的一个小板块,依据Python丰富的语言功能以及强大的第三方模块库,完全可以实现WOS数据清理中的各个部分,最终实现数据清洗目标,本课题组也将在后续研究与实践中进一步探索与呈现。本文只是初步探索,以期为图书馆同仁们提供一个新的数据处理方法或思想,供学科分析人员参考。

猜你喜欢
字符串排序代码
作者简介
基于文本挖掘的语词典研究
恐怖排序
节日排序
神秘的代码
SQL server 2008中的常见的字符串处理函数
倍增法之后缀数组解决重复子串的问题
一周机构净增(减)仓股前20名
一行代码玩完19亿元卫星
近期连续上涨7天以上的股