国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種基于信息檢索的大規(guī)模軟件信息站標(biāo)簽推薦方法與流程

      文檔序號(hào):12906095閱讀:216來源:國(guó)知局
      一種基于信息檢索的大規(guī)模軟件信息站標(biāo)簽推薦方法與流程

      本發(fā)明屬于軟件工程技術(shù)領(lǐng)域,適用于規(guī)模不斷增大的大規(guī)模軟件信息站,實(shí)現(xiàn)自動(dòng)推薦標(biāo)簽,是可擴(kuò)展的多標(biāo)簽推薦方法;具體涉及一種基于信息檢索的大規(guī)模軟件信息站標(biāo)簽推薦方法。



      背景技術(shù):

      軟件信息站為軟件開發(fā)者查詢解決方案,分享經(jīng)驗(yàn),提供幫助以及學(xué)習(xí)新的技術(shù)提供了不可或缺的平臺(tái)。軟件信息站包括在線開發(fā)者問答社區(qū),例如stackoverflow,askubuntu,askdifferent以及一些開源軟件社區(qū),例如freecode,github等。隨著軟件信息站的發(fā)展,軟件對(duì)象的數(shù)目顯著增長(zhǎng),導(dǎo)致軟件開發(fā)者不知道如何定位一個(gè)特別的軟件對(duì)象。為了解決這個(gè)問題,有一個(gè)典型的實(shí)踐方法,那就是開發(fā)者在發(fā)布一個(gè)軟件時(shí)對(duì)軟件貼上一些標(biāo)簽,而且是社會(huì)媒體中常見的標(biāo)簽。由于標(biāo)簽通常由幾個(gè)單詞或者僅僅是單詞縮寫組成,他們提供了軟件信息站上搜索,描述,識(shí)別,標(biāo)簽,分類以及組織軟件對(duì)象的元數(shù)據(jù)。大多數(shù)軟件信息站為了提高網(wǎng)站上不同操作的效率和準(zhǔn)確性,依靠標(biāo)簽來對(duì)網(wǎng)站內(nèi)容進(jìn)行分類。從而標(biāo)簽的質(zhì)量對(duì)于這些網(wǎng)站就顯得尤為重要。高質(zhì)量的標(biāo)簽通常是簡(jiǎn)約的并且可以直接描述軟件對(duì)象最重要最顯著的特性。

      然而定標(biāo)簽本身就是很不和諧的一個(gè)過程。每一個(gè)軟件開發(fā)者作為一個(gè)獨(dú)立的個(gè)體,他們對(duì)于軟件對(duì)象的認(rèn)知和理解是不一樣的,并且他們的英語水平以及語言習(xí)慣存在差異,這就導(dǎo)致軟件對(duì)象的標(biāo)簽快速增長(zhǎng)以至出現(xiàn)大量冗余。例如,在stackoverflow上,如下標(biāo)簽scc,source-code-contrl,sccs以及幾個(gè)其他的單詞都是用來描述版本控制的。此外,軟件對(duì)象可以被多個(gè)不同的標(biāo)簽來標(biāo)記。比如,stackoverflow建議一個(gè)對(duì)象三至五個(gè)標(biāo)簽而freecode可以允許每個(gè)對(duì)象多于是個(gè)標(biāo)簽。隨著軟件對(duì)象的增多,標(biāo)簽的數(shù)目急劇增長(zhǎng)。截至今日,stackoverflow已經(jīng)有超過兩千萬的問題和四萬六千多個(gè)標(biāo)簽。有如此多的的標(biāo)簽,其中甚至存在很多噪聲,導(dǎo)致軟件對(duì)象的分類效果很差。這種現(xiàn)象直接影響了軟件開發(fā)者的查詢體驗(yàn)。

      標(biāo)簽推薦已經(jīng)成為社交網(wǎng)絡(luò)和數(shù)據(jù)挖掘領(lǐng)域的一個(gè)熱門研究。2010年軟件工程領(lǐng)域的自動(dòng)標(biāo)簽推薦第一次被ai-kofahi等人提出來。ai-kofahi提出了tagrec方法為ibmjazz的工作項(xiàng)目自動(dòng)推薦標(biāo)簽。tagrec基于模糊集理論并且考慮了系統(tǒng)的動(dòng)態(tài)發(fā)展。后來一個(gè)叫tagcombine的方法被提出。tagcombine可以為軟件信息站的軟件對(duì)象自動(dòng)推薦標(biāo)簽,包含了多標(biāo)簽排名組件,基于相似性的排名組件以及標(biāo)簽項(xiàng)排名組件。tagcombine采用的多標(biāo)簽排名方法導(dǎo)致他的應(yīng)用只能限制在相當(dāng)小的數(shù)據(jù)集。對(duì)于大規(guī)模的軟件信息站如stackoverflow@large,需要訓(xùn)練超過四萬二分類模型并且每個(gè)訓(xùn)練集的估摸超過千萬。最近的一個(gè)叫entagrec的方法在精確率和召回率要優(yōu)于tagcombine,entagrec包括貝葉斯推理組件和頻率推理組件。因?yàn)閑ntagrec是利用軟件信息站的所有信息來對(duì)軟件對(duì)象進(jìn)行推薦,所以它的可擴(kuò)展性也不好。

      在軟件工程領(lǐng)域,標(biāo)簽已經(jīng)被廣泛應(yīng)用。為了努力弄明白在軟件開發(fā)運(yùn)用社交媒體對(duì)于團(tuán)隊(duì)、項(xiàng)目以及社區(qū)有什么好處,風(fēng)險(xiǎn)以及限制,storey等人提出一系列相關(guān)的研究問題。begel等人社交媒體對(duì)于改善開發(fā)團(tuán)隊(duì)的交流協(xié)調(diào)以及創(chuàng)建新類型的軟件開發(fā)社區(qū)的潛在好處。treude等人探究如何定標(biāo)簽可以在科技和社會(huì)方面組織工作項(xiàng)目之間構(gòu)建一座橋。他們指導(dǎo)關(guān)于如何定標(biāo)簽可以被采用并且在未來幾年更大的項(xiàng)目中可以被采用的實(shí)證研究。他們的研究結(jié)果顯示標(biāo)簽機(jī)制在許多非正式的流程中成為了非常重要的一部分。thung等人發(fā)現(xiàn)相似的軟件應(yīng)用使用相似的標(biāo)簽。wang等人分析freecode項(xiàng)目標(biāo)簽來推理標(biāo)簽的語義關(guān)系,即分類學(xué)。



      技術(shù)實(shí)現(xiàn)要素:

      為了解決上述的技術(shù)問題,本發(fā)明提供了一種基于信息檢索的大規(guī)模軟件信息站標(biāo)簽推薦方法。

      本發(fā)明所采用的技術(shù)方案是:

      步驟1:對(duì)軟件信息站的軟件對(duì)象數(shù)據(jù)進(jìn)行預(yù)處理,移除不帶標(biāo)簽的和標(biāo)簽頻率低于預(yù)設(shè)定閾值的軟件對(duì)象,最后移除這些軟件對(duì)象描述中的停詞,從而得到所有帶標(biāo)簽和描述的軟件對(duì)象集合;包括以下子步驟:

      步驟1.1:基于已經(jīng)存在的標(biāo)簽,對(duì)軟件信息站的軟件對(duì)象,去除其中的不帶標(biāo)簽項(xiàng);

      步驟1.2:對(duì)于出現(xiàn)頻率小于臨界值threshold的標(biāo)簽,考慮其原因可能是拼寫錯(cuò)誤或者某一個(gè)特殊的領(lǐng)域。顯然拼寫錯(cuò)誤的標(biāo)簽不得推薦給用戶,而對(duì)于特殊領(lǐng)域的軟件對(duì)象,由開發(fā)者自行創(chuàng)建標(biāo)簽。

      步驟2:為步驟1中的軟件對(duì)象創(chuàng)建索引,保存對(duì)象描述中的詞,稱為詞典,每個(gè)詞都指向包含該詞的文檔鏈表,此文檔鏈表稱為倒排表;也就是對(duì)步驟1中集合內(nèi)的軟件對(duì)象創(chuàng)建索引,利用軟件對(duì)象描述中的詞創(chuàng)建詞典,并且對(duì)于每個(gè)詞,創(chuàng)建一個(gè)鏈表,鏈表的每一個(gè)節(jié)點(diǎn)存放描述中包含該詞的軟件對(duì)象的索引以及該詞在節(jié)點(diǎn)對(duì)象中頻數(shù)。

      步驟3:根據(jù)公式計(jì)算出給定的軟件對(duì)象和步驟1集合中軟件對(duì)象的相似得分,并取其中相似度最高的若干個(gè)軟件對(duì)象構(gòu)成候選集合;通過公式計(jì)算該對(duì)象與步驟1集合中的軟件對(duì)象的相似得分。將軟件對(duì)象o的描述看作一個(gè)查詢項(xiàng),計(jì)算出得分,它的值取決于軟件對(duì)象o描述中的詞同時(shí)也在軟件對(duì)象oi描述中出現(xiàn)的頻率。計(jì)算的公式如下φo.d項(xiàng)對(duì)查詢項(xiàng)標(biāo)準(zhǔn)化,公式為φo.d=1/ψ(o.d)2*w∈o.d(#sw*ψ(w))2,對(duì)于上面兩個(gè)公式中ψ(w)項(xiàng)表示w的權(quán)重,ψ(o.d)表示軟件對(duì)象o的描述o.d的權(quán)重。權(quán)重能夠自行設(shè)置,將某個(gè)詞的權(quán)重設(shè)置成較大值表示該詞比其他詞更加重要。#oi.d.w項(xiàng)表示w在oi軟件對(duì)象的描述oi.d中出現(xiàn)的頻率。#sw表示軟件對(duì)象描述中包含詞w的對(duì)象數(shù)目,也就是步驟2創(chuàng)建的詞典中w詞指向的鏈表的長(zhǎng)度。ρ(oi.d)項(xiàng)是δ(o,oi)的一個(gè)標(biāo)準(zhǔn)化參數(shù),計(jì)算公式其中ψ(oi.d)表示軟件對(duì)象描述的權(quán)值,|oi.d|表示描述的規(guī)模。

      步驟4:對(duì)步驟3得出的候選集合中軟件對(duì)象的相似得分進(jìn)行標(biāo)準(zhǔn)化,根據(jù)軟件對(duì)象標(biāo)準(zhǔn)化的相似得分以及對(duì)象標(biāo)簽頻率計(jì)算標(biāo)簽的得分,按照標(biāo)簽得分排序得到標(biāo)簽推薦列表,將得分最好的若干個(gè)推薦給開發(fā)者,具體是:

      計(jì)算候選集中軟件對(duì)象的標(biāo)簽的得分。首先對(duì)步驟3中得出的相似得分進(jìn)行標(biāo)準(zhǔn)化,通過公式δnorm(o,oi)=(δ(o,oi)-cmin)/(cmax-cmin)將結(jié)果歸一化為[0,1]之間的值。用集合ti表示中對(duì)象oi的標(biāo)簽,則候選集合中所有軟件對(duì)象的標(biāo)簽合集用集合表示。對(duì)于每一個(gè)標(biāo)簽利用以下公式計(jì)算標(biāo)簽ti的得分,其中#oi.tj表示oi中tj出現(xiàn)的頻率。將中所有的標(biāo)簽按照得分高低將標(biāo)簽構(gòu)成一個(gè)排好序的列表tl,將tl中得分最高的k個(gè)標(biāo)簽構(gòu)成的tltopk鏈表推薦給用戶。

      本發(fā)明具有如下優(yōu)點(diǎn):1.本方法對(duì)規(guī)模不斷增大的基于軟件對(duì)象語義的軟件信息站進(jìn)行自動(dòng)推薦標(biāo)簽,通過移除不相關(guān)的標(biāo)簽以及減少多個(gè)不同標(biāo)簽指向同一內(nèi)容的標(biāo)簽來緩和標(biāo)簽急劇增長(zhǎng)的問題;2.本方法提出了一個(gè)有效的基于標(biāo)簽多分類算法,可以處理上百萬的軟件對(duì)象;3.本方法通過stackoverflow,askubuntu,askdifferent以及freecode軟件信息站進(jìn)行了評(píng)估,結(jié)果顯示本方法相比于已經(jīng)存在的方法具有推薦準(zhǔn)確,并且具有更好的可擴(kuò)展性等優(yōu)勢(shì);4.本發(fā)明創(chuàng)建的標(biāo)簽推薦方法tagmulrec與已經(jīng)存在的entagrec等標(biāo)簽推薦方法相比,具有更好的可擴(kuò)展性,能夠有效并且高效的應(yīng)用于大規(guī)模軟件信息站,速度上更是提高了三個(gè)量級(jí),并且更加穩(wěn)定。

      附圖說明

      圖1是本發(fā)明總體方法步驟示意圖。

      圖2是本發(fā)明創(chuàng)建索引具體結(jié)構(gòu)示意圖。

      具體實(shí)施方式

      以下結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明做進(jìn)一步的說明。

      本發(fā)明提出的一種基于信息檢索的大規(guī)模軟件信息站標(biāo)簽推薦方法,根據(jù)軟件對(duì)象自動(dòng)推薦標(biāo)簽。標(biāo)簽推薦的方法目前在開源軟件社區(qū)和在線開發(fā)者問答社區(qū)等軟件信息站都有應(yīng)用,可以根據(jù)軟件對(duì)象來推薦標(biāo)簽。利用標(biāo)簽推薦方法,可以提高網(wǎng)站運(yùn)行效率和分類的準(zhǔn)確性,從而獲得更好的用戶體驗(yàn)。本發(fā)明提出了tagmulrec工具來給開發(fā)者推薦標(biāo)簽,對(duì)規(guī)模不斷增大的軟件信息站進(jìn)行軟件對(duì)象分類。tagmulrec適用于動(dòng)態(tài)的變化。除此以外,隨著每天都有大量的軟件對(duì)象加入到軟件信息站,開發(fā)者可以通過修改或者刪除標(biāo)簽來修改已經(jīng)發(fā)布的內(nèi)容。通過為軟件對(duì)象描述創(chuàng)建索引,tagmulrec可以高效的推薦軟件標(biāo)簽?;谶@些索引,可以計(jì)算軟件對(duì)象的相似度,從而建立候選集合。tagmulrec利用多分類算法對(duì)候選集合中軟件對(duì)象的標(biāo)簽進(jìn)行排名,將排名得分最高的幾個(gè)標(biāo)簽推薦給開發(fā)者。本發(fā)明利用已經(jīng)存在的標(biāo)簽,創(chuàng)建索引,計(jì)算相似度,計(jì)算標(biāo)簽的得分,從而對(duì)信息對(duì)象進(jìn)行多標(biāo)簽的推薦。

      請(qǐng)見圖1,為本發(fā)明總體方法步驟示意圖,主要包括預(yù)處理,創(chuàng)建索引,計(jì)算相似得分以及標(biāo)簽推薦這四個(gè)步驟。

      請(qǐng)見圖2,為本發(fā)明的預(yù)處理以及創(chuàng)建索引具體結(jié)構(gòu)示意圖,整個(gè)圖可以分為兩個(gè)部分:軟件信息站數(shù)據(jù)預(yù)處理圖和創(chuàng)建索引圖。

      步驟1:軟件信息站數(shù)據(jù)預(yù)處理圖根據(jù)一定的規(guī)則對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,包括了三次篩選工作。首先對(duì)不帶標(biāo)簽的數(shù)據(jù)進(jìn)行刪除,主要由于本發(fā)明是利用已有的標(biāo)簽信息來進(jìn)行推薦的,則不帶標(biāo)簽的數(shù)據(jù)沒有意義。然后將標(biāo)簽頻率低于設(shè)定閾值的帶標(biāo)簽軟件對(duì)象進(jìn)行刪除,主要有以下兩種原因。原因之一,有的標(biāo)簽頻率之所以低,可能是因?yàn)槠磳戝e(cuò)誤,則對(duì)于此情形,應(yīng)當(dāng)刪除。原因之二,一部分標(biāo)簽可能代表某一特定的不常見的領(lǐng)域。由于是特殊領(lǐng)域的不常見的標(biāo)簽,則該標(biāo)簽是否會(huì)被用戶廣泛接受尚不可知。對(duì)于此情形,最好的方式是由開發(fā)者來自行創(chuàng)建標(biāo)簽??傊?,都可以歸結(jié)到一種情形,就是頻率低于預(yù)設(shè)閾值的,將該標(biāo)簽的軟件對(duì)象刪除。最后將篩選出的軟件對(duì)象的描述中的停詞刪除,因?yàn)橥T~對(duì)于標(biāo)簽推薦沒有太大的意義。經(jīng)過上面幾個(gè)步驟,完成了預(yù)處理工作。

      步驟2:創(chuàng)建索引圖包含軟件對(duì)象描述中的詞和該詞包含于哪些文檔設(shè)計(jì)的。對(duì)于步驟1中的,創(chuàng)建一個(gè)詞典,包括軟件對(duì)象描述中的所有詞,對(duì)于詞典中的每個(gè)詞,創(chuàng)建一個(gè)鏈表,鏈表的每個(gè)節(jié)點(diǎn)是包含該詞的軟件對(duì)象的索引以及該詞在節(jié)點(diǎn)軟件對(duì)象中的頻數(shù)。對(duì)于不斷發(fā)展的軟件信息站,這個(gè)詞典是可擴(kuò)展的。

      步驟3:計(jì)算相似得分,選出候選軟件對(duì)象集合。給定一個(gè)新的軟件對(duì)象,可以通過公式計(jì)算該對(duì)象與步驟1集合中的軟件對(duì)象的相似得分。將軟件對(duì)象o的描述看作一個(gè)查詢項(xiàng),計(jì)算出得分,它的值取決于軟件對(duì)象o描述中的詞同時(shí)也在軟件對(duì)象oi描述中出現(xiàn)的頻率。計(jì)算的公式如下φ(o.d)項(xiàng)是對(duì)查詢項(xiàng)的標(biāo)準(zhǔn)化,計(jì)算公式為對(duì)于上面兩個(gè)公式中ψ(w)項(xiàng)表示w的權(quán)重,ψ(o.d)表示軟件對(duì)象o的描述o.d的權(quán)重。權(quán)重也可以自己設(shè)置,

      將某個(gè)詞的權(quán)重設(shè)置成較大值表示該詞比其他詞更加重要。#oi.d.w項(xiàng)表示w在oi軟件對(duì)象的描述oi.d中出現(xiàn)的頻率。#sw表示軟件對(duì)象描述中包含詞w的對(duì)象數(shù)目,也就是步驟2創(chuàng)建的詞典中w詞指向的鏈表的長(zhǎng)度。ρ(oi.d)項(xiàng)是δ(o,oi)的一個(gè)標(biāo)準(zhǔn)化參數(shù),計(jì)算公式其中ψ(oi.d)表示軟件對(duì)象描述的權(quán)值,|oi·d|表示描述的規(guī)模。通過上面公式可以計(jì)算軟件對(duì)象的相似得分。簡(jiǎn)言之,計(jì)算相似得分主要通過對(duì)象的描述中的詞,描述中的每個(gè)詞都有權(quán)重。這個(gè)權(quán)重由以下兩個(gè)因素確定。因素一,該詞在對(duì)象描述中出現(xiàn)的頻率,頻率越大說明對(duì)于該對(duì)象越重要。因素二,該詞在別的對(duì)象中可能也會(huì)出現(xiàn),則在多少個(gè)對(duì)象中出現(xiàn)過,即描述中包含該詞的軟件對(duì)象的總數(shù)目,總數(shù)越多,說明別的軟件對(duì)象都有該詞,說明該詞對(duì)于本對(duì)象越不重要。通過這兩個(gè)因素確定每個(gè)詞在該對(duì)象中的權(quán)重。然后將新的軟件對(duì)象與步驟1集合中的軟件對(duì)象看做一些詞的權(quán)重組成的向量,求兩個(gè)向量的相似性即求兩個(gè)向量的夾角,夾角越小即越相似。求夾角需對(duì)向量?jī)?nèi)積進(jìn)行歸一化。還需要考慮以下的項(xiàng)。項(xiàng),對(duì)于兩個(gè)軟件對(duì)象包含的相同的描述詞中,如果這些詞頻率越高,則對(duì)于這些詞需要處理。boost項(xiàng),對(duì)于軟件對(duì)象的描述中,不同的域的權(quán)重是不一樣的,譬如標(biāo)題中的詞和內(nèi)容中相同的詞,顯然標(biāo)題中的權(quán)重要大一些。加上這些項(xiàng)的考慮,從而計(jì)算出軟件對(duì)象的相似得分。而對(duì)于用戶輸入關(guān)鍵詞查詢時(shí),將輸入的詞看做一個(gè)軟件對(duì)象的描述,從而計(jì)算與步驟1集合中軟件對(duì)象的相似得分。然后選取得分最高的k個(gè)軟件對(duì)象,構(gòu)成候選對(duì)象集合此處k表示集合中元素的個(gè)數(shù),該值可調(diào)整。

      步驟4:計(jì)算候選集中軟件對(duì)象的標(biāo)簽的得分。首先對(duì)步驟3中得出的相似得分進(jìn)行標(biāo)準(zhǔn)化,通過公式δnorm(o,oi)=(δ(o,oi)-cmin)/(cmax-cmin)將結(jié)果歸一化為[0,1]之間的值。用集合ti表示中對(duì)象oi的標(biāo)簽,則候選集合中所有軟件對(duì)象的標(biāo)簽合集用集合表示。對(duì)于每一個(gè)標(biāo)簽利用以下公式計(jì)算標(biāo)簽ti的得分,其中#oi.tj表示oi中tj出現(xiàn)的頻率。將中所有的標(biāo)簽按照得分高低將標(biāo)簽構(gòu)成一個(gè)排好序的列表tl,將tl中得分最高的k個(gè)標(biāo)簽構(gòu)成的tltopk鏈表推薦給用戶。

      本文中所描述的具體實(shí)施例僅僅是對(duì)本發(fā)明精神作舉例說明。本發(fā)明所屬技術(shù)領(lǐng)域的技術(shù)人員可以對(duì)所描述的具體實(shí)施例做各種各樣的修改或補(bǔ)充或采用類似的方式替代,但并不會(huì)偏離本發(fā)明的精神或者超越所附權(quán)利要求書所定義的范圍。

      當(dāng)前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1