Text :: JaroWinkler :: strcmp95的第三个参数是什么?

时间:2013-02-22 01:18:48

标签: c string perl perl-module jaro-winkler

我对用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代表什么?我收集它是一个长度。哪个长度?我要检查的字符数量的长度?是否需要在那里?

1 个答案:

答案 0 :(得分:2)

请参阅the source以获取问题的答案。它包含这一行:

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

因此$y_length用于重新格式化字符串,必要时填充它们并将它们修剪为相同的长度。然后将这些等长串送入实际比较功能。这表明亚历克斯是正确的,并且在大多数情况下给出max(length $ying, length $yang)的长度将会得到最好的结果。

阅读消息来源还会发现,如果您未能提供$y_length,则不会提供默认值。所以你将把空字符串与空字符串进行比较。那些JW距离应该很短。