两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種基于動態(tài)主題模型的軟件演化建模方法

文檔序號:6621182閱讀:234來源:國知局
一種基于動態(tài)主題模型的軟件演化建模方法
【專利摘要】本發(fā)明公開了軟件工程領域內(nèi)的一種基于動態(tài)主題模型的軟件演化建模方法,包括預處理、建立時間序列文檔、建立向量空間模型文檔、動態(tài)主題建模、轉化“文檔-主題”矩陣、轉化“主題-單詞”矩陣以上各步驟,幫助開發(fā)人員和項目管理者理解項目開發(fā)過程中各個時間段內(nèi)的開發(fā)側重點以及整個時間周期內(nèi)的開發(fā)特征的演化過程,縮短開發(fā)人員的開發(fā)維護時間,提高軟件的開發(fā)效率,可用于軟件的開發(fā)維護中。
【專利說明】一種基于動態(tài)主題模型的軟件演化建模方法

【技術領域】
[0001] 本發(fā)明涉及一種軟件建模方法,特別涉及一種軟件演化建模方法,屬于軟件開發(fā) 工程領域。

【背景技術】
[0002] 隨著軟件項目的開發(fā),其復雜程度不斷提高,對其維護和理解的難度也不斷加大。 開發(fā)者和項目經(jīng)理的注意力需要多次在不同的主題和任務間轉移,他們經(jīng)常需要回答這樣 一些問題:該軟件項目是如何隨時間變化的?哪一個主題或任務是當前工作的重點,并在 其中花費了多少精力?各種軟件開發(fā)特征(例如修復錯誤,增加功能,修改功能,改善功能 等)在不同時間段內(nèi)所占比重是多少?同一個開發(fā)特征在不同的時間階段內(nèi)其側重點又是 什么?要回答這樣一系列問題,就需要去軟件歷史庫(例如源代碼,提交消息,故障數(shù)據(jù)庫 等)中尋求答案。但考慮到軟件歷史庫過于龐大,靠人工的方法去理解軟件隨時間的變化過 程相當?shù)馁M時費力,甚至有時是不可能完成的任務。所以這時候就需要采用數(shù)據(jù)挖掘或信 息檢索領域的技術(例如主題模型)去挖掘軟件歷史庫(尤其是非結構化歷史庫)中的語義 信息,來幫助我們理解軟件的演化過程。
[0003] 在該領域中,狄利克雷分配模型(LDA)及其變種已被用來對某些非結構化軟件歷 史庫(比如源代碼source code和提交消息commit messages)進行挖掘。但其采用的軟件 演化模型存在以下問題:1)簡單得使用LDA對整個語料庫中的文檔一次性建模,然后通過 "文檔-主題"矩陣計算一系列指標來表征軟件特征的演化過程,雖然取得不錯的效果,但 沒有考慮到"單個時間段內(nèi)的文檔具有無序性,時間段間的文檔具有有序性"的原則(比如 the Hall Model) ;2)需要進行主題連接等繁瑣的后處理過程(比如the Link Model)。
[0004] 動態(tài)主題模型于2006年由美國普林斯頓大學的David M. Blei等人提出。對于 一個以時間段(比如月或周)劃分的語料庫,動態(tài)主題模型可假設后一個時間段的主題由前 一個時間段的主題演化而來。但是動態(tài)主題模型假設主題的演化服從正態(tài)分布,這個限制 導致它使得很大的改變處于不利地位,即它不適用于主題變化很劇烈的語料庫。所以為了 避免這個缺點,我們選擇將提交消息作為建模對象,因為通過大量的經(jīng)驗表明,在軟件的演 化和維護中,提交消息是軟件開發(fā)人員對軟件的每一次修改所進行的注釋,它使用自然語 言描述了誰修改了什么以及如何修改。其中充斥著許多永恒不變的軟件開發(fā)特征:比如修 復錯誤,增加功能,刪除功能,改善功能等等。這些軟件開發(fā)特征貫穿始終,所以使用動態(tài)主 題模型對其建模,可以充分利用其優(yōu)點且避開其缺點,從而產(chǎn)生理想的效果。


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

