weighted-damerau-levenshtein

An implementation of weighted Damerau–Levenshtein distance.

Usage no npm install needed!

<script type="module">
  import weightedDamerauLevenshtein from 'https://cdn.skypack.dev/weighted-damerau-levenshtein';
</script>

README

Weighted Damerau–Levenshtein distance

Travis (.org) Coverage Status NPM

A simple Node module that allows you to compute Damerau–Levenshtein distance with custom weights for insertion, deletion and/or substitution (they all default to 1). It is inspired by the damerau-levenshtein and damerau-levenshtein-js packages.

let dldist = require('weighted-damerau-levenshtein');

const d = dldist('hello word', 'Hello World!');
// 4 -> two substitutions and two insertions

const s = dldist('hello word', 'Hello World!', { insWeight: 0.5 });
// 3 -> two substitutions with weight 1 and two insertions with weight 0.5

It also optionally allows you to turn-off the "Damerau" part of the Damerau-Levenshtein distance (i..e the transpositions), which makes it the standard Levenshtein distance.

let dldist = require('weighted-damerau-levenshtein');

const d = dldist('Hi there', 'Hi tehre');
// 1 -> one transpostion (counted with the default subsitution weight)

const s = dldist('Hi there', 'Hi tehre', { useDamerau: false });
// 2 -> one substitution and one deletion (both with default weight)

Install

npm install weighted-damerau-levenshtein

License

Licensed under the terms of the Apache 2.0 license. See the LICENSE file for more details.