999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于RNN進行面向主題的特征定位方法

2017-07-10 10:27:26尹春林
計算機應(yīng)用與軟件 2017年6期
關(guān)鍵詞:特征文本實驗

尹春林 王 煒,2* 李 彤,2 何 云

1(云南大學(xué)軟件學(xué)院 云南 昆明 650500)2(云南省軟件工程重點實驗室 云南 昆明 650500)

基于RNN進行面向主題的特征定位方法

尹春林1王 煒1,2*李 彤1,2何 云1

1(云南大學(xué)軟件學(xué)院 云南 昆明 650500)2(云南省軟件工程重點實驗室 云南 昆明 650500)

軟件特征定位是軟件演化活動得以順利展開的前提條件。當前特征定位研究的性能仍有待于進一步提高。為了獲得較好的性能,在文件夾粒度上獲取主題知識,將系統(tǒng)中同一個文件夾下的所有類(class)劃分為同一個主題知識類,提出利用深度學(xué)習(xí)算法——循環(huán)神經(jīng)網(wǎng)絡(luò)RNN(Recurrent Neural Networks) 進行面向主題的特征定位。同時,在該方法的基礎(chǔ)上提出了一種改進的模型。為了使實驗結(jié)果更具現(xiàn)實意義,與基線方法和其他一些方法相比,將實驗數(shù)據(jù)從10組提高到531組和將檢索率從15%縮小到10%,即使在這種情況下,所獲得的實驗結(jié)果,無論是從正面與基線方法相比還是從側(cè)面與目前的一些特征定位方法相比,該方法都獲得了不錯的性能。

軟件特征定位 軟件演化 深度學(xué)習(xí) 循環(huán)神經(jīng)網(wǎng)絡(luò) 面向主題

0 引 言

特征定位[1]也被稱為概念定位[2-3]、軟件偵測[4],是程序理解領(lǐng)域一個重要的組成部分[5-6]。該研究旨在建立特征與源代碼之間映射關(guān)系,而特征[1]是指可被定義和評估的軟件功能屬性。

對特征定位的研究最早可以追溯到1992年,Wilde[4]在其論文中提出了最早的特征定位方法——軟件偵測。經(jīng)過20多年的發(fā)展特征定位研究領(lǐng)域取得了長足進步,并且在軟件維護/演化、波及效應(yīng)分析、可追溯性復(fù)原等多個研究領(lǐng)域得到了應(yīng)用。在軟件維護/演化領(lǐng)域,沒有任何一個維護/演化任務(wù)能夠脫離特征定位的支持[1,7]。維護/演化活動是原有開發(fā)活動的繼續(xù),但是兩者之間存在本質(zhì)的差別:維護/演化活動是在現(xiàn)有系統(tǒng)的約束下實施的受限開發(fā)。因此,理解特征與代碼之間的映射關(guān)系,并據(jù)此確定執(zhí)行維護/演化活動的起始點和范圍,是成功實施維護/演化活動的基礎(chǔ)。確定維護/演化活動影響范圍的過程稱之為波及效應(yīng)分析[8-9]。該分析的前提通常是使用特征定位方法確定維護/演化活動的起始點[1]。可追溯性復(fù)原[10]試圖建立軟件實體(代碼、需求文檔、設(shè)計文檔等)之間的映射關(guān)系。由于特征定位旨在建立軟件功能屬性與源代碼之間映射關(guān)系,因此可以認為特征定位研究是可追溯性復(fù)原研究和進行波及效應(yīng)分析的一個重要組成部分。建立高效的特征定位方法不僅對豐富程序理解研究內(nèi)涵,同時對推動多個研究領(lǐng)域的共同發(fā)展具有重要意義。

根據(jù)分析思路的不同,目前的特征定位方法可歸結(jié)為四類[1]:靜態(tài)特征定位方法、基于文本的特征定位方法、動態(tài)特征定位方法和集成特征定位方法。

