李嘉祺
(南寧理工學院圖文信息中心 廣西壯族自治區桂林市 541006)
數據挖掘是一門新興的交叉學科,涉及多個領域如知識工程、人工智能以及數理統計技術等,通常指的是完整的一個過程。這一過程從大興數據庫中對可實用、有效的、新穎的知識和模式進行識別,并且利用這些信息豐富知識或者做出有效決策[1]。簡而言之,所謂數據挖掘,就是抽取大量數據中潛在的有價值的規則、模型或者知識的一個過程,并且在實際的運用中,與知識發現(Knowledge Discovery in Databases,KDD)的概念具有一定的相似性[2],其挖掘環境如圖1。本文分析了高校人才引進中運用Python 數據挖掘的價值,現報道如下。

圖1:數據挖掘環境
Python 語言作為當前比較熱門的一個程序設計語言,也是面向對象的一種語言,其解釋性、交互性較好[4]。在2017年熱門計算機語言排行中,Python 居于首位,明顯優于C 和Java,其中Python 開源社區的用戶活躍度較高,并且開發代碼庫以為數據挖掘提供支持,可以提高科學計算能力。同時數據挖掘實現的功能有以下幾點:
(1)聚類和分類,即發現類型不同事物之間的差異和類型相同事物的共同特征;
(2)將不同事物之間的關聯性或依存關系找出來;
(3)對事物的共通性和同質性進行尋找;
(4)將歷史資料和數據作為基本依據,對未來事物的發展趨勢進行預測[6]。
數據挖掘通常涉及比較復雜的步驟,如定義問題、預處理數據、評估模型、數據儲存以及數據建模等,其中數據挖掘中運用Python的關鍵步驟見圖2。同時,數據由兩處來源:

圖2:Python 數據挖掘流程圖
(1)運用Scrapy 框架對網絡數據進行爬取;
(2)從現有科研、人事系統中導入,在MongoDB 數據庫中,運用Pymongo 包對爬到的數據進行儲存,并且作為后續分析的數據支持。同時,Python 工具包運用在挖掘數據和預處理階段中的類型有很多,比如Sklearn、Matplotlib、Pands 以及Numpy 等。
Python 數據挖掘步驟有以下幾點:
(1)數據采集。在指定網站上通過爬蟲技術獲取數據,即首先創建Scrapy 項目,然后編寫爬蟲規則,在維持Scrapy 項目正常運行的基礎上,對相應的網絡數據進行獲取[7];
(2)數據存儲。爬蟲數據一方面具有關系型數據,另一方面還具備非關系型數據,其運用NoSQL 非關系型數據的適用性較好。在NoSQL 數據庫模型中,數據間無明顯聯系,其靈活性較高,不僅容易讀寫數據,還可以方便擴展數據[8]。在本次研究中,利用MongoDB 數據導入爬取的數據后儲存,為后續操作提供支持;
(3)數據預處理。首先對數據進行清洗。同時,Python 工具包中的多種工具具有較強的數據處理和矩陣運算能力如Numpy、Pandan 等。此外,運用Python 工具包可以對數據進行批量處理,再與數據預處理相關技術相結合,大批量、快速化的處理非法格式數據。
(4)數據挖掘建模。因為Sklearn 庫的編寫基礎為Python,其在數據挖掘、機器學習等領域的知名度較高,并且庫中包括的機器學習和數據挖掘經典算法較多。同時,庫中含有的調試測試工具比較豐富,可以優化和調整算法運行過程中所需的參數。
在本次研究中,通過集成知網科研論文數據以及科研、人事系統數據,在深入挖掘這些數據的基礎上進行統計分析,然后構建人才發現系統,實現高校人才科研評價、人才發現以及熱點發現,具體如下:
運用Scrapy 工具抓取中外論文數據,可以作為發現人才的基礎的一個數據,然后通過Web 網頁對模塊數據進行解析,在MongoDB 數據庫中按照指定格式存儲。同時,在挖掘數據時,要對論文基本信息進行充分考慮,最后對權重進行科學分配,設計算法,對挖掘模型進行構建,可以為引進高層次人才的工作發揮一定輔助作用。
通常情況下,校內科研人員可以分為三種類型,分別科研為主型、科研教學并重型、教學為主型,并且通過人事系統查詢教職工信息。在數據預處理中,首先將與挖掘、數據無關的家庭住址、手機號碼以及姓名等去除,對與規則和分類相關的字段進行保留。同時,深入挖掘測評教師,還應該離散化各字段,比如性別為女性、男性,編碼為1、0;運用區間對年齡進行分類;用碩士、博士以及其他替代學歷/學位,編碼為1、2、3 等。
分析周期每年數據,然后將學科分類號作為基本依據,統計不同研究領域的論文變化趨勢和發表數量,提取論文關鍵詞,統計出現頻率,對前沿方向和研究熱點進行自動推送。同時,系統還能對研究主題相似但不同學科的文章進行分析,對學科的研究方向進行發掘,構建學術交流圈子,對科研圈和科研人員進行推薦,有助于科研人員理論成果的轉化。
本系統運用的軟件和硬件系統包括數據庫MongoDB v3.6.3、阿里云服務器Ubuntu16.04 64 位、開發工具PyCharm Community Edition 2018.3、開發語言Python3.7.2、內存16G、CPU Inter Core i7-4790 3.6GHz 以及操作系統64 位Win10 企業版。
首先對Scrapy 爬蟲項目進行搭建,對知網論文數據進行獲取,即首先明確爬取數據的域名或網址信息,然后將Scrapy 內置命令作為基本依據,使項目框架自動生成。操作如下:第1 步,對項目進行搭建,執行命令;第2 部,自定義生成爬蟲文件,執行Scrapy genspider-t crawl cnki cnhi.net。同時,按照上述兩條簡單命令,能夠搭建Scrapy 爬蟲項目,然后分析上述過程,可見Scrapy 框架的易用性和功能性較好。
在系統中,數據庫儲存數據的格式為json,具體如下:


上述數據結構確定后,與操作數據庫相連,然后Pymongo 作為連接MongoDB 數據的一個驅動,將Pymongo 驅動包導入后,能夠進行數據的增加、查詢、修改以及刪除等操作。同時,在清洗數據的過程中,Matplotilib、Pabdas 以及Numpy 等工具的矩陣運算和數據處理能力較強,再結合上述Python 工具包,可以提高數據處理效率。
在本系統中,通過導入Sklearn 庫,能夠促進數據挖掘和機器學習任務的實現。通常情況下,在進行建模時,可以劃分數據為兩個部分,分別是訓練集和測試集,能夠將訓練數據平均分為相同大小的k 份。同時,在進行交叉驗證時,能夠對學習實驗進行K 次單獨運行,在這一期間,選擇k 子集一個為驗證集,而剩下的(k-1)容器則為訓練集,然后對學習算法進行訓練,從而對測試結果平均值進行計算。
在高校的管理工作中,人力資源管理系統是比較重要的一個組成部分,但是大部分高校僅實現了原始、基本、初步的一個統計和查詢功能。在人事管理部門的日常工作中,采用完善的一套智能信息系統,可以科學規劃與評測學生的人才引進情況,并且為在校人員的科學培養和管理提供一定的支持依據,可以為高校職能部門和決策者提供全面、多維度的智能分析功能,從而促進高校人事管理水平的提高。