











摘要:針對重復缺陷報告檢測研究中存在語義長距離依賴以及缺陷報告特征的單一性問題,提出一種強化文本關聯語義和多特征提取的重復缺陷報告檢測模型。引入自注意力機制捕獲缺陷報告文本序列內部的語義關聯性,從而動態計算上下文語義向量進行語義分析,解決長距離依賴問題;利用隱含狄利克雷分布算法捕獲缺陷報告文本的主題特征,同時針對缺陷報告的類別信息,構建一種特征提取網絡計算類別差異特征;最后基于3類特征向量進行綜合檢測。實驗結果表明,該模型實現了更優的檢測性能。
關鍵詞:重復缺陷報告檢測;長距離依賴;自注意力機制;語義分析;多特征提取
中圖分類號:TP311.5" " " " " 文獻標志碼:A" " " 文章編號:1000-582X(2023)07-053-10
A duplicate bug report detection model with enhanced text relevance semantics and multi-feature extraction
ZHOU Wenjie, XIE Qi, CUI Mengtian
(The Key Laboratory for Computer Systems of State Ethnic Affairs Commission, Southwest Minzu University, Chengdu 610041, P. R. China)
Abstract: A duplicate bug report detection model with enhanced text relevance semantics and multi-feature extraction was proposed to address the issues of semantic long-distance dependence and the singleness of bug report features in the current research on duplicate bug report detection. The model introduced the self-attention mechanism to capture the semantic relevance within the bug report text sequence. This mechanism calculates the contextual semantic vector dynamically for semantic analysis and resolves the problem of long-distance dependence. Additionally, the model employed the latent Dirichlet allocation algorithm to capture the topic characteristics of the bug report text. Furthermore, a feature extraction network was constructed to calculate category difference features, providing category information for the bug report simultaneously. Finally, comprehensive detection was performed based on three types of feature vectors. The experimental results demonstrate that the model achieves improved detection performance.
Keywords: duplicate bug report detection; long distance dependence; self-attention mechanism; semantic analysis; multiple features extraction
軟件缺陷報告作為缺陷跟蹤系統的實體之一,是描述軟件缺陷、失效或不符合用戶預期的軟件表現的文檔。軟件缺陷報告由文本信息和類別信息組成,其中文本信息是以自然語言對軟件缺陷進行描述,類別信息通過枚舉值確定缺陷報告所屬的類別。現實中由于不同人員之間信息不共享,往往針對同一個軟件缺陷各自提交缺陷報告,從而導致了缺陷報告重復問題。據統計,Mozilla Core、Firefox和 Eclipse Platform開源項目中含有的重復缺陷報告占比分別到達了21.8%、30.9%和16.9%[1]。分配重復的缺陷報告給不同的開發人員會導致人力資源的浪費,而自動化地檢測重復缺陷報告將有效降低軟件的維護成本。
目前對于重復缺陷報告檢測已有大量研究。早期的研究主要是結合自然語言處理與文本檢索技術的方面展開,這類研究的缺點在于難以解決同義不同詞的匹配檢索問題,導致檢測性能較差[2]。為了解決這一問題,近期的研究轉向利用神經網絡捕捉文本語義,取得了良好的效果,但仍存在一些不足。這類研究普遍使用2種神經網絡結構:卷積神經網絡(convolutional neural network, CNN)和循環神經網絡(recurrent neural network, RNN)。一方面,CNN網絡擅長捕捉局部特征,但對全局上下文信息的歸納能力較差。RNN網絡雖然能夠對整個文本進行語義建模,但是隨著文中長度的增加,存在語義長距離依賴的問題[3]。另一方面,不少研究往往局限于文本語義,缺乏挖掘缺陷報告文本所隱藏的主題模式,忽略或未充分利用缺陷報告的類別信息在檢測中所起到的作用,因此存在特征單一性的問題。
為此,文中提出一種新的重復缺陷報告檢測方法,通過構建一種基于自注意力機制[4]的神經網絡模型,捕捉缺陷報告文本序列內部的相關性實現強化語義向量,克服語義長距離依賴問題。由于使用單一的特征向量不能全面反映缺陷報告之間的差異性,因此利用隱含狄利克雷分布(latent dirichlet allocation, LDA)算法挖掘缺陷報告的主題特征,同時構建一種差異特征提取網絡,從而生成類別差異特征。由此,文中提出的模型不僅能更準確地度量語義相似性,還具有綜合利用主題特征、類別差異特征進行多特征檢測的能力。
1 相關研究
1.1 傳統機器學習方法
早期對重復缺陷報告檢測的主要手段是基于傳統的機器學習技術。Runeson[5]最早提出應用自然語言處理技術將缺陷報告中包含的單詞轉換為詞袋向量,然后在向量空間模型(vector space model)中計算余弦距離來對相似性進行度量。Sureke等[6]認為詞袋模型完全忽視了自然語言文本的序列信息,提出一種基于n元文法的相似度量模型。Sun等[7]進一步指出余弦距離不能準確、真實地反映相似距離,提出引入SVM(support vector machine)作為分類器以提升檢測性能。Yang等[8]認為應當差異化地對待有不同重要性的單詞,提出通過BM25算法加權詞袋向量。這些方法的確能夠檢測相當一部分的重復缺陷報告,但是它們的主要不足之處在于不能很好地檢測以不同的術語書寫但實質是描述相同的技術問題的重復缺陷報告報告,無法正確地處理同義詞。
1.2 基于深度學習的方法
為了解決傳統機器學習方法的不足,不少學者相繼提出了一些基于深度學習方法的模型,這些模型直接研究缺陷報告文本語義信息。Kukkar等[9]使用預訓練的詞嵌入查找表得到文本的詞向量,通過基于孿生結構的卷積神經網絡捕捉2類語義特征,從而得到不同抽象層次的語義信息。由于該模型對每份缺陷報告進行獨立編碼,He等[10]提出一種多通道的卷積神經網絡同時編碼一組缺陷報告,以獲得缺陷報告之間的語義關聯,實現語義交互。針對卷積神經網絡只能獲得局部語義特征,Deshmukh等[11]進一步提出針對文本長度較長的文本域利用循環神經網絡捕獲基于全局上下文的語義表示,而卷積神經網絡只用于捕捉短文本的語義,實驗結果表明該模型取得了更好的效果。Prifti等[12]發現重復缺陷報告之間的提交時間間隔可以用來限制潛在重復匹配的搜索空間。Poddar等[13]通過分步訓練的方式,在進行主題聚類的同時利用Bi-GRU(bi-gated recurrent unit)網絡進行語義編碼,并引入注意力機制利用主題聚類的結果對語義特征向量加權,再輸入到多層感知機里進行分類,實驗結果表明經過加權后的語義向量具有更準確的表達能力。Rocha等[14]認為在進行相似性檢測時缺少對缺陷報告語料庫的綜合分析,提出一種基于語料庫主題特征的語義學習方法。
2 文中方法
重復缺陷報告檢測的目標是針對當前缺陷報告,準確地從缺陷報告庫返回與之重復的缺陷報告,實現篇章級檢測。它的核心策略是迭代地計算缺陷報告之間的相似性程度,返回相似度最高的缺陷報告。
針對上述目標,文中提出的重復缺陷報告檢測模型如圖1所示,主要包括5個模塊。其中數據預處理模塊主要對缺陷報告的文本內容進行適當的轉換和去除噪聲數據,具體預處理步驟有分詞、去除特殊字符、統一大小寫和詞形還原;語義特征提取模塊主要是利用自注意力機制捕捉缺陷報告文本在各編碼時間步上的語義內部相關性,實現語義聚合,得到上下文語義特征;主題特征提取模塊對文本主題進行分析,得到主題特征向量;類別差異特征提取模塊度量類別屬性值之間的相似距離,得到類別差異特征向量;分類器根據這3類特征進行相似度計算,輸出缺陷報告和缺陷報告庫中的任意缺陷報告之間的相似程度,最后按相似程度降序排序返回相似度最高的缺陷報告。
2.1 語義特征提取
2.1.1 輸入層
該層的目標是將缺陷報告中的自然語言文本轉換為神經網絡能夠處理的向量,具體而言是將缺陷報告中的title和description字段域中的文本所包含的每一個單詞轉換為一個固定維度的向量。基于Pennington等[15]的工作,該層使用Glove模型生成的預訓練詞嵌入查找表,對任意缺陷報告得到對應的詞向量表示為
, (1)
式中,為缺陷報告中title和description文本字段域的文本的總長度。
對于詞向量,它的形式為,是詞向量維度。其中是利用Glove模型得到的詞嵌入向量,由于涉及到需要對來自2個不同字段域的信息進行處理,使用作為是一個數值標識位,以表示該單詞所歸屬的字段域,其值取0或1。符號表示將向量擴充一個維度,由的值進行填充。
2.1.2 初步編碼層
理論上CNN和RNN神經網絡都可用于編碼缺陷報告的語義,但是CNN通過滑動窗口僅能捕捉局部特征,同時經典的RNN網絡通常更適應短文本分析,而缺陷報告的title和description字段域中的文本總長度往往較長,容易導致在反向傳播過程中的出現梯度消失的問題。為此,該層使用RNN的一種變種網絡GRU模型對缺陷報告進行初步編碼。GRU模型引入可學習的重置門控單元和更新門控單元控制輸入信息的流動,從而捕獲時間步距離較大的依賴關系,如圖2所示。
在當前時間步,GRU單元接收2個輸入:前一時刻的隱狀態和當前時刻的詞向量,然后分別計算重置門和更新門向量,分別決定上文環境信息哪些需要遺忘或繼續傳遞,為
, (2)
, (3)
式中:符號表示向量水平拼接;和均是可訓練權重參數;和是偏置量;符號是sigmoid激活函數。
重置門向量被用來丟棄與當前輸入無關的歷史信息,然后和更新門向量共同計算得出當前時刻的隱狀態,為
(4)
(5)
式中:符號表示逐元素相乘;和同樣分別是可訓練權重參數和偏置量;tanh為激活函數。
將缺陷報告的詞向量序列前向依次傳入到GRU中,即可生成相應的隱狀態序列。由于前向迭代只能捕捉上文環境信息,為了同時能夠捕捉下文環境信息,再將詞向量序列后向依次傳入到GRU中得到后向隱狀態序列。最終通過向量水平拼接生成每一個時間步的綜合隱狀態,其形式為
。 (6)
對任意,它的計算方法為
。 (7)
2.1.3 自注意力加權
GRU模型引入2類門控單元優化語義分析過程,輸出的隱狀態序列中的每一個成員向量理論上融合了當前時間步的全局上下文信息,因此理論上的最后一個序列成員應當表征了整個缺陷報告的綜合語義。然而當文本的長度過長時,較遠時間步所生成的隱狀態由于迭代次數的增多,對當前時間步的隱狀態的影響越來越小。因此對于來說,實際上幾乎只表征了臨近幾個單詞所構成的上下文語義,即存在長距離依賴的問題。為了克服這一問題同時提升模型的語義表征能力,引入自注意力機制,分析其他時間步的隱藏狀態和當前時間步的隱狀態的交互信息,如圖3所示。
自注意力機制可以自動地發現隱狀態序列內部的關聯關系,得到相應的注意力權重,能夠聚合向量,從而達到強化上下文語義向量的目的,為
, (8)
, (9)
, (10)
式中:表示在時間步生成的隱狀態向量;和是可訓練參數;是偏置量;表示第個隱狀態與進行動態關聯的注意力得分;是進行歸一化后的分數;是經過對各個隱狀態加權后最終得到的綜合語義特征向量;ReLu是激活函數;exp是絕對值函數。
自注意力機制通過式(8)定義自注意力提取層,該層挖掘任意時間步的上下文語義與之間的交互關聯關系,經式(9)進行歸一化運算后,加權每一時間步的上下文語義,得到綜合語義特征向量。相較于特征向量,由于融合了其他較遠時間步的上下文語義,因此能夠表征更加豐富的全局語義信息,克服語義長距離依賴問題。值得注意的是,當時,最終的語義向量退化為。經過實驗發現并不存在這種情況,這恰恰說明引入自注意力機制的必要性。利用上述語義特征提取方法,分別得到缺陷報告和的上下文語義特征向量為與。
2.2 主題特征提取
語義特征提取將缺陷報告所包含的信息通過深度學習映射到一個語義空間中,這一過程可以理解為一種語義歸納。缺陷報告的內容也可以被看作是反映一個或多個技術問題的表述,如軟件適配錯誤、網絡異常等。因此,有必要引入LDA模型對缺陷報告的主題分布進行推斷。LDA模型是一種無監督的生成模型,如圖4所示。
圖4中,“文檔-主題”概率分布和“主題-詞”概率分布是LDA主題模型的核心,分別由可學習的狄利克雷參數和所決定;矩形表示重復抽樣,、D和T表示抽樣次數,其值分別為缺陷報告中含有的單詞數量、缺陷報告庫中含有的文檔數量和主題個數。整個過程為:當從“文檔-主題”概率分布中確定一個主題,再結合該主題所對應的“主題-詞”概率分布,即可確定一個單詞。由于在實際中除了缺陷報告中的單詞可被觀測和主題個數可被指定,其他參數均未知,因此需要通過聯合概率函數進行推斷,聯合概率函數為
。 (11)
通過Gibbs采樣算法使得聯合概率函數收斂,即可得到“文檔-主題”概率分布 和“主題-詞”概率分布,有關具體實現細節可查文獻[16]。通過對缺陷報告和的文本主題進行推斷,得到主題特征向量和,其中為超參,表示主題個數。
2.3 類別差異特征提取
與一般的文本相似性度量任務不同,缺陷報告不僅包括由自然語言構成的文本域信息,還包含一些其他枚舉類型數據,例如bug severity、priority和component等類別信息。這些分類信息無法提取出語義或主題,但是它們對重復缺陷報告檢測的作用不可忽視。為此,文中提出一種類別差異特征提取方法,如圖5所示。
采用One-hot方法分別對類別信息的每一種枚舉值進行映射。由于bug severity、priority和component類別屬性分別有5、4和7種枚舉值,因此對于任意一個缺陷報告都將被轉換為一個16維度的向量,其中3個維度為1,剩余維度為0。依次通過編碼層和比較層得到類別差異特征,為
, (12)
, (13)
, (14)
式中:仍然表示向量逐元素相乘;和分別是待檢測的缺陷報告和的One-hot向量;、和是可訓練參數;和是偏置量;是超參;控制編碼向量和類別差異特征向量的維度。
值得注意的是,理論上和可以直接傳入比較層,但這種方式無法有效地刻畫枚舉值之間的差異。以bug severity類別屬性為例,它的枚舉值有low、medium、high、critical和catastrophic五種。假設缺陷報告的bug severity屬性為low,對應的One-hot向量為[1,0,0,0,0],不論缺陷報告的One-hot向量是[0,1,0,0,0]還是[0,0,0,0,1],如果沒有編碼層,那么它們在比較層的輸出結果是一致的,均為零向量。但事實上,當缺陷報告的bug severity類別屬性值為medium比catastrophic應當更接近缺陷報告。因此加入編碼層的意義就在于學習同一類別屬性值之間的差異關系。
2.4 分類器
分類器具體由一個全連接層和分類層組成,全連接層的輸入包括3類:上下文語義特征、主題特征和類別差異特征,分類器則是一個標準的邏輯回歸,預測缺陷報告和之間的相似性。分類器定義為
, (15)
, (16)
式中:、、和是可訓練參數;和是偏置量。
3 實驗與結果分析
3.1 實驗設計
3.1.1 數據集
為了驗證文中所提方法的有效性,采用Eclipse公開的缺陷報告數據集[17]進行實驗。該數據集中共含有25 423個軟件缺陷報告文檔,其中被標記為重復的缺陷報告共有15 423對。每個缺陷報告由14個字段域組成,文中所提出的模型僅需使用到其中7個字段域即可,分別是bug_id、title、description、dup_id、bug severity、priority和component。字段域bug_id可唯一地標識該缺陷報告;字段域title和description分別表示缺陷的總體描述和詳細描述;字段域dup_id表示當前缺陷報告是否含有與之重復的其他缺陷報告,如果有則字段域的值為對應的bug_id,否則就缺省;字段域bug severity表示缺陷的嚴重程度;字段域priority表示缺陷的處理優先級,字段域component表示缺陷所屬的功能組件。
3.1.2 損失函數
文中所提出的模型每次同時處理任意一組缺陷報告和,并輸出重復概率,同時記缺陷報告和的標簽為,定義交叉熵損失函數為
, (17)
式中:和分別是正則化參數和模型權重;表示對損失函數進行正則化以緩解過擬合問題。
3.1.3 評價指標
由于重復缺陷報告檢測的實質是從缺陷報告庫已有的缺陷報告中選出與當前缺陷報告相似度最高的一份或幾份,并按照相似度生成一個有序列表,實際上是一種排序任務。文中采用平均精度均值(mean average precision, MAP)和k召回率(recall rate@k, RR@k)作為評估模型性能的指標,分別記為和。的計算方法為
, (18)
式中:是測試集中的樣本個數;是第個樣本所記錄的重復缺陷報告在生成的有序列表中的位置。的計算方法為
, (19)
式中,表示有序列表的前項包含重復缺陷報告的樣本的個數。
3.1.4 參數設置
在實驗中,是使用Natural Language Tool Kit工具對缺陷報告文本進行數據預處理。模型訓練過程中,參數設置如表1所示。3.2 實驗結果分析
本節將從以下3個方面加以闡述:1)與其他模型相比,文中所提出的模型是否表現出更優的性能;2)各個模塊對模型性能的影響;3)模型在不同參數下的性能。
3.2.1 不同模型的對比實驗分析
為驗證文中所提出的重復缺陷報告檢測模型的有效性,在Eclipse公開缺陷報告數據集上進行實驗,并與REP、DWEN和BSO模型進行對比。相關模型在數據集上的實驗結果如表2所示。
從表2中可以看出,DWEN[18]模型的性能最差,原因在于DWEN模型僅僅計算缺陷報告的所有詞向量在各個維度上的均值,組成語義特征向量,同時也沒有將類別信息作為影響相似性的因素。該語義特征構造過程無法有效區分單詞的重要程度和對文本語義的貢獻,且后期單詞輸入序列所表達的上下文語義覆蓋了前期上下文語義,存在語義長距離依賴問題。而文中所提出的模型由于引入自注意力機制,通過注意力權重計算,動態決定每一個時間步的上下文語義對全局上下文語義的貢獻,實現了語義聚合。
REP[7]模型針對缺陷報告具有結構化的特征,利用文本域權重加權域內單詞的重要度,實現了粗粒度地區分不同單詞的重要性,同時對比7種類別屬性值組成類別特征,再結合文本特征后進行綜合檢測,因此該模型取得了明顯優于DWEN模型的檢測性能,性能提升的原因主要在于REP模型充分利用了缺陷報告的類別信息,整體地反映了缺陷報告之間的相似性。但是REP模型由于缺少語義分析,因此難以解決同義不同詞的問題,檢測性能依然弱于文中所提出的模型。
BSO[19]模型在REP的基礎上提出再對缺陷報告文本對應的詞向量矩陣進行奇異值分解,得出主題特征。與文中所提出的模型相比,BSO模型同樣實現了從3個方面對缺陷報告文檔進行建模,但其使用詞袋模型得到的詞向量表示非常稀疏,同時在語義歸納過程中忽略了句法結構信息,語義提取不夠準確。而文中所提出的模型既具有對缺陷報告進行多特征抽取的能力,又通過自注意力機制強化全局上下文語義表示,使得語義提取更為準確,因此檢測性能最好,在評價指標上比第二優的BSO模型分別高出3.15%、3.07%、3.22%、3.19%、2.34%,值高出3.89%。
3.2.2 各個模塊性能實驗分析
為了驗證文中所提出的模型中不同模塊對模型性能的影響,本組實驗設計一個基準模型,該模型以不具備自注意力加權的語義特征作為分類器的唯一輸入向量,分別針對自注意力加權模塊、主題特征提取模塊和類別差異特征提取模塊對實驗結果的影響進行驗證。實驗結果見表3所示。
從表3中可以看出,3個模塊對實驗的性能均有提升的作用。以為例,引入自注意力機制、提取主題特征和類別差異特征分別較基線模型提升17.80%、4.57%和8.23%。從各模塊對模型性能的提升幅度來看,引入自注意力機制對語義向量進行加權對模型性能影響最大,在所有評價指標上提升最多。
值得注意的是,在與表2數據對比之后可以發現,引入自注意力機制盡管使得模型性能大幅上升,但檢測性能依然弱于REP和BSO這2類方法。原因在于基于基線模型上引入自注意力機制,依然局限于語義分析這一個方面,但是與同為僅有語義分析的DWEN模型相比,相關數據清晰地表明引入自注意力機制后模型實現了更為準確的語義分析。
相較于主題特征,引入類別差異特征對模型能力的提升能力更強,原因在于類別信息由枚舉值進行清晰刻畫,相較于對文本信息進行主題分析,后者更容易受噪聲信息的影響。縱向地對比各模塊對模型性能提升作用可以發現,盡管引入自注意力機制的絕對提升幅度最大,但主題特征和類別差異特征能從其他側面刻畫語義分析難以挖掘的其他特征模式,從而使得模型檢測性能進一步提升。因此通過3種模塊進行基于多特征檢測的策略達到了最佳的檢測效果,在各個評價指標上依次提高了35.21%、52.27%、42.92%、38.12%、35.97%和18.04%。
3.2.3 不同參數下的實驗性能分析
本節對模型中涉及的一些參數設置對實驗性能的影響進行分析。
1)向量維度對模型性能的影響。
在語義特征提取中有2種重要的向量:作為輸入的詞向量和決定輸出的隱狀態向量。在訓練中,它們同時具有相同的維度。為了分析這2類向量維度對實驗結果的影響,本組實驗設計向量維度分別為25維、50維、100維和200維的4組實驗。實驗結果見表4所示。
由表4可以看出,隨著向量維度從25維增加到50維再到100維,模型的性能不斷提升,當增長到200維時,模型性能出現下降。實驗結果說明,在一定范圍內隨著維度的增加,向量越能準確反映詞的特征和提升隱狀態的上下文信息描述能力,而當維度過大時,反而弱化了詞之間的差異,隱狀態也包含了冗余的上下文信息導致模型性能下降。
2)失活率對模型性能的影響。
使用失活率是一種有效減緩模型過擬合的方法,本組實驗為了分析不同失活率下模型的性能,設計失活率由0.05增長至0.25的多次實驗。實驗結果見表5所示。
從表5中可以看出,當失活率為0.1時模型在各個指標上均達到最優。實驗結果說明失活率的確起到了防止過擬合的作用,但是隨著失活率的逐漸增大,本質上等同于逐步減少模型的有效神經元數量,因此損害了模型的性能。
4 結束語
提出了一種強化文本關聯語義和多特征提取的重復缺陷報告檢測模型,該模型包括基于雙向門控循環單元的語義特征提取、基于隱含狄利克雷分布的文本主題特征挖掘以及基于全連接神經網絡的類別差異信息度量。在語義特征提取中,還通過引入自注意力機制,評估跨時間步之間的上下語義之間的相關性,實現語義聚合以克服語義長距離依賴問題。實驗結果表明,該模型在平均精度均值和召回率上優于近期提出的其他模型。在下一步的工作中,將深入地研究獲得更準確的缺陷報告語義向量表征,此外,將對缺陷報告之間的語義關聯關系進行探索。
參考文獻
[1]" Xie Q, Wen Z Y, Zhu J M, et al. Detecting duplicate bug reports with convolutional neural networks[C]//2018 25th Asia-Pacific Software Engineering Conference(APSEC). IEEE, 2018:416-425.
[2]" Zou W Q, Lo D, Chen Z Y, et al. How practitioners perceive automated bug report management techniques[J]. IEEE Transactions on Software Engineering, 2020, 46(8):836-862.
[3]" Alt?nel B, Ganiz M C. Semantic text classification: a survey of past and recent advances[J]. Information Processing amp; Management, 2018, 54(6):1129-1153.
[4]" Lin Z H, Feng M W, dos Santos C N, et al. A structured self-attentive sentence embedding[EB/OL]. 2017: arXiv: 1703.03130. https://arxiv.org/abs/1703.03130.
[5]" Runeson P, Alexandersson M, Nyholm O. Detection of duplicate defect reports using natural language processing[C]//29th International Conference on Software Engineering. IEEE, 2007: 499-510.
[6]" Sureka A, Jalote P. Detecting duplicate bug report using character N-gram-based features[C]//2010 Asia Pacific Software Engineering Conference. IEEE, 2011: 366-374.
[7]" Sun C N, Lo D, Khoo S C, et al. Towards more accurate retrieval of duplicate bug reports[C]//26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011). IEEE, 2011:253-262.
[8]" Yang C Z, Du H H, Wu S S, et al. Duplication detection for software bug reports based on BM25 term weighting[C]//2012 Conference on Technologies and Applications of Artificial Intelligence. IEEE, 2013: 33-38.
[9]" Kukkar A, Mohana R, Kumar Y, et al. Duplicate bug report detection and classification system based on deep learning technique[J]. IEEE Access, 2020,8: 200749-200763.
[10]" He J J, Xu L, Yan M, et al. Duplicate bug report detection using dual-channel convolutional neural networks[C]//Proceedings of the 28th International Conference on Program Comprehension. New York: ACM, 2020: 117-127.
[11]" Deshmukh J, Annervaz K M, Podder S, et al. Towards accurate duplicate bug retrieval using deep learning techniques[C]//2017 IEEE International Conference on Software Maintenance and Evolution(ICSME). IEEE, 2017:115-124.
[12]" Prifti T, Banerjee S, Cukic B. Detecting bug duplicate reports through local references[C]//Proceedings of the 7th International Conference on Predictive Models in Software Engineering. IEEE, 2011:1-9.
[13]" Poddar L, Neves L, Brendel W, et al. Train one get one free: partially supervised neural network for bug report duplicate detection and clustering[C]//Proceedings of the 2019 Conference of the North. Minneapolis-Minnesota. Stroudsburg, PA, USA: Association for Computational Linguistics, 2019: 157-165.
[14]" Rocha T M, Da Costa Carvalho A L. SiameseQAT: a semantic context-based duplicate bug report detection using replicated cluster information[J]. IEEE Access, 2021, 9: 44610-44630.
[15]" Pennington J, Socher R, Manning C. Glove: global vectors for word representation[C]//Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP). Stroudsburg, PA, USA: Association for Computational Linguistics, 2014: 1532-15.
[16]" Chai H M, Lei J N, Fang M. Estimating Bayesian networks parameters using EM and Gibbs sampling[J]. Procedia Computer Science, 2017, 111:160-166.
[17]" Lazar A, Ritchey S, Sharif B. Generating duplicate bug datasets[C]//Proceedings of the 11th Working Conference on Mining Software Repositories. New York: ACM, 2014:392-395.
[18]" Budhiraja A, Dutta K, Reddy R, et al. DWEN: deep word embedding network for duplicate bug report detection in software repositories[C]//Proceedings of the 40th International Conference on Software Engineering: Companion Proceeedings. New York: ACM, 2018: 193-194.
[19]" 范道遠, 孫吉紅, 王煒, 等. 融合文本與分類信息的重復缺陷報告檢測方法[J]. 計算機科學, 2019, 46(12): 192-200.
Fan D Y, Sun J H, Wang W, et al. Detection method of duplicate defect reports fusing text and categorization information[J]. Computer Science, 2019, 46(12): 192-200.(in Chinese)
(編輯" 詹燕平)