靜態(tài)方法是試圖對軟件源代碼的依賴關(guān)系和結(jié)構(gòu)的進行分析,并建立特征和代碼間的映射關(guān)系[1]。動態(tài)方法試圖建立用例與執(zhí)行跡之間的映射關(guān)系實現(xiàn)特征定位[11]。基于文本的特征定位方法[12-14]認為,源代碼中的標識符、注釋和其他文檔中蘊含有豐富的主題知識,所以源代碼與特征的關(guān)系就可以通過文本分析的方式獲得。當前基于文本的特征定位方法大致可以分為3類:基于模式識別、基于自然語言處理和基于信息檢索的特征定位方法。目前基于自然語言的特征定位查準率是最高的。基于自然語言處理的特征定位方法試圖將自然語言處理研究在詞性標注、分詞、組塊分析等研究成果嫁接于特征定位問題。本文試圖利用基于自然語言的文本特征定位方法進行研究。本文認為不同粒度的劃分、不同的程序模塊代表了不同的領(lǐng)域知識,即代表了不同的主題知識。本文希望獲得一個好的語言模型LM(Language Model),該模型擁有良好的分類能力,能將源代碼系統(tǒng)中不同的主題知識進行準確的區(qū)分。所以問題的關(guān)鍵轉(zhuǎn)化為了如何獲得一個擁有良好特征表達的LM。

目前常用的信息檢索方法模型有隱語義索引LSI(Latent Semantic Indexing)[15]、隱狄利克雷分布LDA(Latent Dirichlet Allocation)[16]、向量空間模型VSM(Vector Space Model)[17]、依賴性語言模型DLM(Dependence Language Model)[18]。雖然這些方法都獲得了一定的效果,但并不令人滿意,在實踐中也暴露出一些問題。不難發(fā)現(xiàn),這些方法都不能夠?qū)⒊绦蛑黝}知識完整地傳遞給計算機,所以機器也就難以獲得良好的主題知識。良好的數(shù)值化方法和良好的上下文語義獲取方法是良好的主題知識表達的第一步。深度學(xué)習(xí)在自然語言處理NLP(Natural Language Process)方面給出了一些很好的數(shù)值化處理方法,如word embedding,即“詞向量”,典型的例子是google的word2vec。循環(huán)神經(jīng)網(wǎng)絡(luò)RNN(Recurrent Neural Networks)通過不斷循環(huán)的方式更完整的保存上下文語義關(guān)系。為此,本文希望通過利用深度學(xué)習(xí)算法——循環(huán)神經(jīng)網(wǎng)絡(luò)來進行基于文本的特征定位以期獲得更好的效果。

本文的創(chuàng)新點和貢獻如下:

(1) 利用RNN語言模型來獲取文本上下文語義;

(2) 文件夾粒度做主題分類;

(3) 兩組實驗對照獲得更有普遍性意義結(jié)果。

1 本文方法

本文方法主要分為三個步驟:主題知識生成、主題建模以及特征定位。圖1為本文框架圖。

圖1 本文方法框架圖

1.1 主題知識劃分

一個源代碼系統(tǒng)由不同的程序模塊構(gòu)成,不同的模塊對應(yīng)于不同的功能/主題,即不同的功能/主題對應(yīng)著不同的特征。特征定位的目的就是獲得特征與源代碼之間的映射關(guān)系。本文的方法是先將源代碼系統(tǒng)利用RNN按主題知識進行劃分,然后利用獲得的模型將程序員給出的功能描述語句進行分類,抽象地描述就是“輸入功能描述就能輸出目標代碼”,形式化描述:Y=f(X),X表示功能描述,Y表示輸出的目標代碼,f是這種映射關(guān)系的表示。研究的目標就是希望獲得這一個能夠準確地建立起特征與源代碼之間的一致性關(guān)系的模型。因此,好的主題劃分是獲得好的特征定位的前提條件。

