0

我对用 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到底代表什么?我认为它是一个长度。哪个长?我要检查的字符数量的长度?必须在那里吗?

4

1 回答 1

2

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

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

所以$y_length被用来重新格式化字符串,必要时填充它们并将它们修剪成相同的长度。然后将这些等长的字符串输入到实际的比较函数中。这表明 Alex 是正确的,并且max(length $ying, length $yang)在大多数情况下给出一个长度会给出最好的结果。

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

于 2013-02-22T03:23:59.823 回答