我试图用python中的Jaro算法实现字符串之间的相似性度量,我正在使用anaconda环境并将其部署到阿里巴巴云ECS实例中。
我用来查找相似性的示例代码:
from pyjarowinkler import distance
print ("Average Score ---->", distance.get_jaro_distance("hello", "haloa"))
Average Score ---->0.76
当我处理600 K的记录时,需要超过20分钟。处理大量记录是非常缓慢的。有没有其他方法可以找到低开销和高精度的记录之间的相似性度量?
发布于 2018-11-28 17:06:13
Jaro Winkler距离,它表示两个字符串之间的相似性评分。Jaro度量是每个文件中匹配字符的百分比和转换字符的加权总和。Winkler增加了此度量,以匹配初始字符。
最初的实现是基于在维基百科上可以找到的Jaro相似算法文章。这个Python版本的原始实现是基于Apache StringUtils库。
Unittest与您在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
从此链接获得更详细的信息
我希望这将有助于您的查询。
https://stackoverflow.com/questions/53486374
复制相似问题