本文提出以下幾種劃分粒度:(1)方法/函數(shù)級;(2)類級;(3)文件夾級;(4)包級。方法/函數(shù)級劃分將源代碼系統(tǒng)按方法/函數(shù)進行拆分,將一個方法/函數(shù)看做是一個數(shù)據(jù),認為多個方法/函數(shù)共同表示一個主題。類級劃分將源代碼系統(tǒng)按“類”進行劃分,將一個類看做是一個數(shù)據(jù),認為一個或者幾個類共同代表一個功能/主題。文件夾級劃分將源代碼系統(tǒng)中同一個文件夾下的所有方法或者函數(shù)看做是同一個類簇,認為同一個文件夾下的所有類或者函數(shù)共同代表著一個功能/主題。包級劃分將源代碼系統(tǒng)中同一個包下的所有文檔看做是同一個類簇,認為同一個包下的所有文檔代表著一個主題。函數(shù)級和類級的劃分粒度比較小,所以可能一個功能就對應(yīng)多個函數(shù)或者多個類,這樣的劃分就需要先對數(shù)據(jù)進行聚類,認為聚類后獲得的結(jié)果中的一個類簇就對應(yīng)一個主題。包級的劃分是一種大的模糊的劃分方式,適合應(yīng)用到大的源代碼系統(tǒng)中進行試驗。程序員在進行軟件開發(fā)時通常會將實現(xiàn)了相同功能的類放到同一個文件夾下,相同文件夾下的所有類的相關(guān)關(guān)系更緊密,所以認為同一個文件夾下的所有類更能良好地表達同一個主題,并且這樣的劃分方式無需進行聚類處理就可以直接將同一個文件夾下的所有類標注到同一個類簇中。所以綜合以上考慮,本文選擇文件夾粒度進行試驗。

1.2 主題建模

基于文本的特征定位方法通常希望獲得一個好的語言分類模型,該模型能夠良好地表達主題知識。數(shù)值化抽象是特征定位的基礎(chǔ),該過程依賴于代碼語言模型的建立,通常語言模型可以抽象為關(guān)鍵詞的概率分布函數(shù)。假設(shè)源代碼SC由關(guān)鍵詞{w1,w2,…,wn}構(gòu)成的文本序列,則SC對應(yīng)的概率分布函數(shù)如公式(1):

(1)

式(1)可以被鏈式地分解為:

(2)

(3)

(4)

式(4)中count(wi-(n-1),…,wi-1)表示文本序列wi-(n-1),…,wi-1在語料庫中出現(xiàn)的次數(shù)。

1.3 特征定位

(5)

Softmax回歸其實就相當于多類別情況下的邏輯回歸,式(5)中Softmax有k個類,也就是對應(yīng)實驗中的38個類,并且函數(shù)將-θ×X作為指數(shù)的系數(shù),所以就有j=1…k項。然后除以他們的累加和,這樣做就實現(xiàn)了歸一化,使得輸出的k個數(shù)的和為1,而每一個數(shù)就代表那個類別出現(xiàn)的概率。因此:Softmax的假設(shè)函數(shù)輸出的是一個k維列向量,每一個維度的數(shù)就代表那個類別出現(xiàn)的概率。這樣計算出每個特征描述與每一個類相關(guān)的概率,然后依次按概率相關(guān)程度降序排列。為此,我們獲得一個概率相關(guān)列表,越在最前面的類就是就是相關(guān)度越大的類。我們獲得的特征定位的結(jié)果就是每個查詢語句與每個類的相似度。

2 實驗過程及數(shù)據(jù)

2.1 實驗所用數(shù)據(jù)數(shù)碼

