@thecrookedman/string-similarity

1.0.2 • Public • Published

string-similarity

A string similarity comparison tool, which is the front-end implementation version of Java string similarity. To maintain consistency with the string similarity algorithm in java-string-similarity

install

npm i @thecrookedman/string-similarity --save

example

import {JaroWinkler,Cosine,Damerau,Jaccard,Levenshtein,LongestCommonSubsequence,MetricLCS,NGram,NormalizedLevenshtein,OptimalStringAlignment,QGram,RatcliffObershelp,SorensenDice,WeightedLevenshtein} from '@thecrookedman/string-similarity';
//  字符串示例
let str1 = "123321";

let str2 = "123421";

console.log('JaroWinkler: '+new JaroWinkler().similarity(str1,str2)) //return 0.9222222222222223

console.log('Cosine: '+new Cosine(3).similarity(str1,str2)) //return 0.33333333333333337

console.log("Damerau:"+new Damerau().distance(str1,str2)); //return 1

console.log("Jaccard:"+new Jaccard(3).similarity(str1,str2)); //return 0.14285714285714285

console.log("Levenshtein:"+new Levenshtein().distance(str1,str2)); //return 1

console.log("LongestCommonSubsequence:"+new LongestCommonSubsequence().distance(str1,str2));//return 2

console.log("MetricLCS:"+new MetricLCS().distance(str1,str2));//return 0.16666666666666663

console.log("NGram:"+new NGram().distance(str1,str2));//return 0.16666666666666666

console.log("NormalizedLevenshtein:"+new NormalizedLevenshtein().similarity(str1,str2));//return 0.8333333333333334

console.log("OptimalStringAlignment:"+new OptimalStringAlignment().distance(str1,str2));//return 1

console.log("QGram:"+new QGram(3).distance(str1,str2));//return 6

console.log("RatcliffObershelp:"+new RatcliffObershelp().similarity(str1,str2));//return 0.8333333333333334

console.log("SorensenDice:"+new SorensenDice(3).similarity(str1,str2));//return 0

let wl = new WeightedLevenshtein({
    cost:(c1:string, c2:string) =>{
        if (c1 == 't' && c2 == 'r') {
          return 0.5;
        }
        return 1.0;
      }
});

console.log("WeightedLevenshtein:"+wl.distance(str1,str2));//return 1

Readme

Keywords

Package Sidebar

Install

npm i @thecrookedman/string-similarity

Weekly Downloads

4

Version

1.0.2

License

MIT

Unpacked Size

141 kB

Total Files

44

Last publish

Collaborators

  • thecrookedman