0

我正在尝试在 python 中使用 Jaro Winkler 算法实现字符串之间的相似度度量,我正在使用 anaconda 环境并将其部署在阿里云 ECS 实例上。

我用来查找相似性的示例代码:

from pyjarowinkler import distance
print ("Average Score ---->", distance.get_jaro_distance("hello", "haloa"))

Average Score ---->0.76

当我处理 60 万条记录时,需要 20 多分钟。处理大量记录非常慢。有没有其他方法可以以低开销和高精度找到记录之间的相似性度量?

4

1 回答 1

1

Jaro Winkler 距离,表示两个字符串之间的相似度得分。Jaro 度量是来自每个文件的匹配字符百分比和转置字符的加权和。Winkler 增加了这个措施来匹配初始字符。

原始实现基于可在Wikipedia上找到的 Jaro Winkler Similarity Algorithm 文章。这个 Python 版本的原始实现基于Apache StringUtils 库

与您将在 StringUtils 库中找到的类似的单元测试用于验证实现。

>>> from pyjarowinkler import distance
>>> # Scaling is 0.1 by default
>>> print distance.get_jaro_distance("hello", "haloa", winkler=True, scaling=0.1)
0.76
>>> print distance.get_jaro_distance("hello", "haloa", winkler=False, scaling=0.1)
0.733333333333

从此链接获取更多详细信息

我希望这将对您的查询有所帮助。

于 2018-11-28T17:06:13.753 回答