文章使用源代碼系統(tǒng)是jedit4.3source[1],該系統(tǒng)包含531個class,6 400余個method,1.9萬行代碼。同時,還有272個通過使用IST(issue tracking system)和SVN(subversion)工具分析獲得的特征。其中150個特征用例搜集過執(zhí)行跡,這些特征以ID作為標識,在jEdit更新日志中可查(http://sourceforge.Net/p/jedit/bugs/search/)。每個特征對應(yīng)于3個數(shù)據(jù)文件:Queries、Traces以及GoldSet。實驗中所用到的RNN模型代碼是基于http: //github.com/IndicoDataSolutions/passage.git中的模板進行修改得到的,該網(wǎng)站上提供的是一個用于二分類的代碼模板,修改后可以用于多分類。

2.2 實驗過程及參數(shù)設(shè)置

本文選用的源代碼系統(tǒng)jedit4.3包含分布在38個文件夾下的531個class,每個class是一個以“.java”為后綴名的文件。RNN屬于監(jiān)督學(xué)習(xí),需要使用標簽數(shù)據(jù),于是我們就進行了人工標記,將同一個文件夾下的class標注為同一個類簇,數(shù)據(jù)的標簽名就選用阿拉伯數(shù)字0到37進行表示。表1是38帶標簽的數(shù)據(jù)示意圖,其中一個數(shù)據(jù)用一個類的路徑來表示(后同)。

表1 標簽數(shù)據(jù)示意

表2表示同一個文件夾下的所有類,這些類屬于同一個類簇,都被劃分到類“0”中。

表2 同一文件夾下所有類標注為同一類

模型的輸入是分別屬于38個類的531個數(shù)據(jù)。首先是對獲得的訓(xùn)練數(shù)據(jù)集和預(yù)測數(shù)據(jù)集進行簡單的預(yù)處理。每一個.java文件都包含大量的注釋,我們認為注釋更能很好地表達主題知識,所以也將其保留下來不做特殊處理。由于RNN可以獲取上下文語義關(guān)系,所以與傳統(tǒng)的預(yù)處理不同,本文的預(yù)處理不做停詞、分詞和詞干還原等操作,僅僅只是將文本中對表達主題毫無幫助的那些注釋符號去掉,如分割線“————”。訓(xùn)練模型的數(shù)據(jù)準備完畢,接下來就可以訓(xùn)練生成RNN模型了。實驗數(shù)據(jù)集被劃分成兩部分:訓(xùn)練數(shù)據(jù)集和預(yù)測數(shù)據(jù)集,訓(xùn)練數(shù)據(jù)集用來訓(xùn)練生成模型,預(yù)測數(shù)據(jù)集用來挑選模型。從每一個類簇中挑選出一個數(shù)據(jù)作為預(yù)測數(shù)據(jù)集,剩余的作為訓(xùn)練數(shù)據(jù)集,如果存在一個類簇,該類簇只含一個數(shù)據(jù)則該數(shù)據(jù)既作為訓(xùn)練數(shù)據(jù)也作為預(yù)測數(shù)據(jù)。而我們的模型不但對預(yù)測數(shù)據(jù)集進行預(yù)測也對訓(xùn)練數(shù)據(jù)集進行預(yù)測。挑選出對訓(xùn)練數(shù)據(jù)集和對預(yù)測數(shù)據(jù)集預(yù)測準確率高的模型進行特征定位的實驗。下面是我們選用的RNN模板需要設(shè)置的幾個參數(shù):

(1) 隱藏層layers:[ Embedding(size=128);GatedRecurrent(size=256,activation=′tanh′, gate_activation=′steeper_sigmoid′,init=′orthogonal′,seq_output=False);Dense(size=531,activation=′softmax′, init=′orthogonal′)]

(2) 模型model=RNN(layers=layers, cost=′cce′)

“cce”在模板中是一個設(shè)置為多分類并用softmax進行輸出的參數(shù),在訓(xùn)練生成RNN模型同時獲得用于計算相似度的softmax的參數(shù)θ。在訓(xùn)練了多個模型之后文章使用了一個預(yù)測準確率相對較高的模型:預(yù)測訓(xùn)練數(shù)據(jù)集準確率為91%,預(yù)測預(yù)測數(shù)據(jù)集準確率為52%。該模型每次訓(xùn)練100個數(shù)據(jù),迭代訓(xùn)練150次獲得。模型選定之后接下來的工作就是進行特征定位。本文選用的是Queries里面的“ShortDescription[ID].txt”作為查詢語句,提交查詢語句之后輸出該查詢語句與每一個class的相似度,選取相似度最高的前10%進行輸出。

3 實驗結(jié)果及分析

3.1 實驗結(jié)果分析

本文主要將文獻[13]作為基線方法與本文的方法進行對比。基線方法在函數(shù)級粒度上進行預(yù)處理后生成語料庫,然后進行Single Value Decomposition(SVD)生成LSI space,最后輸入query進行查詢,詳細介紹看文獻[13]。同時也與文獻[23-24]中提出來的方法進行一個側(cè)面的對比,文獻[24]是動態(tài)特征定位和靜態(tài)特征定位相結(jié)合獲得的結(jié)果,文獻[23]中使用的數(shù)據(jù)集是ArgoUML,ArgoUML數(shù)據(jù)集比iEdit大,包含1 562個類和96個包。為了驗證本文方法的有效性,我們還設(shè)計了一組自我對照實驗,即測試了與基線方法和文獻[24]相同的10個數(shù)據(jù)。為了獲得一個較公平的評價標準通常使用信息檢索中提供的查全率、查準率和調(diào)和平均數(shù)F(F-measure)來度量特征定位技術(shù)的綜合性能[11]。表3是各種實驗對比情況。

表3 實驗結(jié)果對比

在表3中“本文531”是指利用本文提出的方法測試了531個數(shù)據(jù)的實驗,“本文10”是指利用本文提出的方法測試了10個數(shù)據(jù)的對照試驗。表3的檢索率是指輸出與查詢語句相似度高的實驗數(shù)據(jù)個數(shù)占實驗數(shù)據(jù)總個數(shù)的比例,一般用文獻[13]推薦的方法取相似度高的前10%~15%。從表3可見,在同樣取10個相同的數(shù)據(jù)進行測試的情況下,本文方法的平均查準率為8.07%,平均查全率為75.30%,調(diào)和平均數(shù)為14.58%,檢索率為10%;基線方法平均查準率8.50%,調(diào)和平均數(shù)13.86%,檢索率為15%,而平均查全率只有62.78%。在我們將實驗數(shù)據(jù)個數(shù)從10個擴大到531(全部實驗數(shù)據(jù))個且檢索率依然為10%的情況下,仍然取得了6.1%的查準率、43.01%的查全率和10.68%的調(diào)和平均數(shù)。雖然較基線方法有所下降,但是我們的實驗數(shù)據(jù)對象是全部的試驗數(shù)據(jù)。我們也認為只有在所有的數(shù)據(jù)上進行試驗才更具有普遍意義和更具有可信度,單純從幾個數(shù)據(jù)來說可能存在一定的偶然性,就本實驗來說,在我們?nèi)?0個數(shù)據(jù)的情況下獲得的查全率為75.3%就比基線方法和其他方法都要高很多。同時特征定位的理想目標是獲得特征與源代碼的準確映射關(guān)系,所以認為越低的檢索率對特征定位越有意義。由于文獻[23]是在另一個數(shù)據(jù)集上的實驗,該數(shù)據(jù)集個數(shù)要遠大于我們的實驗數(shù)據(jù)集,雖然他的檢索率為5%,但計算下來也跟iEdit 4.3的15%僅相差1個數(shù)據(jù)。綜合以上比較發(fā)現(xiàn),本文方法綜合性能更優(yōu)。

