版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Y市人才管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)案例目錄TOC\o"1-3"\h\u27134Y市人才管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)案例 1221811.1系統(tǒng)框架 1143821.2系統(tǒng)部署 2234361.3人才信息庫模塊 377321.3.1目標(biāo)數(shù)據(jù)源探查及獲取 44811.3.2數(shù)據(jù)抽取及清洗 6322851.3.3數(shù)據(jù)轉(zhuǎn)換、關(guān)聯(lián)與比對 8217781.3.4數(shù)據(jù)融合處理 10268501.3.5數(shù)據(jù)同步增量更新 12123761.4人才基礎(chǔ)管理模塊 13108721.4.1人才信息管理 14325131.4.2單位信息管理 15233871.4.3系統(tǒng)信息管理 1641901.5人才數(shù)據(jù)分析模塊 22192841.5.1結(jié)構(gòu)化數(shù)據(jù)分析及可視化 2391871.5.2非結(jié)構(gòu)數(shù)據(jù)分析及可視化 24306061.6人才綜合業(yè)務(wù)管理模塊 29141981.6.1系統(tǒng)登錄 2936381.6.2人才服務(wù) 30125441.7小結(jié) 32系統(tǒng)框架基于面向多源異構(gòu)數(shù)據(jù)的Y市人才管理系統(tǒng)框架如圖4.1所示。圖4.SEQ圖4.\*ARABIC1系統(tǒng)框架本系統(tǒng)按照功能需求分析搭建了四層系統(tǒng)框架。整個系統(tǒng)框架搭建在基于J2EE標(biāo)準(zhǔn)的技術(shù)架構(gòu)之上,采用基于MVC模式中的Spring+SpringMVC+MyBatis框架在“人才信息庫模塊”中,首先對多源異構(gòu)數(shù)據(jù)進(jìn)行采集,主要使用Webmagic進(jìn)行人才信息的網(wǎng)絡(luò)爬取人才數(shù)據(jù)采用Kettle工具進(jìn)行多源異構(gòu)數(shù)據(jù)的采集、預(yù)處理與融合后,將數(shù)據(jù)存儲到人才庫中?!叭瞬呕A(chǔ)管理模塊”建立在人才信息庫基礎(chǔ)上,實(shí)現(xiàn)系統(tǒng)登錄、日志管理、賬號管理、角色權(quán)限管理、系統(tǒng)資源管理、企事業(yè)單位信息管理、人才信息管理等基本功能。“人才數(shù)據(jù)分析模塊”也是建立在人才信息庫基礎(chǔ)上。針對結(jié)構(gòu)化數(shù)據(jù),通過SQL對人才庫的數(shù)據(jù)進(jìn)行查詢后由數(shù)據(jù)接口將結(jié)果數(shù)據(jù)傳輸?shù)角岸隧撁?,?shí)現(xiàn)對人才總體數(shù)據(jù)、人才結(jié)構(gòu)數(shù)據(jù)、風(fēng)險(xiǎn)指標(biāo)數(shù)據(jù)等結(jié)構(gòu)化數(shù)據(jù)的分析。針對非結(jié)構(gòu)化數(shù)據(jù),采用基于自然語義的人才文本關(guān)鍵詞提取算法提高數(shù)據(jù)分析效率。最后使用Echarts框架進(jìn)行數(shù)據(jù)可視化圖表展示?!叭瞬啪C合業(yè)務(wù)管理模塊”處于系統(tǒng)最上層,主要通過用戶注冊、用戶登錄、人才政策申請、人才政策審核等應(yīng)用功能,提供高效的人才管理和人才服務(wù)。系統(tǒng)部署面向多源異構(gòu)數(shù)據(jù)的Y市人才管理系統(tǒng)的實(shí)現(xiàn)過程,主要部署在兩個Tomcat應(yīng)用服務(wù)容器中,如圖4.2所示。整個系統(tǒng)運(yùn)用Nginx服務(wù)器實(shí)施負(fù)載均衡,運(yùn)用Mysql數(shù)據(jù)庫對系統(tǒng)的數(shù)據(jù)庫進(jìn)行備份。圖4.SEQ圖4.\*ARABIC2系統(tǒng)部署圖此外,考慮到Windows完善的圖形化界面,網(wǎng)絡(luò)和硬件支持良好,應(yīng)用程序眾多等優(yōu)勢。為了實(shí)現(xiàn)Y市人才管理系統(tǒng),本論文采用Windows操作系統(tǒng)作為開發(fā)環(huán)境,通過Java語言和JavaScript語言進(jìn)行代碼實(shí)現(xiàn)各功能模塊,包括人才信息庫、人才基礎(chǔ)管理、人才數(shù)據(jù)分析、人才綜合業(yè)務(wù)管理等功能模塊。Java語言具有良好的跨平臺與可移植性支持,以及基于虛擬機(jī)的高性能運(yùn)行效率、對分布式應(yīng)用環(huán)境的的安全性支持,完善的內(nèi)存管理和訪問機(jī)制,以及程序的健壯性設(shè)計(jì)。因此,使用Java語言實(shí)現(xiàn)面向多源異構(gòu)數(shù)據(jù)的人才管理系統(tǒng)的后端部分。JavaScript語言作為一種解釋性的腳本語言,可以有效減少網(wǎng)絡(luò)傳輸量,提交傳輸效率,方便操縱HTML對象,對分布式運(yùn)算、處理予以支持。廣泛應(yīng)用于各個領(lǐng)域。因此,使用JavaScript語言實(shí)現(xiàn)面向多源異構(gòu)數(shù)據(jù)的人才管理系統(tǒng)的前端部分。人才信息庫模塊人才信息庫模塊實(shí)現(xiàn)了多源異構(gòu)數(shù)據(jù)治理,包括結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)。非結(jié)構(gòu)化數(shù)據(jù)主要包括:人才學(xué)術(shù)論文文檔、人才發(fā)明專利文檔、人才科研項(xiàng)目文檔、人才業(yè)績文檔、人才獲取獎項(xiàng)文檔、人才評價(jià)文檔、其他人才文本信息等。本系統(tǒng)的人才數(shù)據(jù)處理采用Kettle工具實(shí)現(xiàn),原始庫的數(shù)據(jù)(即省市人才庫、黨政人才庫、企業(yè)人才庫、專業(yè)人才庫、教育人才庫的數(shù)據(jù))經(jīng)過目標(biāo)數(shù)據(jù)源探查及獲取、數(shù)據(jù)抽取、清洗、轉(zhuǎn)換、關(guān)聯(lián)、比對、融合等系列過程后,將數(shù)據(jù)治理成符合標(biāo)準(zhǔn)規(guī)范的數(shù)據(jù),加載到目的數(shù)據(jù)倉庫模型中去,最終實(shí)現(xiàn)人才信息庫模塊。對多源異構(gòu)數(shù)據(jù)治理過程如圖4.3所示。圖4.SEQ圖4.\*ARABIC3人才信息庫模塊實(shí)現(xiàn)過程按照圖4.3的實(shí)現(xiàn)過程,人才信息庫模塊基本實(shí)現(xiàn)了全市人才庫、黨政人才庫、企業(yè)人才庫、專業(yè)人才庫、教育人才庫的相關(guān)人才信息數(shù)據(jù)治理。數(shù)據(jù)治理結(jié)果如表4.1所示。表4.SEQ表4.\*ARABIC1數(shù)據(jù)處理結(jié)果數(shù)據(jù)源原始數(shù)據(jù)條數(shù)清洗融合后條數(shù)省市人才庫893276785621黨政人才庫8527677218企業(yè)人才庫238512203256專業(yè)人才庫123259116576教育人才庫6527959199總計(jì)14056021241870目標(biāo)數(shù)據(jù)源探查及獲取首先需要找到目標(biāo)數(shù)據(jù)源,目標(biāo)數(shù)據(jù)源探查組件主要對原始庫(省市人才庫、黨政人才庫、企業(yè)人才庫、專業(yè)人才庫、教育人才庫)中的數(shù)據(jù)進(jìn)行探查分析,以便對待匯聚整合的數(shù)據(jù)有一個清晰的了解,進(jìn)而提取出數(shù)據(jù)源頭的元數(shù)據(jù)信息,為后續(xù)的數(shù)據(jù)處理過程提供管理、業(yè)務(wù)、技術(shù)等方面的支撐。具體的探查內(nèi)容如下:業(yè)務(wù)探查:對來源表的業(yè)務(wù)含義進(jìn)行探查,以便能準(zhǔn)確地理解和描述數(shù)據(jù)。接入方式探查:對來源表的存儲位置、提供方式進(jìn)行探查,為數(shù)據(jù)接入規(guī)則定義和數(shù)據(jù)處理、組織提供依據(jù)。字段探查:對具體字段的數(shù)據(jù)內(nèi)容進(jìn)行探查,識別其代表的含義和統(tǒng)計(jì)分布情況??罩德侍讲椋航y(tǒng)計(jì)字段空值占比情況,一方面可重點(diǎn)關(guān)注空值率高的重要字段,另一方面可通過與歷史情況比較及時(shí)發(fā)現(xiàn)數(shù)據(jù)質(zhì)量的動態(tài)變化。值域及分布探查:對字段的值域范圍以及分布情況進(jìn)行探查。命名實(shí)體探查:根據(jù)數(shù)據(jù)內(nèi)容識別人名、地名、機(jī)構(gòu)名、手機(jī)號等命名實(shí)體,幫助理解字段語義。數(shù)據(jù)元探查:根據(jù)字段名字及內(nèi)容,探查字段的確切語義,并與數(shù)據(jù)元標(biāo)準(zhǔn)進(jìn)行映射。類型及格式探查:探查字段的類型及格式是否符合規(guī)范。數(shù)據(jù)集探查:對來源數(shù)據(jù)集表名、引用數(shù)據(jù)元等進(jìn)行探查,確定數(shù)據(jù)集是否是標(biāo)準(zhǔn)數(shù)據(jù)集。探查數(shù)據(jù)總量、增量及更新情況,為數(shù)據(jù)接入、處理和組織提供依據(jù)。問題數(shù)據(jù)探查:探查字段中不符合規(guī)范的數(shù)據(jù),為后續(xù)數(shù)據(jù)清洗規(guī)則的制定提供依據(jù)。最后,將探查到的數(shù)據(jù)進(jìn)行推送,以便獲取數(shù)據(jù),如圖4.4所示。把數(shù)據(jù)探查的結(jié)果信息推送到數(shù)據(jù)清洗組件、數(shù)據(jù)轉(zhuǎn)換組件以及元數(shù)據(jù)庫中,為相關(guān)組件的規(guī)則制定,流程分發(fā)等提供必要的信息。圖4.SEQ圖4.\*ARABIC4目標(biāo)數(shù)據(jù)源探查及獲取數(shù)據(jù)抽取及清洗數(shù)據(jù)抽取數(shù)據(jù)抽取是對目標(biāo)數(shù)據(jù)源進(jìn)行規(guī)范化處理的過程。針對結(jié)構(gòu)化數(shù)據(jù),kettle通過配置數(shù)據(jù)庫連接信息,訪問本地及遠(yuǎn)程數(shù)據(jù)源抽取數(shù)據(jù)。針對非結(jié)構(gòu)化數(shù)據(jù),kettle將目錄信息轉(zhuǎn)化為結(jié)構(gòu)化的數(shù)據(jù)表示,轉(zhuǎn)換的數(shù)據(jù)包含文件名、目錄存儲路徑、大小、文件內(nèi)容等信息。(1)結(jié)構(gòu)化數(shù)據(jù)內(nèi)容提取主要針對存在于各政府部門的相關(guān)數(shù)據(jù)庫,如教育部門、經(jīng)信委、民政部門等,根據(jù)文件中的內(nèi)容,提取出業(yè)務(wù)需要的數(shù)據(jù)內(nèi)容。常見的結(jié)構(gòu)化數(shù)據(jù)類型包括XML、CSV、TXT、Word、Excel等文件。針對結(jié)構(gòu)化數(shù)據(jù)的抽取過程如下:數(shù)據(jù)緩存:對XML、CSV、TXT、Word、Excel文件解析出來的結(jié)構(gòu)化信息緩存。數(shù)據(jù)封裝:對解析出來的數(shù)據(jù)進(jìn)行數(shù)據(jù)封裝,形成標(biāo)準(zhǔn)化的數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)推送:推送封裝好的結(jié)構(gòu)化數(shù)據(jù)到本系統(tǒng)的人才信息庫。源數(shù)據(jù)索引:需實(shí)現(xiàn)對原始半結(jié)構(gòu)化數(shù)據(jù)的索引能力,便于對提取后的結(jié)果進(jìn)行溯源追蹤。(2)非結(jié)構(gòu)化數(shù)據(jù)內(nèi)容提取多媒體信息提?。簭膱D片、語音、視頻等多媒體數(shù)據(jù)中提取文字、圖片等信息。如從相關(guān)圖片中提取文本信息,從視頻信息中提取關(guān)鍵幀信息,對圖片中出現(xiàn)的二維碼進(jìn)行解析識別,提取包含的文字信息、鏈接信息等。生物特征提?。簭暮A繄D像、視頻、音頻信息中提取人臉等信息,為人才信息庫提供數(shù)據(jù)支撐。如從社保局的人才管理系統(tǒng)中的人員照片信息提取人臉特征信息、從各類視頻信息中提取人臉信息,識別出涉及的人才人員信息等。全文信息提?。褐饕菑暮A课谋緮?shù)據(jù)中提取姓名、身份證號、電話號碼、社會統(tǒng)一信用代碼、企業(yè)名稱、地址、時(shí)間等信息。如從經(jīng)信局的企業(yè)人才發(fā)展評估報(bào)告信息中提取相關(guān)人員學(xué)歷、職稱、職業(yè)資格等結(jié)構(gòu)化要素信息。如從業(yè)務(wù)信息系統(tǒng)中對接的Word格式的文獻(xiàn)文件內(nèi)容中提取單位名稱、姓名等要素信息。數(shù)據(jù)清洗數(shù)據(jù)清洗是對人才相關(guān)業(yè)務(wù)數(shù)據(jù)中不符合標(biāo)準(zhǔn)規(guī)范或者無效的數(shù)據(jù)進(jìn)行相關(guān)操作。在進(jìn)行數(shù)據(jù)整合之前先定義數(shù)據(jù)的清洗規(guī)則,并對符合清洗規(guī)則的數(shù)據(jù)設(shè)置數(shù)據(jù)的錯誤級別。當(dāng)進(jìn)行數(shù)據(jù)整合過程中遇到符合清洗規(guī)則的數(shù)據(jù)時(shí),系統(tǒng)將把這些業(yè)務(wù)數(shù)據(jù)置為問題數(shù)據(jù),并根據(jù)錯誤的嚴(yán)重程度進(jìn)行歸類。對出現(xiàn)的問題數(shù)據(jù)進(jìn)行標(biāo)記后存入問題數(shù)據(jù)庫中,經(jīng)確認(rèn)后再決定是通過清洗轉(zhuǎn)換后入庫,還是直接放棄,抑或其他方式處理。最終,建立目標(biāo)數(shù)據(jù)庫作為數(shù)據(jù)倉庫用于存放清洗后的數(shù)據(jù)。下面以姓名和地址字段為例,對數(shù)據(jù)清洗進(jìn)行簡要說明:(1)姓名和地址信息是重要的身份標(biāo)識,但它們比較復(fù)雜,比較難以處理。同一人的姓名和地址可能有不同的表示方法,如曾用名、個人隨便填寫的姓名、中文名與英文名;地址可能會出現(xiàn)地址的縮寫或不同表示方法、地址的詳盡不同、信箱還是門牌號等問題。(2)即使各信息源的信息都是完整、準(zhǔn)確的,而由于各信息源的數(shù)據(jù)格式可能并不相同,也需要對這些信息進(jìn)行清理。清理的方法是,把來自各個信息源的信息進(jìn)行解析,分成更小的信息片斷,如把姓名分成姓和名,把地址分成行政區(qū)劃部分(省、市、區(qū))路名、門牌號、樓層或者房間號等。利用姓名和地址解析工具,可以對信息片斷進(jìn)行合并和修正。(3)通過對姓名和地址的解析和清洗,可以提高身份識別的準(zhǔn)確性和數(shù)據(jù)匹配的質(zhì)量,從而使得遺漏和錯誤的匹配大大減少。數(shù)據(jù)清洗分為以下幾步:(1)元素化將非標(biāo)準(zhǔn)的數(shù)據(jù)格式化成結(jié)構(gòu)數(shù)據(jù)。以數(shù)據(jù)庫表user的任意一條記錄為例。Name、City和Phone三個字段值分別為:Name:張?zhí)?生City:北京Phone素化為:Name(1):張Name(2):天1Name(3):生City:北京Phone(1):010Phone(2):12220816(2)標(biāo)準(zhǔn)化將元素標(biāo)準(zhǔn)化,根據(jù)字典消除不一致的縮寫。這里的字典是用戶通過分析樣本表預(yù)先制定的一些規(guī)則的集合。樣本表是根據(jù)概率統(tǒng)計(jì)從表user選擇一部分記錄所形成的一個表。首先分析Name(2)的值為“天1”,此值在字典中不存在,而“天”在字典中存在。所以在這里,“天1”被認(rèn)為是臟數(shù)據(jù),正確的數(shù)據(jù)應(yīng)為“天”。(3)校驗(yàn)對標(biāo)準(zhǔn)化的元素進(jìn)行一致性校驗(yàn),即在內(nèi)容上修改錯誤。(4)匹配在其它記錄中尋找相似的記錄,發(fā)現(xiàn)重復(fù)記錄。比如,對整個表user排序,然后在表中查找Name(1)值為“張”的所有記錄,如果有這樣的記錄再去查找Name(2)。依次類推,如果所有字段的數(shù)據(jù)全都相等,那么這兩條記錄就是重復(fù)記錄。(5)消除重復(fù)記錄根據(jù)匹配結(jié)果進(jìn)行處理,刪除部分記錄或者合并多個記錄為一個完整信息的記錄。數(shù)據(jù)轉(zhuǎn)換、關(guān)聯(lián)與比對數(shù)據(jù)轉(zhuǎn)換本系統(tǒng)涉及Y市多個部門、多個業(yè)務(wù)系統(tǒng)中的數(shù)據(jù)。不同系統(tǒng)有不同的數(shù)據(jù)結(jié)構(gòu)定義,數(shù)據(jù)匯聚在一起后就會產(chǎn)生數(shù)據(jù)格式不規(guī)范統(tǒng)一、數(shù)據(jù)命名不規(guī)范統(tǒng)一、數(shù)據(jù)編碼不規(guī)范統(tǒng)一、數(shù)據(jù)標(biāo)識不規(guī)范統(tǒng)一。這樣的數(shù)據(jù)是無法支撐業(yè)務(wù)應(yīng)用需要的,因此需要對匯集的數(shù)據(jù)進(jìn)行數(shù)據(jù)格式規(guī)范統(tǒng)一、數(shù)據(jù)命名規(guī)范統(tǒng)一、數(shù)據(jù)編碼規(guī)范統(tǒng)一、數(shù)據(jù)標(biāo)識不規(guī)范統(tǒng)一等數(shù)據(jù)轉(zhuǎn)換處理。數(shù)據(jù)命名轉(zhuǎn)換:通過比對標(biāo)準(zhǔn)數(shù)據(jù)元和實(shí)際數(shù)據(jù)表中的數(shù)據(jù)項(xiàng),如果比對結(jié)果一致,則不需要轉(zhuǎn)換處理。如果比對結(jié)果不一致,要按照標(biāo)準(zhǔn)數(shù)據(jù)元中規(guī)定的命名進(jìn)行轉(zhuǎn)換。數(shù)據(jù)類型轉(zhuǎn)換:通過比對標(biāo)準(zhǔn)數(shù)據(jù)元和實(shí)際數(shù)據(jù)表中的數(shù)據(jù)項(xiàng),如果比對結(jié)果一致,則不需要轉(zhuǎn)換處理。如果比對結(jié)果不一致,要按照標(biāo)準(zhǔn)數(shù)據(jù)元中規(guī)定的數(shù)據(jù)類型進(jìn)行轉(zhuǎn)換。按照標(biāo)準(zhǔn)規(guī)范將不同來源、不同格式的數(shù)據(jù)轉(zhuǎn)換成統(tǒng)一的標(biāo)準(zhǔn)化數(shù)據(jù)格式。本文系統(tǒng)建立了數(shù)據(jù)標(biāo)準(zhǔn),進(jìn)入系統(tǒng)的數(shù)據(jù)都必須遵循這些標(biāo)準(zhǔn),只有這樣才能保證平臺上層應(yīng)用的調(diào)用數(shù)據(jù)的通用性和應(yīng)用之間充分的信息共享。需要做的格式統(tǒng)一有以下幾種:全角轉(zhuǎn)半角、電話號碼轉(zhuǎn)換、URL形式轉(zhuǎn)換、身份證件號碼轉(zhuǎn)換、社會統(tǒng)一信用代碼轉(zhuǎn)換、時(shí)間格式轉(zhuǎn)換等。身份證號碼和社會統(tǒng)一信用代碼標(biāo)準(zhǔn)化是將身份證位數(shù)統(tǒng)一為18位半角字符,字母字符轉(zhuǎn)為大寫字符,電話號碼標(biāo)準(zhǔn)化主要是保留源數(shù)據(jù)的數(shù)字字符部分,去除加減號、空格等特殊字符,僅保留有效的數(shù)字字符內(nèi)容。特定字段全角轉(zhuǎn)半角(URL、賬號等信息)。時(shí)間標(biāo)準(zhǔn)化即將“yyyy-MM-ddHH:mm:ss”、“yyyyMMddHHmmss”等各種時(shí)間格式值,這些格式也統(tǒng)一轉(zhuǎn)成系統(tǒng)定義的標(biāo)準(zhǔn)時(shí)間格式。數(shù)據(jù)編碼轉(zhuǎn)換:比對標(biāo)準(zhǔn)數(shù)據(jù)元和實(shí)際數(shù)據(jù)表中的數(shù)據(jù)項(xiàng),如果比對結(jié)果一致,則不需要轉(zhuǎn)換處理,如果比對結(jié)果不一致,需要按照標(biāo)準(zhǔn)數(shù)據(jù)元中規(guī)定的標(biāo)準(zhǔn)編碼進(jìn)行轉(zhuǎn)換。將來源于不同系統(tǒng)的不同數(shù)據(jù)字典轉(zhuǎn)化為標(biāo)準(zhǔn)數(shù)據(jù)字典。視頻轉(zhuǎn)碼:由于本文系統(tǒng)的視頻信息來源于不同終端設(shè)備,且由異構(gòu)通信網(wǎng)絡(luò)進(jìn)行傳輸,因此需要進(jìn)行視頻轉(zhuǎn)碼,將已經(jīng)壓縮編碼的視頻碼流轉(zhuǎn)換成另一個視頻碼流,以適應(yīng)不同的網(wǎng)絡(luò)帶寬、不同的終端處理能力和不同的用戶需求,并保證服務(wù)質(zhì)量。數(shù)據(jù)標(biāo)識轉(zhuǎn)換:通過數(shù)據(jù)元和數(shù)據(jù)表字段的關(guān)聯(lián),根據(jù)關(guān)聯(lián)關(guān)系自動生成可執(zhí)行的轉(zhuǎn)換規(guī)則,進(jìn)行數(shù)據(jù)標(biāo)識的轉(zhuǎn)換。標(biāo)準(zhǔn)地址轉(zhuǎn)換:對地址要素不完整、文字表達(dá)不一致的地址信息進(jìn)行標(biāo)準(zhǔn)化處理。依托民政的標(biāo)準(zhǔn)化地址庫及互聯(lián)網(wǎng)公開的POI地址信息庫,形成地址標(biāo)準(zhǔn)基礎(chǔ)庫,對采集的地址信息進(jìn)行標(biāo)準(zhǔn)化處理。數(shù)據(jù)關(guān)聯(lián)數(shù)據(jù)關(guān)聯(lián)是指完成在不同數(shù)據(jù)集之間的關(guān)聯(lián),實(shí)現(xiàn)在不同數(shù)據(jù)集的聯(lián)動,為本文系統(tǒng)的數(shù)據(jù)管理、業(yè)務(wù)應(yīng)用的需求提供支撐。根據(jù)多源異構(gòu)數(shù)據(jù)流程設(shè)計(jì)的要求,數(shù)據(jù)關(guān)聯(lián)主要包括:標(biāo)準(zhǔn)關(guān)聯(lián)、字典關(guān)聯(lián)、非結(jié)構(gòu)化關(guān)聯(lián)、關(guān)聯(lián)回填。(1)標(biāo)準(zhǔn)關(guān)聯(lián):在人才信息庫中設(shè)計(jì)了標(biāo)準(zhǔn)的數(shù)據(jù)元體系,作為數(shù)據(jù)資源中心的數(shù)據(jù)規(guī)范基礎(chǔ)。數(shù)據(jù)元是最小的數(shù)據(jù)單位。在數(shù)據(jù)關(guān)聯(lián)系統(tǒng)中,需要通過手工或更智能的方式實(shí)現(xiàn)各種不同編碼的原始數(shù)據(jù)和標(biāo)準(zhǔn)數(shù)據(jù)元的關(guān)聯(lián)。(2)數(shù)據(jù)字典、屬性及相關(guān)含義的關(guān)聯(lián):如姓名與身份證號關(guān)聯(lián)、學(xué)歷和學(xué)位關(guān)聯(lián)、職稱名稱與職稱等級關(guān)聯(lián)、單位代碼和單位名稱關(guān)聯(lián)等。(3)非結(jié)構(gòu)化與結(jié)構(gòu)化的關(guān)聯(lián):對非結(jié)構(gòu)化數(shù)據(jù)進(jìn)行提取結(jié)構(gòu)化信息后,按照關(guān)鍵字(如就職企業(yè)相同、從事專業(yè)相同、職稱等級相同)等進(jìn)行關(guān)聯(lián),構(gòu)建數(shù)據(jù)關(guān)聯(lián)關(guān)系。關(guān)聯(lián)回填:兩個或兩個以上數(shù)據(jù)集之間通過某種信息建立關(guān)聯(lián)關(guān)系之后,根據(jù)實(shí)際業(yè)務(wù)的需要,對這兩個數(shù)據(jù)集中的數(shù)據(jù)進(jìn)行相互補(bǔ)充。數(shù)據(jù)比對通過數(shù)據(jù)比對操作實(shí)現(xiàn)對兩個數(shù)據(jù)集中的數(shù)據(jù)內(nèi)容、數(shù)據(jù)格式的比較核查,找出相同的數(shù)據(jù)或不同的數(shù)據(jù)。在業(yè)務(wù)應(yīng)用場景上主要實(shí)現(xiàn)以下數(shù)據(jù)的比對:(1)數(shù)據(jù)項(xiàng)與標(biāo)準(zhǔn)數(shù)據(jù)元比對:實(shí)現(xiàn)原始數(shù)據(jù)表中的數(shù)據(jù)與標(biāo)準(zhǔn)數(shù)據(jù)元數(shù)據(jù)的比對,比對的內(nèi)容包括數(shù)據(jù)命名、數(shù)據(jù)標(biāo)識、數(shù)據(jù)格式、數(shù)據(jù)值域、數(shù)據(jù)編碼、數(shù)據(jù)類型等數(shù)據(jù)的比對,數(shù)據(jù)比對的結(jié)果為一致或不一致。(2)不同數(shù)據(jù)項(xiàng)集比對:實(shí)現(xiàn)兩個數(shù)據(jù)項(xiàng)集的交集、補(bǔ)集,以滿足數(shù)據(jù)檢索的需求。數(shù)據(jù)融合處理標(biāo)準(zhǔn)化后的數(shù)據(jù)需要采取必要的數(shù)據(jù)融合手段,按照人才信息庫及數(shù)據(jù)應(yīng)用需要的方式組織,以支撐人才管理的數(shù)據(jù)需求。在數(shù)據(jù)融合的過程中,本文系統(tǒng)以合理的方式設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu),保障數(shù)據(jù)應(yīng)用對數(shù)據(jù)高效分析查詢的同時(shí),盡可能的減少冗余。數(shù)據(jù)融合處理過程如下所示:模型加工主要包含數(shù)據(jù)合并、數(shù)據(jù)覆蓋、數(shù)據(jù)切分等操作。數(shù)據(jù)合并通過函數(shù)、分組或轉(zhuǎn)列的方式完成數(shù)據(jù)的表合并和列合并。數(shù)據(jù)覆蓋操作需要依賴數(shù)據(jù)比對的結(jié)果,將新增和修改的記錄覆蓋到目標(biāo)表中。數(shù)據(jù)切分需要通過行篩選、列提取或表提取等方式將相同數(shù)據(jù)對象的結(jié)果表進(jìn)行切分合并。如圖4.5所示。根據(jù)3.1.1.2節(jié)的需求分析,在生成的全部合并數(shù)據(jù)中會增加一個名為“標(biāo)志字段”的標(biāo)識,“Identical”、“Changed”、“New”、“Deleted”。圖4.SEQ圖4.\*ARABIC5數(shù)據(jù)合并示例匯總加工操作按照公共匯總的原則,明確哪些數(shù)據(jù)需要匯總合后,采用聚合函數(shù)或窗口函數(shù)等方式,完成對跨數(shù)據(jù)域且需要被頻繁公用的數(shù)據(jù)的匯總。圖4.SEQ圖4.\*ARABIC6基于switch/case數(shù)據(jù)處理示意圖根據(jù)3.1.1.2節(jié)的需求分析,數(shù)據(jù)處理的實(shí)現(xiàn)操作源于數(shù)據(jù)合并后的標(biāo)識字段,分為:“Identical”、“Changed”、“New”、“Deleted”四種。采用圖4.6展示了基于switch/case的數(shù)據(jù)處理過程。圖4.SEQ圖4.\*ARABIC7定時(shí)調(diào)度設(shè)定為提高數(shù)據(jù)處理的效率,設(shè)計(jì)中考慮使用Kettle的定時(shí)任務(wù)功能對數(shù)據(jù)進(jìn)行處理。實(shí)現(xiàn)方式為使用Kettle定時(shí)任務(wù)功能配置需定時(shí)執(zhí)行的參數(shù)實(shí)現(xiàn)。人為的更新數(shù)據(jù)是一件不高效且昂貴的操作,所以在人才信息庫模塊實(shí)現(xiàn)過程中考慮了這一點(diǎn)。實(shí)現(xiàn)的方法是:設(shè)定定時(shí)任務(wù)。定時(shí)任務(wù)相當(dāng)于鬧鐘,當(dāng)時(shí)間流轉(zhuǎn)到設(shè)定時(shí)間后,會自動執(zhí)行被分配的操作任務(wù)。通過定時(shí)處理操作,在系統(tǒng)中就只需要進(jìn)行任務(wù)的編寫,其他都交給定時(shí)器觸發(fā)即可,如圖4.7所示。因?yàn)橄到y(tǒng)在白天的使用率高,所以不推薦把定時(shí)任務(wù)設(shè)定在白天。于是,選擇在凌晨執(zhí)行定時(shí)任務(wù)是一個不錯的辦法。設(shè)置系統(tǒng)對人才信息庫進(jìn)行定時(shí)處理,就能持續(xù)保障人才庫數(shù)據(jù)的健壯,從而可以更高效的掌握和應(yīng)用數(shù)據(jù)。通過以上基于Kettle的所有操作,包括數(shù)據(jù)抽取、數(shù)據(jù)合并、數(shù)據(jù)處理、定時(shí)處理等操作,基本可實(shí)現(xiàn)人才信息庫模塊的構(gòu)建。數(shù)據(jù)同步增量更新考慮到人才信息庫中的來源數(shù)據(jù)是不斷增加與更新的,因此,人才信息庫需要同步增量更新。數(shù)據(jù)的同步增量更新一般有兩種方式。一種是先進(jìn)行相關(guān)舊數(shù)據(jù)的全部刪除,然后將相關(guān)的新數(shù)據(jù)進(jìn)行插入,實(shí)現(xiàn)全部更新。這種操作實(shí)現(xiàn)起來方便簡單,但是更新后的數(shù)據(jù)無法體現(xiàn)新舊數(shù)據(jù)之間的區(qū)別,新數(shù)據(jù)一般都包含了大量的舊數(shù)據(jù)內(nèi)容。另一種是相對新舊數(shù)據(jù)進(jìn)行對比,只需將不同的數(shù)據(jù)進(jìn)行更新即可,即將新增和修改過的數(shù)據(jù)插入目標(biāo)數(shù)據(jù)庫。這樣操作相對較為復(fù)雜,計(jì)算成本較高,但是增量數(shù)據(jù)體積小且更符合業(yè)務(wù)場景要求。本系統(tǒng)的人才信息庫使用第二種方式進(jìn)行數(shù)據(jù)同步增量更新,并使用kettle進(jìn)行實(shí)現(xiàn),以減小計(jì)算成本。圖4.SEQ圖4.\*ARABIC8數(shù)據(jù)同步增量更新kettle總體過程配置圖基于Kettle組件的同步增量更新過程其如圖4.8所示,主要包括以下幾個操作步驟:輸入:輸入的最新人才數(shù)據(jù)源表與目標(biāo)數(shù)據(jù)源表的歷史數(shù)據(jù)進(jìn)行比對,確認(rèn)比對的關(guān)鍵業(yè)務(wù)字段一致、且按照比對字段進(jìn)行排序。合并記錄:采用數(shù)據(jù)的同步增量更新的第二種方式進(jìn)行歷史數(shù)據(jù)的比較,并生成相應(yīng)的標(biāo)識:“identical”標(biāo)識為無變化、“changed”標(biāo)識為有更新、“deleted”標(biāo)識為刪除、“new”標(biāo)識為新增。switch/case:根據(jù)合并記錄的標(biāo)識可定義kettle判斷選擇分支進(jìn)行數(shù)據(jù)同步增量更新處理??詹僮鳎喝绻鹲witch/case的判斷標(biāo)識為identical,說明本條輸入的最新人才數(shù)據(jù)源表與目標(biāo)數(shù)據(jù)源表的歷史數(shù)據(jù)記錄沒有發(fā)送變化,kettle將不做任何操作。插入、更新:如果switch/case的判斷標(biāo)識為changed,說明本條輸入的最新人才數(shù)據(jù)源表與目標(biāo)數(shù)據(jù)源表的歷史數(shù)據(jù)記錄有變化,kettle將執(zhí)行更新操作。如果switch/case的判斷標(biāo)識為new,說明本條輸入的最新人才數(shù)據(jù)源表是新的數(shù)據(jù)記錄,kettle將執(zhí)行插入操作。刪除:如果switch/case的判斷標(biāo)識為deleted,說明本條輸入的最新人才數(shù)據(jù)源表已刪除該條數(shù)據(jù)記錄,kettle將對目標(biāo)數(shù)據(jù)源表的歷史數(shù)據(jù)記錄執(zhí)行刪除操作。人才基礎(chǔ)管理模塊人才基礎(chǔ)管理模塊基于SSM(Spring+SpringMVC+MyBatis)組件構(gòu)建,采用Java方式,分別對人才信息管理、單位信息管理和系統(tǒng)信息管理進(jìn)行實(shí)現(xiàn)。人才信息管理圖4.SEQ圖4.\*ARABIC9人才信息E-R圖由于人才數(shù)據(jù)的錄入和維護(hù)最為重要,因此,為了節(jié)省論文篇幅,本節(jié)只對在人才數(shù)據(jù)的錄入和維護(hù)功能進(jìn)行實(shí)現(xiàn)。首先建立實(shí)體關(guān)系E-R圖,如圖4.9所示。其中,錄入維護(hù)字段部分基于SSM框架中的SpringMVC做為入口實(shí)現(xiàn)。人才信息E-R圖中涉及到的具體信息如下:(1)人才信息:除了個人信息以外,還包括教育信息、工作信息、黨政信息、聯(lián)系方式以及不同人才類別所具有的特殊信息等。(2)教育經(jīng)歷:可填寫多項(xiàng),主要包括畢業(yè)院選、所學(xué)專業(yè)、學(xué)歷、學(xué)位、授予日期及國家/地區(qū)、最高學(xué)歷學(xué)位等。(3)工作經(jīng)歷:可填寫多項(xiàng),主要包括單位名稱、擔(dān)任職務(wù)以及工作年限等。(4)入選情況:可填寫多項(xiàng),主要包括文件文號、入選類別、批次、時(shí)間、期限、落地省份、以及相關(guān)的申報(bào)書和附帶的申報(bào)附加材料等。(5)工作成果:可填寫多項(xiàng),主要包括成果的描述以及成果的材料信息等。(6)獲獎情況:可填寫多項(xiàng),主要包括獲獎的項(xiàng)目名稱、編號、排名、年度、獎勵級別、國別、授獎單位等信息。(7)專利授權(quán):可填寫多項(xiàng),主要包含專利名稱、類別、專利號、授權(quán)技術(shù)領(lǐng)域、授權(quán)公告日、當(dāng)前專利狀態(tài)、使用與轉(zhuǎn)讓情況等信息。(8)代表論著:可填寫多項(xiàng),主要包含論著名稱、所屬學(xué)科領(lǐng)域、出版/發(fā)表時(shí)間、出版機(jī)構(gòu)、發(fā)表期刊等信息。(9)培訓(xùn)情況:可填寫多項(xiàng),主要包含培訓(xùn)主題、日期、地點(diǎn)、培訓(xùn)單位和內(nèi)容等相關(guān)信息。圖4.10展示了人才信息管理類圖,包括了人才實(shí)體類、人才DAO類,人才Service類與人才管理Contoller類。PersonnelDO類為人才實(shí)體類,主要定義了系統(tǒng)人才相關(guān)的屬性,主要包括人才id、人才名稱、密碼、登錄時(shí)間、昵稱。PersonnelDAO類主要提供對人才管理的數(shù)據(jù)操作內(nèi)容,包括數(shù)據(jù)的增、刪、改、查、統(tǒng)計(jì)等底層方法的實(shí)現(xiàn)。PersonnelServiceImpl類對PersonnelService接口的實(shí)現(xiàn),是連接DAO與Contoller的中間業(yè)務(wù)邏輯層主要實(shí)現(xiàn)管理業(yè)務(wù)的增、刪、改、查、統(tǒng)計(jì)等方法。PersonnelManagerContoller類是人才管理的頂層實(shí)現(xiàn),包括了查詢所有人才、刪除人才信息、通過id查詢?nèi)瞬判畔?、編輯人才信息、?chuàng)建人才等方法的實(shí)現(xiàn)。圖4.SEQ圖4.\*ARABIC10人才信息管理類圖單位信息管理單位管理類圖如圖4.11所示。在類圖中包括了單位實(shí)體類,單位DAO類,單位Service類與單位管理Contoller類。CompanyDO類為單位實(shí)體類,主要定義了系統(tǒng)單位相關(guān)的屬性,主要包括單位id、單位名稱、密碼、登錄時(shí)間、昵稱。CompanyDAO類主要提供對單位管理的數(shù)據(jù)操作內(nèi)容,包括數(shù)據(jù)的增、刪、改、查、統(tǒng)計(jì)等底層方法的實(shí)現(xiàn)。CompanyServiceImpl類對CompanyService接口的實(shí)現(xiàn),是連接DAO與Contoller的中間業(yè)務(wù)邏輯層主要實(shí)現(xiàn)管理業(yè)務(wù)的增、刪、改、查、統(tǒng)計(jì)等方法。CompanyManagerContoller類是單位管理的頂層實(shí)現(xiàn),包括了查詢所有單位、刪除單位信息、通過id查詢單位信息、編輯單位信息、創(chuàng)建單位信息等方法的實(shí)現(xiàn)。單位信息管理是用來管理企業(yè)各單位的基本信息,同樣基于SSM框架構(gòu)建,以前端頁面數(shù)據(jù)傳輸使用SpringMVC,業(yè)務(wù)邏輯處理使用Spring,數(shù)據(jù)庫映射使用MyBatis實(shí)現(xiàn)。主要包含企業(yè)的新增、修改、查詢、刪除、導(dǎo)入、導(dǎo)出。同時(shí),除了機(jī)構(gòu)以外,企業(yè)也是作為人才歸屬的重要地方。圖4.SEQ圖4.\*ARABIC11單位管理類圖系統(tǒng)信息管理按照3.1.2.3的功能需求分析,系統(tǒng)信息管理主要就是為了實(shí)現(xiàn)賬號管理、權(quán)限管理、系統(tǒng)資源管理和日志管理。賬號管理功能實(shí)現(xiàn)圖4.12展示了賬號管理類圖,在類圖中包括了賬號實(shí)體類,賬號DAO類,賬號Service類與賬號管理Contoller類。AccountDO類為賬號實(shí)體類,主要定義了系統(tǒng)賬號相關(guān)的屬性,主要包括賬號id、賬號名稱、密碼、登錄時(shí)間、昵稱。AccountDAO類主要提供對賬號管理的數(shù)據(jù)操作內(nèi)容,包括數(shù)據(jù)的增、刪、改、查、統(tǒng)計(jì)等底層方法的實(shí)現(xiàn)。AccountServiceImpl類對AccountService接口的實(shí)現(xiàn),是連接DAO與Contoller的中間業(yè)務(wù)邏輯層主要實(shí)現(xiàn)管理業(yè)務(wù)的增、刪、改、查、統(tǒng)計(jì)等方法。AccountManagerContoller類是賬號管理的頂層實(shí)現(xiàn),包括了用戶登錄、賬號刪除、賬號注冊、所有賬號查詢等方法的實(shí)現(xiàn)。圖4.SEQ圖4.\*ARABIC12賬號管理類圖賬號是發(fā)起操作的主體。通過將擁有不同資源的角色分配給不同的賬號,以實(shí)現(xiàn)各個業(yè)務(wù)操作功能。本系統(tǒng)通過建立用戶-賬號的關(guān)系,以SSM框架,來實(shí)現(xiàn)賬號的創(chuàng)建,如圖4.13所示。賬號主要分為兩種類型:企業(yè)賬號和機(jī)構(gòu)賬號。企業(yè)賬號會與企業(yè)管理員相綁定;而機(jī)構(gòu)賬號與企業(yè)一般人員相關(guān)聯(lián)。對于企業(yè)一般人員,由于對系統(tǒng)的操作相對固定,所以企業(yè)一般人員已經(jīng)預(yù)設(shè)為機(jī)構(gòu)賬號,并綁定給出的相關(guān)角色信息。用戶賬號關(guān)聯(lián)角色編碼實(shí)現(xiàn)如表4.2所示。通過roles!=null判斷角色是否存在,如果存在通過for(Objectrole:roles)循環(huán)獲取角色信息后調(diào)用sysUserRoleDao.insert(sysUserRole)方法存儲用戶賬號關(guān)聯(lián)角色信息。圖4.SEQ圖4.\*ARABIC13賬號創(chuàng)建流程圖表4.SEQ表4.\*ARABIC2用戶-賬號創(chuàng)建的關(guān)鍵代碼//實(shí)現(xiàn)用戶-賬號關(guān)聯(lián)角色if(roles!=null){for(Objectrole:roles){SysUserRolesysUserRole=newSysUserRole();sysUserRole.setUserId(sysUser.getId());//如果是機(jī)構(gòu)賬號,那么只有一個單位錄入角色if(sysUser.getIsCompanyAccount()==1){sysUserRole.setRoleId(71L);//默認(rèn)賦予企業(yè)賬號}else{sysUserRole.setRoleId(Long.parseLong(role.toString().trim()));}sysUserRoleDao.insert(sysUserRole);}}else{//更新if(sysUser.getIsCompanyAccount()==1){SysUserRolesysUserRole=newSysUserRole();sysUserRole.setUserId(sysUser.getId());sysUserRole.setRoleId(71L);sysUserRoleDao.insert(sysUserRole);}}(2)權(quán)限管理功能實(shí)現(xiàn)權(quán)限管理通過SSM框架中的Spring與Shiro結(jié)合實(shí)現(xiàn)對用戶權(quán)限的控制。以賦予不同用戶一定的權(quán)限,使得用戶不能隨意使用資源,避免由于用戶操作不當(dāng)而引發(fā)風(fēng)險(xiǎn),尤其要規(guī)避泄露隱私數(shù)據(jù)等情況。數(shù)據(jù)操作按鈕可能并非全部操作,例如有些內(nèi)容可以新增,但不得刪除,只有管理員才能實(shí)施刪除操作[48]。圖4.SEQ圖4.\*ARABIC14權(quán)限管理E-R圖圖4.SEQ圖4.\*ARABIC15RBAC模式本系統(tǒng)采用RBAC模式來建立E-R關(guān)系圖(如圖4.14所示),進(jìn)而實(shí)現(xiàn)權(quán)限管理功能。RBAC這是一種以角色為前提的訪問控制。如圖4.15所示,在RBAC之中,每一種角色都有與之相對應(yīng)的權(quán)限,用戶要想擁有一定的權(quán)限,其實(shí)現(xiàn)過程的關(guān)鍵代碼如表4.3所示。首先,判斷創(chuàng)建的角色是否在系統(tǒng)中重復(fù)if(sysRole!=null)。如果角色重復(fù),將攔截創(chuàng)建請求并進(jìn)行提示;如果未重復(fù),將使用Validator.check(sysRole)方法對角色信息進(jìn)行校驗(yàn)。校驗(yàn)成功后使用this.dao.insert(sysRole)創(chuàng)建角色。角色創(chuàng)建成功后通過permissions!=null判斷是否為角色分配了權(quán)限。如果分配了權(quán)限,則調(diào)用sysRolePermissionDao.insertSelective(sysRolePermission)方法進(jìn)行保存。表4.SEQ表4.\*ARABIC3角色創(chuàng)建//判斷角色是否重復(fù)if(sysRole!=null){//不為新舊id相等的情況,攔截重復(fù)創(chuàng)建if(!(dataParam.getLong("id")!=null&&dataParam.getLong("id").equals(sysRole.getId()))){returnresult.fail(Msg.Save.repeated("角色名字"));}}else{sysRole=newSysRole();}//數(shù)據(jù)復(fù)制if(!CommonUtil.copyProperties(sysRole,dataParam)){returnresult.fail(Msg.Save.typeError());}//數(shù)據(jù)校驗(yàn)StringcheckMsg=Validator.check(sysRole);if(StringUtils.isNotBlank(checkMsg)){returnresult.fail(Msg.Save.fail(checkMsg));}intcount;//新增if(sysRole.getId()==null||sysRole.getId().equals(0L)){sysRole.setCreateDate(newDate());sysRole.setCreateBy(ShiroAuthenticationManager.getUserId());sysRole.setDelFlag(false);count=this.dao.insert(sysRole);//保存角色關(guān)聯(lián)資源if(resources!=null){for(Objectresource:resources){SysRoleResourcesysRoleResource=newSysRoleResource();sysRoleResource.setRoleId(sysRole.getId());sysRoleResource.setResourceId(Long.parseLong(resource.toString()));sysRoleResourceDao.insert(sysRoleResource);}}//保存角色-權(quán)限分配關(guān)聯(lián)if(permissions!=null){for(Objectpermission:permissions){SysRolePermissionsysRolePermission=newSysRolePermission();sysRolePermission.setRoleId(sysRole.getId());sysRolePermission.setPermissionId(permission.toString());sysRolePermissionDao.insertSelective(sysRolePermission);}}(3)系統(tǒng)資源管理功能實(shí)現(xiàn)系統(tǒng)資源管理是本系統(tǒng)核心的部分,它包含當(dāng)前系統(tǒng)里所有的菜單以及請求路徑,如圖4.16所示。本文按照數(shù)據(jù)字典-資源關(guān)系建立E-R圖,以實(shí)現(xiàn)對頁面資源、操作資源和數(shù)據(jù)資源的管理。(1)頁面資源:用戶登錄系統(tǒng)之后能看到相應(yīng)的頁面,以菜單的形式實(shí)施控制,用戶的權(quán)限有所不同,看到菜單內(nèi)容也有所不同,訪問的頁面也存在差異。(2)操作資源:本系統(tǒng)實(shí)現(xiàn)了“可見即可操作”的特征,即用戶頁面中出現(xiàn)的所有操作按鈕都是可以操作的。這一功能能給用戶帶來良好的使用體驗(yàn),可以根據(jù)具體情況確定是否需要這樣做。(3)數(shù)據(jù)資源:在同一個頁面之中,不同的用戶獲取的數(shù)據(jù)資源有所不同。為用戶授權(quán)時(shí)需要為每位用戶指明與之相對應(yīng)的部門與組織,以便獲取相應(yīng)權(quán)限的數(shù)據(jù)資源。圖4.SEQ圖4.\*ARABIC16系統(tǒng)權(quán)限樹(4)日志管理功能實(shí)現(xiàn)本系統(tǒng)通過建立時(shí)間信息—對象操作與結(jié)果信息相關(guān)聯(lián)的E-R圖,來實(shí)現(xiàn)日志管理,從而以時(shí)間為依據(jù)將系統(tǒng)中某一對象的操作與結(jié)果歸總到一起。一般而言,用戶可以直接閱讀系統(tǒng)日志,包含著一系列操作訪問信息,比如日志類型、訪問的請求、訪問者IP地址、賬號、操作方式以及操作數(shù)據(jù)和創(chuàng)建時(shí)間,如圖4.17所示。日志為服務(wù)器的各種活動提供各種高價(jià)值信息,這對于系統(tǒng)分析、監(jiān)控而言是十分重要的[49]。圖4.SEQ圖4.\*ARABIC17日志列表截圖人才數(shù)據(jù)分析模塊人才數(shù)據(jù)分析模塊基于SSM(Spring+SpringMVC+MyBatis)構(gòu)建。本節(jié)分別從結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)分析及可視化方面進(jìn)行實(shí)現(xiàn)。結(jié)構(gòu)化數(shù)據(jù)分析及可視化針對結(jié)構(gòu)化數(shù)據(jù),首先使用SQL數(shù)據(jù)查詢語言對數(shù)據(jù)進(jìn)行查詢歸集和數(shù)據(jù)訪問操作。然后,對所得的海量數(shù)據(jù),進(jìn)行聯(lián)結(jié)、合并、分組、去重、排序、過濾、計(jì)算等操作,對異常數(shù)據(jù)進(jìn)行清理,統(tǒng)一格式,行列轉(zhuǎn)換,從繁雜的數(shù)據(jù)中提取出有價(jià)值的人才數(shù)據(jù)。最后,將數(shù)據(jù)傳輸?shù)角岸恕S蒃Charts組件根據(jù)數(shù)據(jù)分析類型,使用折線圖、柱狀圖、餅圖、K線圖、關(guān)系圖等具體圖形,將人才數(shù)據(jù)轉(zhuǎn)換為圖形進(jìn)行可視化展示。以下通過人才類別排行、基本情況分析、專業(yè)技術(shù)人才等三方面進(jìn)行舉例分析。(1)人才類別排行圖4.18是本系統(tǒng)對人才類別的橫向柱狀可視化圖表,使用戶一目了然各個類型人才的數(shù)量比例。其中,縱軸所示為人才類別名,包括:社共專業(yè)、農(nóng)村實(shí)用、專業(yè)技術(shù)、技能、企業(yè)經(jīng)營、黨政類人才,橫軸表示不同類型的人才數(shù)量。在實(shí)現(xiàn)過程中,使用了ECharts提供的開源繪圖工具,將要相應(yīng)的結(jié)構(gòu)化數(shù)據(jù)在Model層進(jìn)行處理后,以json的格式傳送給前端。首先返回一個包含人才類別的數(shù)組data:[社共專業(yè),農(nóng)村實(shí)用,專業(yè)技術(shù),技能,企業(yè)經(jīng)營,黨政類人才],然后轉(zhuǎn)入對應(yīng)的數(shù)量值value:[v1,v2,v3,v4,v5,v6],最后配置其他可視化參數(shù),如:顏色、布局、標(biāo)題、控件長寬等,生成人才類別排行可視化圖表。圖4.SEQ圖4.\*ARABIC18人才類別排行(2)基本情況分析圖4.19是本系統(tǒng)對人才基本情況的環(huán)形可視化圖表,使用戶一目了然人才的基本情況。其中包含了人才的性別分析與學(xué)歷分析,性別分析為人才的男女占比數(shù)量,學(xué)歷分析為人才學(xué)歷的占卜數(shù)量。在實(shí)現(xiàn)過程中,使用了ECharts提供的開源繪圖工具,將要可視化的數(shù)據(jù)在Model層進(jìn)行處理后,以json的格式傳送給前端。系統(tǒng)返回包含人才性別以及學(xué)歷的相關(guān)分類及數(shù)量數(shù)組data:[{value:v1,name:'男'},{value:v2,name:'女'}]、data:[{value:v1,name:'研究生'},{value:v2,name:'大學(xué)本科'},{value:v3,name:'大學(xué)???},{value:v4,name:'中專及以下'}],最后配置其他可視化參數(shù),如:顏色、布局、標(biāo)題、控件長寬等,生成人才基本情況分析可視化圖表。圖4.SEQ圖4.\*ARABIC19基本情況分析(3)專業(yè)技術(shù)人才構(gòu)成圖4.20著重分析了專業(yè)人才的職稱構(gòu)成占比。在實(shí)現(xiàn)過程中,使用了ECharts提供的開源繪圖工具,將要可視化的數(shù)據(jù)在Model層進(jìn)行處理后,以json的格式傳送給前端。系統(tǒng)返回包含人才職稱及該職稱人才數(shù)量的數(shù)組data:[{value:v1,name:'初級職稱'},{value:v2,name:'中級職稱'},{value:v3,name:'副高職稱'},{value:v4,name:'正高職稱'}],最后配置其他可視化參數(shù),如:顏色、布局、標(biāo)題、控件長寬等,生成專業(yè)技術(shù)人才構(gòu)成可視化圖表。圖4.SEQ圖4.\*ARABIC20專業(yè)技術(shù)人才構(gòu)成非結(jié)構(gòu)數(shù)據(jù)分析及可視化本節(jié)創(chuàng)新性地設(shè)計(jì)了基于自然語義的人才文本關(guān)鍵詞提取算法,提高對非結(jié)構(gòu)化數(shù)據(jù)分析效率。并同樣采用Echart工具實(shí)現(xiàn)了人才文本數(shù)據(jù)分析及可視化過程。基于自然語義的人才文本關(guān)鍵詞提取算法通過4.3.1人才信息庫模塊實(shí)現(xiàn)了人才文本數(shù)據(jù)處理后,由于人才文本數(shù)據(jù)多源異構(gòu)性質(zhì),其表達(dá)的主題信息仍然較為復(fù)雜。經(jīng)過研究發(fā)現(xiàn),在人才文本數(shù)據(jù)中,主要表現(xiàn)為圍繞一個核心主題,并向外發(fā)散了若干個非核心主題,即明顯的“1+N”的模式[50]。因此本文基于這一現(xiàn)象,設(shè)計(jì)了基于自然語義的人才文本關(guān)鍵詞提取算法,通過分析人才數(shù)據(jù)的核心主題和非核心主題在文本中的分布信息和重要程度,對人才關(guān)鍵詞的主題特征進(jìn)行提取分析處理。在關(guān)鍵詞提取過程中,除了確定句子對主題的重要程度外,還需要防止重復(fù)或者相似程度較高的句子被抽取作為摘要句,即需要平衡摘要與主題的相關(guān)性和其他摘要的相關(guān)性。為了解決這個問題,基于自然語義的人才文本關(guān)鍵詞提取算法中,結(jié)合了LDA潛在狄利克雷分布模型和最大邊緣相關(guān)MMR技術(shù)[51],利用了LDA反映句子之間的主題相似度,并通過MMR去除摘要句子的冗余,以平衡相關(guān)性和多樣性,防止查詢的文檔與檢索的文檔內(nèi)容過于相似的問題,有效提高了數(shù)據(jù)分析的準(zhǔn)確性。其中,相關(guān)性是指與原文檔主題的相關(guān)程度,相關(guān)性越大就越能反映文檔的主題信息。而多樣性則是評價(jià)摘要與原文檔的多個主題的覆蓋程度,多樣性越大就越能全面覆蓋到文檔的各個主題,防止摘要過度集中在核心主題,而忽視了非核心主題在文檔中的作用。表4.4描述了該算法的偽代碼。算法的輸入為網(wǎng)絡(luò)爬取的5000篇文本文檔集D和關(guān)鍵詞個數(shù)M,輸出為關(guān)鍵詞摘要集合Sums以及對應(yīng)的句子。首先初始化關(guān)鍵詞摘要集合Sums=,并將這5000篇文檔分成句子存入語料集數(shù)組YL中。然后,遍歷語料集中的每一個句子,根據(jù)句子向量夾角的余弦函數(shù)sim(Si,Sj)計(jì)算句子相似度,并根據(jù)相似度歸納句子C={C1,C2,…,Cm},其中每個Ci中包含了相似度差不多的句子。當(dāng)Ci中平均相似度大于設(shè)定閾值時(shí),計(jì)算出Ci中每個句子Si的MMR權(quán)重。 (4.1)其中Si表示文檔D的第i個句子。D=Sums∪NoSums,Sums是當(dāng)前摘要句子的集合,NoSums是當(dāng)前非摘要句子的集合,NoSums?i表示當(dāng)前非摘要句子中剔除當(dāng)前句子Si的剩余部分。λ是調(diào)節(jié)參數(shù),取值[0,1]之間,λ越大相關(guān)性越高,λ越低多樣性越大。遍歷完成句子MMR權(quán)重計(jì)算后,選擇在語料集YL中權(quán)重最大對應(yīng)的句子,加入摘要集合Sums,并從語料集中剔除相應(yīng)的句子。如果摘要集合中的句子符合摘要數(shù)的要求,則依次輸出摘要集合對應(yīng)的句子,作為本次自動摘要的結(jié)果。否則繼續(xù)遍歷YL,通過計(jì)算句子相似度和MMR權(quán)重的方式,找出關(guān)鍵詞摘要,直到摘要個數(shù)滿足M。表4.SEQ表4.\*ARABIC4基于自然語義的人才文本關(guān)鍵詞提取算法輸入:文檔集D,關(guān)鍵詞個數(shù)M輸出:關(guān)鍵詞摘要集合Sums以及對應(yīng)的句子1:Sums=,i,j=1;2:for(D)3:YL<-分句{S1,S2,…,Sn};4:endfor5:for(;i,j<=n;Si,SjYL)6:調(diào)用函數(shù)sim(Si,Sj)計(jì)算句子相似性;7:endfor8:根據(jù)相似性歸納句子C={C1,C2,…,Cm};9:for(C)10:if(Ck相似性>閾值)11:計(jì)算Ck中的每個句子的MMR(Si);12:選擇出最大的MMR值已經(jīng)對應(yīng)句子;13:Sums<-對應(yīng)句子;14:從YL中刪掉對應(yīng)句子;15:endfor16:if(num.(Sums)>=M)17:returnSums及對應(yīng)的句子;18:else19:gotostep5;20:endif人才文本數(shù)據(jù)分析及可視化人才文本數(shù)據(jù)分析及可視化的流程如圖4.21所示:圖4.SEQ圖4.\*ARABIC21人才文本數(shù)據(jù)分析及可視化流程圖(1)人才文本數(shù)據(jù)導(dǎo)入人才文本數(shù)據(jù)已存儲在人才信息庫中,通過預(yù)先設(shè)置的多維度篩選條件,將需分析的人才群體/單個人才的文本數(shù)據(jù)導(dǎo)入。篩選條件包括:性別、年齡段、區(qū)縣、人才類別、學(xué)歷、技術(shù)領(lǐng)域、所屬企業(yè)、身份證號等。(2)人才文本分析由于導(dǎo)入的人才文本數(shù)據(jù)都是連續(xù)的中文句子,必須對導(dǎo)入內(nèi)容進(jìn)行分詞才能進(jìn)行下一步處理。本文采用結(jié)合詞典的HMM的分詞方法進(jìn)行分詞,詞典是為了提高對熱點(diǎn)詞和專業(yè)詞的識別率。由于本文主要是做有關(guān)人才的文檔處理,因此會涉及到大量的網(wǎng)絡(luò)熱詞及技術(shù)領(lǐng)域的專業(yè)詞,比如“生物醫(yī)藥”、“電子信息技術(shù)”、“儀器儀表”、“光機(jī)電一體化”、“有機(jī)高分子材料”這樣的詞就可以被有效識別。在分詞的同時(shí),對分詞的詞性進(jìn)行標(biāo)注。然后對停用詞進(jìn)行過濾操作。停用詞是指那些沒有實(shí)際意義或者與主題無關(guān)的詞,一般包括助詞、連詞、語氣詞等虛詞和標(biāo)點(diǎn)符號,如:“的”、“了”、“但是”、“而且”、“?!?、“、”等。由于這些詞不能反映文檔的主題內(nèi)容,并且會影響關(guān)鍵詞抽取的效果。因此,需要在中文分詞之后,對照停用詞表,剔除詞的序列里的停用詞。本文可對停用詞進(jìn)行維護(hù),增加、修改、刪除停用詞。再然后,執(zhí)行詞性篩選操作。對已進(jìn)行分詞、詞性標(biāo)注、停用詞過濾的文本進(jìn)行詞性篩選,詞性包括:名詞、動詞、形容詞、副詞等。用戶可根據(jù)需求篩選需要提取的候選關(guān)鍵詞。圖4.SEQ圖4.\*ARABIC22關(guān)鍵詞提取其次,調(diào)用4.5.2.1中的關(guān)鍵詞提取算法。關(guān)于關(guān)鍵詞提取,需要設(shè)置兩個參數(shù),一是“窗口大小”,而是“關(guān)鍵詞個數(shù)”,“窗口”指候選關(guān)鍵詞的前后N個詞(“N”指“窗口大小”)的集合,“關(guān)鍵詞個數(shù)”是指最終提取顯示的關(guān)鍵詞個數(shù),如圖4.22所示。最后,實(shí)現(xiàn)可視化顯示,如圖4.23所示。本文采用ECharts組件的詞云作為關(guān)鍵詞提取結(jié)果的可視化表現(xiàn)方式。詞云就是通過形成“關(guān)鍵詞云層”或“關(guān)鍵詞渲染”,對人才文本中提取的“關(guān)鍵詞”的視覺上的突出,關(guān)鍵詞字體越大越突出說明該關(guān)鍵字比重越大。可視化詞匯的數(shù)目,根據(jù)“關(guān)鍵詞提取”步驟中的“關(guān)鍵詞個數(shù)”而定。圖4.SEQ圖4.\*ARABIC23文本數(shù)據(jù)可視化結(jié)果人才綜合業(yè)務(wù)管理模塊人綜合業(yè)務(wù)管理模塊同樣基于SSM(Spring+SpringMVC+MyBatis)構(gòu)建。本節(jié)分別從系統(tǒng)登錄和人才服務(wù)兩方面進(jìn)行實(shí)現(xiàn)。系統(tǒng)登錄系統(tǒng)登錄流程如圖4.24所示。通過SSM框架實(shí)現(xiàn)登錄認(rèn)證,通過Shiro與SSM框架中的Spring結(jié)合驗(yàn)證賬號合法性。為了獲取User信息,先要對傳入的用戶名進(jìn)行分析,如果不存在此項(xiàng)信息,就會顯示“未找到帳號異?!?。如果找到了與之相對應(yīng)的信息,但該信息被鎖定,先是顯示“鎖定異常”,然后生成AuthenticationInfo信息,交給間接父類AuthenticatingRealm。為了探明密碼是否匹配,運(yùn)用CredentialsMatcher進(jìn)行驗(yàn)證。如果密碼不匹配,則顯示“密碼錯誤”,即IncorrectCredentialsException。如果密碼重試過于頻繁,則會顯示“密碼重試過于頻繁異?!?,即ExcessiveAttemptsException。在對SimpleAuthenticationInfo信息進(jìn)行組裝時(shí),需要將加密鹽、憑據(jù)、用戶名等內(nèi)容傳入其中。CredentialsMatcher借助于鹽加密傳入的明文密碼與密文密碼配對。當(dāng)?shù)卿浭∈r(shí),則交給異常模塊處理。圖4.SEQ圖4.\*ARABIC24系統(tǒng)登錄流程圖人才服務(wù)圖4.SEQ圖4.\*ARABIC25人才服務(wù)時(shí)序圖人才服務(wù)時(shí)序圖為圖4.25,人才用戶填寫相關(guān)申報(bào)材料后提交組織部,組織部經(jīng)審核后提交人社局,人社局審核相關(guān)申報(bào)材料后提交住建局,住建局審核材料后提交組織部進(jìn)行終審,終審?fù)瓿珊蠼Y(jié)束該人才服務(wù)申報(bào)。人才服務(wù)的實(shí)現(xiàn)基于SSM框架,相關(guān)人才可以對符合自身的政策進(jìn)行填報(bào)申請,并交由操作人員進(jìn)行表單錄入,錄入后該表單會在系統(tǒng)中逐級審批,最后將審批結(jié)果通過短信或郵箱的形式告知提交人。該功能極大簡化了頻繁的業(yè)務(wù)辦理流程。由于各個業(yè)務(wù)功能代碼基本類似且都基于SSM框架實(shí)現(xiàn),所以本文以“購(租)房補(bǔ)助”的業(yè)務(wù)流程為例進(jìn)行闡述?!百?租)房補(bǔ)助”的業(yè)務(wù)流程設(shè)定為三級審核的形式,分別為:組織部、人社局、住建局。當(dāng)提交表單后,首先短信會推
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 環(huán)境食堂衛(wèi)生制度
- 衛(wèi)生材料出入庫管理制度
- 音樂室安全衛(wèi)生管理制度
- 研究會衛(wèi)生管理制度
- 廣東省村衛(wèi)生站規(guī)章制度
- 農(nóng)旅生態(tài)園衛(wèi)生制度
- 泡腳店衛(wèi)生管理制度
- 鄉(xiāng)衛(wèi)生院節(jié)假日值班制度
- 自助飲水機(jī)衛(wèi)生管理制度
- 衛(wèi)生院轉(zhuǎn)診工作制度
- 北師大版初中九年級下冊數(shù)學(xué)3.2圓的對稱性課件
- 建筑起重司索信號工安全操作規(guī)程
- 青光眼病人的健康宣教
- 2024-2025學(xué)年天津市河西區(qū)七年級下英語期中考試題(含答案和音頻)
- 商業(yè)地產(chǎn)運(yùn)營管理手冊
- 哈鐵面試試題及答案
- 質(zhì)量小品完整版本
- 《家禽的主要傳染病》課件
- 試用期員工轉(zhuǎn)正申請書(匯編15篇)
- 上海用工勞動合同范例
- DB22-T5026-2019雙靜壓管樁技術(shù)標(biāo)準(zhǔn)
評論
0/150
提交評論