国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Django的網(wǎng)絡(luò)招聘數(shù)據(jù)可視化分析系統(tǒng)的設(shè)計與實(shí)現(xiàn)

2023-11-01 15:53:17姜永成
科技資訊 2023年19期
關(guān)鍵詞:分詞頁面可視化

姜永成

(黔南民族職業(yè)技術(shù)學(xué)院 貴州 都勻 558000)

當(dāng)前,社會高速發(fā)展,已然從IT 時代走向DT 時代。在此背景下,國外與國內(nèi)企業(yè)相繼開展人才爭奪戰(zhàn),如今人才已成為了最緊缺資源之一,企業(yè)為了吸引人才、用好人才、留住人才,采取了一系列措施。在信息化網(wǎng)絡(luò)快速發(fā)展的今天,以往傳統(tǒng)的招聘方式已經(jīng)不適應(yīng)當(dāng)今企業(yè)對人才招聘的需求。網(wǎng)絡(luò)招聘由于具有覆蓋范圍廣、成本低、信息傳播速度快以及信息甄別優(yōu)等特點(diǎn)受到廣大企業(yè)的追捧,已經(jīng)成為當(dāng)下主流的招聘方式。

1 網(wǎng)絡(luò)招聘數(shù)據(jù)可視化分析系統(tǒng)需求分析

軟件研發(fā)由多個部分構(gòu)成,需求分析是非常重要的部分,是在調(diào)查研究、分析和與用戶交流之后對軟件具體需求有全面的掌握,再將具體需求制定成規(guī)范性的、清晰完整的需求文檔,對系統(tǒng)性能與功能等方面的要求進(jìn)行確定。系統(tǒng)需求分析也可以稱為軟件需求分析或者需求分析工程等。本文首先進(jìn)行調(diào)研分析,并以網(wǎng)絡(luò)招聘具體情況和需求為基礎(chǔ),完成系統(tǒng)功能性需求的明確,具體包含數(shù)據(jù)獲取、導(dǎo)入、處理、分析和可視化5個模塊。在開發(fā)網(wǎng)絡(luò)招聘數(shù)據(jù)可視化分析系統(tǒng)之前,開發(fā)相關(guān)人員需要對系統(tǒng)進(jìn)行詳細(xì)的調(diào)研,首先需要確定開發(fā)系統(tǒng)的可行性,本文主要從推廣可行性、經(jīng)濟(jì)可行性、技術(shù)可行性、應(yīng)用可行性等方面介紹該系統(tǒng)的可行性。

2 網(wǎng)絡(luò)招聘數(shù)據(jù)可視化分析系統(tǒng)設(shè)計

本文研發(fā)的系統(tǒng)運(yùn)用的架構(gòu)為B/S 架構(gòu),研發(fā)平臺為Pycharm,語言選擇Python,框架選擇Django,同時利用AdminLTE 框架完成前臺頁面的設(shè)計與實(shí)現(xiàn),該框架是以JQuery 與Bootstrap3 為基礎(chǔ)的。因?yàn)閿?shù)據(jù)處理與分析任務(wù)量非常大,Python 內(nèi)部含有的類庫是非常多的,并且高級數(shù)據(jù)結(jié)構(gòu)也非常齊全,框架成熟度也較高,使數(shù)據(jù)處理與分析更加便捷。因此本課題研發(fā)的系統(tǒng)選擇的編程語言為Python,Pycharm將Python研發(fā)需要的特性和工具進(jìn)行集成,對于Web 研發(fā)框架給予更好的支持。數(shù)據(jù)分析結(jié)果基本上是通過直觀的圖標(biāo)形式進(jìn)行展現(xiàn),因此系統(tǒng)還需要對ECharts圖表庫進(jìn)行運(yùn)用。對于獲取和分析數(shù)據(jù)等功能模塊生成的文件在存儲時基本上是以Excel 和CSV 為最主要的形式,CSV 可看作簡易的Excel。數(shù)據(jù)儲存格式為CSV,讀取和寫入都更加便捷,而且實(shí)現(xiàn)起來難度也很小,與Excel文件相比占用空間更小。

2.1 數(shù)據(jù)獲取模塊設(shè)計

