Skip to content

Calculates the similarity of 2 string matrixes and sorts the seconds one by similarity to first

License

Notifications You must be signed in to change notification settings

bargom/similarity-matrix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

similarity-matrix

Calculates the similarity of 2 string arrays and sorts the seconds one by similarity to first

The similarity is calculated with levenshtein.

Example 1

  • Input Array ['abc', 'ab1', 'ab2']
  • Array to compare ['ab2']

You can think this as a list you retrieved coming from a master database, and a list coming from another database, that you want to present.

The correct presentation should be:

abc     
ab1     
ab2     ab2

as this solver will return {resultArray: ['', '', 'ab2'], resultIndexes: [2]}

Example 2

  • Input Array ['abc', 'ab1', 'ab2']
  • Array to compare ['xy2', 'ab5', 'xb1']

This one is harder to sort manually. There are multiple solutions, but the solver will find the best matching sorting.

The correct presentation should be:

abc     ab5    -> similarity = 2
ab1     xb1    -> similarity = 2   
ab2     xy2    -> similarity = 1

as this solver will return {resultArray: ['ab5', 'xb1', 'xy2'], resultIndexes: [2, 0, 1]}

How to use

const SimilarityMatrix = require('similarity-matrix');
var solved = SimilarityMatrix.calculateNewIndex(['abc', 'ab1', 'ab2'], ['ab2']);

console.log(solved.resultIndexes); // => [2]
console.log(solved.resultArray); // =>  ['', '', 'ab2']

The calculation returns an object with 2 arrays.

  • resultIndexes: The new indexes of each element. In the example 1 it is returned [2], meaning that the first element in the second array has a new index of 2
  • resultArray: An array which is already calculated as the modified version of the second array.

About

Calculates the similarity of 2 string matrixes and sorts the seconds one by similarity to first

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published