一種基于市場需求的開源軟件分析與比較方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種開源軟件分析方法,尤其涉及一種基于市場對于開源軟件的需求 信息對軟件進(jìn)行分析的方法。
【背景技術(shù)】
[0002] 目前,軟件行業(yè)正在飛速發(fā)展,開源軟件數(shù)目呈指數(shù)增長趨勢,如何選擇開源軟件 已經(jīng)成為了一個巨大的挑戰(zhàn)。與此同時,也出現(xiàn)了很多招聘網(wǎng)站,比如為大家熟知的領(lǐng)英。 這些招聘網(wǎng)站提供給我們很多有價值的數(shù)據(jù)和信息。國內(nèi)非常有名的前程無憂(51job)網(wǎng) 站發(fā)布的數(shù)據(jù)顯示,截止到2014年3月,有將近有45萬IT職位需求被發(fā)布,比去年同比增 長了 35.9%。不僅如此,更多以互聯(lián)網(wǎng)和軟件行業(yè)量身定造的垂直招聘平臺也如雨后春筍 一樣,例如內(nèi)推網(wǎng)和拉勾網(wǎng)。顯然,企業(yè)對于優(yōu)秀的IT人才有著極大的需求,這其中還包括 著對不同軟件的需求情況。這樣的需求對于軟件分析本身來說具有發(fā)展性意義,也對軟件 從業(yè)人員極具有指導(dǎo)性意義,應(yīng)該和軟件質(zhì)量一樣成為研究工作關(guān)注的重點(diǎn)。
[0003] 然而,傳統(tǒng)研究關(guān)注的都是軟件質(zhì)量本身,提出了Boehm,McCall,Trustie等軟件 質(zhì)量評估模型,針對軟件的可用性,可靠性,安全性,實(shí)時性等軟件本身特性進(jìn)行評估和分 析,卻沒有針對軟件的市場需求情況進(jìn)行評估和分析的研究。很多研究將數(shù)據(jù)挖掘算法將 軟件開發(fā)者和開源軟件項目聯(lián)系起來,卻很少有研究將軟件開發(fā)者和軟件招聘廣告聯(lián)系起 來。而這少數(shù)的研究卻往往在連接上軟件開發(fā)者和軟件招聘廣告后戛然而止,缺少后續(xù)進(jìn) 一步的研究和分析,這是軟件分析研究工作中欠缺的部分。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明的目的在于針對軟件分析在市場需求領(lǐng)域上研究的不足,提出一種基于市 場需求的開源軟件分析與比較方法,該方法彌補(bǔ)目前按開源軟件分析在市場需求這一領(lǐng)域 的空缺,從開發(fā)者的經(jīng)驗需求,職位地理位置,時間的影響三個方面來對開源軟件進(jìn)行分析 和比較,并對出現(xiàn)差異的可能原因進(jìn)行合理推測。該分析能夠為軟件研究提供了新的角度, 也為軟件開發(fā)者提供了選擇開源軟件的參考依據(jù)。
[0005] 本發(fā)明的技術(shù)方案包括以下步驟:
[0006] 步驟101、選取以針對計算機(jī)行業(yè)的招聘信息為主的招聘站點(diǎn),采用通用Web爬蟲 技術(shù)從選取的站點(diǎn)爬取所有能夠爬取到的招聘廣告,并以HTML代碼格式存儲在數(shù)據(jù)庫中。
[0007] 步驟102、在存儲下來的HTML代碼基礎(chǔ)上進(jìn)行廣告屬性的抽取,按廣告的內(nèi)容分 為如下幾個字段:廣告網(wǎng)址,廣告標(biāo)題,廣告標(biāo)簽,創(chuàng)建時間,廣告內(nèi)容,工作類型,開發(fā)者經(jīng) 驗,工資范圍,工作地點(diǎn),然后將其存儲在招聘信息數(shù)據(jù)表中。
[0008] 進(jìn)一步地,廣告內(nèi)容的抽取具體包括,從數(shù)據(jù)庫中獲取HTML代碼信息并封裝成自 定義的頁面格式,根據(jù)不同的頁面查找相應(yīng)的模板進(jìn)行抽取,對抽取成功的結(jié)果進(jìn)行輸出。
[0009] 步驟103、采用軟件名稱與廣告標(biāo)簽、軟件標(biāo)簽和廣告標(biāo)簽、軟件名稱和廣告標(biāo)題、 軟件標(biāo)簽和廣告標(biāo)題四組不同數(shù)據(jù)進(jìn)行廣告和軟件的匹配,具體為如下幾步:
[0010] 步驟103. 1、采用通用Web爬蟲技術(shù)從互聯(lián)網(wǎng)的主要項目托管社區(qū)中采集軟件的 項目數(shù)據(jù),獲取軟件名稱;
[0011] 步驟103. 2、采用開源全文檢索工具Lucene為采集到的廣告文檔的文檔標(biāo)題、文 檔內(nèi)容和軟件名稱建立文件索引;用軟件名稱與廣告標(biāo)簽進(jìn)行匹配;若所述文檔具有與所 述軟件名稱相同的標(biāo)簽,則為所述廣告文檔與所述開源軟件建立關(guān)聯(lián),并賦予權(quán)值w1;
[0012] 步驟103. 3、用軟件名稱在文檔標(biāo)題中進(jìn)行檢索,檢索的過程使用開源的Lucene 全文檢索工具實(shí)現(xiàn),具體實(shí)施為:以軟件名稱為關(guān)鍵詞,從步驟103. 2中建立的文件索引中 搜索廣告文檔的標(biāo)題,若文檔標(biāo)題中含有軟件名稱,則為該文檔與軟件建立關(guān)聯(lián),并將這次 關(guān)聯(lián)賦予權(quán)值w2;
[0013] 步驟103. 4、對軟件標(biāo)簽統(tǒng)計包含在廣告標(biāo)題中的標(biāo)簽個數(shù)X,計算權(quán)值《3 = 0. 5*log2(x2+l),該權(quán)值表示以軟件標(biāo)簽在文檔標(biāo)題中的出現(xiàn)次數(shù)作為該軟件與廣告文檔 關(guān)聯(lián)程度的度量,通過權(quán)值的計算判斷關(guān)聯(lián)結(jié)果的可信度;
[0014] 步驟103. 5、在所有已建立的關(guān)聯(lián)中,對關(guān)聯(lián)的軟件標(biāo)簽與廣告標(biāo)簽進(jìn)行匹配,統(tǒng) 計在兩者中都出現(xiàn)的標(biāo)簽個數(shù)y,計算權(quán)值%= 0. 6*log2(y2+l);
[0015] 步驟103. 6、步驟103. 2到步驟103. 5對軟件和廣告的4種不同數(shù)據(jù)進(jìn)行匹配,并 為每一步的關(guān)聯(lián)結(jié)果賦予了相應(yīng)的權(quán)值,這4步匹配結(jié)束后,計算最終的權(quán)值w=Wi+Wjj+C Wl+W2)*(W3+W4),把權(quán)值超過指標(biāo)的匹配結(jié)果看作是匹配成功,并將匹配結(jié)果存儲在數(shù)據(jù)庫 中;
[0016] 步驟104、從開發(fā)者經(jīng)驗、職位地點(diǎn)、軟件類型反映軟件市場需求數(shù)目和薪資影響, 并基于開發(fā)者經(jīng)驗、職位地點(diǎn)、軟件類型三個不同因素向用戶推薦軟件;
[0017] 進(jìn)一步地,步驟104進(jìn)一步包括:
[0018] 步驟104. 1、根據(jù)用戶需求確定需要進(jìn)行進(jìn)一步分類的已經(jīng)提取廣告屬性字段,對 數(shù)據(jù)庫存放的匹配結(jié)果和抽取結(jié)果,進(jìn)行屬性分類、軟件分類和相應(yīng)的sql操作,將統(tǒng)計信 息以可視化方式推薦給用戶;
[0019] 進(jìn)一步地,步驟104. 1可進(jìn)一步包括:得出市場對不同經(jīng)驗者的需求量和工資、不 同地區(qū)的整體工資和需求量、以及同一類軟件在同一城市的需求、工資軟件職位數(shù)目需求 信息。
[0020] 進(jìn)一步地,步驟104. 1還可以包括:在匹配廣告的基礎(chǔ)上建立同類軟件關(guān)聯(lián),推薦 給用戶,具體的:當(dāng)若干個軟件都與同一廣告匹配時,所述若干個軟件之間的值為1,當(dāng)所 述若干個軟件都與另一相同廣告匹配時,累計為2,如此類推,當(dāng)該值超過了設(shè)定的闕值,則 判定兩種軟件為同一類軟件,當(dāng)用戶隨機(jī)選擇一軟件后,頁面不僅僅列出該軟件的需求數(shù) 目和薪資需求,同時還會列出符合同類軟件條件的同類軟件,并生成前幾名相關(guān)同類軟件 的需求和數(shù)目對比關(guān)系圖。
[0021] 采用本發(fā)明可以達(dá)到以下技術(shù)效果:
[0022] 本發(fā)明針對開發(fā)者經(jīng)驗、職位位置、軟件類型,時間四個因素對軟件進(jìn)行差異分 析,為軟件從業(yè)人員展示開發(fā)經(jīng)驗,城市,軟件類型,時間對軟件行業(yè)就業(yè)的影響,并基于開 發(fā)經(jīng)驗,城市,軟件類型為用戶推薦軟件。以市場對開源軟件的職位需求情況,結(jié)合實(shí)際情 況對開源軟件的市場需求情況進(jìn)行分析比較,并對差異出現(xiàn)的原因進(jìn)行合理的推斷,最終 可以為傳統(tǒng)的軟件分析提供新的參考角度,為軟件開發(fā)者提供開源軟件就業(yè)發(fā)展情況。
【附圖說明】
[0023] 圖1為本發(fā)明基于市場需求的開源軟件分析與比較方法實(shí)施的流程圖;
[0024] 圖2為本發(fā)明一種基于市場需求的開源軟件分析與比較方法成果實(shí)例圖;
【具體實(shí)施方式】
[0025] 本發(fā)明主要針對一種基于市場需求的開源軟件分析與比較方法。
[0026] 如圖1所示,為本發(fā)明實(shí)現(xiàn)基于市場需求的開源軟件分析與比較方法的流程圖, 具體執(zhí)行以下步驟:
[0027] 步驟101、選取以針對計算機(jī)行業(yè)的招聘信息為主的招聘站點(diǎn),采用通用Web爬蟲 技術(shù)從選取的站點(diǎn)爬取所有能夠爬取到的招聘廣告,并以HTML代碼格式存儲在數(shù)據(jù)庫中。
[0028] 首先需要選取研究數(shù)據(jù)的來源和對象。我們的市場需求信息來自于招聘網(wǎng)站,因 此要選擇合適的招聘網(wǎng)站,必須包括以下條件:第一,保證有足量的招聘信息;第二,招聘 廣告本身要包括足夠有價值的信息;第三,招聘網(wǎng)站必須易于爬??;第四,招聘廣告必須都 是針對IT行業(yè)的。針對第一點(diǎn),我們通過indeed網(wǎng)站得搜索功能,統(tǒng)計了目前IT類型招 聘廣告數(shù)量發(fā)布最多的網(wǎng)站,考慮其他三點(diǎn)后,選取了數(shù)量排在前八個招聘網(wǎng)站中的內(nèi)推 網(wǎng)和拉勾網(wǎng),作為我們招聘網(wǎng)站數(shù)據(jù)的來源。之后,采用通用的Web爬蟲技術(shù)從內(nèi)推網(wǎng)和拉 勾網(wǎng)上爬取所有能夠爬取到的招聘廣告。以本方法中爬取的內(nèi)推網(wǎng)為例,內(nèi)推網(wǎng)本身有個 最新職位的列表頁,基本上是它的歷史職位廣告的集合,爬蟲只需要監(jiān)視列表頁面即可達(dá) 到爬取該網(wǎng)站所有職位的目的。首先我們找個爬取入口,爬取入口這里指能看到所有最新 職位的那個列表頁,通過"前綴+頁面號+后綴"拼接出待爬取的列表頁URL,放到一個集合 去,然后提交給爬蟲爬取。具體的配置設(shè)定如下:
[0029] <prefixUrl>http://www.neitui.me/neitui/type=all&page= </ prefixUrl>
[0030] <postfixUrl>.html</postfixUrl>
[0031] <incrementalPages>16</incrementalPages>
[0032] <incrementSleepTime>86400</incrementSleepTime>
[0033] 其中,"http://www.neitui.me/neitui/type=all&page= " 即為前面提 到的前綴,"〈postfixUrl〉·html〈/postfixUrl>" 是后綴,incrementalPages則代表要爬的 頁數(shù),通常情況下,程序會自動拼接,〈incrementSleepTime>86400〈/incrementSleepTime> 代表每天會爬取新的,86400是秒數(shù),代表一天24小時,只要每隔一段時間,爬取列表頁,就 能獲得源源不斷的新職位信息,我們將其存儲下來,此