一種路徑相似度分析方法以及系統(tǒng)的制作方法
【專利摘要】本發(fā)明實施例公開了一種路徑相似度分析方法以及系統(tǒng)。本發(fā)明實施例方法包括:分別獲取基準數(shù)據(jù)的第一樹形數(shù)據(jù)和問題數(shù)據(jù)的第二樹形數(shù)據(jù),并獲取各節(jié)點的深度值,分別根據(jù)所述第一樹形數(shù)據(jù)和所述第二樹形數(shù)據(jù)的各節(jié)點的深度值確定第一集合和第二集合;根據(jù)所述深度值計算所述基準數(shù)據(jù)和所述問題數(shù)據(jù)的相似度權值。通過本實施例能夠將以基準數(shù)據(jù)的第一樹形數(shù)據(jù)和問題數(shù)據(jù)的第二樹形數(shù)據(jù)的各節(jié)點通過集合的方式進行表示,并根據(jù)各深度值計算所述基準數(shù)據(jù)和所述問題數(shù)據(jù)的相似度權值,進而得到的所述基準數(shù)據(jù)和所述問題數(shù)據(jù)之間的對應關系,進而利用性能問題智能分析模塊可以自動化性能定位工作,極大提高性能問題分析的時間,減少對人力的依賴。
【專利說明】一種路徑相似度分析方法以及系統(tǒng)
【技術領域】
[0001]本發(fā)明涉及信息處理領域,尤其涉及的是一種路徑相似度分析方法以及系統(tǒng)。
【背景技術】
[0002]存儲業(yè)務中,由于數(shù)據(jù)所經(jīng)過的模塊或函數(shù)不同,因此存在多種不同的1/0路徑。典型的如在(^(^6命中的情況下,數(shù)據(jù)直接從(^(^6模塊返回$£1(3116不命中數(shù)據(jù)會繼續(xù)流向下層模塊,這是兩類不同的1/0路徑。由于系統(tǒng)開發(fā)的連續(xù)性,存儲系統(tǒng)不同版本之間的不同10路徑往往存在一定對應關系,如在同樣的工作場景下,基線版本和后續(xù)版本(也稱問題版本)的10路徑可能由于添加某一函數(shù)而導致不同,經(jīng)驗上認為這兩類10路徑之間存在對應關系,基線10路徑突變?yōu)閱栴}10路徑,也稱為結構突變。
[0003]固定的業(yè)務場景(如存儲系統(tǒng))下,請求的處理路徑(如讀寫10的路徑)是固定的,性能變化能夠追溯到請求處理路徑的變化(如讀10 080116命中率下降導致10路徑變長,性能相應下降通過分析請求路徑的變化是分析性能變化的有效手段。路徑變化主要有兩種,1,時延突變:基準10路徑同問題10路徑結構相同,但是對應模塊間的時延有明顯差別;2,結構突變:基準10路徑同問題10路徑結構不同;對于2,在基準數(shù)據(jù)和問題數(shù)據(jù)中,需要在多對多的可能突變數(shù)據(jù)中計算最大可能對應關系。對于對應關系的尋找,目前沒有普遍認可的方法存在。
[0004]目前業(yè)界廣泛使用的10路徑跟蹤工具有&30816也卯61~,乂-了以⑶等。03卯61'是一種分布式跟蹤系統(tǒng),可以跟蹤服務器集群之間的請求調(diào)用路徑。以03卯為例,簡要說明該類跟蹤工具原理:
[0005]021卯可以跟蹤用戶的請求所經(jīng)過的路徑上各個節(jié)點的信息,如時間戳。021卯利用應用程序或中間件給每條請求記錄一個全局標志,借此將路徑串接為一條完整回路。03卯61~每條跟蹤記錄服務的開始時間和結束時間,每個模塊的10和父10,沒有父10的模塊為1*00丨模塊,所有跟蹤公用一個跟蹤10,通過跟蹤10將這些記錄串接為一條10請求路徑。乂-1!'狀6作為互聯(lián)網(wǎng)主機跟蹤工具,其原理同也卯61'類似。統(tǒng)一存儲系統(tǒng)中也有采用同樣原理的跟蹤工具。
[0006]這些跟蹤工具都是跟蹤某一時間點或時間段的10路徑,如基線版本的穩(wěn)定10路徑,問題版本的問題10路徑。對于不同時間段的10路徑的突變關系問題無法解決,而且由于10路徑不同層級之間的不同對系統(tǒng)的影響是不同的,上層10的不同反映版本之間的較大差異,而下層的10不同可能只是版本之間的微小差異造成,現(xiàn)有技術忽略該類差異,對10的不同進行統(tǒng)一計算,相似度識別可靠性不高,容易造成結構突變對應關系誤判,導致分析結果誤差較大。
【發(fā)明內(nèi)容】
[0007]本發(fā)明實施例提供了一種路徑相似度分析方法以及系統(tǒng)。
[0008]本發(fā)明實施例第一方面提供了一種路徑相似度分析方法,包括:
[0009]分別獲取基準數(shù)據(jù)的第一樹形數(shù)據(jù)和問題數(shù)據(jù)的第二樹形數(shù)據(jù);
[0010]根據(jù)相同的遍歷規(guī)則以及各節(jié)點之間的隸屬關系對所述第一樹形數(shù)據(jù)和所述第二樹形數(shù)據(jù)的各節(jié)點進行遍歷以獲取各節(jié)點的深度值,各節(jié)點的所述深度值用于表示各節(jié)點在所述第一樹形數(shù)據(jù)或第二樹形數(shù)據(jù)中所位于的層次;
[0011]分別根據(jù)所述第一樹形數(shù)據(jù)和所述第二樹形數(shù)據(jù)的各節(jié)點的深度值確定第一集合和第二集合,其中,所述第一集合包括多個分別與所述深度值對應的第一子集,且各所述第一子集內(nèi)的所述第一樹形數(shù)據(jù)的節(jié)點的深度值相同,所述第二集合包括多個分別與所述深度值對應的第二子集,且各所述第二子集內(nèi)的所述第二樹形數(shù)據(jù)的節(jié)點的深度值相同;
[0012]根據(jù)與各所述第一子集和與各所述第二子集對應的深度值計算所述基準數(shù)據(jù)和所述問題數(shù)據(jù)的相似度權值。
[0013]結合本發(fā)明實施例的第一方面,本發(fā)明實施例的第一方面的第一種實現(xiàn)方式中,
[0014]所述根據(jù)與各所述第一子集和與各所述第二子集對應的深度值計算所述基準數(shù)據(jù)和所述問題數(shù)據(jù)的相似度權值之前,所述方法還包括:
[0015]確定與所述第一子集對應的各深度值的最大值以及確定與所述第二子集對應的各深度值的最大值;
[0016]確定與所述第一子集對應的各深度值的最大值和與所述第二子集對應的各深度值的最大值中的較小值為第一基準深度值;
[0017]確定與所述第一子集對應的各深度值的最大值和與所述第二子集對應的各深度值的最大值中的較大值為第二基準深度值;
[0018]確定初始化相似度權值I等于0 ;
[0019]確定目標節(jié)點個數(shù)為6其中,所述0等于各所述第一子集和各所述第二子集內(nèi)的節(jié)點數(shù)的最大值。
[0020]結合本發(fā)明實施例的第一方面的第一種實現(xiàn)方式,本發(fā)明實施例的第一方面的第二種實現(xiàn)方式中,
[0021]所述根據(jù)與各所述第一子集和與各所述第二子集對應的深度值計算所述基準數(shù)據(jù)和所述問題數(shù)據(jù)的相似度權值包括:
[0022]根據(jù)與各所述第一子集和與各所述第二子集對應的深度值由低到高的順序依次確定當前深度值是否小于或等于所述第一基準深度值;
[0023]若是,則根據(jù)字符串編輯距離算法確定與所述當前深度值對應的第一子集和所述第二子集之間的320值;
[0024]若所述320值等于0,則確定所述相似度權值評=1+,(?拉。,其中,3的取值范圍為大于0且小于1,13為所述當前深度值,且6大于或等于1且小于或等于所述第一基準深度值;
[0025]若所述320值不等于0,則確定所述相似度權值V = 1+8~
[0026]結合本發(fā)明實施例的第一方面的第三種實現(xiàn)方式,本發(fā)明實施例的第一方面的第三種實現(xiàn)方式中,
[0027]所述根據(jù)與各所述第一子集和與各所述第二子集對應的深度值計算所述基準數(shù)據(jù)和所述問題數(shù)據(jù)的相似度權值還包括:
[0028]若根據(jù)所述深度值由低到高的順序依次確定當前深度值大于所述第一基準深度值時,則確定所述當前深度值是否小于或等于所述第二基準深度值;
[0029]若是,則確定所述相似度權值評=1- 1其中,13大于所述第一基準深度值且小于或等于所述第二基準深度值。
[0030]本發(fā)明實施例第二方面提供了一種系統(tǒng),包括:
[0031]第一獲取單元,用于分別獲取基準數(shù)據(jù)的第一樹形數(shù)據(jù)和問題數(shù)據(jù)的第二樹形數(shù)據(jù);
[0032]第二獲取單元,用于根據(jù)相同的遍歷規(guī)則以及各節(jié)點之間的隸屬關系對所述第一樹形數(shù)據(jù)和所述第二樹形數(shù)據(jù)的各節(jié)點進行遍歷以獲取各節(jié)點的深度值,各節(jié)點的所述深度值用于表示各節(jié)點在所述第一樹形數(shù)據(jù)或第二樹形數(shù)據(jù)中所位于的層次;
[0033]第一確定單元,用于分別根據(jù)所述第一樹形數(shù)據(jù)和所述第二樹形數(shù)據(jù)的各節(jié)點的深度值確定第一集合和第二集合,其中,所述第一集合包括多個分別與所述深度值對應的第一子集,且各所述第一子集內(nèi)的所述第一樹形數(shù)據(jù)的節(jié)點的深度值相同,所述第二集合包括多個分別與所述深度值對應的第二子集,且各所述第二子集內(nèi)的所述第二樹形數(shù)據(jù)的節(jié)點的深度值相同;
[0034]計算單元,用于根據(jù)與各所述第一子集和與各所述第二子集對應的深度值計算所述基準數(shù)據(jù)和所述問題數(shù)據(jù)的相似度權值。
[0035]結合本發(fā)明實施例第二方面,本發(fā)明實施例第二方面的第一種實現(xiàn)方式中,
[0036]所述系統(tǒng)還包括:
[0037]第二確定單元,用于確定與所述第一子集對應的各深度值的最大值以及確定與所述第二子集對應的各深度值的最大值;
[0038]第三確定單元,用于確定與所述第一子集對應的各深度值的最大值和與所述第二子集對應的各深度值的最大值中的較小值為第一基準深度值;
[0039]第四確定單元,用于確定與所述第一子集對應的各深度值的最大值和與所述第二子集對應的各深度值的最大值中的較大值為第二基準深度值;
[0040]第五確定單元,用于確定初始化相似度權值I等于0 ;
[0041]第六確定單元,用于確定目標節(jié)點個數(shù)為6其中,所述0等于各所述第一子集和各所述第二子集內(nèi)的節(jié)點數(shù)的最大值。
[0042]結合本發(fā)明實施例第二方面的第一種實現(xiàn)方式,本發(fā)明實施例第二方面的第二種實現(xiàn)方式中,
[0043]所述計算單元包括:
[0044]第一確定模塊,用于根據(jù)與各所述第一子集和與各所述第二子集對應的深度值由低到高的順序依次確定當前深度值是否小于或等于所述第一基準深度值;
[0045]第一計算模塊,用于若當前深度值小于或等于所述第一基準深度值,則根據(jù)字符串編輯距離算法確定與所述當前深度值對應的第一子集和所述第二子集之間的320值;
[0046]第二計算模塊,用于若所述細)值等于0,則確定所述相似度權值評=
其中的取值范圍為大于0且小于為所述當前深度值,且6大于或等于1且小于或等于所述第一基準深度值;
[0047]第三計算模塊,用于若所述320值不等于0,則確定所述相似度權值評=
[0048]結合本發(fā)明實施例第二方面的第二種實現(xiàn)方式,本發(fā)明實施例第二方面的第三種實現(xiàn)方式中,
[0049]所述計算單元還包括:
[0050]第二確定模塊,用于若根據(jù)所述深度值由低到高的順序依次確定當前深度值大于所述第一基準深度值時,則確定所述當前深度值是否小于或等于所述第二基準深度值;
[0051]第三確定模塊,用于若確定所述當前深度值小于或等于所述第二基準深度值,則確定所述相似度權值1 = 1-, ,其中,6大于所述第一基準深度值且小于或等于所述第二基準深度值。
[0052]本發(fā)明實施例公開了一種路徑相似度分析方法以及系統(tǒng)。本發(fā)明實施例方法包括:分別獲取基準數(shù)據(jù)的第一樹形數(shù)據(jù)和問題數(shù)據(jù)的第二樹形數(shù)據(jù),并獲取各節(jié)點的深度值,分別根據(jù)所述第一樹形數(shù)據(jù)和所述第二樹形數(shù)據(jù)的各節(jié)點的深度值確定第一集合和第二集合;根據(jù)所述深度值計算所述基準數(shù)據(jù)和所述問題數(shù)據(jù)的相似度權值。通過本實施例所提供的路徑相似度分析方法,能夠將以基準數(shù)據(jù)的第一樹形數(shù)據(jù)和問題數(shù)據(jù)的第二樹形數(shù)據(jù)的各節(jié)點通過集合的方式進行表示,且各集合包括與用于表示各節(jié)點層次的深度值子集合,并根據(jù)各深度值計算所述基準數(shù)據(jù)和所述問題數(shù)據(jù)的相似度權值,通過本實施例計算所得到的所述基準數(shù)據(jù)和所述問題數(shù)據(jù)的相似度權值能夠確定基準數(shù)據(jù)和問題數(shù)據(jù)之間的對應關系,進而利用性能問題智能分析模塊可以自動化性能定位工作,極大提高性能問題分析的時間,減少對人力的依賴。
【專利附圖】
【附圖說明】
[0053]圖1為本發(fā)明實施例所提供的路徑相似度分析方法的一種較佳實施例步驟流程圖;
[0054]圖2為本發(fā)明實施例所提供的路徑相似度分析方法的另一種較佳實施例步驟流程圖;
[0055]圖3為本發(fā)明實施例所提供的基準數(shù)據(jù)的第一樹形數(shù)據(jù)的一種較佳實施例結構示意圖;
[0056]圖4為本發(fā)明實施例所提供的系統(tǒng)的一種較佳實施例結構示意圖;
[0057]圖5為本發(fā)明實施例所提供的系統(tǒng)的另一種較佳實施例結構示意圖;
[0058]圖6為本發(fā)明實施例所提供的系統(tǒng)的另一種較佳實施例結構示意圖。
【具體實施方式】
[0059]本發(fā)明實施例提供了一種路徑相似度分析方法,用于解決路徑的突變的對應關系問題,從而實現(xiàn)自動化性能的定位工作,極大的提高性能問題分析的時間,減少對人力的依賴。
[0060]以下結合圖1所示對本實施例對提供的路徑相似度分析方法進行詳細說明:
[0061]如圖1所示,所述路徑相似度分析方法包括:
[0062]101、分別獲取基準數(shù)據(jù)的第一樹形數(shù)據(jù)和問題數(shù)據(jù)的第二樹形數(shù)據(jù);
[0063]即對輸入的數(shù)據(jù)進行解析,以分別獲取基準數(shù)據(jù)的第一樹形數(shù)據(jù)以及問題數(shù)據(jù)的第二樹形數(shù)據(jù);
[0064]其中,較佳的輸入的數(shù)據(jù)為10路徑,當然本實施例僅僅以10路徑舉例進行說明,不作限定,例如該輸入的數(shù)據(jù)還可為分布式文件系統(tǒng)中的代叫⑶丨路徑。
[0065]具體的,輸入的10路徑的標準形式可以是樹形結構或者取'叩1^12軟件的己01:文件格式。
[0066]102、根據(jù)相同的遍歷規(guī)則以及各節(jié)點之間的隸屬關系對所述第一樹形數(shù)據(jù)和所述第二樹形數(shù)據(jù)的各節(jié)點進行遍歷以獲取各節(jié)點的深度值;
[0067]其中,各節(jié)點的所述深度值用于表示各節(jié)點在所述第一樹形數(shù)據(jù)或第二樹形數(shù)據(jù)中所位于的層次;
[0068]即通過所述深度值表示各節(jié)點在所述第一樹形數(shù)據(jù)或所述第二樹形數(shù)據(jù)中的層次。
[0069]本實施例對所述遍歷規(guī)則不作限定,只要對所述第一樹形數(shù)據(jù)以及所述第二樹形數(shù)據(jù)根據(jù)相同的遍歷規(guī)則進行遍歷即可,且根據(jù)該遍歷規(guī)則能夠對所述第一樹形數(shù)據(jù)以及所述第二樹形數(shù)據(jù)中的所有節(jié)點進行遍歷以獲取所有節(jié)點的深度值即可。
[0070]103、分別根據(jù)所述第一樹形數(shù)據(jù)和所述第二樹形數(shù)據(jù)的各節(jié)點的深度值確定第一集合和第二集合;
[0071]其中,所述第一集合包括多個分別與所述深度值對應的第一子集,且各所述第一子集內(nèi)的所述第一樹形數(shù)據(jù)的節(jié)點的深度值相同;
[0072]所述第二集合包括多個分別與所述深度值對應的第二子集,且各所述第二子集內(nèi)的所述第二樹形數(shù)據(jù)的節(jié)點的深度值相同;
[0073]即通過本實施例所示的步驟103將以樹形表示的基準數(shù)據(jù)以及問題數(shù)據(jù)的各節(jié)點通過集合的方式進行表示。
[0074]104、根據(jù)與各所述第一子集和與各所述第二子集對應的深度值計算所述基準數(shù)據(jù)和所述問題數(shù)據(jù)的相似度權值。
[0075]通過分別與各節(jié)點對應的深度值計算基準數(shù)據(jù)和問題數(shù)據(jù)的相似度權值,進而應用10路徑突變對應關系算法確定最終的路徑突變關系。
[0076]具體的,即用以計算所述基準數(shù)據(jù)和所述問題數(shù)據(jù)的相似度權值的相似度分析算法基于以集合的方式進行表示的各節(jié)點,對不同的深度值的節(jié)點進行計算,最后輸出兩類10路徑數(shù)據(jù)的相似度權值。
[0077]通過本實施例所提供的路徑相似度分析方法,能夠將以基準數(shù)據(jù)的第一樹形數(shù)據(jù)和問題數(shù)據(jù)的第二樹形數(shù)據(jù)的各節(jié)點通過集合的方式進行表示,且各集合包括與用于表示各節(jié)點層次的深度值子集合,并根據(jù)各深度值計算所述基準數(shù)據(jù)和所述問題數(shù)據(jù)的相似度權值,通過本實施例計算所得到的所述基準數(shù)據(jù)和所述問題數(shù)據(jù)的相似度權值能夠確定基準數(shù)據(jù)和問題數(shù)據(jù)之間的對應關系,進而利用性能問題智能分析模塊可以自動化性能定位工作,極大提高性能問題分析的時間,減少對人力的依賴。
[0078]以下結合圖2所示對能夠實現(xiàn)對位于不同層次的節(jié)點用不同的算法以獲取相似度權值的進行詳細說明:
[0079]201、分別獲取基準數(shù)據(jù)的第一樹形數(shù)據(jù)和問題數(shù)據(jù)的第二樹形數(shù)據(jù);
[0080]具體請見圖1所示的步驟101,在本實施例中不做贅述。
[0081]202、根據(jù)相同的遍歷規(guī)則以及各節(jié)點之間的隸屬關系對所述第一樹形數(shù)據(jù)和所述第二樹形數(shù)據(jù)的各節(jié)點進行遍歷以獲取各節(jié)點的深度值;
[0082]其中,各節(jié)點的所述深度值用于表示各節(jié)點在所述第一樹形數(shù)據(jù)或第二樹形數(shù)據(jù)中所位于的層次;
[0083]本實施例對所述遍歷規(guī)則進行舉例說明,需明確的是,本實施例所示的遍歷規(guī)則僅僅為一種示例,不作限定,只要對所述第一樹形數(shù)據(jù)以及所述第二樹形數(shù)據(jù)根據(jù)相同的遍歷規(guī)則進行遍歷即可,且根據(jù)該遍歷規(guī)則能夠對所述第一樹形數(shù)據(jù)以及所述第二樹形數(shù)據(jù)中的所有節(jié)點進行遍歷以獲取所有節(jié)點的深度值即可。
[0084]以下如圖3所示,圖3為已獲取到的基準數(shù)據(jù)的第一樹形數(shù)據(jù)的示例,需明確的是,圖3所示為樹形數(shù)據(jù)的舉例,不作限定,通過圖3所示僅僅對遍歷規(guī)則進行舉例說明。
[0085]具體對圖3所示的第一樹形數(shù)據(jù)進行遍歷的過程為:
[0086]1)、讀取根節(jié)點,記錄節(jié)點所處深度16^61 = 1 ;
[0087]其中,讀取圖3所示的第一樹形數(shù)據(jù)時,可確定節(jié)點4為根節(jié)點,并將節(jié)點4的深度值記錄為1 ;
[0088]判斷根節(jié)點下是否還有子節(jié)點;
[0089]2)、若包含子節(jié)點,則確定該子節(jié)點為第一目標節(jié)點,并確定該第一目標節(jié)點下子節(jié)點的個數(shù),若第一目標節(jié)點下子節(jié)點的個數(shù)為1,則第一目標節(jié)點與第一目標節(jié)點下子節(jié)點的深度值相等;若第一目標節(jié)點下子節(jié)點的個數(shù)大于1,則第一目標節(jié)點下子節(jié)點的深度值為第一目標節(jié)點深度值加1,若該第一目標節(jié)點同時和所述第一目標節(jié)點的至少一個兄弟節(jié)點同時和所述第一目標節(jié)點下的子節(jié)點連接,則所述第一目標節(jié)點下的子節(jié)點的深度值為所述第一目標節(jié)點的深度值減一;
[0090]3)記錄節(jié)點深度值1價61,遞歸處理子10路徑,直至確定遍歷到第二目標節(jié)點,該第二目標節(jié)點為終止節(jié)點;
[0091]其中,記錄節(jié)點深度值的原則可為:
[0092]由圖3所示,即判斷節(jié)點六下是否還有子節(jié)點,可見,節(jié)點六下有三個子節(jié)點(節(jié)點8、節(jié)點以及節(jié)點0);
[0093]由圖3所示,由深度優(yōu)先原則首先指向節(jié)點八的子節(jié)點8,并記錄子節(jié)點8的深度值 16乂61 = 16^61+1 = 2 ;
[0094]本實施例所示的遍歷規(guī)則可結合深度優(yōu)先以及廣度優(yōu)先的原則,即遍歷圖3所示的第一樹形數(shù)據(jù)的順序首先為由左至右的順序;
[0095]即確定節(jié)點8的深度值為2后,根據(jù)深度優(yōu)先原則,遞歸處理子10路徑,即首先確定節(jié)點8的子節(jié)點的個數(shù)是否大于1,并遍歷節(jié)點8的子節(jié)點2,且記錄子節(jié)點2的深度值16乂61 = 16^61+1 = 3 ;
[0096]確定節(jié)點2的子節(jié)點個數(shù),根據(jù)深度優(yōu)先原則確定節(jié)點2的子節(jié)點X,并記錄節(jié)點仄的深度值16乂61 = 16乂61十1 = 4 ;
[0097]確定節(jié)點1(的子節(jié)點為I因節(jié)點~的父節(jié)點有多個,則節(jié)點~的深度值為節(jié)點X的深度值減一,即記錄及誒單X的深度值16^61 = 16^61-1 = 3 ;
[0098]確定節(jié)點~的子節(jié)點為節(jié)點5,且節(jié)點3為終止節(jié)點,又因節(jié)點3的父節(jié)點有多個,則確定節(jié)點3為第二目標節(jié)點,且記錄子節(jié)點3的深度值16^61 = 3-1 = 2:
[0099]4)、確定第二目標節(jié)點~是否為第一樹形數(shù)據(jù)的全局終點,若否,則將該第二目標節(jié)點的深度值壓入數(shù)據(jù)存儲棧,并保存當前子路徑堆棧數(shù)據(jù),指向該子路徑的根節(jié)點,進行另一條10子路徑遍歷,直至遍歷到最后一條10子路徑;
[0100]其中,具體確定所述第二目標節(jié)點是否為第一樹形數(shù)據(jù)的全局終點的具體方式可為判斷該第二目標節(jié)點下是否還有子節(jié)點;
[0101]圖3所示中,節(jié)點3下還有子節(jié)點0,即可確定節(jié)點3不是第一樹形數(shù)據(jù)的全局終點,而是節(jié)點3所位于的子路徑的終止節(jié)點;
[0102]將節(jié)點3的深度值2壓入數(shù)據(jù)存儲棧,并保存已遍歷的子路徑堆棧數(shù)據(jù),即依次將節(jié)點~的深度值3、節(jié)點1(的深度值4、節(jié)點2的深度值3、節(jié)點8的深度值2以及節(jié)點八的深度值1壓入數(shù)據(jù)存儲棧;
[0103]指向節(jié)點3的所位于的子路徑的根節(jié)點八,根據(jù)廣度優(yōu)先原則,進行另一條子10路徑的遍歷,貝丨」依次經(jīng)由節(jié)點4和節(jié)點8遍歷到節(jié)點?,記錄節(jié)點?的深度值16^61 = 16^61+1=3 ;
[0104]因節(jié)點?的子節(jié)點只有一個,則深度值不變,則節(jié)點?和節(jié)點?處于第一樹形數(shù)據(jù)的同一層次,則節(jié)點?的深度值和節(jié)點?的深度值相等均為3 ;
[0105]節(jié)點?的子節(jié)點為節(jié)點3,且節(jié)點3已遍歷完成,則依次將節(jié)點?的深度值3和節(jié)點?的深度值3壓入數(shù)據(jù)存儲棧中;
[0106]指向節(jié)點?的所位于的子路徑的根節(jié)點八,根據(jù)廣度優(yōu)先原則,進行另一條子10路徑的遍歷,則經(jīng)由節(jié)點4遍歷到節(jié)點4的子節(jié)點0,并記錄節(jié)點0的深度值16^61 = 16^61+1=2 ;
[0107]依據(jù)上述遍歷規(guī)則可確定節(jié)點6與節(jié)點位于同一層次,則節(jié)點0與節(jié)點6的深度值均為2,且節(jié)點為第二目標節(jié)點,且節(jié)點不為全局終點,并依次將節(jié)點和節(jié)點的深度值壓入數(shù)據(jù)存儲棧;
[0108]根據(jù)廣度優(yōu)先原則,進行另一條子10路徑的遍歷,則經(jīng)由節(jié)點八遍歷到節(jié)點八的子節(jié)點0,并記錄節(jié)點0的深度值16^61 = 16^61+1 = 2 ;
[0109]依據(jù)上述遍歷規(guī)則可確定節(jié)點的深度值16^61 = 16^61+1 = 3 ;
[0110]節(jié)點與節(jié)點1位于同一層次,則節(jié)點與節(jié)點1的深度值均為3,且節(jié)點1為第二目標節(jié)點;
[0111]確定該條子路徑的終止節(jié)點為節(jié)點0,因節(jié)點0下還有子節(jié)點0,則確定節(jié)點0不是全局終點,且因節(jié)點0有多個父節(jié)點(節(jié)點1、節(jié)點I以及節(jié)點了)連接,則節(jié)點0的深度值16^61 = 16^61-1 = 2,即若子節(jié)點上有多個父節(jié)點,則子節(jié)點的深度值是父節(jié)點深度值減一;
[0112]則記錄節(jié)點0的深度值2,并依次將節(jié)點0、節(jié)點1、節(jié)點以及節(jié)點0的深度值壓入數(shù)據(jù)存儲棧;
[0113]根據(jù)廣度優(yōu)先原則,進行另一條10路徑的遍歷,即依次經(jīng)由節(jié)點八、節(jié)點0遍歷到節(jié)點I,由上述遍歷規(guī)則可知,節(jié)點I的深度值16^61 = 16^61+1 = 3 ;
[0114]節(jié)點I的子節(jié)點為節(jié)點0,因節(jié)點0的深度值已壓入數(shù)據(jù)存儲棧,則將節(jié)點I的深度值壓入數(shù)據(jù)存儲棧;
[0115]5)若遍歷到最后一條子路徑,則依次遍歷到全局終點,并將全局終點的深度值壓入數(shù)據(jù)存儲棧;
[0116]依據(jù)上述遍歷規(guī)則,確定遍歷到節(jié)點了所位于的子路徑即為最后一條子路徑,則依據(jù)上述遍歷規(guī)則依次確定節(jié)點了的深度值為3、節(jié)點0的深度值16^61 = 16^61-1 = 1,則依次將節(jié)點0的深度值1和節(jié)點了的深度值3依次壓入數(shù)據(jù)存儲棧中;
[0117]依據(jù)上述的遍歷規(guī)則即可獲取第一樹形數(shù)據(jù)的各節(jié)點的深度值,所述第二樹形數(shù)據(jù)的各節(jié)點的深度值的獲取方式請見第一樹形數(shù)據(jù)的各節(jié)點的深度值的獲取方式,具體不再贅述,需明確的是,只要所述第一樹形數(shù)據(jù)和所述第二樹形數(shù)據(jù)依據(jù)相同的遍歷規(guī)則進行遍歷即可。
[0118]203、分別根據(jù)所述第一樹形數(shù)據(jù)和所述第二樹形數(shù)據(jù)的各節(jié)點的深度值確定第一集合和第二集合;
[0119]由步驟202所示對所述第一樹形數(shù)據(jù)進行遍歷過程中,以所述第一樹形數(shù)據(jù)為例,依次將各節(jié)點的深度值壓入數(shù)據(jù)存儲棧中,根據(jù)壓入數(shù)據(jù)存儲棧中的先后順序建立各第一子集;
[0120]由上述可知,與深度值1對應的第一子集為:!:節(jié)點八、節(jié)點;
[0121]與深度值2對應的第一子集為:(節(jié)點3、節(jié)點8、節(jié)點I節(jié)點0、節(jié)點0、節(jié)點0};
[0122]與深度值3對應的第一子集為:(節(jié)點隊節(jié)點2、節(jié)點?、節(jié)點?、節(jié)點1、節(jié)點??!、節(jié)點1、節(jié)點II ;
[0123]與深度值4對應的第一子集為:(節(jié)點X、節(jié)點II ;
[0124]可見,所述第一集合包括多個分別與所述深度值對應的第一子集,且各所述第一子集內(nèi)的所述第一樹形數(shù)據(jù)的節(jié)點的深度值相同;
[0125]所述第二集合的具體建立方式請假第一集合的建立方式,具體在本實施例中不做贅述,只要所述第二集合包括多個分別與所述深度值對應的第二子集,且各所述第二子集內(nèi)的所述第二樹形數(shù)據(jù)的節(jié)點的深度值相同即可。
[0126]204、確定與所述第一子集對應的各深度值的最大值以及確定與所述第二子集對應的各深度值的最大值;
[0127]205、確定與所述第一子集對應的各深度值的最大值和與所述第二子集對應的各深度值的最大值中的較小值為第一基準深度值;
[0128]206、確定與所述第一子集對應的各深度值的最大值和與所述第二子集對應的各深度值的最大值中的較大值為第二基準深度值;
[0129]即有上述步驟中所示的第一集合可知,所述第一集合中與各第一子集對應的各深度值的最大值為4 ;假設按相同的遍歷規(guī)則確定第二集合中與各第二子集對應的各深度值最大的為10,則確定第一基準深度值為4,第二基準深度值為10。
[0130]207、確定初始化相似度權值評等于0 ;
[0131]其中,I代表基準數(shù)據(jù)和問題數(shù)據(jù)的相似度權值,I越小代表相似度越小,0代表兩類數(shù)據(jù)完全不同。
[0132]208、確定目標節(jié)點個數(shù)為(^ ;
[0133]其中,所述0等于各所述第一子集和各所述第二子集內(nèi)的節(jié)點數(shù)的最大值。
[0134]本實施例中以第一集合中與深度值3對應的第一子集中的節(jié)點數(shù)最大,則即可確定0值為8。
[0135]需明確的是,本實施例中的步驟204至步驟208之間并無時序上的先后關系,其進行的順序在本實施例中僅為一種舉例。
[0136]且本實施例對0的設定也為一種舉例,不作限定,在不同的應用場景和對相似度的不同要求下,可任意設定。值,例如還可將0值設定為500、1000等數(shù)值,即本實施例對0的設定不作限定。
[0137]209、根據(jù)與各所述第一子集和與各所述第二子集對應的深度值由低到高的順序依次確定當前深度值是否小于或等于所述第一基準深度值,若是,則進行步驟210,若否,則進行步驟214;
[0138]分別對第一集合和第二集合中的各子集進行遍歷,且遍歷的順序為按深度值由低到高的順序,即以上述確定的第一集合為例,先確定第一子集(節(jié)點八、節(jié)點⑶的深度值為當前深度值,即當前深度值為1 ;即當前遍歷分析到的深度值即為當前深度值。
[0139]確定當前深度值1是否小于或等于所述第一基準深度值4,;
[0140]確定完第一子集(節(jié)點八、節(jié)點后,按深度值由低到高的順序再確定第一子集I節(jié)點3、節(jié)點8、節(jié)點6、節(jié)點0、節(jié)點0、節(jié)點0},然后確定(節(jié)點隊節(jié)點2、節(jié)點?、節(jié)點?、節(jié)點1、節(jié)點I1、節(jié)點1、節(jié)點II,直至確定到最后一個第一子集(節(jié)點X、節(jié)點1};
[0141]第二集合的遍歷方式與第一集合相同,即根據(jù)與各所述第二子集對應的深度值由低到高的順序依次確定當前深度值是否小于或等于所述第一基準深度值,具體不再贅述。
[0142]210、根據(jù)字符串編輯距離算法確定與所述當前深度值對應的第一子集和所述第二子集之間的320值;
[0143]其中,字符串編輯距離算法(330, 8廿1118 6(111: (1181:811(36),指兩個字符串之間,由一個轉換成另一個所需的最少編輯操作次數(shù),許可的編輯操作包括將一個字符替換成另一個字符,插入一個字符,刪除一個字符三種。320可以定量度量兩個字符串的差異;例如將匕11:1:611轉成811:1:1118:具體轉化過程可首先進行,之后進行811:1:111(6-)1),最后進行8101118(-4),可見320 = 3 ;即320距離常作為一種相似度計算函數(shù),例如用在自然語言處理,拼寫檢查,網(wǎng)頁相似度對比中,應用在10路徑相似度分析上是一種有效的衡量標準,具體請見現(xiàn)有技術所示,具體在本實施例中不做贅述。
[0144]即確定當前深度值等于1時,與深度值1對應的第一子集和第二子集之間的320值,具體計算320值的結果根據(jù)與深度值1對應的第一子集和第二子集內(nèi)的字符串的不同而不同,則在本實施例中不做贅述,具體如何根據(jù)節(jié)點計算320值為現(xiàn)有技術,不再贅述。
[0145]211、判斷與所述當前深度值對應的320值是否等于0,若是,則進行步驟212,若否,則進行步驟213;
[0146]212、確定所述相似度權值評=胃+,—^2。;
[0147]其中^的取值范圍為大于0且小于1,具體數(shù)值在本實施例中不作限定,例如可為1/2 ;
[0148]13為所述當前深度值,且6大于或等于1且小于或等于所述第一基準深度值。
[0149]213、確定所述相似度權值評=1+8^^^20/821);
[0150]經(jīng)由上述步驟將深度值從1至所述第一基準深度值均遍歷一遍,進而輸出一個相似度權值,在輸出的該相似度權值的基礎上進行下述步驟;
[0151]214、確定所述當前深度值是否小于或等于所述第二基準深度值,若是,則進行步驟215,若否,則進行步驟216;
[0152]本實施例中所述第二基準深度值以10為例進行說明,即在當前深度值大于第一基準深度值時,則進一步判斷當前深度值是否小于或等于所述第二基準深度值。
[0153]215、確定所述相似度權值評=評-,03—11 ;
[0154]其中,6大于所述第一基準深度值且小于或等于所述第二基準深度值。
[0155]216、結束流程,并將最后確定的相似度權值I輸出;
[0156]如本實施例中以所述第二基準深度值為10為例進行說明,則當當前深度值為10時,即可將與深度值為10對應的I輸出,并結束流程。
[0157]由本實施例所示可知,因與深度值從1至所述第一基準深度值對應的各節(jié)點為在基準數(shù)據(jù)和問題數(shù)據(jù)中為上層數(shù)據(jù),深度值從大于所述第一基準深度值到小于等于第二基準深度值對應的各節(jié)點在基準數(shù)據(jù)和問題數(shù)據(jù)中為下層數(shù)據(jù),因上側數(shù)據(jù)和下層數(shù)據(jù)對基準數(shù)據(jù)和問題數(shù)據(jù)之間對應關系的影響是不同的,所以本實施例在計算與深度值從1至所述第一基準深度值對應的各節(jié)點的相似度權值時,通過^的設定使得對位于數(shù)據(jù)中不同層次的節(jié)點采用不同的計算方式,以使不同層次的節(jié)點在計算相似度權值時賦予不同的權值,從而提高了相似度的識別可靠性,保障了結構突變對應關系的準確判斷,從而提升了分析結果的準確性。
[0158]進一步可知,通過本實施例所示的路徑相似度分析方法,能夠將不同的基準數(shù)據(jù)和問題數(shù)據(jù)對應起來,填補了 11^36系統(tǒng)和性能問題分析工具之間的空白,有效的幫助產(chǎn)品性能問題的定位工作。
[0159]以下結合圖4對本實施例所提供的一種用于實現(xiàn)路徑相似度分析方法的系統(tǒng)進行詳細說明:
[0160]如圖4所示,所述系統(tǒng)包括:
[0161]第一獲取單元401,用于分別獲取基準數(shù)據(jù)的第一樹形數(shù)據(jù)和問題數(shù)據(jù)的第二樹形數(shù)據(jù);
[0162]第二獲取單元402,用于根據(jù)相同的遍歷規(guī)則以及各節(jié)點之間的隸屬關系對所述第一樹形數(shù)據(jù)和所述第二樹形數(shù)據(jù)的各節(jié)點進行遍歷以獲取各節(jié)點的深度值,各節(jié)點的所述深度值用于表示各節(jié)點在所述第一樹形數(shù)據(jù)或第二樹形數(shù)據(jù)中所位于的層次;
[0163]第一確定單元403,用于分別根據(jù)所述第一樹形數(shù)據(jù)和所述第二樹形數(shù)據(jù)的各節(jié)點的深度值確定第一集合和第二集合,其中,所述第一集合包括多個分別與所述深度值對應的第一子集,且各所述第一子集內(nèi)的所述第一樹形數(shù)據(jù)的節(jié)點的深度值相同,所述第二集合包括多個分別與所述深度值對應的第二子集,且各所述第二子集內(nèi)的所述第二樹形數(shù)據(jù)的節(jié)點的深度值相同;
[0164]計算單元404,用于根據(jù)與各所述第一子集和與各所述第二子集對應的深度值計算所述基準數(shù)據(jù)和所述問題數(shù)據(jù)的相似度權值。
[0165]通過本實施例所提供的系統(tǒng),能夠將以基準數(shù)據(jù)的第一樹形數(shù)據(jù)和問題數(shù)據(jù)的第二樹形數(shù)據(jù)的各節(jié)點通過集合的方式進行表示,且各集合包括與用于表示各節(jié)點層次的深度值子集合,并根據(jù)各深度值計算所述基準數(shù)據(jù)和所述問題數(shù)據(jù)的相似度權值,通過本實施例計算所得到的所述基準數(shù)據(jù)和所述問題數(shù)據(jù)的相似度權值能夠確定基準數(shù)據(jù)和問題數(shù)據(jù)之間的對應關系,進而利用性能問題智能分析模塊可以自動化性能定位工作,極大提高性能問題分析的時間,減少對人力的依賴。
[0166]以下結合圖5所示對能夠實現(xiàn)對位于不同層次的節(jié)點用不同的算法以獲取相似度權值的系統(tǒng)繼續(xù)詳細說明:
[0167]如圖5所示,所述系統(tǒng)包括:
[0168]第一獲取單元501,用于分別獲取基準數(shù)據(jù)的第一樹形數(shù)據(jù)和問題數(shù)據(jù)的第二樹形數(shù)據(jù);
[0169]第二獲取單元502,用于根據(jù)相同的遍歷規(guī)則以及各節(jié)點之間的隸屬關系對所述第一樹形數(shù)據(jù)和所述第二樹形數(shù)據(jù)的各節(jié)點進行遍歷以獲取各節(jié)點的深度值,各節(jié)點的所述深度值用于表示各節(jié)點在所述第一樹形數(shù)據(jù)或第二樹形數(shù)據(jù)中所位于的層次;
[0170]第一確定單元503,用于分別根據(jù)所述第一樹形數(shù)據(jù)和所述第二樹形數(shù)據(jù)的各節(jié)點的深度值確定第一集合和第二集合,其中,所述第一集合包括多個分別與所述深度值對應的第一子集,且各所述第一子集內(nèi)的所述第一樹形數(shù)據(jù)的節(jié)點的深度值相同,所述第二集合包括多個分別與所述深度值對應的第二子集,且各所述第二子集內(nèi)的所述第二樹形數(shù)據(jù)的節(jié)點的深度值相同;
[0171]第二確定單元504,用于確定與所述第一子集對應的各深度值的最大值以及確定與所述第二子集對應的各深度值的最大值;
[0172]第三確定單元505,用于確定與所述第一子集對應的各深度值的最大值和與所述第二子集對應的各深度值的最大值中的較小值為第一基準深度值;
[0173]第四確定單元506,用于確定與所述第一子集對應的各深度值的最大值和與所述第二子集對應的各深度值的最大值中的較大值為第二基準深度值;
[0174]第五確定單元507,用于確定初始化相似度權值I等于0 ;
[0175]第六確定單元508,用于確定目標節(jié)點個數(shù)為6其中,所述。等于各所述第一子集和各所述第二子集內(nèi)的節(jié)點數(shù)的最大值;
[0176]計算單元509,用于根據(jù)與各所述第一子集和與各所述第二子集對應的深度值計算所述基準數(shù)據(jù)和所述問題數(shù)據(jù)的相似度權值;
[0177]具體的,所述計算單元509包括:
[0178]第一確定模塊5091,用于根據(jù)與各所述第一子集和與各所述第二子集對應的深度值由低到高的順序依次確定當前深度值是否小于或等于所述第一基準深度值;
[0179]第一計算模塊5092,用于若當前深度值小于或等于所述第一基準深度值,則根據(jù)字符串編輯距離算法確定與所述當前深度值對應的第一子集和所述第二子集之間的320值;
[0180]第二計算模塊5093,用于若所述320值等于0,則確定所述相似度權值評=
其中,3的取值范圍為大于0且小于1,6為所述當前深度值,且6大于或等于1且小于或等于所述第一基準深度值;
[0181]第三計算模塊5094,用于若所述320值不等于0,則確定所述相似度權值評=
[0182]第二確定模塊5095,用于若根據(jù)所述深度值由低到高的順序依次確定當前深度值大于所述第一基準深度值時,則確定所述當前深度值是否小于或等于所述第二基準深度值;
[0183]第三確定模塊5096,用于若確定所述當前深度值小于或等于所述第二基準深度值,則確定所述相似度權值1 = 1-, ,其中,6大于所述第一基準深度值且小于或等于所述第二基準深度值。
[0184]由本實施例所示可知,因與深度值從1至所述第一基準深度值對應的各節(jié)點為在基準數(shù)據(jù)和問題數(shù)據(jù)中為上層數(shù)據(jù),深度值從大于所述第一基準深度值到小于等于第二基準深度值對應的各節(jié)點在基準數(shù)據(jù)和問題數(shù)據(jù)中為下層數(shù)據(jù),因上側數(shù)據(jù)和下層數(shù)據(jù)對基準數(shù)據(jù)和問題數(shù)據(jù)之間對應關系的影響是不同的,所以本實施例在計算與深度值從1至所述第一基準深度值對應的各節(jié)點的相似度權值時,通過^的設定使得對位于數(shù)據(jù)中不同層次的節(jié)點采用不同的計算方式,以使不同層次的節(jié)點在計算相似度權值時賦予不同的權值,從而提高了相似度的識別可靠性,保障了結構突變對應關系的準確判斷,從而提升了分析結果的準確性。
[0185]進一步可知,通過本實施例所示的路徑相似度分析方法,能夠將不同的基準數(shù)據(jù)和問題數(shù)據(jù)對應起來,填補了 11^36系統(tǒng)和性能問題分析工具之間的空白,有效的幫助產(chǎn)品性能問題的定位工作。
[0186]圖4至圖5所示的實施例從模塊功能實體的角度對系統(tǒng)的結構進行了詳細說明,以下結合圖6從硬件角度對本發(fā)明實施例中的系統(tǒng)進行詳細描述,請見圖6,本發(fā)明實施例中的系統(tǒng)的另一實施例包括:
[0187]該系統(tǒng)600具體包括:
[0188]輸入裝置601、輸出裝置602、處理器603和存儲器604(其中,圖6所示的處理器603可以有一個或多個,圖6中以一個處理器603為例進行說明);
[0189]在本發(fā)明一些實施例中,輸入裝置601、輸出裝置602、處理器603和存儲器604可通過總線或其它方式連接,其中,圖6中以通過總線連接為例。
[0190]處理器603用于執(zhí)行如下步驟:
[0191]用于分別獲取基準數(shù)據(jù)的第一樹形數(shù)據(jù)和問題數(shù)據(jù)的第二樹形數(shù)據(jù);
[0192]用于根據(jù)相同的遍歷規(guī)則以及各節(jié)點之間的隸屬關系對所述第一樹形數(shù)據(jù)和所述第二樹形數(shù)據(jù)的各節(jié)點進行遍歷以獲取各節(jié)點的深度值,各節(jié)點的所述深度值用于表示各節(jié)點在所述第一樹形數(shù)據(jù)或第二樹形數(shù)據(jù)中所位于的層次;
[0193]用于分別根據(jù)所述第一樹形數(shù)據(jù)和所述第二樹形數(shù)據(jù)的各節(jié)點的深度值確定第一集合和第二集合,其中,所述第一集合包括多個分別與所述深度值對應的第一子集,且各所述第一子集內(nèi)的所述第一樹形數(shù)據(jù)的節(jié)點的深度值相同,所述第二集合包括多個分別與所述深度值對應的第二子集,且各所述第二子集內(nèi)的所述第二樹形數(shù)據(jù)的節(jié)點的深度值相同;
[0194]用于根據(jù)與各所述第一子集和與各所述第二子集對應的深度值計算所述基準數(shù)據(jù)和所述問題數(shù)據(jù)的相似度權值。
[0195]在本發(fā)明的另一些實施例中,所述處理器603還用于執(zhí)行如下步驟:
[0196]用于確定與所述第一子集對應的各深度值的最大值以及確定與所述第二子集對應的各深度值的最大值;
[0197]用于確定與所述第一子集對應的各深度值的最大值和與所述第二子集對應的各深度值的最大值中的較小值為第一基準深度值;
[0198]用于確定與所述第一子集對應的各深度值的最大值和與所述第二子集對應的各深度值的最大值中的較大值為第二基準深度值;
[0199]用于確定初始化相似度權值I等于0 ;
[0200]用于確定目標節(jié)點個數(shù)為6其中,所述0等于各所述第一子集和各所述第二子集內(nèi)的節(jié)點數(shù)的最大值。
[0201]在本發(fā)明的另一些實施例中,所述處理器603還用于執(zhí)行如下步驟:
[0202]用于根據(jù)與各所述第一子集和與各所述第二子集對應的深度值由低到高的順序依次確定當前深度值是否小于或等于所述第一基準深度值;
[0203]用于若當前深度值小于或等于所述第一基準深度值,則根據(jù)字符串編輯距離算法確定與所述當前深度值對應的第一子集和所述第二子集之間的320值;
[0204]用于若所述320值等于0,則確定所述相似度權值評=1+,(?拉。,其中,3的取值范圍為大于0且小于1,13為所述當前深度值,且6大于或等于1且小于或等于所述第一基準深度值;
[0205]用于若所述320值不等于0,則確定所述相似度權值切=
[0206]在本發(fā)明的另一些實施例中,所述處理器603還用于執(zhí)行如下步驟:
[0207]用于若根據(jù)所述深度值由低到高的順序依次確定當前深度值大于所述第一基準深度值時,則確定所述當前深度值是否小于或等于所述第二基準深度值;
[0208]用于若確定所述當前深度值小于或等于所述第二基準深度值,則確定所述相似度權值I = 1- 1其中,13大于所述第一基準深度值且小于或等于所述第二基準深度值。
[0209]所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng),裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
[0210]在本申請所提供的幾個實施例中,應該理解到,所揭露的系統(tǒng),裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
[0211]所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上。可以根據(jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
[0212]另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。
[0213]所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術方案本質(zhì)上或者說對現(xiàn)有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括山盤、移動硬盤、只讀存儲器1611101^)、隨機存取存儲器^00688 1611101^)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0214]以上所述,以上實施例僅用以說明本發(fā)明的技術方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質(zhì)脫離本發(fā)明各實施例技術方案的精神和范圍。
【權利要求】
1.一種路徑相似度分析方法,其特征在于,包括: 分別獲取基準數(shù)據(jù)的第一樹形數(shù)據(jù)和問題數(shù)據(jù)的第二樹形數(shù)據(jù); 根據(jù)相同的遍歷規(guī)則以及各節(jié)點之間的隸屬關系對所述第一樹形數(shù)據(jù)和所述第二樹形數(shù)據(jù)的各節(jié)點進行遍歷以獲取各節(jié)點的深度值,各節(jié)點的所述深度值用于表示各節(jié)點在所述第一樹形數(shù)據(jù)或第二樹形數(shù)據(jù)中所位于的層次; 分別根據(jù)所述第一樹形數(shù)據(jù)和所述第二樹形數(shù)據(jù)的各節(jié)點的深度值確定第一集合和第二集合,其中,所述第一集合包括多個分別與所述深度值對應的第一子集,且各所述第一子集內(nèi)的所述第一樹形數(shù)據(jù)的節(jié)點的深度值相同,所述第二集合包括多個分別與所述深度值對應的第二子集,且各所述第二子集內(nèi)的所述第二樹形數(shù)據(jù)的節(jié)點的深度值相同; 根據(jù)與各所述第一子集和與各所述第二子集對應的深度值計算所述基準數(shù)據(jù)和所述問題數(shù)據(jù)的相似度權值。
2.根據(jù)權利要求1所述的路徑相似度分析方法,其特征在于,所述根據(jù)與各所述第一子集和與各所述第二子集對應的深度值計算所述基準數(shù)據(jù)和所述問題數(shù)據(jù)的相似度權值之前,所述方法還包括: 確定與所述第一子集對應的各深度值的最大值以及確定與所述第二子集對應的各深度值的最大值; 確定與所述第一子集對應的各深度值的最大值和與所述第二子集對應的各深度值的最大值中的較小值為第一基準深度值; 確定與所述第一子集對應的各深度值的最大值和與所述第二子集對應的各深度值的最大值中的較大值為第二基準深度值; 確定初始化相似度權值W等于O ; 確定目標節(jié)點個數(shù)為C,其中,所述C等于各所述第一子集和各所述第二子集內(nèi)的節(jié)點數(shù)的最大值。
3.根據(jù)權利要求2所述的路徑相似度分析方法,其特征在于,所述根據(jù)與各所述第一子集和與各所述第二子集對應的深度值計算所述基準數(shù)據(jù)和所述問題數(shù)據(jù)的相似度權值包括: 根據(jù)與各所述第一子集和與各所述第二子集對應的深度值由低到高的順序依次確定當前深度值是否小于或等于所述第一基準深度值; 若是,則根據(jù)字符串編輯距離算法確定與所述當前深度值對應的第一子集和所述第二子集之間的SED值; 若所述SED值等于O,則確定所述相似度權值W = Ι+&~(Η)*2(3,其中,a的取值范圍為大于O且小于1,b為所述當前深度值,且b大于或等于I且小于或等于所述第一基準深度值; 若所述SED值不等于O,則確定所述相似度權值W = W+aK^Zc/SED。
4.根據(jù)權利要求3所述的路徑相似度分析方法,其特征在于,所述根據(jù)與各所述第一子集和與各所述第二子集對應的深度值計算所述基準數(shù)據(jù)和所述問題數(shù)據(jù)的相似度權值還包括: 若根據(jù)所述深度值由低到高的順序依次確定當前深度值大于所述第一基準深度值時,則確定所述當前深度值是否小于或等于所述第二基準深度值; 若是,則確定所述相似度權值W = W - a^),其中,b大于所述第一基準深度值且小于或等于所述第二基準深度值。
5.一種系統(tǒng),其特征在于,包括: 第一獲取單元,用于分別獲取基準數(shù)據(jù)的第一樹形數(shù)據(jù)和問題數(shù)據(jù)的第二樹形數(shù)據(jù);第二獲取單元,用于根據(jù)相同的遍歷規(guī)則以及各節(jié)點之間的隸屬關系對所述第一樹形數(shù)據(jù)和所述第二樹形數(shù)據(jù)的各節(jié)點進行遍歷以獲取各節(jié)點的深度值,各節(jié)點的所述深度值用于表示各節(jié)點在所述第一樹形數(shù)據(jù)或第二樹形數(shù)據(jù)中所位于的層次; 第一確定單元,用于分別根據(jù)所述第一樹形數(shù)據(jù)和所述第二樹形數(shù)據(jù)的各節(jié)點的深度值確定第一集合和第二集合,其中,所述第一集合包括多個分別與所述深度值對應的第一子集,且各所述第一子集內(nèi)的所述第一樹形數(shù)據(jù)的節(jié)點的深度值相同,所述第二集合包括多個分別與所述深度值對應的第二子集,且各所述第二子集內(nèi)的所述第二樹形數(shù)據(jù)的節(jié)點的深度值相同; 計算單元,用于根據(jù)與各所述第一子集和與各所述第二子集對應的深度值計算所述基準數(shù)據(jù)和所述問題數(shù)據(jù)的相似度權值。
6.根據(jù)權利要求5所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括: 第二確定單元,用于確定與所述第一子集對應的各深度值的最大值以及確定與所述第二子集對應的各深度值的最大值; 第三確定單元,用于確定與所述第一子集對應的各深度值的最大值和與所述第二子集對應的各深度值的最大值中的較小值為第一基準深度值; 第四確定單元,用于確定與所述第一子集對應的各深度值的最大值和與所述第二子集對應的各深度值的最大值中的較大值為第二基準深度值; 第五確定單元,用于確定初始化相似度權值W等于O ; 第六確定單元,用于確定目標節(jié)點個數(shù)為c,其中,所述c等于各所述第一子集和各所述第二子集內(nèi)的節(jié)點數(shù)的最大值。
7.根據(jù)權利要求6所述的系統(tǒng),其特征在于,所述計算單元包括: 第一確定模塊,用于根據(jù)與各所述第一子集和與各所述第二子集對應的深度值由低到高的順序依次確定當前深度值是否小于或等于所述第一基準深度值; 第一計算模塊,用于若當前深度值小于或等于所述第一基準深度值,則根據(jù)字符串編輯距離算法確定與所述當前深度值對應的第一子集和所述第二子集之間的SED值; 第二計算模塊,用于若所述SED值等于O,則確定所述相似度權值W = ff+a~(H)*2c,其中,a的取值范圍為大于O且小于l,b為所述當前深度值,且b大于或等于I且小于或等于所述第一基準深度值; 第三計算模塊,用于若所述SED值不等于O,則確定所述相似度權值W = ff+a~(w)*2c/SED0
8.根據(jù)權利要求7所述的系統(tǒng),其特征在于,所述計算單元還包括: 第二確定模塊,用于若根據(jù)所述深度值由低到高的順序依次確定當前深度值大于所述第一基準深度值時,則確定所述當前深度值是否小于或等于所述第二基準深度值; 第三確定模塊,用于若確定所述當前深度值小于或等于所述第二基準深度值,則確定所述相似度權值W = W - a~ (b_D,其中,b大于所述第一基準深度值且小于或等于所述第二基準深度值。
【文檔編號】G06F17/30GK104462288SQ201410705903
【公開日】2015年3月25日 申請日期:2014年11月27日 優(yōu)先權日:2014年11月27日
【發(fā)明者】謝羽 申請人:華為技術有限公司