【发布时间】:2013-02-22 21:51:09
【问题描述】:
我对用 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 到底代表什么?我认为它是一个长度。哪个长?我要检查的字符数量的长度?必须在那里吗?
【问题讨论】:
-
我最近实际上一直在使用该模块。我不知道11到底是做什么的。我学到的是,当我将它设置为两个字符串的最大长度时,我得到了最好的结果。
-
谢谢@Alex! “最佳结果”是什么意思?
-
我不记得当它不是最大值时发生了什么,我已经在我的工作计算机上设置了所有这些,所以我现在无法检查。我认为它只是返回了不准确的结果(只有 0 或 1)。所以这个论点可能告诉它要匹配多少个字母。在他们的示例中,两个字符串的长度完全相同,这对于示例来说很好,但对于任何实际应用程序来说都不太好。如果我冒险猜测,我会说它的意思是“最多匹配这么多字符”,但这只是猜测。
-
谢谢亚历克斯。如果您能检查一下您下次上班的时间,我将不胜感激。我的预感是第三个参数设置比较的长度,使得比较的长度为 min(length(函数中的第一项),长度(函数中的第二项),指定的第三项)。
-
Alex:是否有某种行业标准可以说明 Jaro-Winkler 分数应该有多大才能说这两个字符串可能相似?
标签: c string perl perl-module jaro-winkler