曾詠梅 彭 麗 楊 華 黃映國 宋 穎
(四川農業大學圖書館 四川成都 611130)
對圖書館的學科分析人員而言,論文清洗工作是一個費時、費力的大工程。論文少了還能逐條整理,如果論文數量較多,逐條整理方法容易造成視覺疲勞,極易出錯,而糾錯也需較大工作量。經費充裕的圖書館可以通過購買數據來滿足數據清洗的要求,但是學科分析是靈活多變的,可能隨時更改分析角度和緯度,而購買的數據無法實時達到所需要求。Python語言具有“優雅、明確、簡單”等特點,適合作為編程小白的學科分析人員們學習和掌握,利用Python強大的語言功能,論文的清洗工作只需要打幾行代碼便可以輕松完成,可以使學科分析人員從繁瑣的數據清洗工作中解脫出來,讓其有更多的精力與時間從事其他更多具有創造性的工作。
Python語言是1989年由荷蘭人Guido van Rossum發明,1991年發行第一個公開版本。該語言是目前最接近自然語言的通用編程語言[1]。這種語言像C語言那樣,能夠全面調用計算機的功能接口,又可以像shell那樣,輕松的編程[2]。
Python語言具有以下特點:可拓展性。程序員可以在高層直接編寫.py拓展模塊,也可以在底層直接引用C語言的庫。對象與過程均支持。Python語言在面向對象時進行模塊化處理,也可以在自己編寫的函數中引入固定化的模塊。語法簡潔清晰,代碼可讀性強。即使沒有編程基礎也可以逐漸掌握。具有功能齊全的標準庫和豐富的第三方模塊[3]。隨著Python的第三方庫與Excel表格進行結合以后,很多Excel工作可以利用Python來處理。應用范圍廣。被越來越多獨立、大型的項目用于軟件開發[4]。基于以上特點,Python語言適合沒有編程基礎的學科分析館員學習、掌握及運用。
學科分析中常用的WOS論文分析指標有:發表年份、被引頻次、作者排位、是否通訊、二級機構、合作單位等等。對于可以直接獲取利用的指標數據,不作表述;而對于涉及到論文作者的相關信息,數據庫提供的數據通常無法直接利用,必須根據本校的實際情況,對相關信息進行分類和提取。針對WOS論文清洗所涉及信息提取問題,對于編程語言來說,就是字符串的匹配、提取、索引、排序等問題。其自帶的字符串操作方法可以輕松的完成很多復雜的工作。以2篇四川農業大學發表的WOS論文為例來說明Python語言的應用過程。
Python語言中有很多字符串的操作方法,比如字符串索引,分片,大小寫互換等方法都比較實用。針對WOS論文數據清洗中作者排序問題,Python語言可以利用按照固定字符串進行數據分割的方法split(),本實例是按照“;”進行分割;再根據分割量,統計個數獲得作者排序;最后根據最終設想的結果形式,制定格式化輸出模式,以format()方法進行直觀體現。以表1中的第一篇論文的AF列作者信息為例。代碼如下:
1.5.1 有效性指標及觀測時點 ①SBM頻次及應答率;②中醫證候療效;③單項主要癥狀有效率。排便次數每天記錄,其他均基線、用藥滿(7±1)d記錄并評估。以SBM應答率為主要觀察指標。

表1 2篇四川農業大學發表的WOS論文作者相關信息表
一篇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數據清理中的各個部分,最終實現數據清洗目標,本課題組也將在后續研究與實踐中進一步探索與呈現。本文只是初步探索,以期為圖書館同仁們提供一個新的數據處理方法或思想,供學科分析人員參考。