我对用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/