string-similarity-score
v1.0.2
Published
Finds degree of similarity between strings, based on Dice's Coefficient, which is mostly better than Levenshtein distance.
Downloads
17
Maintainers
Readme
string-similarity-score
Finds degree of similarity (Percentage or score) between two strings, based on Dice's Coefficient, which is mostly better than Levenshtein distance.
Table of Contents
Usage
For Node.js
Install using:
npm install string-similarity-score --save
In your code:
var stringSimilarity = require("string-similarity-score");
var similarity = stringSimilarity.compareTwoStrings("healed", "sealed");
var matches = stringSimilarity.findBestMatch("healed", [
"edward",
"sealed",
"theatre",
]);
API
The package contains two methods:
compareTwoStrings(string1, string2)
Returns a fraction between 0 and 1, which indicates the degree of similarity between the two strings. 0 indicates completely different strings, 100 indicates identical strings. The comparison is case-sensitive.
Arguments
- string1 (string): The first string
- string2 (string): The second string
Order does not make a difference.
Returns
(number): A Percentage from 0 to 100, both inclusive. Higher number indicates more similarity.
Examples
stringSimilarity.compareTwoStrings("healed", "sealed");
// → 80
stringSimilarity.compareTwoStrings(
"Olive-green table for sale, in extremely good condition.",
"For sale: table in very good condition, olive green in colour."
);
// → 60
stringSimilarity.compareTwoStrings(
"Olive-green table for sale, in extremely good condition.",
"For sale: green Subaru Impreza, 210,000 miles"
);
// → 25
stringSimilarity.compareTwoStrings(
"Olive-green table for sale, in extremely good condition.",
"Wanted: mountain bike with at least 21 gears."
);
// → 14
findBestMatch(mainString, targetStrings)
Compares mainString
against each string in targetStrings
.
Arguments
- mainString (string): The string to match each target string against.
- targetStrings (Array): Each string in this array will be matched against the main string.
Returns
(Object): 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
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.'
]);
// →
{ ratings:
[ { target: 'For sale: green Subaru Impreza, 210,000 miles',
rating: 25 },
{ target: 'For sale: table in very good condition, olive green in colour.',
rating: 60 },
{ target: 'Wanted: mountain bike with at least 21 gears.',
rating: 14 } ],
bestMatch:
{ target: 'For sale: table in very good condition, olive green in colour.',
rating: 60 },
bestMatchIndex: 1
}