🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Book a DemoInstallSign in
Socket

string-metric

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

string-metric

Get string similarity in JavaScript or TypeScript

0.3.3
latest
Source
npm
Version published
Weekly downloads
154
24.19%
Maintainers
1
Weekly downloads
 
Created
Source

String Metric

Build Status Coverage Status npm npm

A library implementing different string similarity and distance measures, and Implement by TypeScript. Also, you can use in JavaScript.

Algorithm reference java-string-similarity

Install

npm install string-metric

Progress

AlgorithmComplete?
Jaro-WinklerYes
LevenshteinYes
Normalized-LevenshteinYes
Weighted-LevenshteinYes
DamerauYes
Optimal-String-AlignmentYes
Longest-Common-SubsequenceYes
Metric-Longest-Common-SubsequenceYes
N-GramYes
Q-GramNo
Shingle (n-gram) based algorithmsNo
Cosine similarityNo
Jaccard indexNo
Sorensen-Dice coefficientNo
Ratcliff-ObershelpNo

Jaro-Winkler

For more specs, please go to tests/JaroWinkler.spec.ts in the repository.

const instance = new JaroWinkler();

const s1 = 'My string';
const s2 = 'My string';
instance.similarity(s1, s2); // 1

const s1 = 'My string';
const s2 = 'My tsring';
instance.similarity(s1, s2); // 0.974074

const s1 = 'My string';
const s2 = 'My ntrisg';
instance.similarity(s1, s2); // 0.896296

Levenshtein

For more specs, please go to tests/Levenshtein.spec.ts in the repository.

const instance = new Levenshtein();

const s1 = 'My string';
const s2 = 'My string';
instance.distance(s1, s2); // 0

const s1 = 'My string';
const s2 = 'My tring';
instance.distance(s1, s2); // 1

const s1 = 'My string';
const s2 = 'M string2';
instance.distance(s1, s2); // 2

Normalized-Levenshtein

For more specs, please go to tests/NormalizedLevenshtein.spec.ts in the repository.

const instance = new NormalizedLevenshtein();

Weighted-Levenshtein

For more specs, please go to tests/WeightedLevenshtein.spec.ts in the repository.

const instance = new WeightedLevenshtein();

Damerau

For more specs, please go to tests/Damerau.spec.ts in the repository.

const instance = new Damerau();

const s1 = 'ABCDEF';
const s2 = 'ABDCEF';
instance.distance(s1, s2); // 1

const s1 = 'ABCDEF';
const s2 = 'BACDFE';
instance.distance(s1, s2); // 2

const s1 = 'ABCDEF';
const s2 = 'ABCDE';
instance.distance(s1, s2); // 1

Optimal-String-Alignment

For more specs, please go to tests/OptimalStringAlignment.spec.ts in the repository.

const instance = new OptimalStringAlignment();

const s1 = 'ABDCEF';
const s2 = 'ADCEF';
instance.distance(s1, s2); // 1

const s1 = 'BAC';
const s2 = 'CAB';
instance.distance(s1, s2); // 2

const s1 = 'CA';
const s2 = 'ABC';
instance.distance(s1, s2); // 3

Longest-Common-Subsequence

For more specs, please go to tests/LongestCommonSubsequence.spec.ts in the repository.

const instance = new LongestCommonSubsequence();

const s1 = 'AGCAT';
const s2 = 'GAC';
instance.distance(s1, s2); // 4

const s1 = 'AGCAT';
const s2 = 'AGCT';
instance.distance(s1, s2); // 1

Metric-Longest-Common-Subsequence

For more specs, please go to tests/MetricLCS.spec.ts in the repository.

const instance = new MetricLCS();

N-Gram

For more specs, please go to tests/NGram.spec.ts in the repository.

const instance = new NGram();

const s1 = 'SIJK';
const s2 = 'SIJK';
instance.distance(s1, s2); // 0

const s0 = 'ABABABAB';
const s1 = 'ABCABCABCABC';
const s2 = 'POIULKJH';
instance.distance(s0, s1) < instance.distance(s0, s2); // true

Keywords

string similarity

FAQs

Package last updated on 28 Apr 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts