string_similarity 2.1.1 copy "string_similarity: ^2.1.1" to clipboard
string_similarity: ^2.1.1 copied to clipboard

Finds degree of similarity between two strings, based on Dice's Coefficient, which is mostly better than Levenshtein distance.

string-similarity #

Finds degree of similarity between two strings, based on Dice's Coefficient, which is mostly better than Levenshtein distance.

📄 Table of Contents #

🎮 Usage #

In your code:

import  'package:string_similarity/string_similarity.dart';

var similarity = 'french'.similarityTo('quebec'); // or StringSimilarity.compareTwoStrings('french', 'quebec');

var matches = 'healed'.bestMatch(['edward', 'sealed', 'theatre']); // or StringSimilarity.findBestMatch('healed', ['edward', 'sealed', 'theatre']);
copied to clipboard

📚 API #

'string'.similarityTo(other) #

Returns a fraction between 0 and 1, which indicates the degree of similarity between the two strings. 0 indicates completely different strings, 1 indicates identical strings. The comparison is case and diacritic sensitive.

Arguments

  • other (String): The second string

Order does not make a difference.

Returns

(double): A fraction from 0 to 1, both inclusive. Higher number indicates more similarity.

Examples

'healed'.similarityTo('sealed'); // → 0.8

'france'.similarityTo('FrancE'); // → 0.6

'x'.similarityTo(null); // → 0.0

'Olive-green table for sale, in extremely good condition.'.similarityTo('For sale: table in very good  condition, olive green in colour.'); // → 0.6060606060606061
copied to clipboard

or you can use the StringSimilarity.compareTwoStrings static method

StringSimilarity.compareTwoStrings('healed', 'sealed'); // → 0.8
copied to clipboard

'string'.bestMatch(targetStrings) #

Compares mainString against each string in targetStrings.

Arguments

  • targetStrings (List<String>): Each string in this array will be matched against the main string.

Returns

(BestMatch): An object with a ratings property, which gives a similarity rating for each target string, a bestMatch property, which specifies which target string was most similar to the main string, and a bestMatchIndex property, which specifies the index of the bestMatch in the targetStrings array.

Examples

'Olive-green table for sale, in extremely good condition.'.bestMatch([
  'For sale: green Subaru Impreza, 210,000 miles',
  'For sale: table in very good condition, olive green in colour.',
  'Wanted: mountain bike with at least 21 gears.',
  null
]);
// →
{ ratings:[ 
     { target: 'For sale: green Subaru Impreza, 210,000 miles', rating: 0.2558139534883721 },
     { target: 'For sale: table in very good condition, olive green in colour.', rating: 0.6060606060606061 },
     { target: 'Wanted: mountain bike with at least 21 gears.', rating: 0.1411764705882353 },
     { target: null, rating: 0.0 }
  ],
  bestMatch: { target: 'For sale: table in very good condition, olive green in colour.', rating: 0.6060606060606061 },
  bestMatchIndex: 1
}
copied to clipboard

or you can use the StringSimilarity.findBestMatch static method

StringSimilarity.findBestMatch('Olive-green table for sale, in extremely good condition.', [
  'For sale: green Subaru Impreza, 210,000 miles',
  'For sale: table in very good condition, olive green in colour.',
  'Wanted: mountain bike with at least 21 gears.',
  null
]);
copied to clipboard

🔮 Credit #

based on 'string-similarity' Javascript project : https://github.com/aceakash/string-similarity

thanks @shinayser and @nilsreichardt

118
likes
150
points
33.9k
downloads

Publisher

verified publisherjeremylandon.com

Weekly Downloads

2024.08.15 - 2025.02.27

Finds degree of similarity between two strings, based on Dice's Coefficient, which is mostly better than Levenshtein distance.

Repository (GitHub)

Documentation

API reference

License

MIT (license)

More

Packages that depend on string_similarity