Skip to content

A simple NodeJS (NPM) module for weighted Damerau–Levenshtein distance.

License

Notifications You must be signed in to change notification settings

mrshu/node-weighted-damerau-levenshtein

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.