Если score
не учитывает повторения, то только один случай "eat"
в string2
добавляет к баллу, поэтому другие вхождения "eat"
рассматриваются как несоответствующий мусор, который считается в общем балле.
Многие метрики сходства строк ведут себя таким образом, например, в Редактировать расстояние чем больше не совпадающих символов, тем ниже оценка и повторы рассматриваются как несовпадающие.
Мне неясно, прочитав источник , какой алгоритм он использует, но переменные оценки
var total_character_score = 0,
start_of_string_bonus,
abbreviation_score,
fuzzies=1,
final_score;
, по-видимому, не учитывают многократные повторения.
Если вы хотите, чтобы количество вхождений учитывалось, то звучит так, будто вам нужен не алгоритм совпадения строк, а алгоритм нечеткого совпадения , чтобы вы могли найти количество совпадений.
Может быть, Йети Ведьма будет работать для вас.