











摘 要:為了研究中文科技期刊被國際期刊“施引側”的引用行為,采用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
責任編輯 周春娟