該功能模塊是指利用Scrapy框架完成爬蟲程序?qū)ΛC聘網(wǎng)和前程無憂兩個招聘網(wǎng)站的職位數(shù)據(jù)進(jìn)行爬取。數(shù)據(jù)爬取以前利用瀏覽器對這兩個招聘網(wǎng)站進(jìn)行訪問,使用鼠標(biāo)點(diǎn)擊頁面中的統(tǒng)一資源定位器(Uniform Resource Locator,URL)等信息,對訪問地址URL的改變情況進(jìn)行觀看,同時對最后要訪問的URL和爬蟲程序結(jié)束條件進(jìn)行確定,接下來將要訪問的URL在爬蟲程序內(nèi)部動態(tài)構(gòu)建,同時對其結(jié)束條件進(jìn)行設(shè)置,使爬蟲程序能夠及時停止。將請求發(fā)送給URL,獲取到URL 反饋結(jié)果后完成HTML 分析,借助Xpath 解析庫將可視化分析系統(tǒng)需要的信息進(jìn)行解析并將其保存到csv 文件或直接保存到mysql 數(shù)據(jù)庫中,提取數(shù)據(jù)以職位ID、地區(qū)、企業(yè)名稱、學(xué)歷、經(jīng)驗(yàn)、職位描述以及薪資福利等為主,可以在網(wǎng)頁信息解析過程中完成職位描述的url 的動態(tài)構(gòu)建,接下來對職位描述頁面url 繼續(xù)訪問,進(jìn)而將職位描述信息進(jìn)行獲取。

2.2 數(shù)據(jù)導(dǎo)入模塊設(shè)計

數(shù)據(jù)導(dǎo)入功能是將招聘數(shù)據(jù)文件導(dǎo)入系統(tǒng)中便于后續(xù)的數(shù)據(jù)處理與數(shù)據(jù)分析,也使系統(tǒng)能夠在數(shù)據(jù)發(fā)生改變時及時將最新數(shù)據(jù)向系統(tǒng)進(jìn)行導(dǎo)入,從而保證分析結(jié)果的時效性。數(shù)據(jù)導(dǎo)入功能是由數(shù)據(jù)與模板的下載與數(shù)據(jù)上傳構(gòu)成的。系統(tǒng)頁面中有文件選擇的按鈕,通過該按鈕可以將所需文件進(jìn)行上傳,待確定上傳之后還需要根據(jù)系統(tǒng)中提供的模板文件將已經(jīng)傳遞給系統(tǒng)的文件與其匹配格式,對傳遞給系統(tǒng)的文件是否具有正確格式進(jìn)行確定。本系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)選擇MySQL關(guān)系型數(shù)據(jù)庫,MySQL屬于開源的數(shù)據(jù)庫,使用成本較低,并且開發(fā)人員對MySQL數(shù)據(jù)庫比較易于入手。其中招聘崗位信息表記錄著崗位的信息,主要包括崗位記錄編號ID、崗位名稱、最高工資、最低工資、崗位所在城市、公司名稱等12個數(shù)據(jù)項(xiàng)。

2.3 數(shù)據(jù)處理模塊設(shè)計

可視化分析是以數(shù)據(jù)處理為基礎(chǔ)的,數(shù)據(jù)分析通過Python展開分析的過程中,如果與數(shù)據(jù)庫直接相連,就將所需模塊導(dǎo)進(jìn)Python中即可。不過由于獲取到的部分?jǐn)?shù)據(jù)中存在很多問題,如噪聲、完整性不好、一致性不高、重復(fù)和遺失等,若不進(jìn)行處理就進(jìn)行可視化分析,分析結(jié)果必然會受到很大程度的影響。因此,需要利用Python 內(nèi)部的pandas 庫將數(shù)據(jù)庫內(nèi)部的信息向DataFrames寫入,以實(shí)現(xiàn)數(shù)據(jù)清洗,完成清洗處理以后再展開可視化分析。

2.4 數(shù)據(jù)分析模塊設(shè)計

2.4.1 中文分詞

