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-compment@bundled-es-modules/js-levenshtein@bluefin605/entmodeller-devops-enumerator@benmosher/babel-preset-env@prisguiden/email-domain-levenshtein@prisma/language-server@prisma/photon-libjibriljson-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-utils@clovecx/react-spreadsheet-import@cllu/wabac95thmsw@greminder/bootstrap-material-design@agigroup/react-spreadsheet-import@aerijo/apx@codefresh-io/yaml-validator@ajmnz/prisma-language-server@contember/binding-commonvite-spreadsheet-importego-cliutlaudantium@bipbop/entidades-partes@bud-tools/eslint-plugin@bugatino/xliff-simple-merge@chieftayn/automation-designer@benzler/react-spreadsheet-importvue-typo-redirectv-almonacid-ledger-libs@kristoffertonning/vue-laravel-errors@learnblocks/core@levlevin/react-portal-tooltip@librelingo/answer-corrector@librelingo/web@semcore/stylelint-pluginmsw-forkedmsw-tobilenmsw-ts3msw-restmythic-analyzermythic-language-serverotus-localizationnullanesciuntoikos-v3oikoscashoone-synthetixobject-distanceoblakseinn-ceolroute-typo-redirect
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

8 years ago

1.1.0

8 years ago

1.0.0

8 years ago