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

基于編輯序列的跨語言重構檢測方法

2024-12-03 00:00:00李濤張冬雯張楊鄭琨
河北科技大學學報 2024年6期
關鍵詞:精確度檢測信息

文章編號:1008-1542(2024)06-0627-09

摘" 要:

針對基于深度學習的重構檢測方法中開發人員沒有一致性地記錄重構操作,導致提交的信息不可靠以及語言單一性問題,提出了一種新的跨語言重構檢測方法RefCode。首先,采用重構收集工具從不同編程語言中收集提交信息、代碼變更信息和重構類型,通過代碼變更信息生成編輯序列,將所有數據組合為數據集;其次,將CodeBERT預訓練模型與BiLSTM-attention模型相結合,在數據集上進行訓練和測試;最后,從6個方面對模型進行評估,以驗證方法的有效性。結果表明,RefCode相較于只采用提交信息作為LSTM模型輸入的重構檢測方法,在精確度和召回率方面均實現了約50個百分點的顯著提升。研究結果實現了跨語言重構檢測,并有效彌補了提交信息不可靠的缺陷,可為其他編程語言和重構類型的檢測提供參考。

關鍵詞:

軟件工程;重構檢測;深度學習;跨語言;代碼變更;編輯序列

中圖分類號:TP311

文獻標識碼:A

DOI:10.7535/hbkd.2024yx06007

收稿日期:2023-12-20;修回日期:2024-04-06;責任編輯:馮民

基金項目:國家自然科學基金(61440012);

河北省自然科學基金(F2023208001);河北省引進留學人員資助項目(C20230358)

第一作者簡介:

李濤(1998—),男,四川眉山人,碩士研究生,主要從事智能化軟件方面的研究。

通信作者:

張冬雯,教授。E-mail:zdwwtx@163.com

李濤,張冬雯,張楊,等.

基于編輯序列的跨語言重構檢測方法

[J].河北科技大學學報,2024,45(6):627-635.

LI Tao, ZHANG Dongwen, ZHANG Yang,et al.

Cross-language refactoring detection method based on edit sequence

[J].Journal of Hebei University of Science and Technology,2024,45(6):627-635.

Cross-language refactoring detection method based on edit sequence

LI Tao1, ZHANG Dongwen1,2, ZHANG Yang1,2, ZHENG Kun1

(1.School of Information Science and Engineering, Hebei University of Science and Technology,

Shijiazhuang, Hebei 050018, China;

2.Hebei Technology Innovation Center of Intelligent IoT, Shijiazhuang, Hebei 050018, China)

Abstract:

Aiming at the problems of unreliable commit message caused by developers not consistently recording refactoring operations, and language singularityin deep learning-based refactoring detection methods, a cross-language refactoring detection method RefCode was proposed. Firstly, refactoring collection tools were employed to collect commit messages, code change information, and refactoring types from different programming languages, the edit sequences were generated from the code change information, and all the data were combined to create a dataset. Secondly, the CodeBERT pre-training model was combined with the BiLSTM-attention model to train and test on the dataset. Finally, the effectiveness of the proposed method was evaluated from six perspectives. The results show that RefCode achieves a significant improvement of about 50% in both precision and recall compared to the refactoring detection method which only uses commit messages as inputs to the LSTM model. The research results realize cross-language refactoring detection and effectively compensate for the defect of unreliable commit messages, which provides some reference for the detection of other programming languages and refactoring types.

Keywords:

software engineering; refactoring detection; deep learning; cross-language; code change;edit sequence

重構檢測工具對開發人員至關重要,其能夠自動檢測和分類重構操作,從而提高代碼質量和可維護性,幫助管理和維護代碼,提升軟件的可靠性和效率。大多數重構檢測工具[1-4]通過設定相似度閾值來幫助開發者自動化地檢測和分類代碼重構,但閾值設定經常需要人為干預,且受主觀因素和項目差異影響,無法找到通用閾值。RMINER[5]是一款基于AST語句匹配的代碼重構檢測工具,它無需用戶設定閾值,能夠根據特征進行重構類型識別,但僅限于Java代碼的檢測。

深度學習技術具有自適應性和靈活性,能夠根據不同的編程語言、項目和場景進行學習和調整,并且已經被應用于各種軟件工程任務中[6-19]。在重構檢測任務中,一些研究人員將深度學習技術與重構檢測工具相結合,提高了重構檢測工具的準確率[20-21]。然而,數據收集和檢測語言單一等問題仍然存在。一些工作將提交信息作為輸入,采用深度學習技術挖掘提交信息中的特征信息,預測提交信息中潛在的重構操作[22-23]。然而,大多數開發者并未在提交信息中一致地記錄重構操作[24],導致提交信息成為預測重構操作的不可靠指標。