3.2 實驗不足

由于實驗檢索出來的結(jié)果是按相似度進行降序,與查詢語句相似度高的類簇排在前面,而一個類簇里至少包含一個以上類,多的包含實驗總數(shù)據(jù)的10%(約53個)以上,由于每一個類簇里面的數(shù)據(jù)是無序的,所以存在這樣的一些數(shù)據(jù),雖然這些數(shù)據(jù)包含在我們檢索出來的類簇中,但是沒有辦法計算在查準率和查全率中。比如在一組實驗中檢索出了兩個與特征相關(guān)的類簇,這兩個類簇包含的類的個數(shù)加起來超過了53個,這樣就得將相似度低的第二個類簇的一些類去除,然而第二個類簇里的類與特征的相似度是未知的,所以保留哪些類難以確定。

3.3 基于本文方法提出的新模型

混合特征定位的方法通常會獲得更好的結(jié)果,一種方法是:“動態(tài)+文本”,該方法先利用動態(tài)特征定位約減搜索空間再進行基于文本的特征定位。這種方法的缺陷是每進行一次特征定位就需要進行一次建模,即需要對每一個查詢語句都進行一次“動態(tài)+文本”的特征定位。這樣的方式工程量大沒有什么現(xiàn)實意義的。然而利用RNN可以先對所有的數(shù)據(jù)建一個文本模型,該模型的作用是計算每一個類與查詢語句的相似度并進行排序,然后再在該模型的頂部加一層動態(tài)層,與前面提到的方法不同的是此處的動態(tài)層的作用是通過將動態(tài)層輸出的結(jié)果與基于文本的方式輸出的結(jié)果進行交集計算來提高準確率和查全率。模型形式化見式(6):