在對獲取的數(shù)據(jù)集進(jìn)行分析時,可以采用分詞、去停用詞等方式對非結(jié)構(gòu)化的招聘信息文本進(jìn)行處理。本文選用的中文文本分詞工具為jieba,jieba 是中文自然語言處理分詞庫,具有實(shí)用性強(qiáng)、使用簡單等特點(diǎn),是一種概率語言分詞模型。最大概率路徑的查詢是通過動態(tài)規(guī)劃來獲取的,保證以詞頻為基礎(chǔ)的最大切分組合能夠順利獲取到。Jieba對全模式、精確模式和搜索引擎模式支持,并且繁體分詞與自定義詞典也都支持[1]?;谙颦h(huán)形圖(DAG)式,那些在字段里沒有查詢到的字段組成新的短語,即“未登錄詞”,然后通過隱馬爾科夫模型(Hidden Markov Model,HMM)分詞精確率得到顯著提升,通過Viterbi 算法使最佳隱藏狀態(tài)序列獲取到。對隱藏變量的馬爾科夫隨機(jī)的整個流程進(jìn)行描述,這個模型要應(yīng)用到3 個概率矩陣、2 個序列,3個概率矩陣分別為狀態(tài)生成觀測概率矩陣B、狀態(tài)轉(zhuǎn)移概率矩陣A和初始狀態(tài)概率矩陣π。{0,z,Π,A,B,λ=(Π,A,B)}可表示HMM,其模型可由λ=(Π,A,B)進(jìn)行決定,Π和A對觀測序列有決定性作用,狀態(tài)序列是由B來決定的。訓(xùn)練、預(yù)測與分詞是HMM的中文分詞的具體步驟。

2.4.2 文本表示

清洗、分詞和清除停用詞之后,數(shù)據(jù)分析還是不能進(jìn)行,其原因是招聘數(shù)據(jù)是以文本形式表示,而這種文本都屬于非結(jié)構(gòu)化數(shù)據(jù),但算法顯然要求長度固定的數(shù)值特征向量。所以文本數(shù)據(jù)長度并未保持統(tǒng)一,就不能使用算法完成分析。因此要在數(shù)據(jù)原義維持不變的前提下,對其向量化處理以滿足計算機(jī)處理要求。本課題研發(fā)的系統(tǒng)選擇以文檔特征向量表示為基礎(chǔ)的向量空間模型實(shí)現(xiàn)文本的表示,英文簡稱是VSM,全稱為Vector Space Model。

這里采用TF-IDF作為權(quán)重確定的數(shù)值統(tǒng)計方法。該方法原旨在反映單詞對集合或者語料庫中文檔的重要性,在信息檢索、文本挖掘和用戶建模的搜索中常用作加權(quán)因子,其值與單詞在文檔中出現(xiàn)的次數(shù)成正比地增加,并被包含該單詞的語料庫中的文檔數(shù)量所抵消[2]。文章賦權(quán)特征項(xiàng)是通過TF-IDF 算法完成,文本內(nèi)容中特征項(xiàng)體現(xiàn)越顯著權(quán)重越大,反之則權(quán)重就更小,這樣使關(guān)鍵詞能夠順利抽取出來。該算法基本思想為文本中詞出現(xiàn)頻次越高對應(yīng)的重要程度就越大,出現(xiàn)頻次越少對應(yīng)的重要程度越小[3]。

TF(Term Frequency)是指詞頻,用d表示文檔,用t表示特征項(xiàng),TF是指d中t出現(xiàn)頻率,如果一個詞語ti在文檔dj中出現(xiàn)了ni,j次,那么ti的詞頻可表示為

逆向文件頻率簡稱IDF,可對一個字詞在文檔中普遍重要性衡量,IDF 為文檔總數(shù)乘以全部包含該字詞的文檔總數(shù),然后獲取的結(jié)果去對數(shù)后就是該字詞的IDF[4]。對應(yīng)的計算公式為

式(2)中,分子|D|為指語料庫內(nèi)文章總體數(shù)量,分母表示含有此詞組的文章數(shù)量,通常會將分母進(jìn)行加1,其目的是保證分母不會等于0,對應(yīng)公式為

接下來利用下面公式將TF 與IDF 相乘后就能夠得到結(jié)果。

提取特征時Document是招聘信息,經(jīng)過分詞處理和清除停用詞后就是Term。接下來計算TF-IDF 并按從大到小排列計算得到的結(jié)果,抽取出招聘數(shù)據(jù)中的新的特征詞,并在此前提下利用TF-IDF 加權(quán)詞向量,這樣加權(quán)詞矩陣就完成建立。

2.5 可視化模塊設(shè)計