針對上述問題,本文提出基于編輯序列的跨語言重構檢測方法RefCode。使用數據收集工具從Java和Python項目中獲取數據樣本,并添加代碼變更信息和編輯序列,彌補提交信息不可靠的問題;此外,將CodeBERT預訓練模型[25]和BiLSTM-attention模型[26]相結合,實現跨語言重構檢測。

1" RefCode重構檢測方法

基于編輯序列的重構檢測方法RefCode框架圖如圖1所示。首先,收集了110個Java和Python實際應用程序,從源程序中提取提交信息、重構類型等信息,并對重構檢測實例進行數據預處理;然后根據代碼變更信息生成編輯序列,將編輯序列與提交信息等數據相結合生成數據樣本,以此作為深度學習模型的輸入,其中代碼變更信息作為CodeBERT模型的輸入,提交信息和編輯序列分別作為2個BiLSTM-attention模型的輸入,重構檢測類型作為樣本標簽,模型的預期輸出是樣本的標簽(即重構類型)。經過多次在訓練集上訓練,最終獲取訓練好的分類器,通過測試集評估分類器的性能,并給出重構檢測結果。

1.1" 數據收集

為了在深度學習模型中實現跨語言的重構檢測,關鍵是要收集來自多種編程語言的數據集。首先,需要選擇并克隆托管在GitHub上的開源項目。Java項目是從文獻[27]提供的項目列表中隨機選擇的,而Python項目則來自文獻[28]。隨機選擇項目之后,優先克隆包含大量提交消息的項目。最終,收集了GitHub中的60個開源Java項目和50個開源Python項目作為實驗的數據集。

對于Java數據集,使用RMINER重構檢測工具從Java項目中提取數據。該工具采用基于AST的語句匹配算法來檢測重構,可以獲得提交ID、重構操作類型以及重構前后的代碼塊的起始行號。考慮到一個文件中可能存在多個代碼更改,首先獲取與重構類型對應的代碼塊的起始行號,以便精確定位更改的代碼塊。然后,使用PyDriller[29]獲取與每個提交ID關聯的提交消息和與起始行號對應的代碼塊。PyDriller是一個幫助開發人員解析Git倉庫的Python框架。Python數據集的收集過程與Java數據集相似,但選擇的重構檢測工具是PyRef [30]。目前,這個重構檢測工具只識別5種重構類型,如添加參數和重命名方法。因此,Java數據集中的重構類型也被過濾以選擇相應的5種類型。

為了提高模型的精確度,數據預處理是必不可少的。收集的提交信息包含無關的信息,如評論和特殊字符。此外,更改前后的代碼包含單行或多行注釋。為了減少數據中的噪聲,使用正則表達式過濾掉這些評論、特殊字符和其他冗余信息。

樣本數據包含提交消息、重構前后的代碼塊、編輯序列,以及作為分類標簽的重構類型,其他數據作為模型的輸入。最終,收集了21 393個樣本,其中包括

17 115個Java樣本和4 278個Python樣本。

為了確保數據的準確性,需要進一步校對數據。首先,使用PyDriller中的change_type參數與重構類型進行比對。change_type表示更改的類型,包括添加、刪除、修改和重命名。然后,手動驗證與重構類型不匹配的樣本。

1.2" 編輯序列

編輯序列(edit sequence)[31-32]是一種在計算機科學和生物信息學中廣泛使用的概念,主要用于度量2個字符串之間的相似性。編輯序列是一系列操作,通過這些操作可以將一個字符串轉換為另一個字符串。

在本文中,刪除和添加的代碼是被轉換的2個字符串,它們被視為2個令牌序列。為了構建編輯序列,將基于Levenshtein距離[33]的確定性差異算法應用于2個令牌序列。編輯序列的對齊方式如圖2所示,圖中包含3個序列。序列①是表示令牌發生的操作,它使用各種特殊符號標記發生更改的操作:

替換()、添加(+)、刪除(-)和未更改(=)。序號②是更改前的令牌序列,序號③是更改后的令牌序列。在發生添加或修改操作時,使用填充符號()保證序列長度的一致。3個序列的長度相同,每一列都相互對應,當第2行的令牌和第3行的令牌相同時,第1行使用“=”表示未更改操作;當第2行和第3行的令牌不同時,第1行使用“”表示替換操作;當第2行有令牌,但是第3行沒有令牌時,第1行使用“-”表示刪除操作;當第2行沒有令牌,但是第3行有令牌時,第1行使用“+”表示添加操作。

