|
|
- # js-levenshtein [![Build Status](https://travis-ci.org/gustf/js-levenshtein.svg?branch=master)](https://travis-ci.org/gustf/js-levenshtein)
-
- A very efficient JS implementation calculating the Levenshtein distance, i.e. the difference between two strings.
-
- Based on Wagner-Fischer dynamic programming algorithm, optimized for speed and memory
- - use a single distance vector instead of a matrix
- - loop unrolling on the outer loop
- - remove common prefixes/postfixes from the calculation
- - minimize the number of comparisons
-
- ## Install
-
- ```
- $ npm install --save js-levenshtein
- ```
-
-
- ## Usage
-
- ```js
- const levenshtein = require('js-levenshtein');
-
- levenshtein('kitten', 'sitting');
- //=> 3
- ```
-
-
- ## Benchmark
-
- ```
- $ npm run bench
-
- 50 paragraphs, length max=500 min=240 avr=372.5
- 162 op/s » js-levenshtein
- 98 op/s » talisman
- 94 op/s » levenshtein-edit-distance
- 85 op/s » leven
- 39 op/s » fast-levenshtein
-
- 100 sentences, length max=170 min=6 avr=57.5
- 3,076 op/s » js-levenshtein
- 2,024 op/s » talisman
- 1,817 op/s » levenshtein-edit-distance
- 1,633 op/s » leven
- 800 op/s » fast-levenshtein
-
- 2000 words, length max=20 min=3 avr=9.5
- 3,119 op/s » js-levenshtein
- 2,416 op/s » talisman
- 2,141 op/s » levenshtein-edit-distance
- 1,855 op/s » leven
- 1,260 op/s » fast-levenshtein
- ```
-
- Benchmarks was performed with node v8.12.0 on a MacBook Pro 15", 2.9 GHz Intel Core i9
-
- ## License
-
- MIT © Gustaf Andersson
|