我对用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代表什么?我收集它是一个长度。哪个长度?我要检查的字符数量的长度?是否需要在那里?
答案 0 :(得分:2)
请参阅the source以获取问题的答案。它包含这一行:
$ying = sprintf("%*.*s", -$y_length, $y_length, $ying);
因此$y_length
用于重新格式化字符串,必要时填充它们并将它们修剪为相同的长度。然后将这些等长串送入实际比较功能。这表明亚历克斯是正确的,并且在大多数情况下给出max(length $ying, length $yang)
的长度将会得到最好的结果。
阅读消息来源还会发现,如果您未能提供$y_length
,则不会提供默认值。所以你将把空字符串与空字符串进行比较。那些JW距离应该很短。