本文的方法采用編輯序列從代碼變更信息中獲取代碼重構所對應的修改,由于CodeBERT預訓練模型是在不同編程語言的數據集中進行訓練,所以本文采用CodeBERT預訓練模型從不同編程語言的代碼變更信息中提取語義特征,采用BiLSTM從特殊符號標記中提取代碼變更的結構特征,最后結合2種特征對重構類型進行檢測。

1.3" 分類模型結構

為了實現跨語言重構檢測,本文將重構檢測作為多分類任務,提出了一個將CodeBERT和BiLSTM-attention相結合的分類器模型。

分類模型的總體結構如圖3所示,包含CodeBERT預訓練模型和BiLSTM-attention模型2個部分。在第1部分中,將代碼變更信息作為輸入信息,通過CodeBERT預訓練模型將代碼變更信息編碼為詞向量,并且通過CodeBERT中的多層雙向Transformer網絡和self-attention機制獲取代碼變更信息中的語義信息。在第2部分中,

將提交信息和編輯序列均視為文本信息,作為BiLSTM模型的輸入。通過BiLSTM模型對文本信息進行編碼,使用 attention機制計算特征信息對重構操作的重要程度,增加對預測結果重要信息的關注。

輸入的數據經過CodeBERT模型處理,使用一個全連接層對CodeBERT模型的輸出進行一個維度的轉換,然后將輸出的文本特征表示和代碼特征表示通過合并層(merge layer)進行拼接,最后通過一個全連接層和分類層輸出結果。

2" 實" 驗

使用Ubuntu 20.04.2操作系統,且安裝了Python 3.7和PyTorch1.10作為深度學習運行環境。

2.1" 實驗數據

為了評估模型的性能,對數據集進行劃分。首先,將Java數據集和Python數據集分別按照8∶2的比例劃分為訓練集和

測試集,然后將Java訓練集和Python訓練集組成混合訓練集,再將Java測試集和Python測試集混合形成新的混合測試集。最終數據集由混合數據集(混合訓練集、混合測試集)、Java測試集和Python測試集組成,數據集的具體分布如表1所示,表中展示了每種重構類型在整體數據集中的分布。

2.2" 研究問題

通過回答以下研究問題(RQ)來評估RefCode方法的有效性:

RQ1 "RefCode在不同的編程語言中重構檢測的性能如何?

RQ2" 代碼變更信息能否有效提升重構檢測的性能?

RQ3" 編輯序列能否有效提升模型的性能?

RQ4" 與現有工作相比,RefCode性能如何?

RQ5" 與其他機器學習模型相比,RefCode模型的性能如何?

RQ6" 與其他深度學習模型相比,RefCode模型的性能如何?

2.3" 評估指標

實驗使用精確度、召回率和F1分數作為評估每種重構類型的指標。為了評估方法的整體性能,采用了宏平均和加權平均2種測量方法。

精確度、召回率和F1分數是評價分類性能的關鍵指標,見式(1)—(3)。

Precision=TPTP+FP" ,(1)

Recall=TPTP+FN" ,(2)

F1=2×Precision×RecallPrecision+Recall" 。(3)

宏平均是所有類別的精確度、召回率和F1分數的算術平均值,見式(4)—(6)。

Precisionm=1n∑ni=1Precisioni ,(4)

Recallm=1n∑ni=1Recalli ,(5)

F1m=1n∑ni=1F1i ,(6)

式中:n表示所有類的類別數量;Precisioni是第i個類的精確度;Recalli是第i個類的召回率;F1i是第i個類的F1分數。

另一方面,加權平均是每個類別的精確度、召回率和F1分數的加權平均值,其中的權重是基于數據集中每個類別的支持度而定,見式(7)—式(9)。

Precisionw=∑ni=1Supporti×Precisioni

∑ni=1Supporti" ,(7)

Recallw=∑ni=1Supporti×Recalli∑ni=1Supporti" ,(8)

F1w=∑ni=1Supporti×F1i∑ni=1Supporti" ,(9)

式中Supporti是第i個類在數據集中的樣本數量。

2.4" 實驗結果與分析

2.4.1" RQ1的結果