F=f(X)∩R=g(Z)

(6)

式中,F(xiàn)是基于文本的特征定位的輸出,該輸出包含每一個類的類名及其與查詢語句的相似度,X是基于文本的輸入,f是映射關(guān)系;R是動態(tài)特征定位的輸出,Z是動態(tài)特征定位的輸入,g是映射關(guān)系。最后將式(6)得到的結(jié)果按F的相似度進行降序,排在最前面的就是模型定位的最終結(jié)果。此模型是以利用RNN行進基于文本的特征定位為前提,劃分粒度選擇類級別。該模型的好處是可以保證在當前的模型的基礎(chǔ)上提高綜合性能,并且相對與“動態(tài)+文本”的特征定位來說減少了工程量。

4 結(jié) 語

軟件特征定位是軟件演化活動得以順利展開的保證。然而目前的特征定位無論是查準率還是查全率都還處于一個很低水平。本文從基于文本的特征定位出發(fā)提出在文件夾粒度上利用RNN進行面向主題的特征定位。本文認為主題劃分的好壞直接影響到特征定位的結(jié)果,本文還提出了幾種不同的主題劃分方式,同時選擇了“文件夾級”粒度的劃分方式來進行試驗。通過實驗結(jié)果的對比得知雖然我們的方法存在一定的缺陷,但還是對利用深度學(xué)習(xí)進行特征定位進行了一定的探索,試驗的綜合性能也較優(yōu)。最后還提出了一個“基于文本的特征定位+動態(tài)特征定位”模型,未來的工作分兩部分:一是繼續(xù)探索用其他粒度劃分主題,二是利用本文提出的新模型進行試驗論證。

[1] Dit B, Revelle M, Gethers M, et al. Feature location in source code: a taxonomy and survey[J]. Journal of Software: Evolution and Process, 2013, 25(1): 53-95.

[2] Abebe S L, Alicante A, Corazza A, et al. Supporting concept location through identifier parsing and ontology extraction[J]. Journal of Systems & Software, 2013, 86(11):2919-2938.

[3] Scanniello G, Marcus A, Pascale D. Link analysis algorithms for static concept location: an empirical assessment[J]. Empirical Software Engineering, 2015, 20(6): 1666-1720.

[4] Wilde N, Gomez J A, Gust T, et al. Locating user functionality in old code[C]// Software Maintenance, 1992. Proceerdings. Conference on. IEEE Xplore, 1992:200-205.

[5] Alhindawi N, Alsakran J, Rodan A, et al. A Survey of Concepts Location Enhancement for Program Comprehension and Maintenance[J]. Journal of Software Engineering and Applications, 2014, 7(5): 413-421.

[6] Dit B, Revelle M, Poshyvanyk D. Integrating Information Retrieval, Execution and Link Analysis Algorithms to Improve Feature Location in Software[J]. Empirical Software Engineering, 2013, 18(2): 277-309.

[7] Rajlich V, Gosavi P. Incremental change in object-oriented programming[J]. IEEE Software, 2004, 21(4): 62-69.

[8] Li B, Sun X, Leung H, et al. A survey of code-based change impact analysis techniques[J]. Software Testing Verification & Reliability, 2013, 23(8):613-646.

[9] 王煒, 李彤, 何云,等. 一種軟件演化活動波及效應(yīng)混合分析方法[J]. 計算機研究與發(fā)展, 2016, 53(3):503-516.

