童 偉 王淑營
(西南交通大學 信息科學與技術學院,四川 成都610000)
隨著工藝技術的發展,各制造型企業的產品數量和種類不斷增多,伴隨著產品的工藝設計產生的工序卡片數量也在激增。在如此龐大的工序卡片數量之下,想要靠人工來找出與一張工序卡片相似的其它工序卡片進行推薦幾乎是不可能完成的任務,但工藝員在進行工序設計時,與該工藝相似的工序卡片能夠為工藝員提供參考,能夠極大的提高工藝員的工序設計效率。如何從海量的工序卡片中找到相似的工序卡片是迫切需要解決的問題,而文本相似度判斷技術的發展為解決該問題提供了有力的技術支持。本文以機械制造型企業的工序卡片為研究對象,基于工藝的特點,通過結合Jaccard相似度計算方法與Levenshtein距離計算方法,計算出兩張工序卡片中各個需要參與相似度判斷的項之間的相似度,然后將各項之間的相似度相結合,最終獲得兩張工序卡片的相似度。
相似度計算算法的選擇是本研究最重要的部分,目前,常見的文本相似度計算方法有閔可夫斯基距離、曼哈頓距離、歐氏距離、余弦相似度、杰卡德相似系數、計算編輯距離等,隨著信息技術的發展,國內外學者對文本相似度計算方法的研究不斷深入,藏潤強,孫紅光等人基于Levenshtein和TFRSF提出了一種文本相似度計算方法,石彩霞等人提出了一種多重檢驗加權融合的短文本相似度計算方法,艾楚涵,姜迪等人基于主題模型和文本相似度計算進行了專利推薦的研究,郭浩、許偉等人基于CNN和BiLSTM提出了一種短文本相似度的計算方法,Jiaqi Yang,Yongjun Li等人基于語義和句法信息提出了一種文本相似度的度量方法,考慮到兩工序卡片各個項之間文字數量較少,屬于短文本的特點,初步選出杰卡德相似系數與計算編輯距離這兩種適合計算短文本相似度的方法。
本文所使用的杰卡德相似系數基本公式為:

本文所使用的Levenshtein最小編輯距離的計算公式為:

該距離是描述由一個字串轉化成另一個字串最少的操作次數,在其中的操作包括插入、刪除、替換??梢钥闯?,在同等字符串長度下,兩字符串的相似度越高,計算編輯距離的值反而越小,不便于后續計算。因此,本文提出另一種表示計算編輯距離的相似度的方法,將計算編輯距離得出的結果轉換為計算編輯距離相似度表示,其公式為:
k=(p-q)/p
p:兩字符串中長字符串的長度。
q:最少操作次數。
k:計算編輯距離相似度。
可以看出,在兩字符串完全不同時,其計算編輯距離相似度為0,隨著字符串相似度的增大,其計算編輯距離相似度也隨之增加,在兩字符串完全相同時,其計算編輯距離相似度為1。
工序卡片的產品名稱、零件名稱和工序名稱這類項能直接通過單項相似度來判斷工序卡片相似度,且工序卡片相似度隨這些項相似度提高而提高,將這類項歸為一類(下文簡稱第一類),這類項的相似度計算方法采用結合杰卡德相似系數與Levenshtein最小編輯距離兩種短文本相似度計算公式的方法,具體相似度計算公式如下:

第一類工序項單項相似度計算公式

第一類工序項總相似度計算公式
將加工設備名稱、夾具名稱這類名稱相同工序不一定相似,但名稱不同工序間差異較大,所以不便于通過單項相似度來直接判斷工序卡片相似度的項歸為另一類(下文簡稱第二類)。這些項與工藝相似度雖有較大聯系,但與第一類中的項不同,存在一定的特殊性,其特殊性在于:這些項若有一個字不同,則表達了兩種完全不同的含義,如工藝車床與工藝銑床只有一字之差,表達的卻是兩種完全不同的設備,其能處理的工藝也完全不同。所以這些項不便于用文本相似度判斷方法判斷相似度。本文根據這一特殊性,通過實驗后,提出一種較為實用的判斷此類項相似度的方法:若兩張工序卡片中的此類項的同一項完全相同,則此項相似度為1,若不同,不管差異大小,此項相似度記為0,相似度計算公式如下:

