我正在研究Case-Based Reasoning algorithms,我需要得到两个数字(整数或浮点)的相似性。在
对于字符串,我使用Levenshtein lib
,它处理得很好,但是我不知道任何Python库来计算两个数字的相似性,有一个吗?
有人知道吗?
结果应该在0(不同)和1(完全匹配)之间,如Levenshtein.ratio()
。在
@更新1:
使用左旋睾酮比率我们得到两个字符串的相似度比,0表示完全不同,1完全匹配,0和1之间的任何一个都是相似系数。 示例:
>>> import Levenshtein
>>> Levenshtein.ratio("This is a test","This is a test with similarity")
0.6363636363636364
>>> Levenshtein.ratio("This is a test","This is another test")
0.8235294117647058
>>> Levenshtein.ratio("This is a test","This is a test")
1.0
>>>
我需要这样的东西,但是要有数字。 例如,5与6有n%的相似性。数字5.4与5.8有n%的相似性。 我不知道我的例子是否清楚。在
@更新2:
让我举一个真实的例子。假设我在100台服务器上寻找类似版本的centoslinux发行版。CentOS Linux版本号类似于5.6、5.7、6.5。那么,数字5.7和6.5有多接近?不是很近,我们有很多版本(数字)。但是有一个相似系数,比如说40%(或0.4),使用一些类似的算法,比如Levenshtein。在
@更新3: 我得到了这个问题的答案。我在这里发帖是为了帮助更多的人:
^{pr2}$
从这个链接,我看到伊恩·沃森的幻灯片显示了三种评估数字“相似性”的方法。其中,可从
numpy
获得“step function”选项:为了获得数值输出,根据相似性的要求,我们做了一个更改:
^{pr2}$如果愿意,可以使用}:
^{3}$float
代替{allclose
采用可选参数rtol
和{allclose
的完整文档是here。在相关问题 更多 >
编程相关推荐