TermSimilarity constructor
Returns a immutable TermSimilarity for term
and other
.
k
is thek
-gram length used to calculate jaccardSimilarity, defaults to 2.
Not case-sensitive.
Implementation
factory TermSimilarity(String term, String other, {int k = 2}) {
final editDistance = term.editDistance(other);
final editSimilarity = _getEditSimilarity(term, other, editDistance);
final jaccardSimilarity = term.jaccardSimilarity(other, k);
final lengthDistance = term.lengthDistance(other);
final lengthSimilarity = term.lengthSimilarity(other);
final characterSimilarity = term.characterSimilarity(other);
final startsWithSimilarity = term.startsWithSimilarity(other);
final similarity = editSimilarity *
jaccardSimilarity *
lengthSimilarity *
characterSimilarity;
return _TermSimilarityImpl(
term,
other,
similarity,
lengthDistance,
lengthSimilarity,
editDistance,
editSimilarity,
jaccardSimilarity,
characterSimilarity,
startsWithSimilarity);
}