為了回答RQ1,將RefCode分別在Java測試集、Python測試集和混合測試集上進行評估。 圖4展示了RefCode在3個測試集上的實驗結果。圖中將實際標簽和預測標簽組合在一起,結果是一個5×5的混淆矩陣。矩陣的行代表真實類別,而列代表模型的預測結果。圖中對角線上的數字表示模型預測正確的數量,而其他位置的數字表示模型預測錯誤的數量。顏色的深淺表示數量的多少,數量越多,顏色就越深。

圖4 a)展示了模型在Java測試集上的實驗結果。圖中5種重構類型分類正確的數量都集中在混淆矩陣的對角線上,且顏色較深,表明RefCode能夠準確檢測Java項目中的5種重構類型。圖4 b)展示了模型在Python測試集上的實驗結果。圖中5種重構類型分類正確的數量也集中在對角線上,雖然Python測試集的數據不平衡,特別是Change Return Type重構類型的樣本數量相對較少,但RefCode預測錯誤的樣本數量只有2個,表明RefCode在不平衡的Python測試集中仍然能夠準確檢測5種重構類型。圖4 c)展示了模型在混合測試集上的測試結果。圖中5種重構類型分類正確的數量也都集中在對角線上,且顏色較深,其中Rename Parameter重構類型被預測錯誤的數量相對較多,但該類的樣本數量偏多,所以準確率依然達到了90%以上。實驗結果表明,RefCode能夠準確檢測2種編程語言項目中的5種重構類型。

2.4.2" RQ2的結果

為了回答RQ2,本文在混合測試集上評估添加代碼變更信息前后的表現差異。為確保實驗結果的公正性,展示性能提升確實源于代碼變更信息的加入而非由于使用了更高級的模型,本文對代碼變更信息采用了與處理提交信息相同的LSTM模型進行實驗。

實驗結果見表2。由表可知,在僅依賴提交信息進行重構檢測的條件下,可以觀察到宏平均的精確度、召回率和F1分數分別為46%、42%和43%,而加權平均的這3個指標分別為46%、45%和45%。這一結果揭示了在未引入代碼變更信息時,重構檢測的性能相對較低,尤其是在加權平均的F1分數上,性能明顯不足。然而,將代碼變更信息納入考量后,重構檢測的性能得到了顯著提升。具體來說,宏平均的精確度、召回率和F1分數分別提升到了69%、67%和68%,而加權平均的這3個指標分別提升到了71%、70%和70%。這表明代碼變更信息對于提高重構檢測的準確性具有關鍵性的作用。

實驗結果表明,引入代碼變更信息能夠有效地提高重構檢測的性能。這種性能的提高很可能源自于代碼變更信息對上下文和細節的豐富補充,這為模型識別和定位與重構相關的特征提供了更多的信息支持。

2.4.3" RQ3的結果

為了回答RQ3,構建了包含編輯序列和不包含編輯序列的2個數據集。

圖5為RefCode模型在2種數據集上的對比。相較于不包含編輯序列的數據集,RefCode 在使用包含編輯序列的數據集之后,宏精確度、宏召回率和宏F1分數分別提升了8個百分點、10個百分點和9個百分點,而且加權精確度、加權召回率和加權F1分數均提升了7個百分點。

從實驗結果可以看出,采用編輯序列之后,模型的性能有了明顯的提高,說明編輯序列能夠有效地構建代碼變更的分布式表示,幫助模型學習到更好的代碼特征,從而提高模型的精度。

2.4.4" RQ4的結果

為了回答RQ4,將RefCode模型與SAGAR等[22]提出的重構檢測方法進行比較,后者使用提交信息作為輸入并采用了LSTM模型。表3顯示了2種方法在混合測試集上檢測5種重構類型的性能比較。總體來說,RefCode的精確度和召回率均分別為97.25%和97.57%,而SAGAR等的方法的精確度為46.44%,召回率為44.87%。性能在不同的重構類型間也有所變化,例如,RefCode檢測Remove Parameter的精確度為93.61%,是所有重構類型中最低的,而檢測Rename Parameter的召回率相對較低,僅為93.97%。相比之下,SAGAR等的方法在檢測Rename Parameter時精確度最低(40.17%),在檢測Remove Parameter時召回率最低(34.12%)。

從實驗結果來看,RefCode在5種重構類型的平均精度和召回率上均提高了約50個百分點。這可能是因為SAGAR等僅使用提交信息作為輸入,提取的特征不足或不可靠,而添加代碼變更信息能夠提取到更有價值和可靠的特征,顯著提高了預測的精度。

2.4.5" RQ5的結果

