一種跨社區(qū)開(kāi)源資源匹配關(guān)聯(lián)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種開(kāi)源軟件跨社區(qū)匹配關(guān)聯(lián)方法,尤其涉及一種將開(kāi)源項(xiàng)目托管社區(qū)中的開(kāi)源軟件和知識(shí)共享社區(qū)中的在線文檔進(jìn)行跨社區(qū)關(guān)聯(lián)的方法。
【背景技術(shù)】
[0002]在網(wǎng)絡(luò)時(shí)代的軟件工程中,隨著越來(lái)越多的人加入到軟件的開(kāi)發(fā)中,軟件復(fù)用成為一項(xiàng)重要內(nèi)容,很大一部分的軟件開(kāi)發(fā)都是基于已有的軟件或平臺(tái)進(jìn)行的。開(kāi)源軟件為軟件復(fù)用提供了大量的資源。開(kāi)源軟件的出現(xiàn)一方面為軟件開(kāi)發(fā)者提供了大量的相對(duì)可靠的可利用資源,降低了重復(fù)性工作,讓開(kāi)發(fā)者將更多的精力投入到軟件的用戶需求和核心技術(shù)上,另一方面,眾多開(kāi)發(fā)人員與組織開(kāi)始投入到開(kāi)源軟件的開(kāi)發(fā)與維護(hù)中,使得開(kāi)源更加成為一種趨勢(shì)。
[0003]為了給軟件開(kāi)發(fā)人員提供好的開(kāi)源軟件資源和咨詢,目前互聯(lián)網(wǎng)上關(guān)于開(kāi)源軟件的網(wǎng)站可以分為兩類:一類是為開(kāi)源軟件提供在線托管和資源下載的項(xiàng)目托管社區(qū), 如 github (https://github.com/)、sourceforge(https://sourceforRe.com/)、openhub (https://www.0penhub.net/)等;一類是為開(kāi)發(fā)人員提供討論、交流的平臺(tái)的知識(shí)共享社區(qū),如國(guó)外的 stackoverf low (http://stackoverf low, com/)、國(guó)內(nèi)的 CSDN (http://www.csdn.net/)、博客園 http://www.cnblogs.com/)等。
[0004]項(xiàng)目托管社區(qū)為用戶提供了豐富的開(kāi)源軟件資源,用戶可查找或下載所需的開(kāi)源軟件。像github這樣的項(xiàng)目托管社區(qū)還為開(kāi)源軟件提供了托管平臺(tái),用戶將自己創(chuàng)建的開(kāi)源軟件托管到平臺(tái)中,進(jìn)行代碼的維護(hù)和持續(xù)的開(kāi)發(fā)。同時(shí),用戶也可以針對(duì)開(kāi)源軟件使用中的問(wèn)題與開(kāi)發(fā)者交流甚至加入開(kāi)源軟件的開(kāi)發(fā)。項(xiàng)目托管平臺(tái)為基于開(kāi)源軟件的開(kāi)發(fā)和維護(hù)以及開(kāi)源軟件本身的協(xié)同開(kāi)發(fā)等方面提供了良好的環(huán)境。
[0005]知識(shí)共享社區(qū)則主要為用戶提供交流的平臺(tái),用戶在知識(shí)共享社區(qū)中發(fā)博客分享自己對(duì)軟件的使用心得,遇到問(wèn)題時(shí)在論壇中發(fā)帖提問(wèn)尋求解答、與其它從事類似工作的開(kāi)發(fā)人員進(jìn)行交流討論。用戶發(fā)布的博客或在論壇中的討論對(duì)該軟件的其他用戶來(lái)說(shuō)都是十分重要的信息和資源。知識(shí)共享社區(qū)中包含的內(nèi)容非常豐富:有關(guān)于開(kāi)源軟件的新聞和資訊,有用戶寫(xiě)的技術(shù)分享博客,有用戶在論壇中的討論帖,還包括招聘網(wǎng)站的招聘信息。為了方便,本文將這些知識(shí)共享社區(qū)中的信息統(tǒng)稱為在線文檔。在線文檔為用戶使用開(kāi)源軟件提供了很大的幫助。此外,由于開(kāi)源資源數(shù)量龐大,質(zhì)量良莠不齊,用戶在選擇所需的開(kāi)源資源的時(shí)候也需要先通過(guò)知識(shí)共享社區(qū)了解相關(guān)開(kāi)源軟件的評(píng)價(jià),在線文檔中關(guān)于開(kāi)源資源的討論也為用戶的選擇提供了參考。
[0006]然而這兩類社區(qū)通常是分開(kāi)且相互獨(dú)立的,用戶需要從項(xiàng)目托管社區(qū)中查找、下載所需的開(kāi)源資源,在使用時(shí)去知識(shí)共享社區(qū)搜索相關(guān)的在線文檔查找所需的信息。這兩類社區(qū)中的資源數(shù)量都十分龐大,尤其是知識(shí)共享社區(qū)中的在線文檔,含有大量冗余和垃圾的信息(如“水帖”、廣告等),使得用戶在查找時(shí)要耗費(fèi)很長(zhǎng)的時(shí)間來(lái)篩選相關(guān)的有用信息。這極大的降低了用戶的開(kāi)發(fā)效率。
【發(fā)明內(nèi)容】
[0007]本發(fā)明要解決的技術(shù)問(wèn)題是:針對(duì)在互聯(lián)網(wǎng)中存在大量開(kāi)源軟件項(xiàng)目和相關(guān)討論的條件下,提供一種能將項(xiàng)目托管社區(qū)中的開(kāi)源軟件與知識(shí)共享社區(qū)中的在線文檔(為了方便,在本說(shuō)明中,將知識(shí)共享社區(qū)中的討論帖、博客、新聞、招聘信息等統(tǒng)稱為“在線文檔”)有效關(guān)聯(lián)的方法,使得用戶在查找開(kāi)源資源時(shí)可以同時(shí)獲得與該開(kāi)源軟件相關(guān)的在線文檔。因此,用戶在查找開(kāi)源資源時(shí),可以同時(shí)獲得軟件本身的信息和與開(kāi)源軟件相關(guān)的博文、論壇討論、新聞等信息。用戶即可以多方面的了解開(kāi)源軟件同時(shí)不會(huì)在垃圾信息中消耗時(shí)間,節(jié)約了用戶的時(shí)間,提高開(kāi)發(fā)效率。
[0008]本發(fā)明的技術(shù)方案包括以下步驟:
[0009]步驟101、采用通用的Web爬蟲(chóng)技術(shù)從互聯(lián)網(wǎng)的主要開(kāi)源項(xiàng)目托管社區(qū)中獲取開(kāi)源軟件信息,采集包括開(kāi)源軟件的基本屬性的項(xiàng)目數(shù)據(jù),所述基本屬性包括項(xiàng)目名稱、項(xiàng)目描述、開(kāi)發(fā)語(yǔ)言、創(chuàng)建時(shí)間、爬取時(shí)間、項(xiàng)目標(biāo)簽、項(xiàng)目源地址。
[0010]步驟102、采用通用的Web爬蟲(chóng)技術(shù)從互聯(lián)網(wǎng)主要的知識(shí)分享社區(qū)中獲取開(kāi)源軟件相關(guān)在線文檔信息數(shù)據(jù),所述在線文檔信息數(shù)據(jù)包括文檔標(biāo)題、文檔內(nèi)容及文檔基本屬性,所述文檔基本屬性包括文檔標(biāo)簽、文檔發(fā)布時(shí)間、文檔源地址。
[0011]步驟103、采用開(kāi)源的全文檢索工具Lucene為采集到的在線文檔數(shù)據(jù)的文檔標(biāo)題、文檔內(nèi)容和開(kāi)源軟件的項(xiàng)目名稱建立文件索引。
[0012]步驟104、用開(kāi)源軟件的項(xiàng)目名稱與在線文檔的文檔標(biāo)簽進(jìn)行匹配,其中以所述項(xiàng)目名稱為關(guān)鍵詞在數(shù)據(jù)庫(kù)存儲(chǔ)的標(biāo)簽表中查找在線文檔,若所述在線文檔具有與所述項(xiàng)目名稱相同的標(biāo)簽,則為所述在線文檔與所述開(kāi)源軟件建立關(guān)聯(lián),并賦予權(quán)值Wl,表示以項(xiàng)目名稱和文檔標(biāo)簽為度量時(shí),所述在線文檔針對(duì)所述開(kāi)源軟件的關(guān)聯(lián)程度。
[0013]步驟105、用開(kāi)源軟件的項(xiàng)目名稱在在線文檔標(biāo)題中進(jìn)行檢索,其中,以項(xiàng)目名稱為關(guān)鍵詞,從步驟3中建立的文件索引中搜索在線文檔標(biāo)題,若文檔標(biāo)題中含有項(xiàng)目名稱,則為該文檔與項(xiàng)目建立關(guān)聯(lián),并將這次關(guān)聯(lián)賦予權(quán)值《2,表示以項(xiàng)目名稱和文檔標(biāo)題為度量時(shí),所述在線文檔針對(duì)所述開(kāi)源軟件的關(guān)聯(lián)程度。
[0014]步驟106、在所有已建立的關(guān)聯(lián)中,對(duì)開(kāi)源軟件的項(xiàng)目標(biāo)簽統(tǒng)計(jì)包含在在線文檔標(biāo)題中的項(xiàng)目標(biāo)簽個(gè)數(shù)X,計(jì)算權(quán)值w3= 0.5*log 2 (x2+l),其表示以項(xiàng)目標(biāo)簽在文檔標(biāo)題中的出現(xiàn)次數(shù)作為該項(xiàng)目與在線文檔關(guān)聯(lián)程度的度量,通過(guò)權(quán)值的計(jì)算判斷關(guān)聯(lián)結(jié)果的可信度。
[0015]步驟107、在所有已建立的關(guān)聯(lián)中,對(duì)關(guān)聯(lián)的開(kāi)源軟件的項(xiàng)目標(biāo)簽與在線文檔的文檔標(biāo)簽進(jìn)行匹配,統(tǒng)計(jì)在兩者中都出現(xiàn)的標(biāo)簽個(gè)數(shù)1,計(jì)算權(quán)值
[0016]w4= 0.6*log2(y2+l),其表示以項(xiàng)目標(biāo)簽和文檔標(biāo)簽中相同的標(biāo)簽個(gè)數(shù)作為度量,通過(guò)權(quán)值的計(jì)算判斷關(guān)聯(lián)結(jié)果的可信度。
[0017]步驟108、計(jì)算最終權(quán)值
[0018]w = W!+W2+ (w!+w2) * (w3+w4),當(dāng)關(guān)聯(lián)的權(quán)值w大于閾值q時(shí),認(rèn)為該在線文檔與開(kāi)源軟件是關(guān)聯(lián)的,關(guān)聯(lián)結(jié)果以[開(kāi)源軟件,在線文檔,權(quán)重]的結(jié)果存儲(chǔ)在數(shù)據(jù)庫(kù)中,完成跨社區(qū)關(guān)聯(lián)。
[0019]進(jìn)一步地,步驟101中的所述項(xiàng)目標(biāo)簽以[項(xiàng)目id,標(biāo)簽]的格式單獨(dú)存儲(chǔ)在標(biāo)簽表中,開(kāi)源軟件的其他屬性存儲(chǔ)在開(kāi)源軟件表中;步驟102中的所述文檔標(biāo)簽以[文檔id,標(biāo)簽]的格式追加存儲(chǔ)在標(biāo)簽表中,所述文檔標(biāo)題、文檔內(nèi)容和其他文檔基本屬性存儲(chǔ)在文檔表中。
[0020]進(jìn)一步地,步驟105中所述檢索的過(guò)程使用開(kāi)源的Lucene全文檢索工具實(shí)現(xiàn)。
[0021]進(jìn)一步地,步驟108中w的計(jì)算依據(jù)是,只有在步驟104或者步驟105中匹配到的界丨或W 2不為ο才去計(jì)算步驟6和步驟7的權(quán)重,且用(w !+w2) * (w3+w4)表示步驟106和107對(duì)最終權(quán)值的影響建立在步驟104和步驟105之上。
[0022]采用本發(fā)明可以達(dá)到以下效果:本發(fā)明不僅對(duì)軟件開(kāi)發(fā)人員在利用開(kāi)源軟件進(jìn)行開(kāi)發(fā)等活動(dòng)相關(guān)活動(dòng)時(shí)有幫助,對(duì)普通用戶在了解各個(gè)開(kāi)源軟件信息和功能等方面也有很大的幫助。本發(fā)明根據(jù)目前兩類開(kāi)源社區(qū)的特點(diǎn)和用戶在使用時(shí)存在的問(wèn)題,首先從互聯(lián)網(wǎng)的開(kāi)源社區(qū)采集開(kāi)源軟件和在線文檔信息,然后通過(guò)關(guān)聯(lián)算法將在線文檔與開(kāi)源軟件進(jìn)行跨社區(qū)關(guān)聯(lián)。使用戶在查找開(kāi)源軟件時(shí)可以同時(shí)獲取相關(guān)的博客、討論帖等信息。本方法首次將兩類社區(qū)的數(shù)據(jù)進(jìn)行關(guān)聯(lián),能夠極大提高用戶在獲取相關(guān)數(shù)據(jù)時(shí)的效率。
[0023]因此用戶在查找開(kāi)源軟件時(shí),可以同時(shí)獲得軟件信息及其相關(guān)的討論帖、博客等開(kāi)源社區(qū)的在線文檔,使用戶可以更快速、高效地獲取所需的信息,有助于用戶對(duì)開(kāi)源軟件的了解和使用。
【附圖說(shuō)明】
[