摘要
科研作為高校發(fā)展及提升人才培養(yǎng)質(zhì)量一項(xiàng)重要工作,跟教學(xué)相輔相成,如何利用數(shù)據(jù)對(duì)學(xué)校科研成果進(jìn)行評(píng)價(jià)至關(guān)重要,本文利用Python的優(yōu)勢(shì),采用其提供的Scrapy框架對(duì)學(xué)院科研成果進(jìn)行分析統(tǒng)計(jì),使用自動(dòng)化的數(shù)據(jù)平臺(tái)對(duì)科研數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析進(jìn)而提高科研數(shù)據(jù)的統(tǒng)計(jì)效率并利用數(shù)據(jù)對(duì)科研成果質(zhì)量作出相應(yīng)評(píng)價(jià),同時(shí)為指導(dǎo)下一步的科研工作有了理論數(shù)據(jù)支持。
【關(guān)鍵詞】Scrapy 科研數(shù)據(jù) 數(shù)據(jù)統(tǒng)計(jì)
Python語(yǔ)言是目前在機(jī)器學(xué)習(xí)及人工智能等領(lǐng)域應(yīng)用比較多的一門(mén)語(yǔ)言,能簡(jiǎn)單有效地實(shí)現(xiàn)面向?qū)ο缶幊?,是一種功能強(qiáng)大面向?qū)ο蟮慕忉屝陀?jì)算機(jī)程序設(shè)計(jì)語(yǔ)言。Python語(yǔ)言屬于語(yǔ)法簡(jiǎn)潔清晰的開(kāi)源編程語(yǔ)言而且具有豐富的標(biāo)準(zhǔn)庫(kù)和強(qiáng)大的第三方庫(kù)。本課題選擇采用Scrapy框架下設(shè)計(jì)的平臺(tái)在期刊收錄庫(kù)中獲取我院教職工發(fā)表的學(xué)術(shù)成果數(shù)據(jù),同時(shí)將數(shù)據(jù)根據(jù)年度分類(lèi)保存到科研統(tǒng)計(jì)數(shù)據(jù)庫(kù)中,一方面,科研統(tǒng)計(jì)的效率大大提高,另一方面,通過(guò)對(duì)學(xué)術(shù)成果進(jìn)行分析統(tǒng)計(jì)能獲取到教職工科研的關(guān)注點(diǎn),同時(shí)為下一步的科研工作作指導(dǎo)。
1 研究的主要內(nèi)容
本課題研究的主要內(nèi)容:
(1)設(shè)計(jì)平臺(tái)分析期刊收錄庫(kù)數(shù)據(jù)(以我院教職工發(fā)表的成果為目標(biāo)),將數(shù)據(jù)例如題名、作者、來(lái)源、發(fā)表時(shí)間、數(shù)據(jù)庫(kù)形式(期刊、會(huì)議等)、被引次數(shù)、下載次數(shù)等放入相應(yīng)年度數(shù)據(jù)庫(kù)中;
(2)對(duì)數(shù)據(jù)庫(kù)中各項(xiàng)自動(dòng)進(jìn)行專(zhuān)業(yè)性統(tǒng)計(jì)分析,獲取數(shù)據(jù)背后的隱形價(jià)值,可以按被引次數(shù)進(jìn)行排位,了解每個(gè)成果的相對(duì)質(zhì)量;
(3)根據(jù)前述結(jié)果,了解教職工的科研重點(diǎn),進(jìn)一步為下一步的科研工作計(jì)劃作準(zhǔn)備,用說(shuō)服力強(qiáng)的數(shù)據(jù)如被引次數(shù)、下載次數(shù)指導(dǎo)評(píng)價(jià)科研成果的質(zhì)量及被關(guān)注度。
本課題的前提是對(duì)期刊收錄庫(kù)數(shù)據(jù)中涉及我院教職工發(fā)表的成果進(jìn)行數(shù)據(jù)獲取,選擇數(shù)據(jù)是關(guān)鍵,有數(shù)據(jù)才能進(jìn)行下一步的分析。課題主要是對(duì)獲取的內(nèi)容進(jìn)行統(tǒng)計(jì)分析,課題是基于Scrapy框架的數(shù)據(jù)分析平臺(tái)設(shè)計(jì),該平臺(tái)使用Python的第三方庫(kù)jieba庫(kù)進(jìn)行分詞統(tǒng)計(jì),通過(guò)此環(huán)節(jié)要獲取科研的主題,在具體平臺(tái)應(yīng)用中,需要不斷根據(jù)統(tǒng)計(jì)結(jié)果的客觀性來(lái)調(diào)試程序運(yùn)行。
本課題對(duì)我院科研數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析進(jìn)而提高科研數(shù)據(jù)的統(tǒng)計(jì)效率并利用數(shù)據(jù)對(duì)科研成果質(zhì)量作出相應(yīng)評(píng)價(jià),同時(shí)為指導(dǎo)下一步的科研工作有了理論數(shù)據(jù)支持。
2 平臺(tái)設(shè)計(jì)過(guò)程
2.1 科研成果統(tǒng)計(jì)
考慮到從網(wǎng)頁(yè)中獲取數(shù)據(jù),對(duì)網(wǎng)頁(yè)進(jìn)行解析,把需要的數(shù)據(jù)找到并提取出保存到相應(yīng)的數(shù)據(jù)表中,需要用到的第三方庫(kù)均需導(dǎo)入,具體導(dǎo)入的庫(kù)有requests、BeautifulSoup、os、re、xlwt等。
對(duì)獲取的網(wǎng)頁(yè)平臺(tái)采用BeautifulSoup庫(kù)進(jìn)行解析,并調(diào)用相應(yīng)方法例如find all獲取標(biāo)簽數(shù)據(jù),在創(chuàng)建好的Excel文檔中寫(xiě)入題目、作者、期刊、發(fā)表時(shí)間、被引次數(shù)、下載次數(shù)等標(biāo)題信息,明確獲取數(shù)據(jù)的屬性保存到Excel表中,提取數(shù)據(jù)過(guò)程中關(guān)鍵是要能夠準(zhǔn)確定位到數(shù)據(jù)所在標(biāo)簽,并對(duì)所需數(shù)據(jù)進(jìn)行如去掉前后空格或其它不需要字符等處理工作,其他過(guò)程均相似,以提取論文作者及期刊為例,代碼如下:
#提取論文作者
author_list=soup.find_all('td',class_='author flag')
i=0
for author in author list:
author=author.text.stripo
sheetl.write(i+1,1,author)
i+=1
#提取期刊名稱(chēng)
name_list=soup.find_all(href=re.compile('/kns/NaviBridge.aspx'))
i=0
for name in name list:
name=name.text.strip()
sheet1.write(i+1,2,name)
i+=1
所有設(shè)計(jì)完成運(yùn)行后設(shè)計(jì)教職工的科研成果己自動(dòng)化保存到數(shù)據(jù)表中,快捷高效。結(jié)果截圖如圖1所示(以2017年度為例)。
2.2 科研成果分析效果圖及代碼
在前述基礎(chǔ)上,為了更加直觀的掌握到教職工科研工作的重點(diǎn),平臺(tái)實(shí)現(xiàn)了對(duì)論文題目進(jìn)行詞頻統(tǒng)計(jì)來(lái)關(guān)注研究的側(cè)重點(diǎn),并可通過(guò)詞云的形式展現(xiàn),平臺(tái)實(shí)現(xiàn)該部分功能需要用到的第三庫(kù)有BeautifulSoup、WordCloud、matplotlib、irmead、jieba等。
平臺(tái)通過(guò)導(dǎo)入Python中一個(gè)重要的第三方中文分詞函數(shù)庫(kù)—jieba庫(kù)完成詞頻統(tǒng)計(jì)功能。jieba庫(kù)支持3種分詞模式:全模式,把句子中所有可以成詞的詞語(yǔ)都掃描出來(lái),速度非??欤遣荒芙鉀Q歧義;精確模式,將句子最精確地切開(kāi),適合文本分析;搜索引擎模式,在精確模式基礎(chǔ)上,對(duì)長(zhǎng)詞再次切分,提高召回率,適合用于搜索引擎分詞。平臺(tái)中根據(jù)功能實(shí)現(xiàn)論文題目中詞頻的統(tǒng)計(jì)選擇使用全模式較為適宜,并且設(shè)定取排序前10的關(guān)鍵詞。詞頻統(tǒng)計(jì)部分關(guān)鍵代碼如下:
cut text="".joinoieba.lcut(f,cut_all=True))
cut_text1=cut_text.split("")
for word in cut_text1:
ifien(word)==1:
continue
else:
counts[word]=counts.get(word,0)+1
items=list(counts.items())
items.sort(key=lambda x:x[1],reverse=True)
for i in range(25):
word,count=items[i]
print("{0:<10}{1:>5}".format(word,count))
詞頻統(tǒng)計(jì)結(jié)果如圖2所示。
詞云又叫文字云,通過(guò)對(duì)文本數(shù)據(jù)中出現(xiàn)頻率較高的“關(guān)鍵詞”在視覺(jué)上的突出呈現(xiàn),進(jìn)而形成關(guān)鍵詞的渲染,形成類(lèi)似云一樣的彩色圖片,可以一目了然領(lǐng)略文本數(shù)據(jù)所要表達(dá)的主要意思。Python中wordcloud庫(kù)是專(zhuān)門(mén)用于根據(jù)文本生成詞云的Python第三方庫(kù),平臺(tái)通過(guò)對(duì)科研論文題目生成的詞云直觀形象地展示研究的重點(diǎn)及關(guān)注點(diǎn)。默認(rèn)輸出結(jié)果如圖3所示,生成詞云提供的mask參數(shù)可使詞云生成指定的圖片形狀,如圖4所示。
詞云實(shí)現(xiàn)關(guān)鍵代碼如下:
bg_pic=iniread('1.png')
wordcloud=WordCloud(mask=bg_pic,font_path='simhei',background_color="white",width=1500,height=960).generatc(cut_text)
實(shí)驗(yàn)結(jié)果表明,通過(guò)該平臺(tái)統(tǒng)計(jì)相關(guān)科研數(shù)據(jù),快速高效,平臺(tái)通過(guò)詞頻統(tǒng)計(jì)及詞云對(duì)比分析,能夠直觀形象地掌握科研工作的重點(diǎn)。平臺(tái)在前期有針對(duì)性的采集山西警察學(xué)院為作者單位的發(fā)表的成果,其次,即是對(duì)數(shù)據(jù)進(jìn)行合理存儲(chǔ),主要以表的形式存儲(chǔ),主要包含字段題名、作者、來(lái)源、發(fā)表時(shí)間、數(shù)據(jù)庫(kù)形式(期刊、會(huì)議等)、被引次數(shù)、下載次數(shù)等,每一個(gè)字段都能夠反映一定的信息,能夠通過(guò)數(shù)據(jù)本身挖掘出數(shù)據(jù)背后的價(jià)值,例如被引次數(shù)可作為成果質(zhì)量的評(píng)價(jià)標(biāo)準(zhǔn)之一,下載次數(shù)可反映其他人對(duì)該成果的關(guān)注度及作者選題的與時(shí)俱進(jìn)特點(diǎn)等;最后,可將數(shù)據(jù)統(tǒng)計(jì)及分析結(jié)果實(shí)際應(yīng)用到科研工作中。
參考文獻(xiàn)
[1]郭麗蓉.基于Python的網(wǎng)絡(luò)爬蟲(chóng)程序設(shè)計(jì)[J].電子技術(shù)與軟件工程,2017(23):248-249.
[2]郭麗蓉.大數(shù)據(jù)環(huán)境下的網(wǎng)絡(luò)爬蟲(chóng)設(shè)計(jì)[J].山西電子技術(shù),2018(02):50-52.
[3]嵩天,禮欣,黃天羽.Python語(yǔ)言程序設(shè)計(jì)基礎(chǔ)(第2版)[M].北京:高等教育出版社,2017.
[4]陳皋.基于PageRank的在線(xiàn)社交網(wǎng)絡(luò)信息傳播模型研究[D].廣州:華南理工大學(xué),2017.
[5]劉元冬.移動(dòng)軟件評(píng)論數(shù)據(jù)分析技術(shù)研究[D].北京:北京郵電大學(xué),2017.
[6]半吊子全棧工匠.10行python代碼的詞云[EB/OL].http://blog.csdn.net/wireless_com/article/details/60571394,2018-1-6.