為了回答 RQ5,將RefCode模型與6種機器學習模型(支持向量機(SVM)[34]、隨機森林(RF)[35]、樸素貝葉斯(NB)[36]、決策樹(DT)[37]、邏輯回歸(LR)[38]和極端梯度提升樹(XGBoost)[39])進行比較,所有的模型都使用混合數據集進行訓練和測試。表4展示了與機器學習模型對比的結果。所有的機器學習模型中 XGBoost 的各方面的表現都是最好的,但是RefCode的準確率比 XGBoost 高17個百分點,在宏精確度、宏召回率、宏F1分數、加權精確度、加權召回率和加權F1分數上,RefCode比XGBoost 提高了17~20個百分點,原因可能是RefCode使用了CodeBERT預訓練模型,CodeBERT利用大規模預訓練和Transformer等高效的神經網絡框架,使其能夠有效地捕捉代碼中的語義和結構信息,而且CodeBERT使用的預訓練數據集包含多種編程語言。樸素貝葉斯除了宏精確率之外,準確率和其他指標都是最低的;RefCode比NB的準確率高44個百分點,宏精確率、宏召回率和宏F1分數分別比NB高26、54和52個百分點,加權精確率、加權召回率和加權F1分數分別比NB高32、44和48個百分點。NB的整體性能明顯低于其他模型,可能原因是NB分類器的性能受到特征獨立性假設、不平衡數據、難以捕捉代碼上下文信息等因素的影響。實驗結果表明,在處理代碼數據和文本數據時,RefCode 檢測重構類型的性能明顯優于SVM、LR等機器學習方法。

2.4.6" RQ6的結果

為了回答RQ6,將RefCode與幾個深度學習模型進行比較,包括TextCNN[40]、TextRNN[41]、BERT預訓練模型[42]、UniXcoder[43]和CodeT5+[44]。由于輸入數據是多源文本數據,TextCNN和TextRNN都使用了多通道技術。所有模型都使用Java和Python的混合數據集進行訓練和測試。

評估的結果如表5所示。傳統的文本分類模型TextCNN和TextRNN在跨語言重構檢測任務上展現了相似的性能,它們的宏平均和加權平均均達到了90%的水平。盡管這2個模型表現出了良好的性能,但它們沒有專門針對代碼數據進行優化。BERT模型作為一種廣泛應用的預訓練語言表示模型,在這一任務中的性能相對較低,宏平均和加權平均的精確度、召回率和F1分數均在76%~78%之間。這可能是因為BERT模型雖然在自然語言處理方面表現出色,但未針對代碼結構和語義進行特別優化。相比之下,專門為處理代碼信息設計的UniXcoder和CodeT5+模型在所有指標上都顯示出了更高的性能。特別是CodeT5+模型,在宏平均和加權平均的精確度、召回率和F1分數上均超過了94%,這證明了這些專為代碼設計的模型能夠更好地理解和處理編程語言的特點。本文提出的RefCode模型在所有評估指標上均達到了97%,明顯優于其他模型,這歸功于該方法采用的CodeBERT模型結合了代碼的結構和語義特征,并且利用了針對代碼數據優化的tokenizer。這一結果不僅證實了RefCode模型在處理代碼數據方面的高效性,也展現了其在跨語言重構檢測任務上的潛力。

3" 結" 語

本文提出了一種基于編輯序列的跨語言重構檢測方法,該方法添加了代碼變更信息和代碼編輯序列,并將CodeBERT預訓練模型與BiLSTM-attention模型相結合,彌補了提交信息不可靠的缺陷,實現了跨語言重構檢測,在2種編程語言的重構檢測結果中都表現出較高的精確度和召回率。

本研究的數據集僅涵蓋2種編程語言和5種重構操作類型,對其他編程語言和重構類型檢測的精確度和召回率尚不明確。未來擬拓展至更廣泛的編程語言和重構類型,并持續優化模型和方法,以提高檢測性能。

參考文獻/References:

[1]" ALMOGAHED

A,OMAR M,ZAKARIA N H.Recent studies on the effects of refactoring in software quality:challenges and open issues[C]//2022 2nd International Conference on Emerging Smart Technologies and Applications (eSmarTA).Ibb:IEEE,2022:1-7.

[2]" ALZAHRANI M.Extract class refactoring based on cohesion and coupling:A greedy approach[J].Computers,2022. DOI:10.3390/COMPUTERS11080123.

[3]" TAN L.Improving the Accuracy of Refactoring Detection[D].Marburg:Phillips University of Marlborough,2023.