前臺頁面設(shè)計與可視化顯示構(gòu)成可視化模塊,前臺頁面中注冊與登錄功能是非常重要的,任何用戶如果要對招聘信息分析結(jié)果進(jìn)行查看,就要按照網(wǎng)頁提醒完成注冊操作,然后再進(jìn)行登錄,這種方式能夠使平臺安全得到更好的保證。系統(tǒng)會將分析結(jié)果可視化展現(xiàn)給用戶,其中菜單欄主要包括總體信息概覽、Java 職位展示、前端開發(fā)崗位展示、Android崗位展示、數(shù)據(jù)分析工程師崗位展示、C/C++職位展示。

3 網(wǎng)絡(luò)招聘數(shù)據(jù)可視化分析系統(tǒng)實(shí)現(xiàn)

3.1 系統(tǒng)實(shí)現(xiàn)環(huán)境

可視化分析系統(tǒng)的研發(fā)使用Python 語言、scrapy框架、Django 框架,為實(shí)現(xiàn)研發(fā)效率的提升,研發(fā)環(huán)境中操作系統(tǒng)選擇應(yīng)用最為普遍且更加熟悉的Windows。Python 中內(nèi)置了Python Shell 和IDE,使程序開發(fā)難度進(jìn)一步降低。

3.2 實(shí)現(xiàn)過程

3.2.1 數(shù)據(jù)獲取

系統(tǒng)需要的數(shù)據(jù)集通過scrapy框架進(jìn)行獲取,主要收集的內(nèi)容包括學(xué)歷要求、薪資福利、工作地區(qū)、崗位名以及企業(yè)名稱等。新建scrapy項(xiàng)目,在項(xiàng)目下新建爬蟲文件。在項(xiàng)目文件中編寫爬蟲文件、items文件、管道文件pipelines,配置settings。

3.2.2 數(shù)據(jù)導(dǎo)入

該模塊負(fù)責(zé)將數(shù)據(jù)獲取模塊獲取到的數(shù)據(jù)向系統(tǒng)內(nèi)部導(dǎo)入,使后續(xù)數(shù)據(jù)分析工作更加便捷。該模塊的功能包含兩個方面:一為下載模塊,二為上傳數(shù)據(jù)的功能。對于第一個功能來說,就是將數(shù)據(jù)格式文件存儲到保存靜態(tài)文件的data 目錄中來,再在頁面內(nèi)利用標(biāo)簽提供模板下載的鏈接實(shí)現(xiàn)模板下載的功能。該功能通過頁面文件中的input標(biāo)簽對文件進(jìn)行選擇,再在Django后臺與模板文件匹配格式。匹配完成以后在upload文件夾中保存相應(yīng)的文件,為以后數(shù)據(jù)分析和數(shù)據(jù)處理提供依據(jù)。

3.2.3 數(shù)據(jù)處理

得到的數(shù)據(jù)基本上噪聲偏多且規(guī)范性較差,因此要進(jìn)行重復(fù)數(shù)據(jù)、缺失數(shù)據(jù)和異常數(shù)據(jù)的處理。文章對于此類數(shù)據(jù)的處理是通過Python內(nèi)的pandas庫來實(shí)現(xiàn)的,處理過程如下。

(1)數(shù)據(jù)提取。創(chuàng)建數(shù)據(jù)庫連接對象,從MYSQ提取db=pymysql.connect(host='localhost',user='root',password='',db='liepindb',charset='utf8')。連接數(shù)據(jù)庫成功后,對數(shù)據(jù)庫中table 數(shù)據(jù)表進(jìn)行讀?。篸ata=db[collection].find(query)讀取結(jié)束以后,通過pandas 庫使數(shù)據(jù)庫內(nèi)部的數(shù)據(jù)向DataFrame 形式進(jìn)行轉(zhuǎn)變:df=pd.DataFrame(list(data))。

(2)數(shù)據(jù)去重。可以通過drop_duplicate方法對清除DataFrame格式的重復(fù)數(shù)據(jù),再將格式為DataFrame的數(shù)據(jù)進(jìn)行返回。重復(fù)數(shù)據(jù)的清除對應(yīng)代碼為DataFrame.drop_duplicates(subset=None,keep='first',inplace=False)。

(3)填充數(shù)據(jù)。若數(shù)據(jù)缺失嚴(yán)重,完整性很低,就要刪除數(shù)據(jù),不過如果數(shù)據(jù)缺失情況不是很嚴(yán)重,并且缺失的數(shù)據(jù)并非重要數(shù)據(jù),此時可通過填充方式來解決。本課題中填充數(shù)據(jù)是通過DataFrame.fillna()函數(shù)來實(shí)現(xiàn)的。

