該GITHUB存儲庫包括在兩個過程模型中匹配活動的“相似性共振”概念的Python實現。該算法的目的是擴展標籤相似性的概念,並以全球上下文相似性來稱讚它。原始論文和想法是由Eindhoven技術大學的Nour Assy,Boudewijn F. Van Dongen和Mp van der Aalst撰寫的。有關理論的參考,請查看原始論文(鏈接)。另外,您可以查看作者在此處使用的演示幻燈片(PDF下載)
該算法是在Python 3.9上開發的。提供的要求。 txtPip文件可用於安裝程序工作所需的所有依賴項。我建議將其安裝在虛擬環境中。主要依賴性是:
可選:為了獲得測試的初始標籤相似性值,使用了軟件包。這些依賴項很大(700MB+),因此在單獨的文件中(unignts_spacy.txt)。如果您打算使用此軟件包,請也安裝。如果您想使用自己的初始相似性測量值,請確保以字典的格式將SIML輸出在其中:tuple [str,str] - > valuat:float。
確保將下載的存儲庫放入環境的Python站點包裝夾中。 (例如/usr/local/anaconda3/envs/myenv/lib/python3.9/site-packages/)
警告:為了計算初始標籤的相似性,我選擇與大型模型一起使用Spacy。這將需要一些時間才能下載。通過需求安裝。 TXT文件將自動下載其他模塊。如果手動安裝依賴項,請確保還從此處獲取此模塊。
Model1:源模型(Petri Net)
模型2:目標模型(培養皿網)
SIML:初始標籤相似性值(字典|鍵:元組[str,str] - > float)
答:定義相似性值應依賴於全局上下文相似性的程度。 0根本不是,1.0就是所有。 a∈[0,1]
K:定義與應視為鄰居的過渡的距離。 k∈N+
l_thresh:將匹配的似然比閾值定義為相似。 l_thresh∈[0,1]
import pm4py
from similarity_resonance . src . label_sim import algorithm as label_sim
from similarity_resonance . src . similarity_resonance import apply as sim_res
from similarity_resonance . src . matching import match_single
petri1 = pm4py . read_petri_net ( 'link/to/petri/net/1' )
petri2 = pm4py . read_petri_net ( 'link/to/petri/net/2' )
siml = label_sim ( petri1 [ 0 ], petri2 [ 0 ])
similarity_values = sim_res ( petri1 , petri2 , siml , a = 0.3 , k = 2 , l_thresh = 0.2 )
top_matches = match_single ( similarity_values )
for key , value in top_matches . items ():
print ( key , value )