1.1.6 • Published 7 years ago

js-levenshtein v1.1.6

Weekly downloads
2,127,501
License
MIT
Repository
github
Last release
7 years ago

js-levenshtein Build Status

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

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

@parcel-nightly-unofficial/utils@open-raven/react-styleguideledger-eip-support-pocvex-desktopmyid-backsearch-formsreact-spreadsheet-import-agireact-spreadsheet-import-dds@everything-registry/sub-chunk-1976react-spreadsheet-import-customnineid-coresynthetixsynthetix-v2temporeaccusantiumtest-philodendron-language-serverwebchexliff-simple-mergesupervan-react-spreadsheet-importsupervan-react-spreadsheet-import2techfox-icontechfox-react-feathersubhasmitalmg-react-spreadsheet-importsticky-scroll-catchtheendsoapervue-compmentjibriljson-merge-shopifyillumpariaturimglookalikehubot-questionnaire-frameworkhenrybuilt-js-libraryintergalacticline-segmentation-gcp-vision-ocrmarkdown-to-xmaryam-clilowsyncmaia-db-libkoishi-plugin-cttnplugin@wavepoint/react-spreadsheet-import@webrecorder/wabac@thedoctor0/vuex-shared-mutations@thesharks/jagtag-js@unofficial-parcel-nightly/utils@xstyled-theme/cli@yext/answers@yext/answers-headless@yext/search-headless@yext/answers-search-ui@zalastax/nolb-js-langular-t9n@zohocrm/zdk-clibabel-preset-webasynthr-jsb2x-utilsfrakture-workerbotsform-creatorfunny-accidentsfuton-mediafuton-media-clidynamic-dashboardellevenelleven-v2eslint-plugin-emmanuelentidades-partesemail-domain-levenshteinfile-validator-component@bipbop/entidades-partes@bluefin605/entmodeller-devops-enumerator@bud-tools/eslint-plugin@bundled-es-modules/js-levenshtein@bugatino/xliff-simple-merge@chieftayn/automation-designer@benzler/react-spreadsheet-import@benmosher/babel-preset-envcherre-elt-udfchilean-territory-codecheck-typosquatterscataloggerdatafus-parserctvaultcssesc-wbgcsv-string-optimizationdatocms-plugin-sanitize-richtextbikebook-csv-importerautoevalsbrighthr-react-spreadsheet-importbrazil-cities-predictorbow-react-spreadsheet-importdistancesearch@apollo/federation-internals@aerijo/apx@agigroup/react-spreadsheet-import@ajmnz/prisma-language-servervite-spreadsheet-importego-cliutlaudantiumvue-typo-redirectv-almonacid-ledger-libsmsw-forkedmsw-tobilen
1.1.6

7 years ago

1.1.5

7 years ago

1.1.4

7 years ago

1.1.3

8 years ago

1.1.2

8 years ago

1.1.1

9 years ago

1.1.0

9 years ago

1.0.0

9 years ago