indelNormalizedSimilarity function

double indelNormalizedSimilarity(
  1. String s1,
  2. String s2, {
  3. double scoreCutoff = 0.0,
})

Calculates normalized similarity using the indel distance This is a key component of the original RapidFuzz implementation

Implementation

double indelNormalizedSimilarity(
  String s1,
  String s2, {
  double scoreCutoff = 0.0,
}) {
  if (s1 == s2) return 1.0;
  if (s1.isEmpty && s2.isEmpty) return 1.0;
  if (s1.isEmpty || s2.isEmpty) return 0.0;

  final dist = indelDistance(s1, s2);
  final maxDistance = s1.length + s2.length;
  final normDist = dist / maxDistance;
  final similarity = 1.0 - normDist;

  return (similarity >= scoreCutoff) ? similarity : 0.0;
}