[10] Lucia A D, Marcus A, Oliveto R, et al. Information retrieval methods for automated traceability recovery, in Software and systems traceability[M]. London: Springer, 2012.

[11] Ju Xiaolin, Jiang Shujuan, Zhang Yanmei, et al. Advanced in Fault Localization techniques[J]. Journal of Frontiers of Computer Science and Technology, 2012, 6(6):481-494.

[12] Petrenko M, Rajlich V, Vanciu R. Partial domain comprehension in software evolution and maintenance[C]// Proceedings of the 16th IEEE International Conference on Program Comprehension (ICPC ’08), Amsterdam, Netherlands, Jun 10-13, 2008. Washington, DC, USA: IEEE Computer Society, 2008: 13-22.

[13] Marcus A, Sergeyev A, Rajlich V, et al. An information retrieval approach to concept location in source code[C]// Proceedings of the 11th Working Conference on Reverse Engineering (WCRE’04), Delft, Netherlands, Nov 8-12, 2004. Washington, DC, USA: IEEE Computer Society, 2004: 214-223.

[14] Hill E, Pollock L, Vijay-Shanker K. Automatically Capturing Source Code Context of NL-Queries for Software Maintenance and Reuse[C]// Proceedings of the 31st IEEE International Conference on Software Engineering (ICSE’09), Vancouver, BC, May 16-24, 2009. Washington, DC, USA: IEEE Computer Society, 2009: 232-242.

[15] Dumais S T. Latent semantic analysis[J]. Annual review of information science and technology, 2004, 38(1): 188-230.

[16] Blei D M, Ng A Y, Jordan M I. Latent dirichlet allocation[J]. Journal of Machine Learning Research, 2003, 3:993-1022.

[17] Salton G. A vector space model for automatic indexing[J]. Communications of the Acm, 1974, 18(11):613-620.

[18] Gao J, Nie J Y, Wu G, et al. Dependence language model for information retrieval[C]// SIGIR 2004: Proceedings of the, International ACM SIGIR Conference on Research and Development in Information Retrieval, Sheffield, Uk, July. 2004:170-177.

[19] Xu W, Rudnicky A. Can artificial neural networks learn language models?[C]// International Conference on Spoken Language Processing, Icslp 2000 / INTERSPEECH 2000, Beijing, China, October. DBLP, 2000:202-205.

[20] Bengio Y, Senecal J S. Adaptive importance sampling to accelerate training of a neural probabilistic language model[J]. IEEE Transactions on Neural Networks, 2008, 19(4):713-22.

[21] 來斯惟.基于神經(jīng)網(wǎng)絡(luò)的詞和文檔語義向量表示方法研究[D].北京:中國科學(xué)院自動化研究所,2016.

[22] Mikolov T, Karafiát M, Burget L, et al. Recurrent neural network based language model[C]// Conference of the International Speech Communication Association, Makuhari, Chiba, Japan, September. 2010.

[23] 韓俊明, 王煒, 李彤,等. 演化軟件的特征定位方法[J]. 計算機科學(xué)與探索, 2016, 10(9):1201-1210.

[24] 何云, 王煒, 李彤,等. 面向行為主題的軟件特征定位方法[J]. 計算機科學(xué)與探索, 2014, 8(12):1452-1462.

TOPIC ORIENTED FEATURE LOCALIZATION METHOD BASED ON RNN

Yin Chunlin1Wang Wei1,2*Li Tong1,2He Yun1

1(SchoolofSoftware,YunnanUniversity,Kunming650500,Yunnan,China)2(KeyLaboratoryforSoftwareEngineeringofYunnanProvince,Kunming650500,Yunnan,China)

Software feature localization is a prerequisite for the smooth development of software evolution. The performance of the current feature location study still needs to be further improved. In order to obtain better performance, get the subject knowledge in the folder granularity was gotten. All the classes under a folder in the system were divided into the same subject knowledge class, This paper proposed a topic-oriented feature locating using depth learning algorithm-Recurrent Neural Networks(RNN). At the same time, an improved model was proposed based on this method. In order to make the experimental results more realistic, compared with the baseline method and other methods, this article will test data from 10 to 531 group and the retrieval rate from 15% to 10%. The experimental results show that this method has better performance than either the baseline method or the feature orientation method.

