袁中臣,馬宗民
1.東北大學(xué) 軟件學(xué)院,沈陽(yáng)110819
2.沈陽(yáng)工業(yè)大學(xué) 化工過(guò)程自動(dòng)化學(xué)院,遼寧 遼陽(yáng)111004
軟件重用能節(jié)省開(kāi)發(fā)費(fèi)用和時(shí)間。隨著軟件復(fù)雜性的增加,軟件重用開(kāi)始出現(xiàn)在軟件生命周期的每個(gè)階段[1-2]。軟件設(shè)計(jì)發(fā)生在軟件生命周期的早期,對(duì)接下來(lái)的開(kāi)發(fā)工作產(chǎn)生重要的影響。所以,軟件設(shè)計(jì)的重用受到關(guān)注[3]。UML(Unified Modeling Language)類(lèi)圖由類(lèi)和類(lèi)之間的關(guān)系構(gòu)成,用于系統(tǒng)的靜態(tài)建模。UML類(lèi)圖被廣泛應(yīng)用于軟件設(shè)計(jì),已成為軟件設(shè)計(jì)事實(shí)上的標(biāo)準(zhǔn)[4]。所以UML類(lèi)圖重用成為軟件設(shè)計(jì)重用研究的重點(diǎn)[5-6]。隨著可重用的UML類(lèi)圖數(shù)量的增加,分類(lèi)成為一項(xiàng)基礎(chǔ)性工作。
服務(wù)于軟件重用的組件的分類(lèi)在一些文獻(xiàn)中被提出[7-10]。這里的組件是指程序代碼、設(shè)計(jì)模型和規(guī)范等。所有提出的方法能被歸于同一類(lèi),即,通過(guò)預(yù)先定義的屬性(如開(kāi)發(fā)平臺(tái)和功能等)去描述每個(gè)組件,組件被表示為一個(gè)屬性向量,向量差異(歐式或者余弦距離)用來(lái)度量組件相似性,然后應(yīng)用分類(lèi)算法實(shí)現(xiàn)組件的分類(lèi)。
人為屬性的定義不能完全表達(dá)一個(gè)UML類(lèi)圖的語(yǔ)義,并且屬性的定義需要領(lǐng)域知識(shí)的支持。相似性度量是進(jìn)行分類(lèi)的重要一步,現(xiàn)有關(guān)于相似性度量的研究主要集中在語(yǔ)義[11-16]。文獻(xiàn)[11]結(jié)合領(lǐng)域本體和應(yīng)用本體計(jì)算類(lèi)圖之間的語(yǔ)義相似性,以增加準(zhǔn)確性。文獻(xiàn)[11]和[16]在匹配中考慮了關(guān)系的特征。文獻(xiàn)[13]提出類(lèi)圖的相似性分為淺層(命名)相似性和深層(語(yǔ)義)相似性,并使用鄰居類(lèi)的信息實(shí)現(xiàn)關(guān)系的相似性度量。在文獻(xiàn)[14]中,除去類(lèi)之外,還將屬性和操作列入語(yǔ)義度量范疇。所有以上這些方法都考慮到概念名稱(chēng),并應(yīng)用了本體的概念語(yǔ)義相似性。在語(yǔ)義相似性度量中,除了概念語(yǔ)義之外,還包括屬性(操作)類(lèi)型和訪問(wèn)權(quán)限等限制。即使是相同類(lèi)的相同屬性在不同項(xiàng)目中也可能被定義成不同的類(lèi)型。如類(lèi)“Student”的學(xué)號(hào)屬性“num”在不同項(xiàng)目中可能被定義為“integer”和“String”兩個(gè)不同的類(lèi)型。而這些差別在接下來(lái)的編碼階段會(huì)體現(xiàn)出更多的差異。所以,本文定義的語(yǔ)義相似性度量將把這些因素考慮在內(nèi)。
在UML類(lèi)圖中,把每個(gè)關(guān)系稱(chēng)為一個(gè)語(yǔ)義單元,即R=[端點(diǎn)類(lèi)1,關(guān)系類(lèi)型,端點(diǎn)類(lèi)2],語(yǔ)義單元之間的相似性計(jì)算從端點(diǎn)類(lèi)和關(guān)系類(lèi)型進(jìn)行。類(lèi)圖之間的語(yǔ)義相似性即為所有語(yǔ)義單元的相似性均值。同時(shí),在進(jìn)行類(lèi)的相似性度量時(shí),除了考慮概念語(yǔ)義名稱(chēng),把屬性、操作及其類(lèi)型和訪問(wèn)限制等也考慮在內(nèi)。類(lèi)圖之間的語(yǔ)義相似性被定義如下:
分類(lèi)在很多領(lǐng)域得到應(yīng)用,如模式識(shí)別和機(jī)器學(xué)習(xí)等[17]。很多分類(lèi)算法被提出,如決策樹(shù)(DT)、遺傳算法(GA)、邏輯回歸(LR)、支持向量機(jī)(SVM)、K臨近(KNN)和樸素貝葉斯(NB)等。除了這些單個(gè)的分類(lèi)算法還出現(xiàn)了集成分類(lèi)算法[18],如隨機(jī)森林等。由于集成分類(lèi)能夠克服單個(gè)分類(lèi)算法的缺點(diǎn),本文構(gòu)建了一個(gè)基于KNN的二級(jí)分類(lèi)的集成分類(lèi)器E-KNN。這里實(shí)現(xiàn)的是單標(biāo)簽分類(lèi),即,一個(gè)UML類(lèi)圖僅能被分類(lèi)到唯一的類(lèi)別目錄。
本文正是從語(yǔ)義方面提出對(duì)UML類(lèi)圖的分類(lèi)。定義了類(lèi)圖之間的語(yǔ)義相似性度量,提出算法獲取中心類(lèi)圖,基于中心類(lèi)圖和改進(jìn)的KNN算法分別構(gòu)建E1-KNN和E2-KNN分類(lèi)器,并組成二級(jí)集成分類(lèi)器E-KNN。實(shí)驗(yàn)驗(yàn)證了所構(gòu)建分類(lèi)器的有效性。
現(xiàn)有的基于本體的概念語(yǔ)義相似性計(jì)算分為兩種方法:語(yǔ)義距離和包含內(nèi)容[19]。本文選擇被廣泛使用的基于路徑的語(yǔ)義距離來(lái)計(jì)算概念之間的語(yǔ)義相似性,表示如下:
c1和c2分別表示兩個(gè)概念,lso(c1,c2)表示概念c1和c2在本體(如WordNet)層級(jí)結(jié)構(gòu)中的最低公共祖先;len(c1,c2)表示概念c1和c2的最短路徑;depth(c)標(biāo)識(shí)概念c在本體層級(jí)結(jié)構(gòu)中的深度。
cd1和cd2是兩個(gè)類(lèi)圖,|cd i|表示類(lèi)圖cd i中包含的關(guān)系的數(shù)目。類(lèi)Ci來(lái)自類(lèi)圖cd1,A i和O i分別是類(lèi)Ci的屬性集合和操作集合,|A i|和|O i|分別表示包含屬性和操作的數(shù)目。同理,類(lèi)C j來(lái)自類(lèi)圖cd2,A j和O j分別是類(lèi)C j的屬性集合和操作集合。SimC、SimR、SimA和SimO分別表示類(lèi)相似性、關(guān)系相似性、屬性相似性和操作相似性。λ、α、β(β1,β2,β3)、γ(γ1,γ2,γ3,γ4)是權(quán)重因子。Root(c)標(biāo)識(shí)一個(gè)概念名稱(chēng)c的詞根,因?yàn)樵趯傩院筒僮鞯谋磉_(dá)中經(jīng)常包含很多縮寫(xiě),如屬性“ID”實(shí)際上表示的是“i dentity”。SimT標(biāo)識(shí)類(lèi)型(返回值類(lèi)型)相似性;SimP標(biāo)識(shí)訪問(wèn)權(quán)限相似性。操作有時(shí)還包含參數(shù),并且參數(shù)的定義和屬性是一致的,所以參數(shù)的相似性度量(SimQ)采取和屬性相同的度量方法。
考慮到建模相同項(xiàng)目可能會(huì)出現(xiàn)異構(gòu)的類(lèi)圖,關(guān)系相似性度量SimR被總結(jié)為三種情況。當(dāng)被匹配的兩個(gè)關(guān)系類(lèi)型相同時(shí),相似性值為SimR=1.0;當(dāng)匹配的兩個(gè)關(guān)系類(lèi)型不同時(shí),引入文獻(xiàn)[13]的關(guān)系相似性矩陣SM R獲取相似性值。對(duì)于第三種情況,當(dāng)一個(gè)關(guān)系被匹配到UML類(lèi)圖中的一條路徑而不是一個(gè)關(guān)系時(shí),定義公式來(lái)標(biāo)識(shí)相似性。R i標(biāo)識(shí)路徑上每個(gè)關(guān)系的類(lèi)型,n表示關(guān)系路徑的長(zhǎng)度。
為了度量屬性(操作)訪問(wèn)權(quán)限和類(lèi)型的相似性值,通過(guò)邀請(qǐng)軟件工程領(lǐng)域?qū)<乙栽L問(wèn)權(quán)限的限定范圍差異和類(lèi)型之間的轉(zhuǎn)換復(fù)雜度為基準(zhǔn)分別給出相似性值的評(píng)分,如表1和表2所示。
表1 訪問(wèn)權(quán)限相似性
表2 類(lèi)型相似性
在表2中,U表示兩個(gè)類(lèi)的相似性。如果匹配的兩個(gè)類(lèi)是相同或者存在繼承關(guān)系,則U=1,否則U=0。這種相似性度量經(jīng)常會(huì)出現(xiàn)在一些“依賴(lài)”關(guān)系的類(lèi)圖匹配中。
每個(gè)類(lèi)別的類(lèi)圖都表現(xiàn)出相似或者相同的特征,找出這些特征是分類(lèi)的首要一步。這里定義中心類(lèi)圖標(biāo)識(shí)每個(gè)類(lèi)別目錄中類(lèi)圖的特征。
定義1中心類(lèi)圖在目錄C i中,如果類(lèi)圖cd j和所有其他類(lèi)圖之間的平均相似性值高于其他類(lèi)圖,則cd j被稱(chēng)為中心類(lèi)圖。
取一組中心類(lèi)圖來(lái)表示一個(gè)目錄的特征。接下來(lái)的問(wèn)題變成了如何去獲取中心類(lèi)圖集合,這里提出一個(gè)行最大值捕捉的算法。假定一個(gè)目錄Ci中包含的類(lèi)圖的數(shù)量是n,那么就會(huì)存在一個(gè)n×n階相似性矩陣SM,SMij表示類(lèi)圖cd i和cd j之間的相似性值。行最大值捕捉算法被描述為算法1,描述如下:
算法1獲取目錄中心類(lèi)圖集合
輸入:相似性矩陣SM和中心類(lèi)圖數(shù)目center Num
輸出:中心類(lèi)圖集合center CDs
其中,中心類(lèi)圖集合centerCDs初始化為空。計(jì)算SM每一行的平均值(row SimAVG),從中找到最大值,該行對(duì)應(yīng)的類(lèi)圖即為一個(gè)中心類(lèi)圖cd p,如果中心類(lèi)圖集centerCDs中不存在cd p(有時(shí)候目錄中會(huì)出現(xiàn)兩個(gè)完全相同的類(lèi)圖),則插入,然后從SM中刪除這個(gè)類(lèi)圖對(duì)應(yīng)的行和列,繼續(xù)在SM中查找下一個(gè)中心類(lèi)圖,直到找到指定數(shù)目center Num為止。
假定一個(gè)目錄的類(lèi)圖數(shù)量為n1,則獲取目錄中類(lèi)圖的相似性矩陣的時(shí)間復(fù)雜度為;要尋找中心類(lèi)圖數(shù)量為m1,則在目錄中查找特征類(lèi)圖的復(fù)雜度是O(m1×n1)。所以,總的時(shí)間復(fù)雜度為
本文構(gòu)建了一個(gè)2級(jí)分類(lèi)的集成分類(lèi)器E-KNN,如圖1所示。
圖1 集成分類(lèi)器E-KNN
分類(lèi)過(guò)程分為兩個(gè)階段。UML類(lèi)圖首先進(jìn)入分類(lèi)器E1-KNN進(jìn)行初級(jí)分類(lèi),產(chǎn)生可能分類(lèi)的目錄。然后,由分類(lèi)器E2-KNN決定最終分類(lèi)目錄。很多情況下,分類(lèi)結(jié)果也能由E1-KNN直接決定,而不需要進(jìn)入E2-KNN。E1-KNN和E2-KNN都是基于KNN算法。在KNN中,所有樣例參與相似性計(jì)算,所以存在分類(lèi)效率低問(wèn)題[20]。同時(shí),K的設(shè)置和樣例分布也影響分類(lèi)的準(zhǔn)確性。這些問(wèn)題需要在E-KNN中考慮。
2.2.1 E1-KNN分類(lèi)器
E1-KNN的分類(lèi)計(jì)算是基于中心類(lèi)圖集合,而不是所有訓(xùn)練樣例,相似性計(jì)算次數(shù)明顯減少。E1-KNN分類(lèi)器的分類(lèi)可能產(chǎn)生3種結(jié)果:
(1)類(lèi)圖不能被分類(lèi)到現(xiàn)有的目錄。
(2)類(lèi)圖被分類(lèi)到一個(gè)確定的目錄。
(3)輸出初級(jí)分類(lèi)目錄。
針對(duì)結(jié)果(1),標(biāo)記不屬于現(xiàn)有分類(lèi)目錄為C0。當(dāng)在最高的的K個(gè)相似性中,屬于分類(lèi)目錄的平均相似性值μ<μ0時(shí),類(lèi)圖不能被分類(lèi)到現(xiàn)有目錄,即分類(lèi)到C0,分類(lèi)過(guò)程終止。
針對(duì)結(jié)果(2),這里規(guī)定,當(dāng)在最高的K個(gè)相似性值中屬于分類(lèi)目錄的類(lèi)圖的數(shù)量w≥w0,分類(lèi)目錄確定,分類(lèi)結(jié)束。
表3 訓(xùn)練樣例的特征
參數(shù)μ0和w0能通過(guò)訓(xùn)練獲得,訓(xùn)練過(guò)程如下:
步驟1獲取目錄中心類(lèi)圖集合,將所有訓(xùn)練樣例分為中心類(lèi)圖(m)和測(cè)試類(lèi)圖(n-m)兩個(gè)集合。
步驟2計(jì)算每個(gè)測(cè)試類(lèi)圖和每個(gè)中心類(lèi)圖的相似性,并基于KNN進(jìn)行分類(lèi)。
步驟3計(jì)算每個(gè)測(cè)試類(lèi)圖的μ和w。
步驟4統(tǒng)計(jì)所有測(cè)試類(lèi)圖正確分類(lèi)的比率λ1,如果λ1<λ0(λ0為預(yù)先設(shè)定,一般λ0≥0.90),重新設(shè)定每個(gè)目錄中心類(lèi)圖的數(shù)量(如m0=m0+1),并返回步驟1。否則,獲得
訓(xùn)練參數(shù)的時(shí)間復(fù)雜度為O(r×m×(n-m)),r為迭代次數(shù),一般在3~7次可以完成參數(shù)訓(xùn)練。
針對(duì)結(jié)果(3),取最高的平均相似性值對(duì)應(yīng)的目錄(通常不會(huì)超過(guò)3個(gè))作為分類(lèi)器E1-KNN的輸出。
E1-KNN的具體分類(lèi)流程如圖2所示。
圖2 E1-KNN分類(lèi)流程
在E1-KNN中,類(lèi)圖被分類(lèi)到現(xiàn)有目錄的必要條件是分類(lèi)目錄唯一,充分條件是μx≥μ0和w x≥w0。同時(shí),C0的標(biāo)識(shí)可以為將來(lái)擴(kuò)展未知類(lèi)別類(lèi)圖的分類(lèi)提供支持。
2.2.2 E2-KNN分類(lèi)器
E2-KNN分類(lèi)計(jì)算是基于E1-KNN輸出目錄的樣例而不是所有樣例,所以效率明顯提高。同時(shí),在處理K(高于E1-KNN中的K值)個(gè)最高相似性值中屬于不同目錄的類(lèi)圖數(shù)量相等的問(wèn)題時(shí),針對(duì)訓(xùn)練數(shù)據(jù)分布情況分別給出解決方案。
(1)K+X。即,擴(kuò)大K的范圍,然后獲取分類(lèi)目錄。通常,X=K/2。這種解決方案的前提是不同目錄的樣例分布均勻。
(2)目錄平均值。分別統(tǒng)計(jì)屬于不同目錄的樣例對(duì)應(yīng)的相似性平均值μ,類(lèi)圖被分類(lèi)到平均值高的對(duì)應(yīng)的目錄,此方案適用于樣例分布不均勻的情況。
E2-KNN主要針對(duì)建模交叉領(lǐng)域項(xiàng)目的類(lèi)圖的分類(lèi)。這些項(xiàng)目的類(lèi)圖包含來(lái)自不同領(lǐng)域的語(yǔ)義信息,經(jīng)常不能通過(guò)基于有限的中心類(lèi)圖的分類(lèi)器E1-KNN給出確定的分類(lèi)目錄。
實(shí)驗(yàn)中使用的UML類(lèi)圖來(lái)自Google(Searchcode)的Java代碼的反向工程[21]。訓(xùn)練樣例分為五個(gè)領(lǐng)域,分別為教育(C1)、醫(yī)療(C2)、金融(C3)、房地產(chǎn)(C4)和電子商務(wù)(C5)等。為了驗(yàn)證樣例分布和尺寸均勻與否對(duì)分類(lèi)的影響,樣例被分成4個(gè)組,每組500個(gè),細(xì)節(jié)如表3所示。此外,200個(gè)類(lèi)圖被用于測(cè)試,其中,20個(gè)測(cè)試樣例來(lái)自非上述領(lǐng)域(C0)。同時(shí),包含交叉領(lǐng)域信息的類(lèi)圖的數(shù)目也是20。使用Java語(yǔ)言實(shí)現(xiàn)了本文所提出的分類(lèi)方法,并且在PC機(jī)(Win 10,Intel Core i7,RAM 8 GB)上執(zhí)行。語(yǔ)義相似性計(jì)算權(quán)重參數(shù)設(shè)置:λ=0.3,α=0.5,β=0.3,γ=0.2,β1=0.5,β2=0.3,β3=0.2,γ1=0.4,γ2=0.3,γ3=0.2,γ4=0.1。通過(guò)訓(xùn)練獲得分類(lèi)器E1-KNN中參數(shù)設(shè)置,如表4所示。
表4 參數(shù)設(shè)定
分類(lèi)質(zhì)量可以從準(zhǔn)確率P、完成率R和二者調(diào)和平均值F三個(gè)指標(biāo)來(lái)度量。這里設(shè)定A表示正確地分類(lèi)的測(cè)試樣例的數(shù)量;B表示錯(cuò)誤地分類(lèi)的測(cè)試樣例的數(shù)量;C表示應(yīng)該分類(lèi)但是沒(méi)有分類(lèi)的測(cè)試樣例數(shù)量。P、R和F公式為:
測(cè)試樣例在4個(gè)訓(xùn)練樣例組上執(zhí)行分類(lèi)獲得的分類(lèi)質(zhì)量如圖3所示。
圖3 E-KNN分類(lèi)質(zhì)量
可以看出,g1獲得分類(lèi)質(zhì)量最高,g4最低,總體差別不大。無(wú)論哪個(gè)樣例組,分類(lèi)的完成率要高于準(zhǔn)確率。這是因?yàn)椋?jīng)過(guò)兩級(jí)分類(lèi)不能最終決定分類(lèi)目錄的樣例數(shù)量很少。
從分布上看,分類(lèi)質(zhì)量受樣例分布的影響不大。如由g1和g3獲得的分類(lèi)質(zhì)量差異很小,同樣的事情也發(fā)生在g2和g4上。這是因?yàn)?,在E1-KNN中使用了中心類(lèi)圖,而中心類(lèi)圖在分布均勻和不均勻的樣例中的數(shù)量差異不大,這也屏蔽了分布差異對(duì)分類(lèi)的影響;在E2-KNN中,提出的平均相似性的計(jì)算也避免了分類(lèi)受分布影響的問(wèn)題。
樣例尺寸差異還是使得分類(lèi)質(zhì)量表現(xiàn)出不同,盡管不大。由均勻尺寸的訓(xùn)練樣例獲得的分類(lèi)質(zhì)量要高于不均勻尺寸獲得的分類(lèi)質(zhì)量,如g1和g3分別高于g2和g4。這是因?yàn)?,大尺寸的?lèi)圖就包含了更多的語(yǔ)義信息,而小尺寸的類(lèi)圖包含的信息較少。當(dāng)一個(gè)小尺寸的類(lèi)圖進(jìn)行分類(lèi)時(shí)偶爾會(huì)被分類(lèi)到錯(cuò)誤的大尺寸類(lèi)圖的目錄,特別是對(duì)于交叉領(lǐng)域的測(cè)試樣例。如測(cè)試樣例中關(guān)于“醫(yī)療學(xué)?!钡腢ML類(lèi)圖,有時(shí)會(huì)被錯(cuò)誤地分類(lèi)到“醫(yī)療”領(lǐng)域,盡管它應(yīng)該被分類(lèi)到“教育”領(lǐng)域。
接下來(lái),將上述集成分類(lèi)(E-KNN)獲得的分類(lèi)質(zhì)量(F值)和分別由一級(jí)(E1-KNN)和二級(jí)(E2-KNN)分類(lèi)獲得的分類(lèi)質(zhì)量進(jìn)行對(duì)比,結(jié)果如圖4所示。
可以看出,由E-KNN獲得的分類(lèi)質(zhì)量明顯高于僅由分類(lèi)器E1-KNN和E2-KNN獲得的分類(lèi)質(zhì)量。E1-KNN在分類(lèi)交叉領(lǐng)域類(lèi)圖時(shí)有時(shí)不能決定最終目錄,而E2-KNN不能處理C0的問(wèn)題,且受訓(xùn)練樣例分布影響較大。由E1-KNN和E2-KNN結(jié)合組成的E-KNN恰好有效地解決了這些問(wèn)題。
圖4 一級(jí)和二級(jí)分類(lèi)質(zhì)量對(duì)比
最后,將獲得的分類(lèi)質(zhì)量(F值)和(平均)效率與由常用分類(lèi)算法KNN、NB、LR、SVM、EN(KNN(4)和NB(3))獲得的結(jié)果比較。因?yàn)長(zhǎng)R和SVM被用于二分類(lèi),這里訓(xùn)練樣例為5個(gè)類(lèi)別目錄,所以,分別訓(xùn)練了5個(gè)分類(lèi)器(一對(duì)多)實(shí)現(xiàn)多分類(lèi),以函數(shù)值決定分類(lèi)目錄。分類(lèi)器EN是分別由基分類(lèi)器KNN和NB構(gòu)成的集成分類(lèi)器,分類(lèi)結(jié)果通過(guò)舉手表決。中心類(lèi)圖中的類(lèi)組成NB、LR和SVM的特征。所有分類(lèi)方法均使用提出的相似性度量。分類(lèi)質(zhì)量和效率比較如圖5和圖6所示。
圖5 分類(lèi)質(zhì)量比較
圖6 分類(lèi)效率比較
從分類(lèi)質(zhì)量上看,幾種分類(lèi)器在樣例組g1獲得的分類(lèi)質(zhì)量最高,而由樣例組g4獲得的分類(lèi)質(zhì)量最低。提出的分類(lèi)方法獲得的分類(lèi)質(zhì)量要優(yōu)于其他分類(lèi)器。同時(shí),也能看到,單分類(lèi)器的分類(lèi)質(zhì)量受到分布的影響。集成分類(lèi)器EN的分類(lèi)質(zhì)量要優(yōu)于單分類(lèi)器。在單分類(lèi)器中,KNN分類(lèi)質(zhì)量最高。從分類(lèi)效率上看,提出分類(lèi)器的分類(lèi)效率要優(yōu)于其他幾種分類(lèi)器,尤其是KNN分類(lèi)效率最低,每次分類(lèi)都需要大量的相似性計(jì)算。中心類(lèi)圖的引入減少了大量的計(jì)算。同時(shí),兩級(jí)分類(lèi)使得很多測(cè)試樣例的分類(lèi)直接由分類(lèi)器E1-KNN給出結(jié)果,而沒(méi)有進(jìn)入分類(lèi)器E2-KNN。所以,無(wú)論從分類(lèi)質(zhì)量還是從分類(lèi)效率上比較,本文提出的分類(lèi)方法都要優(yōu)于其他分類(lèi)器。
本文以UML類(lèi)圖的重用為背景,從語(yǔ)義上提出UML類(lèi)圖的分類(lèi)。定義了類(lèi)圖的語(yǔ)義相似性,提出算法獲取中心類(lèi)圖標(biāo)識(shí)目錄特征,基于改進(jìn)的KNN分別構(gòu)建了E1-KNN和E2-KNN,并組建了集成分類(lèi)器E-KNN。實(shí)驗(yàn)結(jié)果表明,本文提出的兩級(jí)集成分類(lèi)器解決了其他分類(lèi)器受計(jì)算量影響而產(chǎn)生的效率問(wèn)題,也解決了受分布和尺寸影響而產(chǎn)生的分類(lèi)質(zhì)量問(wèn)題,和其他幾種分類(lèi)器相比具有顯著優(yōu)勢(shì)。在接下來(lái)的工作中,嘗試結(jié)合其他算法提高效率是一個(gè)主要方向。此外,將語(yǔ)義分類(lèi)和結(jié)構(gòu)分類(lèi)相結(jié)合以實(shí)現(xiàn)類(lèi)圖的混合分類(lèi)是另一個(gè)將要開(kāi)展的工作。