[0005] 本發(fā)明的目的是提供一種基于動態(tài)主題模型的軟件演化建模方法,幫助開發(fā)人員 和項目管理者理解項目開發(fā)過程中各個時間段內(nèi)的開發(fā)側重點以及整個時間周期內(nèi)的開 發(fā)特征的演化過程,縮短開發(fā)人員的開發(fā)維護時間,提高開發(fā)效率。
[0006] 本發(fā)明的目的是這樣實現(xiàn)的:一種基于動態(tài)主題模型的軟件演化建模方法,其特 征在于,包括如下步驟: 步驟1)預處理:對CVS數(shù)據(jù)庫中的提交消息進行托肯化,去停用詞,詞干化三步操作, 生成預處理后的消息文檔,并分別建立時間序列文檔和向量空間模型文檔; 步驟2-1)建立時間序列文檔:對預處理后的消息文檔按時間間隔T進行劃分,生成時 間序列文檔; 步驟2-2)建立向量空間模型文檔:將預處理后的文檔轉化為向量空間模型文檔,先 將消息文檔中出現(xiàn)的所有單詞利用數(shù)字標號為其建立索弓丨,且不允許重復,再將每一篇 消息文檔使用時間為其建立索引,最后將消息文檔按篇逐行進行排列,每行消息文檔按照 unique_word_count indexl: count 1 index2: count2 …indexn: countn 格式進行表征,其 中unique_word_count代表該行消息文檔中不重復單詞的個數(shù),index:count是一個鍵值 對,代表在該行消息文檔中第index個單詞有count個; 步驟3)動態(tài)主題建模:設置主題數(shù)目K,將時間序列文檔和向量空間模型文檔作為動 態(tài)主題模型的輸入文檔,使用動態(tài)主題模型對其建模,并將動態(tài)主題模型的輸出分別轉化 為"文檔-主題"矩陣和"主題-單詞"矩陣; 步驟4-1)轉化"文檔-主題"矩陣:將動態(tài)主題模型 的輸出首先轉化為一個"文檔-主題"矩陣,并使用公式

【權利要求】
1. 一種基于動態(tài)主題模型的軟件演化建模方法,其特征在于,包括如下步驟: 步驟1)預處理:對CVS數(shù)據(jù)庫中的提交消息進行托肯化,去停用詞,詞干化三步操作, 生成預處理后的消息文檔,并分別建立時間序列文檔和向量空間模型文檔; 步驟2-1)建立時間序列文檔:對預處理后的消息文檔按時間間隔T進行劃分,生成時 間序列文檔; 步驟2-2)建立向量空間模型文檔:將預處理后的文檔轉化為向量空間模型文檔,先 將消息文檔中出現(xiàn)的所有單詞利用數(shù)字標號為其建立索弓丨,且不允許重復,再將每一篇 消息文檔使用時間為其建立索引,最后將消息文檔按篇逐行進行排列,每行消息文檔按照 unique_word_count indexl: count 1 index2: count2 …indexn: countn 格式進行表征,其 中unique_word_count代表該行消息文檔中不重復單詞的個數(shù),index: count是一個鍵值 對,代表在該行消息文檔中第index個單詞有count個; 步驟3)動態(tài)主題建模:設置主題數(shù)目K,將時間序列文檔和向量空間模型文檔作為動 態(tài)主題模型的輸入文檔,使用動態(tài)主題模型對其建模,并將動態(tài)主題模型的輸出分別轉化 為"文檔-主題"矩陣和"主題-單詞"矩陣; 步驟4-1)轉化"文檔-主題"矩陣:將動態(tài)主題模型 的輸出首先轉化為一個"文檔-主題"矩陣,并使用公式
計算出第k個主題在第j個時間段的標準化分配權值,標準化分配權值 用來表征相應軟件的主題在該時間段內(nèi)的分配權重,公式中|Tj|表示第j個時間段內(nèi)的消 息文檔總數(shù),dij表示第j個時間段內(nèi)的第i篇消息文檔,dij [k]表示這篇消息文檔中有關 主題k的概率; 步驟4-2)轉化"主題-單詞"矩陣:將動態(tài)主題模型的輸出其次轉化為K個T*N的"主 題-單詞"矩陣,T代表時間段,N代表不重復單詞,并將每個矩陣的每一行按詞頻從大到小 進行排序,并輸出排在前10個的單詞,在輸出的"主題-單詞"矩陣中選擇某個單詞W (W表 征該軟件開發(fā)特征的某個側重點),生成詞頻隨時間變化的折線圖。
2. 根據(jù)權利要求1所述的基于動態(tài)主題模型的軟件演化建模方法,其特征在于,步驟 1)中的對消息文檔的預處理的具體步驟如下: a) 托肯化:去除標點符號和數(shù)字; b) 去除停用詞:去除英文停用詞; c) 詞干化:將每個單詞轉化為它的原型。
【文檔編號】G06F17/30GK104090775SQ201410355483
【公開日】2014年10月8日 申請日期:2014年7月24日 優(yōu)先權日:2014年7月24日
【發(fā)明者】孫小兵, 胡嘉俊 申請人:揚州大學
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
汉寿县| 永善县| 拉萨市| 新巴尔虎右旗| 库尔勒市| 宜州市| 庆阳市| 集贤县| 读书| 阜平县| 镇沅| 全南县| 贵阳市| 漳浦县| 巴楚县| 曲阜市| 平定县| 平顶山市| 福海县| 汶川县| 崇文区| 穆棱市| 鸡西市| 蒲江县| 利辛县| 个旧市| 惠来县| 额济纳旗| 会东县| 永吉县| 乌拉特后旗| 通榆县| 磴口县| 龙山县| 清水河县| 祥云县| 新竹县| 朝阳区| 苏尼特左旗| 临潭县| 平罗县|