王其春 趙龍
摘要:Java錯誤堆棧自動分類的過程中需要比較錯誤堆棧之間的相似度,該文根據java錯誤堆棧的特點,提出了一種適用于java錯誤堆棧相似度比較的方法,在這個過程中對漢明距離進行了改進,最后我們對此算法進行了詳細的實驗,實驗結果表明這種方法具有很明顯的效果。
關鍵詞:相似度; java堆棧分類;聚類
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2014)21-5031-03
1 背景簡介
在服務器端運行的java程序會產生java錯誤報告,在這些錯誤報告中包含了大量的java錯誤堆棧。程序的維護人員會根據這些java錯誤堆棧對程序進行修改。為了提高解決問題的效率,人們希望能夠自動地對錯誤堆棧進行分類,根據錯誤堆棧的類別,采取相應的方法解決問題。在這個過程中,會比較錯誤堆棧之間的相似度。
Java的錯誤堆棧是由一系列的字符串組成,因此在比較Java錯誤堆棧之間相似度的時候,往往會用到字符串相似度比較算法。現在字符串相似度方法有很多,比如最長公共子串算法(Longest Common Subsequence 縮寫為LCS)[1],它是根據兩個字符串之間最長的公共子串的長度來計算字符串之間的相似度,此算法的算法復雜度為,其中m,n,是兩個字符串之間的長度。Leveinshtein Distance 也被稱作編輯距離[2],它是根據由一個字符串變成另外一個字符串所需要的操作數來衡量字符串之間的相似度,這些操作包括插入、刪除、更改字符。該算法的算法復雜度也是,其中m,n,是兩個字符串之間的長度。漢明距離(Hamming Distance )[3]也是一種計算字符串相似度的算法。……