Skip to content

How similar are these two strings?

License

Notifications You must be signed in to change notification settings

words/similarity

Repository files navigation

similarity

Build Coverage Downloads Size

How similar are these two strings?

Install

npm:

npm install similarity

Use

var similarity = require('similarity')

similarity('food', 'food') // 1
similarity('food', 'fool') // 0.75
similarity('ding', 'plow') // 0
similarity('chicken', 'chick') // 0.714285714
similarity('ES6-Shim', 'es6 shim') // 0.875 (case insensitive)
similarity('ES6-Shim', 'es6 shim', {sensitive: true}) // 0.5 (case sensitive)

API

similarity(left, right[, options])

Get the similarity (number) between two values (strings), where 0 is dissimilar, and 1 is equal.

  • options.sensitive (boolean, default: false) — Turn on (true) to treat casing differences as differences

CLI

Usage: similarity [options] <word> <word>

How similar are these two strings?

Options:

  -h, --help           output usage information
  -v, --version        output version number
  -s, --sensitive      be sensitive to casing differences

Usage:

# output similarity
$ similarity sitting kitten
0.5714285714285714
$ similarity saturday sunday
0.625

See also

Note: This module uses Levenshtein distance to measure similarity, but there are many other algorithms for string comparison. Here are a few:

  • clj-fuzzy — Handy collection of algorithms dealing with fuzzy strings and phonetics
  • natural — General natural language facilities for node
  • string-similarity — Finds degree of similarity between two strings, based on Dice’s coefficient
  • dice-coefficient — Sørensen–Dice coefficient
  • jaro-winkler — The Jaro-Winkler distance metric

License

ISC © Zeke Sikelianos