[4]" SILVA D,SILVA J,SANTOS G,et al.RefDiff 2.0:A multi-language refactoring detection tool[J].IEEE Transactions on Software Engineering,2021,47(12):2786-2802.

[5]" TSANTALIS N,KETKAR A,DIG D.Refactoring Miner 2.0[J].IEEE Transactions on Software Engineering,2022,48(3):930-950.

[6]" 艾祿.基于深度學習的代碼克隆檢測技術的研究與實現[D].北京:北京郵電大學,2021.

AI Lu.Research and Implementation of Code Clone Detection Technology Based on Deep Learning[D].Beijing:Beijing University of Posts and Telecommunications,2021.

[7]" 王文杰,徐云.基于Token語義構建的代碼克隆檢測[J].計算機系統應用,2022,31(11):60-67.

WANG Wenjie,XU Yun.Code clone detection based on Token semantics[J].Computer Systems amp; Applications,2022,31(11):60-67.

[8]" 沈元,嚴寒冰,夏春和,等.一種基于深度學習的惡意代碼克隆檢測技術[J].北京航空航天大學學報,2022,48(2):282-290.

SHEN Yuan,YAN Hanbing,XIA Chunhe,et al.Malicious code clone detection technology based on deep learning[J].Journal of Beijing University of Aeronautics and Astronautics,2022,48(2):282-290.

[9]" 劉復星,魏金津,任女爾.基于深度學習的代碼克隆檢測技術研究[J].電腦知識與技術,2018,14(18):178-179.

[10]賁可榮,楊佳輝,張獻,等.基于Transformer和卷積神經網絡的代碼克隆檢測[J].鄭州大學學報(工學版),2023,44(6):12-18.

BEN Kerong,YANG Jiahui,ZHANG Xian,et al.Code clone detection based on Transformer and convolutional neural network[J].Journal of Zhengzhou University(Engineering Science),2023,44(6):12-18.

[11]張楊,東春浩,劉輝,等.基于預訓練模型和多層次信息的代碼壞味檢測方法[J].軟件學報,2022,33(5):1551-1568.

ZHANG Yang,DONG Chunhao,LIU Hui,et al.Code smell detection approach based on pre-training model and multi-level information[J].Journal of Software,2022,33(5):1551-1568.

[12]卜依凡,劉輝,李光杰.一種基于深度學習的上帝類檢測方法[J].軟件學報,2019,30(5):1359-1374.

BU Yifan,LIU Hui,LI Guangjie.God class detection approach based on deep learning[J].Journal of Software,2019,30(5):1359-1374.

[13]王曙燕,張一權,孫家澤.基于BP神經網絡的代碼壞味檢測[J].計算機工程,2020,46(10):216-222.

WANG Shuyan,ZHANG Yiquan,SUN Jiaze.Detection of bad smell in code based on BP neural network[J].Computer Engineering,2020,46(10):216-222.

[14]蘇珊,張楊,張冬雯.基于深度學習的耦合度相關代碼壞味檢測方法[J].計算機應用,2022,42(6):1702-1707.

SU Shan,ZHANG Yang,ZHANG Dongwen.Coupling related code smell detection method based on deep learning[J].Journal of Computer Applications,2022,42(6):1702-1707.

[15]張玉臣,李亮輝,馬辰陽,等.一種融合變量的日志異常檢測方法[J].信息網絡安全,2023,23(10):16-20.

ZHANG Yuchen,LI Lianghui,MA Chenyang,et al.A log anomaly detection method with variables[J].Netinfo Security,2023,23(10):16-20.

[16]尹春勇,張楊春.基于CNN和Bi-LSTM的無監督日志異常檢測模型[J].計算機應用,2023,43(11):3510-3516.

YIN Chunyong,ZHANG Yangchun.Unsupervised log anomaly detection model based on CNN and Bi-LSTM[J].Journal of Computer Applications,2023,43(11):3510-3516.

[17]顧兆軍,潘蘭蘭,劉春波,等.基于Venn-Abers預測器的系統日志異常檢測方法[J].計算機應用與軟件,2023,40(10):307-313.

GU Zhaojun,PAN Lanlan,LIU Chunbo,et al.An anomaly detection method for system logs based on Venn-Abers predictors[J].Computer Applications and Software,2023,40(10):307-313.

[18]陳麗瓊,王璨,宋士龍.一種即時軟件缺陷預測模型及其可解釋性研究[J].小型微型計算機系統,2022,43(4):865-871.

CHEN Liqiong,WANG Can,SONG Shilong.Just-in-time software defect prediction model and its interpretability research[J].Journal of Chinese Computer Systems,2022,43(4):865-871.

