模糊字符串匹配在“重新編碼”窗格中,有一個選項可以對允許模糊匹配的字符串進行分組。
JSL 是否有用於進行模糊字符串匹配的函數? 如果有的話,我很難找到它。 幫助!
約翰
回复:模糊字符串匹配因為Python的字符串分隔符是單引號字符(參見JSL雙引號),所以需要對其進行轉義。 您還應該將以下兩行放在函數的開頭:
Substitute Into(str1, "'", "\'");
Substitute Into(str2, "'", "\'");
回复:模糊字符串匹配在後續工作中,我遇到了一個 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 中。)
回复:模糊字符串匹配你也許可以使用最短的編輯腳本製作一個。 腳本索引中的示例將兩個字符串按順序共享的字符組合成一個字符串。