第二類工序項單項相似度計算公式

第二類工序項總相似度計算公式
在得出兩類工序項的相似度后,需對其進行結合。兩類項的相似度都對兩張工序卡片的最終相似度有極大影響,需避免出現若某類項相似度極高,即使另一類相似度不高,得出的工序卡片最終相似度也較高的情況,所以采用將兩類項的相似度相乘,得出最終相似度的方案。計算公式如下:

總相似度計算公式
本次實驗使用python語言編寫了pdf文字提取代碼,提取出收集的2000余張汽車制造領域工序卡片中的文字信息,轉化為結構化數據后存儲到數據庫中,為后續的實驗做準備。
咨詢相關工藝員后對這2000余張工序卡片進行分類,將相似工序卡片歸為一類,編寫python程序根據上述方法分別判斷各工序卡片與其余工序卡片的相似度,將得到的結果與之前的預分類結果進行比較,測試在對不同項賦予不同權重時所得結果的準確度,以此得到各項的最佳權重。
此類項包括產品名稱、零件名稱和工序名稱,這些項的相似度能直接代表兩工序的相似度,其中工序名稱與工序的聯系最為緊密,是判斷工序相似度最為重要的依據[5],因此該項的相似度在第一類工序項相似度中占有最大比重(圖1、2)。

圖1 不同工序名稱占比下最高相似度計算準確度

圖2 78%工序名稱占比下不同零件名稱占比相似度計算準確度

圖3
通過實驗得出,在判斷第一類工序項相似度時,各項相似度所占比重為:產品名稱7%、零件名稱15%、工序名稱78%時,得出的結果較優。在計算相似度時,使用杰卡德相似系數與計算編輯距離相似度相結合的方法,兩種相似度計算方法得出的相似度值各占第一類工序項相似度最終結果的50%。例如有如下兩張工序卡片片段。
這兩張工序卡片的產品名稱與零件名稱的杰卡德相似系數與計算編輯距離均為1,工序名稱的杰卡德相似系數為2/6=0.33 ,工序名稱的計算編輯距離相似度為(5-3)/5=0.4 工序名稱最終相似度為(0.33 +0.4 )/2=0.37 ,其第一類工序項相似度為1*0.07 +1*0.15 +0.37 *0.78 =0.5086 。
此類中的項包括設備名稱和夾具名稱,通過大量實驗計算在第一類項取最優的情況下,這兩項在占不同比重下相似度計算的準確度,實驗情況如圖4所示。

圖4 第一類工序項最優占比下不同設備名稱占比相似度計算準確度
實驗得出,在判斷第二類工序項相似度時,各項相似度所占比重為:設備名稱71%、夾具名稱29%時,得出的結果較優。例如有如下兩張工序卡片片段(圖5)。

圖5
這兩張工序卡片的設備名稱相似度為1,夾具名稱相似度為0,其第二類工序項相似度為1*0.71 +0*0.29 =0.71 。
分別得到兩類項的相似度值后,再將這兩個相似度值相乘,最終得到這兩張工序卡片的相似度值。例如結合3.1 、3.2 得出的兩類工序項的結果,工序卡片一、工序卡片二最終相似度為0.5086 *0.71 =0.361 。
本文針對工序卡片信息,從工序卡片的各工序項入手,將工序項分為兩類,利用文本相似度計算方法計算第一類工序項相似度,針對第二類工序項的特殊性,將第二類工序項按是否相同設置固定的相似度,再根據工序的特點進行結合,最終得出兩張工序卡片的相似度值。實驗結果表明,該方法能較為準確的判斷兩張工序卡片的相似度,且能適用于多個領域的工序卡片。