[19]蔡亮,范元瑞,鄢萌,等.即時軟件缺陷預測研究進展[J].軟件學報,2019,30(5):1288-1307.

CAI Liang,FAN Yuanrui,YAN Meng,et al.Just-in-time software defect prediction:Literature review[J].Journal of Software,2019,30(5):1288-1307.

[20]KRASNIQI R,CLELAND-HUANG J.Enhancing source code refactoring detection with explanations from commit messages[C]//2020 IEEE 27th International Conference on Software Analysis,Evolution and Reengineering(SANER).London:IEEE,2020:512-516.

[21]TAN Liang,BOCKISCH C.Diff feature matching network in refactoring detection[C]//2022 29th Asia-Pacific Software Engineering Conference(APSEC).[S.l.]:IEEE,2022:199-208.

[22]SAGAR P S,ALOMAR E A,MKAOUER M W,et al.Comparing commit messages and source code metrics for the prediction refactoring activities[J].Algorithms,2021. DOI:10.3390/A14100289.

[23]MARMOLEJOS L,ALOMAR E A,MKAOUER M W,et al.On the use of textual feature extraction techniques to support the automated detection of refactoring documentation[J].Innovations in Systems and Software Engineering,2021,18:233-249.

[24]MURPHY H E,PARNIN C,BLACK A P.How we refactor,and how we know it[J].IEEE Transactions on Software Engineering,2012,38(1):5-18.

[25]FENG Zhangyin,GUO Daya,TANG Duyu,et al.CodeBERT:A pre-trained model for programming and natural languages[C/OL]//In Findings of the Association for Computational Linguistics:EMNLP 2020.[S.l.]:ACL,2020:1536-1547.

[26]YU Dongjin,WANG Lin,CHEN Xin,et al.Using BiLSTM with attention mechanism to automatically detect self-admitted technical debt[J].Frontiers of Computer Science,2021. DOI:10.1007/S11704-020-9281-Z.

[27]ANICHE M,MAZIERO E,DURELLI R,et al.The effectiveness of supervised machine learning algorithms in predicting software refactoring[J].IEEE Transactions on Software Engineering,2022,48(4):1432-1450.

[28]DILHARA M.Discovering repetitive code changes in ML systems[C]//Proceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering.Athens:ACM,2021:1683-1685.

[29]SPADINI D,ANICHE M,BACCHELLI A.PyDriller:Python framework for mining software repositories[C]//proceedings of the Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering.Lake Buena Vista:ACM,2018:908-911.

[30]ATWI H,LIN B,TSANTALIS N,et al.PYREF:Refactoring detection in python projects[C]//2021 IEEE 21st International Working Conference on Source Code Analysis and Manipulation (SCAM).Luxembourg:IEEE,2021:136-141.

[31]YIN P,NEUBIG G,ALLAMANIS M,et al.Learning to represent edits[DB/OL].(2019-02-22)[2023-12-01].https://arxiv.org/abs/1810.13337.

[32]PRAVILOV M,BOGOMOLOV E,GOLUBEV Y,et al.Unsupervised learning of general-purpose embeddings for code changes[C]//Proceedings of the Proceedings of the 5th International Workshop on Machine Learning Techniques for Software Quality Evolution.Athens:Association for Computing Machinery,2021:7-12.

[33]BEHARA K N S,BHASKAR A,CHUNG E.A novel approach for the structural comparison of origin-destination matrices:Levenshtein distance[J].Transportation Research Part C:Emerging Technologies,2020,111:513-530.

[34]PISNER D A,SCHNYER D M. Machine Learning:Methods and Applications to Brain Disorders[M].London:Elsevier,2020:101-121.

[35]SCHONLAU M,ZOU R Y.The random forest algorithm for statistical learning[J].The Stata Journal,2020,20(1):3-29.

[36]CHEN Shenglei,WEBB G I,LIU Linyuan,et al.A novel selective nave Bayes algorithm[J].Knowledge-Based Systems,2020. DOI:10.1016/j.knosys.2019.105361.

[37]CHARBUTY B,ABDULAZEEZ A.Classification based on decision tree algorithm for machine learning[J].Journal of Applied Science and Technology Trends,2021,2(1):20-28.

[38]ZOU Xiaonan,HU Yong,TIAN Zhewen,et al.Logistic regression model optimization and case analysis[C]//2019 IEEE 7th International Conference on Computer Science and Network Technology (ICCSNT).Dalian:IEEE,2019:135-139.

