国产精品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>

      一種基于lda模型的多粒度層次軟件聚類方法

      文檔序號(hào):6536465閱讀:409來源:國知局
      一種基于lda模型的多粒度層次軟件聚類方法
      【專利摘要】本發(fā)明公開了軟件工程【技術(shù)領(lǐng)域】內(nèi)的一種基于LDA模型的多粒度層次軟件聚類方法,旨在解決現(xiàn)有技術(shù)中軟件聚類技術(shù)忽略了軟件功能特征導(dǎo)致開發(fā)人員不能根據(jù)聚類結(jié)果快速理解軟件系統(tǒng)的技術(shù)問題。本發(fā)明通過LDA模型在類和方法兩個(gè)不同層次提取主題,實(shí)現(xiàn)了粗粒度層次到細(xì)粒度層次的聚類,為開發(fā)人員建立一個(gè)更加易于理解的系統(tǒng)結(jié)構(gòu),使得聚類的結(jié)果更加有效、更加實(shí)用化;通過本發(fā)明提供的方法開發(fā)人員可清楚的了解軟件程序的功能點(diǎn),快速找到所需的功能源代碼。本方法應(yīng)用于輔助軟件維護(hù)與演化過程中的程序理解,可為開發(fā)人員提供一個(gè)從系統(tǒng)到方法的逐步理解的過程,具有聚類性能好、實(shí)用性強(qiáng)、工作效率高的特點(diǎn)。
      【專利說明】一種基于LDA模型的多粒度層次軟件聚類方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及一種聚類方法,特別涉及一種基于LDA模型的多粒度層次軟件聚類方法,屬于軟件工程【技術(shù)領(lǐng)域】。
      【背景技術(shù)】
      [0002]為滿足用戶不斷更改地需求,軟件產(chǎn)品一般都需要不斷地升級(jí)和維護(hù)。為了實(shí)現(xiàn)用戶維護(hù)請(qǐng)求,開發(fā)人員首先需要理解整個(gè)軟件系統(tǒng),特別是對(duì)程序的理解。但是隨著軟件系統(tǒng)的不斷發(fā)展,整個(gè)軟件系統(tǒng)的規(guī)模也越來越大,復(fù)雜程度也必然越來越高,通常情況下,程序理解將占到軟件維護(hù)過程60%的時(shí)間。為輔助這項(xiàng)工作,開發(fā)人員提出了軟件聚類技術(shù),其目的是通過從源代碼中提取出軟件中更小、更集中和更易于理解的子系統(tǒng)和它們之間的關(guān)系,以提聞人們理解、分析和改造遺留系統(tǒng)的效率。
      [0003]現(xiàn)有技術(shù)中,大部分軟件聚類技術(shù)都使用程序元素之間的靜態(tài)結(jié)構(gòu)依賴關(guān)系來進(jìn)行的;也有人提出了基于理解的聚類方法,即將匹配相同的模式的代碼分為一類而且將結(jié)果進(jìn)行有效的命名。但這兩種方法均忽視了系統(tǒng)的功能特征。而程序理解的目標(biāo)是理解系統(tǒng)的功能點(diǎn)及各功能點(diǎn)是如何通過不同的源代碼得以實(shí)現(xiàn)的,因此上述兩種方法均不能幫助開發(fā)人員快速、高效地理解程序。
      [0004]在軟件系統(tǒng)中,升級(jí)和維護(hù)的修改請(qǐng)求通常也被稱為特征或主題,一個(gè)特征或主題可代表一種功能,這種功能是按照開發(fā)者和使用者的要求和可接受度來定義的。如果在軟件聚類的初始過程中就能提供特征或者主題,則能有效地幫助開發(fā)人員得到一個(gè)總體的信息。
      [0005]LDA (隱含狄利克雷分布)模型是當(dāng)前最具代表性,也是最流行的一種概率主體模型,在文本挖掘、知識(shí)發(fā)現(xiàn)、話題跟蹤以及多文檔摘要等領(lǐng)域得到了廣泛的良好應(yīng)用,LDA是一種非監(jiān)督機(jī)器學(xué)習(xí)技術(shù),可以用來識(shí)別大規(guī)模文檔及或語料庫中潛藏的主題信息,具有較高的靈活性和自動(dòng)化處理能力。LDA模型可以從一個(gè)數(shù)據(jù)集合中挖掘指定個(gè)數(shù)的潛在主題模型,有效的挖掘語義信息之間隱含的內(nèi)在聯(lián)系,通過這些主題模型表示一個(gè)文本,從而達(dá)到特征降維的目的。

      【發(fā)明內(nèi)容】

      [0006]本發(fā)明的目的是提供一種基于LDA模型的多粒度層次軟件聚類方法,旨在解決現(xiàn)有技術(shù)中軟件聚類技術(shù)忽略了軟件功能特征導(dǎo)致開發(fā)人員不能根據(jù)聚類結(jié)果快速理解軟件系統(tǒng)的技術(shù)問題。
      [0007]本發(fā)明的目的是這樣實(shí)現(xiàn)的:一種基于LDA模型的多粒度層次軟件聚類方法,包括以下步驟:
      (1)從待聚類的軟件系統(tǒng)中選取類名、方法名以及注釋作為篩選對(duì)象,對(duì)所述軟件系統(tǒng)進(jìn)行篩選,運(yùn)用LDA模型從已經(jīng)過篩選的軟件系統(tǒng)中提取k個(gè)系統(tǒng)主題,k為自定義值;
      (2)計(jì)算各所述系統(tǒng)主題的主題詞數(shù)目與所述軟件系統(tǒng)文檔總詞數(shù)的比例,若所述比例等于1,則將對(duì)應(yīng)主題詞所在的類分配到和相應(yīng)系統(tǒng)主題匹配的類層次的初始聚類;若所述比例小于1,則按從大到小排列各比例,選取比例排在的前則立的主題詞所在的類,將所述類分配到和相應(yīng)系統(tǒng)主題匹配的類層次的初始聚類,其中,M為自定義值;
      (3)逐一分析所述軟件系統(tǒng)中未分配的類與已分配的類之間的關(guān)系,若未分配的類與已分配的類存在依賴關(guān)系,則將未分配的類分配到所述已分配的類所在的初始聚類中,直至所有未分配的類全部被分配于相應(yīng)的初始聚類中,得到所述軟件系統(tǒng)在類層次的基于系統(tǒng)主題的聚類結(jié)果;
      (4)根據(jù)步驟(3)的聚類結(jié)果,運(yùn)用LDA模型從類中提取j個(gè)類主題,j為自定義值;
      (5)計(jì)算各所述類主題的主題詞數(shù)目與所述類的文檔總詞數(shù)的比例,若所述比例等于1,則將對(duì)應(yīng)主題詞所在的方法分配到和相應(yīng)類主題匹配的方法層次的初始聚類;若所述比例小于1,則按從大到小排列各比例,選取比例排在前N位的主題詞所在的方法,將所述方法分配到和相應(yīng)類主題匹配的方法層次的初始聚類,其中,N為自定義值;
      (6)逐一分析所述類中未分配的方法與已分配的方法之間的關(guān)系,若未分配的方法與已分配的方法存在依賴關(guān)系,則將未分配的方法分配到所述已分配的方法所在的初始聚類中,直至所有未分配的方法全部被分配于相應(yīng)的初始聚類中,得到所述類在方法層次的基于類主題的聚類結(jié)果。
      [0008]本發(fā)明的有益效果是:通過LDA模型在類和方法兩個(gè)不同層次提取主題,實(shí)現(xiàn)了粗粒度層次到細(xì)粒度層次的聚類,為開發(fā)人員建立一個(gè)更加易于理解的系統(tǒng)結(jié)構(gòu),使得聚類的結(jié)果更加有效、更加 實(shí)用化;由于類層次和方法層次的聚類結(jié)果均可提供軟件系統(tǒng)的功能特征,因此開發(fā)人員可依據(jù)聚類結(jié)果清楚地了解軟件程序的功能點(diǎn),并依據(jù)方法層次的聚類結(jié)果快速找到所需的功能源代碼;本發(fā)明實(shí)現(xiàn)了一種自頂向下逐步求精的軟件聚類過程,更符合開發(fā)人員的實(shí)際軟件理解過程,有助于開發(fā)人員對(duì)整個(gè)軟件系統(tǒng)簡單、逐步和快速的理解。本方法應(yīng)用于輔助軟件維護(hù)與演化過程中的程序理解,可為開發(fā)人員提供一個(gè)從系統(tǒng)到方法的逐步理解的過程,具有聚類性能好、實(shí)用性強(qiáng)、工作效率高的特點(diǎn)。
      【專利附圖】

      【附圖說明】
      [0009]圖1為本發(fā)明中類層次的初始聚類流程圖。
      [0010]圖2為本發(fā)明中方法層次的初始聚類流程圖。
      [0011]圖3為按照主題理解的軟件系統(tǒng)結(jié)構(gòu)示意圖。
      【具體實(shí)施方式】
      [0012]如圖1所示,為為本發(fā)明中類層次的初始聚類流程圖,包括以下步驟:
      (I)從待聚類的軟件系統(tǒng)中選取類名、方法名以及注釋作為篩選對(duì)象,對(duì)軟件系統(tǒng)進(jìn)行篩選,運(yùn)用LDA模型從已經(jīng)過篩選的軟件系統(tǒng)中提取k個(gè)系統(tǒng)主題,k為自定義值,需要提前設(shè)定。作為本發(fā)明的實(shí)施例,設(shè)提取的系統(tǒng)主題為tl、t2、t3……tk,tx對(duì)應(yīng)的主題詞為
      tx0、txl、tx2......,主題詞txy所在的類為cxy,其中,變量X滿足:1 < x < k,變量y滿足:
      O≤y。
      [0013](2)計(jì)算各系統(tǒng)主題的主題詞數(shù)目與軟件系統(tǒng)文檔總詞數(shù)的比例,設(shè)為P,P值可由LDA模型計(jì)算給出。若P=I,則將主題詞所在的類分配到和相應(yīng)系統(tǒng)主題匹配的類層次的初始聚類;gp < 1,則按從大到小排列各比例,選取比例排在的前M位的主題詞所在的類,并將該類分配到和相應(yīng)系統(tǒng)主題匹配的類層次的初始聚類,其中,M為自定義值。如表1所示,系統(tǒng)主題tl的主題詞tlO的P值為1,可將tlO所在的類ClO直接分配到tl匹配的類層次的初始聚類中;若設(shè)M=2,tl中P值排在前2位的主題詞為til、tl2,所以類cll、cl2也分配到tl匹配的類層次的初始聚類中。
      【權(quán)利要求】
      1.一種基于LDA模型的多粒度層次軟件聚類方法,其特征在于,包括以下步驟: (1)從待聚類的軟件系統(tǒng)中選取類名、方法名以及注釋作為篩選對(duì)象,對(duì)所述軟件系統(tǒng)進(jìn)行篩選,運(yùn)用LDA模型從已經(jīng)過篩選的軟件系統(tǒng)中提取k個(gè)系統(tǒng)主題,k為自定義值; (2)計(jì)算各所述系統(tǒng)主題的主題詞數(shù)目與所述軟件系統(tǒng)文檔總詞數(shù)的比例,若所述比例等于1,則將對(duì)應(yīng)主題詞所在的類分配到和相應(yīng)系統(tǒng)主題匹配的類層次的初始聚類;若所述比例小于1,則按從大到小排列各比例,選取比例排在的前M位的主題詞所在的類,將所述類分配到和相應(yīng)系統(tǒng)主題匹配的類層次的初始聚類,其中,M為自定義值; (3)逐一分析所述軟件系統(tǒng)中未分配的類與已分配的類之間的關(guān)系,若未分配的類與已分配的類存在依賴關(guān)系,則將未分配的類分配到所述已分配的類所在的初始聚類中,直至所有未分配的類全部被分配于相應(yīng)的初始聚類中,得到所述軟件系統(tǒng)在類層次的基于系統(tǒng)主題的聚類結(jié)果; (4)根據(jù)步驟(3)的聚類結(jié)果,運(yùn)用LDA模型從類中提取j個(gè)類主題,j為自定義值; (5)計(jì)算各所述類主題的主題詞數(shù)目與所述類的文檔總詞數(shù)的比例,若所述比例等于1,則將對(duì)應(yīng)主題詞所在的方法分配到和相應(yīng)類主題匹配的方法層次的初始聚類;若所述比例小于1,則按從大到小排列各比例,選取比例排在前N位的主題詞所在的方法,將所述方法分配到和相應(yīng)類主題匹配的方法層次的初始聚類,其中,N為自定義值; (6)逐一分析所述類中未分配的方法與已分配的方法之間的關(guān)系,若未分配的方法與已分配的方法存在依賴關(guān)系,則將未分配的方法分配到所述已分配的方法所在的初始聚類中,直至所有未分配的方法全部被分配于相應(yīng)的初始聚類中,得到所述類在方法層次的基于類主題的聚類結(jié)果。
      【文檔編號(hào)】G06F9/44GK103729197SQ201410028677
      【公開日】2014年4月16日 申請(qǐng)日期:2014年1月22日 優(yōu)先權(quán)日:2014年1月22日
      【發(fā)明者】孫小兵, 劉湘月, 李斌, 楊智松 申請(qǐng)人:揚(yáng)州大學(xué)
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1