模糊字符串匹配在“重新编码”窗格中,有一个选项可以对允许模糊匹配的字符串进行分组。
是否有用于进行模糊字符串匹配的 JSL 函数? 如果有,我很难找到它。 帮助!
约翰
Re: 模糊字符串匹配因为 Python 的字符串分隔符是单引号字符(参见 JSL 双引号),所以需要对其进行转义。 您还应该将以下两行放在函数的开头:
Substitute Into(str1, "'", "\'");
Substitute Into(str2, "'", "\'");
Re: 模糊字符串匹配紧接着,我遇到了一个 Python 开放包,它提供了各种字符串相似性度量。 好像真的做得很好。 它在:
https://github.com/luozhouyang/python-string-similarity
编写一个小 JSL 函数来包装这个包中的一个 Python 函数很简单,例如,我决定使用那里实现的 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: 模糊字符串匹配您也许可以使用最短编辑脚本做一个。 脚本索引中的示例将两个字符串按顺序共享的字符组合在一起。