[39]WANG Chen,DENG Chengyuan,WANG Suzhen.Imbalance-XGBoost:Leveraging weighted and focal losses for binary label-imbalanced classification with XGBoost[J].Pattern Recognition Letters,2020,136:190-197.

[40]ALSHUBAILY I.Textcnn with attention for text classification[DB/OL].(2021-08-04)[2023-12-01].https://arxiv.org/abs/2108.01921.

[41]GUO Zixian,ZHU Ligu,HAN Lu.Research on short text classification based on RoBERTa-TextRCNN[C]//2021 International Conference on Computer Information Science and Artificial Intelligence (CISAI).Kunming:IEEE,2021:845-849.

[42]DEVLIN J,CHANG Mingwei,LEE K.Bert:Pre-training of deep bidirectional transformers for language understanding[C]//Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics:Human Language Technologies.Minneapolis:ACL,2019:4171-4186.

[43]GUO Daya,LU Shuai,DUAN Nan,et al.Unixcoder:Unified cross-modal pre-training for code representation[C]//Proceedings of the 60th Annual Meeting of the Association for Computational Linguistics.Dublin:ACL,2022:7212-7225.

[44]WANG Yue,LE Hong,AKHILESH G,et al.Codet5+:Open code large language models for code understanding and generation[C]//Proceedings of the 2023 Conference on Empirical Methods in Natural Language Processing.Singapore:ACL,2023:1069-1088.

猜你喜歡
精確度檢測信息
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
“硬核”定位系統入駐兗礦集團,精確度以厘米計算
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
小波變換在PCB缺陷檢測中的應用
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
易錯題突破:提高語言精確度
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
健康信息(九則)
祝您健康(1987年2期)1987-12-30 09:52:28
主站蜘蛛池模板: 久久中文电影| 亚洲精品成人片在线播放| 国产小视频免费| 精品视频一区二区三区在线播| 亚洲人成网站色7799在线播放 | 亚洲精品无码高潮喷水A| 91亚洲精品国产自在现线| 久操线在视频在线观看| 亚洲成年人网| 精品久久高清| 国产在线精品美女观看| 天天综合网色| 国产精品成人一区二区不卡| 免费99精品国产自在现线| 久久天天躁夜夜躁狠狠| 亚洲成在人线av品善网好看| 国产欧美日韩一区二区视频在线| 新SSS无码手机在线观看| 亚洲 日韩 激情 无码 中出| 欧美高清视频一区二区三区| 久热中文字幕在线| 无码中文字幕乱码免费2| 热99re99首页精品亚洲五月天| 国产精品三级av及在线观看| 欧美成人h精品网站| 蝴蝶伊人久久中文娱乐网| 亚洲成aⅴ人片在线影院八| 亚洲丝袜中文字幕| 亚洲V日韩V无码一区二区| 国内精品视频区在线2021| 亚洲人成影视在线观看| 国产精品专区第1页| 婷婷亚洲最大| 9丨情侣偷在线精品国产| 欧美性久久久久| 噜噜噜综合亚洲| 亚洲国产黄色| 欧美a在线看| 久久久久亚洲精品成人网 | 国产成人精品男人的天堂下载| 亚洲一区毛片| 日本www色视频| 92精品国产自产在线观看 | 国内精品免费| 亚洲国产成人超福利久久精品| 久久性视频| 欧美日韩第二页| 9啪在线视频| 亚洲国产清纯| 人妻出轨无码中文一区二区| 98精品全国免费观看视频| 999国内精品久久免费视频| 久久精品人人做人人综合试看| 美女国内精品自产拍在线播放 | 亚洲性日韩精品一区二区| 毛片手机在线看| 日韩免费中文字幕| 免费看美女毛片| 国产精品三级av及在线观看| 亚洲黄网视频| 国产69囗曝护士吞精在线视频| 国产视频欧美| 国产伦精品一区二区三区视频优播 | 日韩无码视频播放| av无码一区二区三区在线| 91久久国产热精品免费| 国产一级毛片网站| 91区国产福利在线观看午夜| 国产亚卅精品无码| A级全黄试看30分钟小视频| 色悠久久综合| 91系列在线观看| 国产欧美成人不卡视频| 91精品啪在线观看国产| 欧美不卡视频在线| 亚洲国产成人超福利久久精品| 91福利免费视频| 在线精品自拍| 国产毛片不卡| 日韩第九页| 亚洲综合极品香蕉久久网| 亚洲欧美国产高清va在线播放|