我对用Perl编写的Jaro-Winkler模块感兴趣,以计算两个字符串之间的距离(或相似度):

http://search.cpan.org/~scw/Text-JaroWinkler-0.1/JaroWinkler.pm

我不清楚该函数的语法;我找不到任何清晰的文档。

这是示例代码:

#!/usr/bin/perl

use 5.10.0;
use Text::JaroWinkler qw( strcmp95 );
print strcmp95("it is a dog","i am a dog.",11);


11代表什么?我知道这是一个长度。哪个长度我要检查的字符长度?需要在那里吗?

最佳答案

有关问题的答案,请参见the source。它包含以下行:

$ying = sprintf("%*.*s", -$y_length, $y_length, $ying);


因此,使用$y_length重新设置字符串的格式,必要时将其填充并修整为相同的长度。然后将这些等长字符串输入实际的比较函数中。这表明Alex是正确的,并且在大多数情况下,给出max(length $ying, length $yang)的长度将给出最佳结果。

阅读源代码还会发现,如果您未能提供$y_length,则不会提供默认值。因此,您将比较空字符串和空字符串。那些应该有一个很短的JW距离。

关于c - Text::JaroWinkler::strcmp95的第三个参数是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15015280/

10-14 21:31