


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