3.2.4 數(shù)據(jù)分析

數(shù)據(jù)分析模塊最開始是要從數(shù)據(jù)庫中將已經(jīng)處理完成的文本讀出來,還需要對其進(jìn)行分詞和清除停用詞等處理過程,使后續(xù)數(shù)據(jù)分析更加便捷。本系統(tǒng)中對于分詞預(yù)處理選擇jieba分詞工具,這種工具支持的分詞模式主要有精確模式、全模式以及搜索引擎模式[5]。使用最大熵、支持向量機(jī)等多種經(jīng)典機(jī)器學(xué)方法,逐步提高分類準(zhǔn)確率,通過對詞語所在的語句的語境和該詞語與語句中其他詞語的依賴關(guān)系進(jìn)行分析,構(gòu)建了文本表示模型。其中,jieba部分核心源代碼如下:

3.2.5 數(shù)據(jù)可視化該系統(tǒng)首頁設(shè)計是通過Bootstrap 框架來完成的,首頁設(shè)計簡潔大氣且美觀入眼,用戶能夠從首頁中利用相應(yīng)的操作完成不同功能,如檢索、登錄或者注冊等。如分析職位描述以后,對各個崗位展開相似的研究,提取關(guān)鍵詞通過TF-IDF 算法進(jìn)行實(shí)現(xiàn),生成詞云圖是由Python內(nèi)的Wordcloud模塊來完成的,能夠很容易發(fā)現(xiàn),技術(shù)崗位不同對應(yīng)的專業(yè)技能需求也存在差異,詞云圖涵蓋很多個人素質(zhì)方面的要求,將企業(yè)對員工能力和素質(zhì)方面等要求更直觀地展現(xiàn)出來。總之,Python 作為大數(shù)據(jù)處理的主要操作語言,可以有效處理海量數(shù)據(jù),并將數(shù)據(jù)結(jié)果以直觀圖形顯示,更易于數(shù)據(jù)使用人的讀取和理解[6]。

4 結(jié)語

近年來,這些技術(shù)被越來越多地應(yīng)用于招聘就業(yè)工作,以提高管理效率和就業(yè)質(zhì)量。本文完成網(wǎng)絡(luò)招聘數(shù)據(jù)可視化分析系統(tǒng)的研發(fā),前臺和后臺分離是通過Django 框架實(shí)現(xiàn)的,前臺頁面設(shè)計應(yīng)用JQuery、CSS和HTML 等多種工具與技術(shù)。最后展現(xiàn)平臺頁面,具體頁面有系統(tǒng)首頁、用戶注冊與登錄頁面、用戶管理頁面,為求職者提供實(shí)用的數(shù)據(jù)支持,幫助他們更好地了解招聘市場的情況、分析市場趨勢。

猜你喜歡
分詞頁面可視化
大狗熊在睡覺
刷新生活的頁面
基于CiteSpace的足三里穴研究可視化分析
基于Power BI的油田注水運(yùn)行動態(tài)分析與可視化展示
云南化工(2021年8期)2021-12-21 06:37:54
基于CGAL和OpenGL的海底地形三維可視化
結(jié)巴分詞在詞云中的應(yīng)用
智富時代(2019年6期)2019-07-24 10:33:16
“融評”:黨媒評論的可視化創(chuàng)新
傳媒評論(2019年4期)2019-07-13 05:49:14
值得重視的分詞的特殊用法
高考分詞作狀語考點(diǎn)歸納與疑難解析
同一Word文檔 縱橫頁面并存
河东区| 罗江县| 竹北市| 锡林郭勒盟| 洮南市| 临桂县| 鄄城县| 南雄市| 临颍县| 临江市| 维西| 江北区| 新昌县| 平湖市| 馆陶县| 拉孜县| 丰原市| 探索| 珲春市| 花莲市| 静海县| 栾城县| 岚皋县| 甘德县| 视频| 桃园县| 仪陇县| 辉县市| 巴塘县| 固始县| 五寨县| 曲沃县| 巴中市| 安达市| 曲靖市| 宁津县| 永安市| 阳山县| 蓝田县| 浦江县| 罗田县|