jaroWinklerSimilarity function
Calculates the Jaro-Winkler similarity between two strings
Implementation
double jaroWinklerSimilarity(
String s1,
String s2, {
double weightFactor = 0.1,
}) {
final jaro = jaroSimilarity(s1, s2);
if (jaro < 0.7) return jaro;
var prefixLength = 0;
final maxPrefixLength = min(4, min(s1.length, s2.length));
for (var i = 0; i < maxPrefixLength; i++) {
if (s1[i] != s2[i]) break;
prefixLength++;
}
return jaro + (prefixLength * weightFactor * (1 - jaro));
}