Для чего нужен третий параметр Text::JaroWinkler::strcmp95?

Меня интересует модуль Jaro-Winkler, написанный на Perl для вычисления расстояния (или сходства) между двумя строками:

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 ответ

Решение

См. Источник для ответа на ваш вопрос. Он содержит эту строку:

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

Так $y_length используется для переформатирования строк, дополнения их при необходимости и обрезки до одинаковой длины. Эти строки равной длины затем передаются в фактическую функцию сравнения. Это говорит о том, что Алекс прав и дает длину max(length $ying, length $yang) собирается дать лучшие результаты в большинстве случаев.

Чтение источника также показывает, что если вы не в состоянии поставить $y_lengthпо умолчанию не предоставляется. Таким образом, вы будете сравнивать пустую строку с пустой строкой. У них должно быть довольно короткое расстояние JW.

Другие вопросы по тегам