Software feature localization Software evolution Deep learning Recurrent neural network Topic oriented

2016-07-23。尹春林,碩士生,主研領(lǐng)域:軟件過程,軟件演化,特征定位等。王煒,副教授。李彤,教授。何云,博士生。

TP311.52

A

10.3969/j.issn.1000-386x.2017.06.003

猜你喜歡
特征文本實驗
記一次有趣的實驗
如何表達“特征”
在808DA上文本顯示的改善
做個怪怪長實驗
不忠誠的四個特征
當代陜西(2019年10期)2019-06-03 10:12:04
基于doc2vec和TF-IDF的相似文本識別
電子制作(2018年18期)2018-11-14 01:48:06
抓住特征巧觀察
NO與NO2相互轉(zhuǎn)化實驗的改進
實踐十號上的19項實驗
太空探索(2016年5期)2016-07-12 15:17:55
文本之中·文本之外·文本之上——童話故事《坐井觀天》的教學(xué)隱喻
主站蜘蛛池模板: 亚洲AⅤ永久无码精品毛片| 蜜桃臀无码内射一区二区三区| 国产爽歪歪免费视频在线观看| 久久综合成人| 美女啪啪无遮挡| 久久福利网| 青青草原国产免费av观看| 精品少妇人妻av无码久久| 中文字幕一区二区人妻电影| 国产99精品视频| 青青草原国产精品啪啪视频| 亚洲系列中文字幕一区二区| 亚洲自拍另类| 国产精品亚洲专区一区| 中文精品久久久久国产网址| www亚洲精品| 91热爆在线| 久久综合色88| 制服无码网站| 伊人久久婷婷| 国产日本欧美在线观看| 亚洲精品国产日韩无码AV永久免费网| 亚洲另类色| 国产91av在线| 国产真实乱子伦精品视手机观看| 国产一级无码不卡视频| 精品国产成人三级在线观看| 久爱午夜精品免费视频| 国产免费久久精品99re丫丫一| 日韩无码一二三区| 在线毛片免费| 人人91人人澡人人妻人人爽| 婷婷综合色| 欧美精品一区二区三区中文字幕| 亚洲一欧洲中文字幕在线| 亚洲大尺度在线| 亚洲人成色77777在线观看| 日韩欧美中文亚洲高清在线| 精品在线免费播放| 国内精品免费| 在线看免费无码av天堂的| 国产情侣一区| 亚洲香蕉在线| 亚洲欧美日韩中文字幕一区二区三区 | 国产小视频在线高清播放| 国产精品lululu在线观看 | 18禁黄无遮挡网站| 免费Aⅴ片在线观看蜜芽Tⅴ| 青青青伊人色综合久久| 啪啪啪亚洲无码| 性激烈欧美三级在线播放| 亚洲无码四虎黄色网站| 亚洲天堂区| 毛片免费高清免费| 亚洲AV无码乱码在线观看代蜜桃| 国产主播福利在线观看| 日本午夜视频在线观看| 精品人妻无码中字系列| 免费又黄又爽又猛大片午夜| 免费A∨中文乱码专区| 亚洲无码高清一区| 国产成人高清精品免费软件| 国产91全国探花系列在线播放| 免费国产在线精品一区| 国产成人久视频免费| 被公侵犯人妻少妇一区二区三区| 亚洲爱婷婷色69堂| 色妺妺在线视频喷水| 国产一级一级毛片永久| 国产日韩精品一区在线不卡| 国产91视频观看| 全部免费毛片免费播放| 伊人蕉久影院| 日韩精品毛片| 伊人蕉久影院| 成人午夜网址| 亚洲成年人片| 色偷偷综合网| 午夜a级毛片| 国产欧美精品一区二区| 欧美日韩国产一级| 色网站在线免费观看|