有没有其他方法可以以低开销和高精度找到记录之间的相似性度量(除了Jaro-Winkler算法)



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

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

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

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

Jaro-Winkler距离,表示两个字符串之间的相似性分数。Jaro度量是每个文件中匹配字符和转置字符的百分比的加权和。Winkler增加了匹配初始字符的度量。

最初的实现是基于Jaro-Winkler相似算法的文章,该文章可以在维基百科上找到。这个Python版本的原始实现是基于ApacheStringUtils库的。

使用了类似于StringUtils库中的Unittest来验证实现。

>>> 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

从这个链接获取更多详细信息

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

最新更新