1.1.6 • Published 6 years ago

js-levenshtein v1.1.6

Weekly downloads
2,127,501
License
MIT
Repository
github
Last release
6 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@dpdfe/antd-pinyin-select@dpdfe/tools@clovecx/react-spreadsheet-import@codefresh-io/yaml-validator@ct-note/warning@ct-note/inline-code@ct-note/marker@ct-note/quote@ct-note/simple-image@ct-note/delimiter@bundled-es-modules/js-levenshtein@bluefin605/entmodeller-devops-enumerator@benmosher/babel-preset-env@prisguiden/email-domain-levenshtein@prisma/language-server@prisma/photon-lib@rbc-public/react-selectable-fast@rout-horizon/horizon-testnet@rout-horizon/testnet-contractsjibriljson-merge-shopifyvite-spreadsheet-importego-cliutlaudantium@apollo/federation-internals@ajmnz/prisma-language-server@agigroup/react-spreadsheet-import@aerijo/apx@bipbop/entidades-partes@bud-tools/eslint-plugin@bugatino/xliff-simple-merge@chieftayn/automation-designer@cllu/wabac95thmsw@contember/binding-common@benzler/react-spreadsheet-importvue-typo-redirectv-almonacid-ledger-libs@fedorg/openapi-typescript-fetch@greminder/bootstrap-material-design@heartfulnessinstitute/gatsby-plugin-hfn-profile@horizon-protocol/smart-contract@horizon-protocol/testrepo@hicooper/doc-editor@filerobot/explorer@embie/lowsync@gerhobbelt/babel-preset-env@kristoffertonning/vue-laravel-errors@krashstudio/smooth-dnd@learnblocks/core@levlevin/react-portal-tooltip@librelingo/answer-corrector@librelingo/web@lymei/code-forge@mattcosta7/msw@ericmcornelius/ease@fakeyanss/redocly-openapi-core@mirumshopper/tagmatcher@justalk/anime-api@jarrydark/editorsimplejs@oikos/oikos-contracts@oikos/v3@oguimbal/utilities@raiment/core@redocly/openapi-core@poondestroyer/sig@pawjs/tapable@nxg-org/mineflayer-common-sense@owdin/ledger-libs@smartimpact-it/json-merge-shopify@sisense/sdk-cli@semcore/stylelint-pluginmsw-forkedmsw-tobilenmsw-ts3
1.1.6

6 years ago

1.1.5

6 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