岳強斌,歐 淵,石 倩
(1.軍械工程學(xué)院,石家莊 050003;2.中國國防科技信息中心,北京 100142)
裝備維修流程是裝備維修操作的具體實施程序,是裝備維修任務(wù)能否完成的關(guān)鍵。對裝備維修流程進行重新設(shè)計,能更加快速和有效地提高裝備維修流程效率,快速完成裝備維修任務(wù),恢復(fù)裝備戰(zhàn)斗力。
裝備維修流程設(shè)計需求是裝備維修流程設(shè)計的重要依據(jù)和根本基礎(chǔ)。由于獲取的裝備維修流程設(shè)計需求數(shù)量較大,因此需要將裝備維修流程設(shè)計需求進行分類,將針對同一問題的裝備維修流程設(shè)計需求歸到一起,并且區(qū)分其層次關(guān)系,以便于后續(xù)的流程設(shè)計工作。
裝備維修流程設(shè)計需求是針對不同的方面進行闡述的,可能涉及到層次上的區(qū)別,所以,本文選擇采用凝聚層次聚類法(hierarchical agglomerative clustering,HAC)來進行聚類分析。HAC又稱為合并型層次聚類,是一種自底向上的方法,將每一個對象看作一個聚類,把它們逐漸合并成越來越大的聚類[1]。在每一層中,根據(jù)一些規(guī)則將距離最近的2個聚類合并,直到滿足預(yù)先設(shè)定的終止條件。例如,所有的對象最終合為了1類,或者聚類的數(shù)目達到了預(yù)定值,或者最近的2個類之間的距離達到預(yù)定的閾值[2-3]。根據(jù)HAC的原理,基于HAC的裝備維修流程設(shè)計需求聚類分析過程如圖1所示,包括4個關(guān)鍵步驟:分詞、提取特征詞、相似度計算和聚類處理[4]。
圖1 基于HAC的裝備維修流程設(shè)計需求聚類分析過程
裝備維修流程設(shè)計需求是以短句的形式存在。裝備維修流程設(shè)計需求的基本要求是主題唯一,對象明確,語言簡明、具體等。但是對于后續(xù)的相似度計算,需要計算裝備維修流程設(shè)計需求之間的相似度,而句子之間的相似度是以詞語之間的相似度為基礎(chǔ)的,所以,首先要將其切分為詞語,對裝備維修流程設(shè)計需求進行分詞[5-6]。
由于裝備維修流程設(shè)計需求的結(jié)構(gòu)比較明了和清晰,分詞就變得相對比較容易,因此,本文采用基于規(guī)則分詞法中相對精確的逆向最大匹配法(reverse maximum matching method,RMM)來進行分詞,提出了基于RMM裝備維修流程設(shè)計需求的分詞方法[7]。
首先,定義進程P,其中x為待分詞的裝備維修流程設(shè)計需求所包含的漢字個數(shù),如圖2所示。由于RMM法的核心思想是將待分詞的裝備維修流程設(shè)計需求與裝備維修流程設(shè)計需求詞典庫中的詞條進行比對,因此,首先定義預(yù)處理分詞進程,引入一個計數(shù)參數(shù)k,在將k置零后將待分的裝備維修流程設(shè)計需求與詞典庫進行比對。若能匹配成功,則直接形成分詞結(jié)果;當(dāng)匹配不成功時去掉最左邊的一位,此時計數(shù)參數(shù)k=k+1,取后(x-k)位的裝備維修流程設(shè)計需求再進行匹配處理。若能成功匹配,則判斷k是否為零。k為零,表示待分詞的裝備維修流程設(shè)計需求是一次匹配成功;若k不為零,則要將去掉的最左邊的k位重新與裝備維修流程設(shè)計需求詞典庫進行比對,分詞成功以后,輸出分詞結(jié)果。
在定義了預(yù)定義的分詞進程P以后,采用RMM算法進行處理,算法流程如圖3所示。假設(shè)裝備維修流程設(shè)計需求詞典庫中最長詞條所包含的漢字個數(shù)為a,待分詞的裝備維修流程設(shè)計需求包含的漢字個數(shù)為b。
若a≥b,則表示待分詞的裝備維修流程設(shè)計需求中的漢字個數(shù)小于詞典庫中的最長詞條的漢字數(shù),此時應(yīng)將整個裝備維修流程設(shè)計需求與裝備維修流程設(shè)計需求詞典庫進行匹配,利用預(yù)定義進程P得到分詞的結(jié)果。
若a<b,則表示待分詞的裝備維修流程設(shè)計需求中的漢字個數(shù)大于詞典庫中的最長詞條的漢字數(shù),此時應(yīng)取裝備維修流程設(shè)計需求的后a個字進行分詞,同樣利用預(yù)定義進程P得到后a個字的分詞結(jié)果。再取裝備維修流程設(shè)計需求剩余的(ba)個字,此時,需要比對(b-a)與詞典庫中的最長詞條的漢字數(shù)a的大小關(guān)系。當(dāng)(b-a)≤a時,則可以直接將裝備維修流程設(shè)計需求剩余的(b-a)個字與詞典庫進行匹配,進行分詞處理。但是當(dāng)(b-a)>a時,這樣就與前述的a<b的情況一樣,因此,返回計算,重新取剩余裝備維修流程設(shè)計需求(b-a)個字的后a個字進行分詞處理。需要注意的是,在a<b的條件下,最終需要將所得的分詞結(jié)果進行合并,得到一個完整的分詞結(jié)果。
圖2 預(yù)定義的分詞進程P
圖3 RMM算法流程
對裝備維修流程設(shè)計來說,裝備維修流程設(shè)計需求就是對流程要達到水平的一些具體要求。那么,從意義上理解,其語句形式就是要使什么方面達到什么樣的程度。例如,裝備維修流程設(shè)計需求“工藝設(shè)計合理”,經(jīng)過原始的需求轉(zhuǎn)換得到的裝備維修流程設(shè)計需求的表達形式本來就是比較簡練,根據(jù)裝備維修流程設(shè)計需求的結(jié)構(gòu)特點,可以將裝備維修流程設(shè)計需求的結(jié)構(gòu)分為3部分:關(guān)鍵詞、屬性詞和程度詞。關(guān)鍵詞是裝備維修流程設(shè)計需求所描述的對象,是裝備維修流程設(shè)計需求的中心詞;屬性詞是裝備維修流程設(shè)計需求所描述對象的某一具體屬性;程度詞是所述裝備維修流程設(shè)計需求所要達到的目標(biāo)。
根據(jù)裝備維修流程設(shè)計需求的3部分結(jié)構(gòu),裝備維修流程設(shè)計需求特征值提取就是區(qū)分關(guān)鍵詞、屬性詞和核心詞,它們是裝備維修流程設(shè)計需求的主要內(nèi)容,也是進行相似度計算時的重要指標(biāo)。雖然裝備維修流程設(shè)計需求的表述已經(jīng)比較扼要,但分詞進行完成后,還會存在一些與關(guān)鍵詞、屬性詞和核心詞無關(guān)的助詞和副詞等,因此在進行特征值提取時,要將這些與裝備維修流程設(shè)計需求主要內(nèi)容意義表達無關(guān)的詞去掉。
裝備維修流程設(shè)計需求包括關(guān)鍵詞、屬性詞和程度詞3部分結(jié)構(gòu),因此裝備維修流程設(shè)計需求的相似度計算核心就是這3個詞語之間的相似度計算。根據(jù)裝備維修流程設(shè)計需求詞語相似度計算的特點,本文提出了基于知網(wǎng)(Hownet)的裝備維修流程設(shè)計需求語義相似度計算方法[8]。
裝備維修流程設(shè)計需求包含3部分詞語,本文所計算的裝備維修流程設(shè)計需求詞語相似度是指同類的詞語的相似度,如關(guān)鍵詞與關(guān)鍵詞的相似度,屬性詞與屬性詞的相似度,而程度詞是一些指標(biāo)和目標(biāo)方面的描述,可能是一些具體的數(shù)字,也可能是一些程度上的定性描述,所以計算它的相似度對整個裝備維修流程設(shè)計需求的相似度意義不大。因此,基于知網(wǎng)的裝備維修流程設(shè)計需求語義相似度計算方法計算的是關(guān)鍵詞和關(guān)鍵詞、屬性詞和屬性詞的相似度。分別計算出其相似度后,再對二者進行加權(quán)處理,得到整個裝備維修流程設(shè)計需求的相似度。
1.3.1 詞語相似度
假設(shè)有詞語 W1和W2。W1的義項有 n個:F11,F(xiàn)12,…,F(xiàn)1n,用 F1i表示,i=1,2,…,n。W2的義項有 m 個:F21,F(xiàn)22,…,F(xiàn)2m,用 F2j表示,j=1,2,…,m。
定義詞語W1和W2的相似度為
其含義是:2個詞語 W1和 W2的相似度SimW(W1,W2)等于二者各義項之間相似度SimF(F1i,F(xiàn)2j)的最大值。
由于義項是用多個義原來描述的,所以,義原的相似度計算是目前需要考慮的問題。定義2個義原 T1、T2,其相似度為
其中:d是T1、T2在義原層次體系中的路徑長度,是一個正整數(shù);α是一個可調(diào)節(jié)的參數(shù),其含義是相似度為0.5時的路徑長度。
在知網(wǎng)中,將實詞的語義表達分為4個部分:
1)第1獨立義原描述式。將2個義項的這一部分的相似度記為SimT1(T1,T2)。
2)其他獨立義原描述式。語義表達式中除第1獨立義原以外的所有其他獨立義原(或具體詞),將 2個義項的這一部分的相似度記為SimT2(T1,T2)。
3)關(guān)系義原描述式。語義表達式中所有的用關(guān)系義原描述式,將2個義項的這一部分的相似度記為 SimT3(T1,T2)。
4)符號義原描述式。語義表達式中所有的用符號義原描述式,將2個義項的這一部分的相似度記為 SimT4(T1,T2)。
在此定義的基礎(chǔ)上,義項F1和F2的語義相似度為
其中βi(1≤i≤4)是各義原的調(diào)節(jié)參數(shù),且β1+β2+ β3+β4=1,β1≥β2≥β3≥β4,表示從第 1 獨立義原到符號義原的相似度對整個義項的相似度依次遞減。第1獨立義原對義項相似度影響最大,因此β1比較大,一般在0.5以上。
1.3.2 裝備維修流程設(shè)計需求相似度
對于裝備維修流程設(shè)計需求,分別計算出對應(yīng)的關(guān)鍵詞和關(guān)鍵詞、屬性詞和屬性詞之間的相似度后,就可以計算整個裝備維修流程設(shè)計需求的相似度。
假設(shè)2個裝備維修流程設(shè)計需求為V1和V2,V1的關(guān)鍵詞和屬性為W11、W12,V2的關(guān)鍵詞和屬性為W21、W22,那么裝備維修流程設(shè)計需求V1和V2的相似度為
其中γ是關(guān)鍵詞和屬性詞的在計算相似度時的權(quán)重,根據(jù)實際情況確定。
聚類處理[9]是將裝備維修流程設(shè)計需求歸類的一個過程。首先對裝備維修流程設(shè)計需求聚類處理做如下假設(shè):
1)裝備維修流程設(shè)計需求集V={V1,V2,…,Vi,…,Vn}。
2)將V中的每個裝備維修流程設(shè)計需求Vi都看作是一個包括單個裝備維修流程設(shè)計需求的類Ci={Vi},因此,這些類構(gòu)成了V的一個聚類C={C1,C2,…,Ci,…,Cn}。
3)設(shè)t為相似度閾值,當(dāng)2個裝備維修流程設(shè)計需求相似度大于等于t時,才符合聚類基本條件,才可能歸為一類;當(dāng)2個裝備維修流程設(shè)計需求相似度小于t時,則認為二者屬于同一類。
聚類處理算法處理過程:
1)首先,計算其他聚類Cj(j≠i)分別與Ci的相似度Sim(Vi,Vj),計算出的相似度有(n-1)個。
2)判斷Sim(Ci,Cj)是否達到相似度閾值要求。若Sim(Ci,Cj)≥t,則將其列為可能相似的對象;若Sim(Ci,Cj)< t,則二者肯定不相似。
3)取滿足相似度閾值要求的Sim(Ci,Cj),取它們中的最大值即Max Sim(Ci,Cj),將二者聚為一類 CiCj。
4)將新的CiCj歸類繼續(xù)與其他類進行聚類。有CiCj與 Ck(Ck為其他任一類),則分別計算Sim(Ci,Ck)和 Sim(Cj,Ck),取二者均值 Average=[Sim(Ci,Ck)+Sim(Cj,Ck)]/2。若 Average≥t,則認為Ck與 CiCj相似,將其聚為新類 CiCjCk;若Average<t,則認為Ck與CiCj不相似,不進行聚類。
5)重復(fù)上述步驟,直至C中所有對象均不符合以上聚類條件,則聚類完成。
本文提出裝備維修流程設(shè)計需求聚類分析方法,以HAC為基本原理,通過分詞、提取特征詞、相似度計算和聚類處理4個關(guān)鍵步驟,實現(xiàn)了裝備維修流程設(shè)計需求的聚類分析,進行了層次關(guān)系區(qū)分,為后續(xù)裝備維修流程設(shè)計打下堅實基礎(chǔ)。
[1]孫衛(wèi),馬德云,歐陽為民,等.基于聚類的體制數(shù)據(jù)庫中的知識發(fā)現(xiàn)[J].計算機與現(xiàn)代化,2008(9):58-64.
[2]劉文軍,游興中.一種改進的凝聚層次聚類法[J].吉首大學(xué)學(xué)報:自然科學(xué)版,2011,32(4):11-14.
[3]羅可,洪亮亮,童小嬌.一種有效的分類型數(shù)據(jù)聚類方法[J].控制與決策,2011,26(10):1542 -1544.
[4]李玲玲.關(guān)于凝聚層次聚類時間復(fù)雜度的研究[J].宿州學(xué)院學(xué)報,2011,26(2):21 -22.
[5]羅桂瓊,費洪曉,戴弋.基于反序詞典的中文分詞技術(shù)研究[J].計算機技術(shù)與發(fā)展,2008,18(1):80 -83.
[6]胡錫衡.正向最大匹配法在中文分詞技術(shù)中的應(yīng)用[J].鞍山師范學(xué)院學(xué)報,2008,10(2):42 -45.
[7]徐殿軍,崔寶華.PHP+MYSQL環(huán)境下的中文分詞技術(shù)研究[J].遼寧師范大學(xué)學(xué)報:自然科學(xué)版,2008,31(1):57-59.
[8]金博,史彥軍,滕弘飛.基于語義理解的文本相似度算法[J].大連理工大學(xué)學(xué)報:自然科學(xué)版,2005,45(2):291-297.
[9]潘有能.XML文檔自動聚類研究[J].情報學(xué)報,2006,25(2):215-220.
[10]王偉.文本自動聚類技術(shù)研究[J].情報雜志,2009(2):94-97.