Мне нужно получить процент или оценку, чтобы представить, насколько вероятно, что массив строк описывает один и тот же объект.
Моя попытка придумать идею ниже, я уверен, что есть лучший способ, поэтому я обращаюсь к вам, умные люди.
var levenshtein = require('fast-levenshtein');
var items = [
'Michael Jordan - NBA - Chicago Bulls',
'Michael J - Chicago',
'Michael Jordan - NBA',
'Michael Jordan - NBA - Chicago',
];
function getPercentageOfCertainty(items) {
var firstItem = items[0]
var totalItems = items.length;
var percentagePoints = items.reduce(function(memo, item) {
var distance = levenshtein.get(item, firstItem, { useCollator: true})
memo += distance;
return memo;
}, 0)
return (totalItems * 100) - percentagePoints;
}
var percentage = getPercentageOfCertainty(items);
//0.8, 80% or some other way to score the similarity
Мои мысли вычислить сходство каждой строки с первой строкой в наборе, затем либо получить среднее значение, либо сложить все оценки вместе и разделить на общее количество элементов.