模糊字符串匹配在“重新编码”窗格中,有一个选项可以对允许模糊匹配的字符串进行分组。
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 中。)
回复:模糊字符串匹配你也许可以使用最短的编辑脚本制作一个。 脚本索引中的示例将两个字符串按顺序共享的字符组合成一个字符串。