模糊字符串匹配在重新編碼窗格中,有一個選項可以對允許模糊匹配的字符串進行分組。
是否有用於進行模糊字符串匹配的 JSL 函數? 如果有,我很難找到它。 幫助!
約翰
Re: 模糊字符串匹配因為Python的字符串分隔符是單引號字符(參見JSL雙引號),所以需要轉義。 您還應該將以下兩行放在函數的開頭:
Substitute Into(str1, "'", "\'");
Substitute Into(str2, "'", "\'");
Re: 模糊字符串匹配就在後續,我遇到了一個 Python 開放包,它提供了各種字符串相似性度量。 看起來真的做得很好。 它在:
https://github.com/luozhouyang/python-string-similarity
在這個包中編寫一個包裝 Python 函數之一的小 JSL 函數很簡單,例如,我決定使用在那裡實現的 Jaro-Winkler 算法。 我的功能如下所示:
JaroWinkler = Function( {str1, str2},
{arg, rslt},
arg = Eval Insert(
"\[
from strsimpy.jaro_winkler import JaroWinkler;
jarowinkler = JaroWinkler();
rslt = jarowinkler.similarity('^str1^', '^str2^')
]\"
);
Python Init();
Python Submit( arg );
rslt = Python Get( rslt );
Python Term();
rslt;
);
<BR /><BR />
rslt = JaroWinkler( "My string", "My tsring" );
Show( rslt ); // Log displays the following: rslt = 0.974074074074074;<BR />(我在 Mac 上使用 Python 3.8。strsimpy 確實依賴於 numpy,它必須安裝在你的 Python 中。)
Re: 模糊字符串匹配你也許可以使用最短編輯腳本做一個。 腳本索引中的示例將兩個字符串按順序共享的字符組合成一個字符串。