童 偉 王淑營(yíng)
(西南交通大學(xué) 信息科學(xué)與技術(shù)學(xué)院,四川 成都610000)
隨著工藝技術(shù)的發(fā)展,各制造型企業(yè)的產(chǎn)品數(shù)量和種類不斷增多,伴隨著產(chǎn)品的工藝設(shè)計(jì)產(chǎn)生的工序卡片數(shù)量也在激增。在如此龐大的工序卡片數(shù)量之下,想要靠人工來找出與一張工序卡片相似的其它工序卡片進(jìn)行推薦幾乎是不可能完成的任務(wù),但工藝員在進(jìn)行工序設(shè)計(jì)時(shí),與該工藝相似的工序卡片能夠?yàn)楣に噯T提供參考,能夠極大的提高工藝員的工序設(shè)計(jì)效率。如何從海量的工序卡片中找到相似的工序卡片是迫切需要解決的問題,而文本相似度判斷技術(shù)的發(fā)展為解決該問題提供了有力的技術(shù)支持。本文以機(jī)械制造型企業(yè)的工序卡片為研究對(duì)象,基于工藝的特點(diǎn),通過結(jié)合Jaccard相似度計(jì)算方法與Levenshtein距離計(jì)算方法,計(jì)算出兩張工序卡片中各個(gè)需要參與相似度判斷的項(xiàng)之間的相似度,然后將各項(xiàng)之間的相似度相結(jié)合,最終獲得兩張工序卡片的相似度。
相似度計(jì)算算法的選擇是本研究最重要的部分,目前,常見的文本相似度計(jì)算方法有閔可夫斯基距離、曼哈頓距離、歐氏距離、余弦相似度、杰卡德相似系數(shù)、計(jì)算編輯距離等,隨著信息技術(shù)的發(fā)展,國內(nèi)外學(xué)者對(duì)文本相似度計(jì)算方法的研究不斷深入,藏潤(rùn)強(qiáng),孫紅光等人基于Levenshtein和TFRSF提出了一種文本相似度計(jì)算方法,石彩霞等人提出了一種多重檢驗(yàn)加權(quán)融合的短文本相似度計(jì)算方法,艾楚涵,姜迪等人基于主題模型和文本相似度計(jì)算進(jìn)行了專利推薦的研究,郭浩、許偉等人基于CNN和BiLSTM提出了一種短文本相似度的計(jì)算方法,Jiaqi Yang,Yongjun Li等人基于語義和句法信息提出了一種文本相似度的度量方法,考慮到兩工序卡片各個(gè)項(xiàng)之間文字?jǐn)?shù)量較少,屬于短文本的特點(diǎn),初步選出杰卡德相似系數(shù)與計(jì)算編輯距離這兩種適合計(jì)算短文本相似度的方法。
本文所使用的杰卡德相似系數(shù)基本公式為:
本文所使用的Levenshtein最小編輯距離的計(jì)算公式為:
該距離是描述由一個(gè)字串轉(zhuǎn)化成另一個(gè)字串最少的操作次數(shù),在其中的操作包括插入、刪除、替換??梢钥闯觯谕茸址L(zhǎng)度下,兩字符串的相似度越高,計(jì)算編輯距離的值反而越小,不便于后續(xù)計(jì)算。因此,本文提出另一種表示計(jì)算編輯距離的相似度的方法,將計(jì)算編輯距離得出的結(jié)果轉(zhuǎn)換為計(jì)算編輯距離相似度表示,其公式為:
k=(p-q)/p
p:兩字符串中長(zhǎng)字符串的長(zhǎng)度。
q:最少操作次數(shù)。
k:計(jì)算編輯距離相似度。
可以看出,在兩字符串完全不同時(shí),其計(jì)算編輯距離相似度為0,隨著字符串相似度的增大,其計(jì)算編輯距離相似度也隨之增加,在兩字符串完全相同時(shí),其計(jì)算編輯距離相似度為1。
工序卡片的產(chǎn)品名稱、零件名稱和工序名稱這類項(xiàng)能直接通過單項(xiàng)相似度來判斷工序卡片相似度,且工序卡片相似度隨這些項(xiàng)相似度提高而提高,將這類項(xiàng)歸為一類(下文簡(jiǎn)稱第一類),這類項(xiàng)的相似度計(jì)算方法采用結(jié)合杰卡德相似系數(shù)與Levenshtein最小編輯距離兩種短文本相似度計(jì)算公式的方法,具體相似度計(jì)算公式如下:
第一類工序項(xiàng)單項(xiàng)相似度計(jì)算公式
第一類工序項(xiàng)總相似度計(jì)算公式
將加工設(shè)備名稱、夾具名稱這類名稱相同工序不一定相似,但名稱不同工序間差異較大,所以不便于通過單項(xiàng)相似度來直接判斷工序卡片相似度的項(xiàng)歸為另一類(下文簡(jiǎn)稱第二類)。這些項(xiàng)與工藝相似度雖有較大聯(lián)系,但與第一類中的項(xiàng)不同,存在一定的特殊性,其特殊性在于:這些項(xiàng)若有一個(gè)字不同,則表達(dá)了兩種完全不同的含義,如工藝車床與工藝銑床只有一字之差,表達(dá)的卻是兩種完全不同的設(shè)備,其能處理的工藝也完全不同。所以這些項(xiàng)不便于用文本相似度判斷方法判斷相似度。本文根據(jù)這一特殊性,通過實(shí)驗(yàn)后,提出一種較為實(shí)用的判斷此類項(xiàng)相似度的方法:若兩張工序卡片中的此類項(xiàng)的同一項(xiàng)完全相同,則此項(xiàng)相似度為1,若不同,不管差異大小,此項(xiàng)相似度記為0,相似度計(jì)算公式如下:
第二類工序項(xiàng)單項(xiàng)相似度計(jì)算公式
第二類工序項(xiàng)總相似度計(jì)算公式
在得出兩類工序項(xiàng)的相似度后,需對(duì)其進(jìn)行結(jié)合。兩類項(xiàng)的相似度都對(duì)兩張工序卡片的最終相似度有極大影響,需避免出現(xiàn)若某類項(xiàng)相似度極高,即使另一類相似度不高,得出的工序卡片最終相似度也較高的情況,所以采用將兩類項(xiàng)的相似度相乘,得出最終相似度的方案。計(jì)算公式如下:
總相似度計(jì)算公式
本次實(shí)驗(yàn)使用python語言編寫了pdf文字提取代碼,提取出收集的2000余張汽車制造領(lǐng)域工序卡片中的文字信息,轉(zhuǎn)化為結(jié)構(gòu)化數(shù)據(jù)后存儲(chǔ)到數(shù)據(jù)庫中,為后續(xù)的實(shí)驗(yàn)做準(zhǔn)備。
咨詢相關(guān)工藝員后對(duì)這2000余張工序卡片進(jìn)行分類,將相似工序卡片歸為一類,編寫python程序根據(jù)上述方法分別判斷各工序卡片與其余工序卡片的相似度,將得到的結(jié)果與之前的預(yù)分類結(jié)果進(jìn)行比較,測(cè)試在對(duì)不同項(xiàng)賦予不同權(quán)重時(shí)所得結(jié)果的準(zhǔn)確度,以此得到各項(xiàng)的最佳權(quán)重。
此類項(xiàng)包括產(chǎn)品名稱、零件名稱和工序名稱,這些項(xiàng)的相似度能直接代表兩工序的相似度,其中工序名稱與工序的聯(lián)系最為緊密,是判斷工序相似度最為重要的依據(jù)[5],因此該項(xiàng)的相似度在第一類工序項(xiàng)相似度中占有最大比重(圖1、2)。
圖1 不同工序名稱占比下最高相似度計(jì)算準(zhǔn)確度
圖2 78%工序名稱占比下不同零件名稱占比相似度計(jì)算準(zhǔn)確度
圖3
通過實(shí)驗(yàn)得出,在判斷第一類工序項(xiàng)相似度時(shí),各項(xiàng)相似度所占比重為:產(chǎn)品名稱7%、零件名稱15%、工序名稱78%時(shí),得出的結(jié)果較優(yōu)。在計(jì)算相似度時(shí),使用杰卡德相似系數(shù)與計(jì)算編輯距離相似度相結(jié)合的方法,兩種相似度計(jì)算方法得出的相似度值各占第一類工序項(xiàng)相似度最終結(jié)果的50%。例如有如下兩張工序卡片片段。
這兩張工序卡片的產(chǎn)品名稱與零件名稱的杰卡德相似系數(shù)與計(jì)算編輯距離均為1,工序名稱的杰卡德相似系數(shù)為2/6=0.33 ,工序名稱的計(jì)算編輯距離相似度為(5-3)/5=0.4 工序名稱最終相似度為(0.33 +0.4 )/2=0.37 ,其第一類工序項(xiàng)相似度為1*0.07 +1*0.15 +0.37 *0.78 =0.5086 。
此類中的項(xiàng)包括設(shè)備名稱和夾具名稱,通過大量實(shí)驗(yàn)計(jì)算在第一類項(xiàng)取最優(yōu)的情況下,這兩項(xiàng)在占不同比重下相似度計(jì)算的準(zhǔn)確度,實(shí)驗(yàn)情況如圖4所示。
圖4 第一類工序項(xiàng)最優(yōu)占比下不同設(shè)備名稱占比相似度計(jì)算準(zhǔn)確度
實(shí)驗(yàn)得出,在判斷第二類工序項(xiàng)相似度時(shí),各項(xiàng)相似度所占比重為:設(shè)備名稱71%、夾具名稱29%時(shí),得出的結(jié)果較優(yōu)。例如有如下兩張工序卡片片段(圖5)。
圖5
這兩張工序卡片的設(shè)備名稱相似度為1,夾具名稱相似度為0,其第二類工序項(xiàng)相似度為1*0.71 +0*0.29 =0.71 。
分別得到兩類項(xiàng)的相似度值后,再將這兩個(gè)相似度值相乘,最終得到這兩張工序卡片的相似度值。例如結(jié)合3.1 、3.2 得出的兩類工序項(xiàng)的結(jié)果,工序卡片一、工序卡片二最終相似度為0.5086 *0.71 =0.361 。
本文針對(duì)工序卡片信息,從工序卡片的各工序項(xiàng)入手,將工序項(xiàng)分為兩類,利用文本相似度計(jì)算方法計(jì)算第一類工序項(xiàng)相似度,針對(duì)第二類工序項(xiàng)的特殊性,將第二類工序項(xiàng)按是否相同設(shè)置固定的相似度,再根據(jù)工序的特點(diǎn)進(jìn)行結(jié)合,最終得出兩張工序卡片的相似度值。實(shí)驗(yàn)結(jié)果表明,該方法能較為準(zhǔn)確的判斷兩張工序卡片的相似度,且能適用于多個(gè)領(lǐng)域的工序卡片。