similarity function

double similarity(
  1. String a,
  2. String b
)

Compute a similarity score between a and b based on Levenshtein distance.

Returns a value between 0.0 (completely different) and 1.0 (identical).

Implementation

double similarity(String a, String b) {
  if (a == b) return 1.0;
  final maxLen = math.max(a.length, b.length);
  if (maxLen == 0) return 1.0;
  return 1.0 - levenshteinDistance(a, b) / maxLen;
}