Plus jakby ktoś szukał skryptu do analizy podobieństwa tekstu to prosz:
function levenshtein(a, b) {
// Ensure inputs are strings, or use an empty string if undefined
a = a || "";
b = b || "";
if (a.length == 0) return b.length;
if (b.length == 0) return a.length;
var matrix = [];
var i, j;
for (i = 0; i <= b.length; i++) {
matrix[i] = [i];
}
for (j = 0; j <= a.length; j++) {
matrix[0][j] = j;
}
for (i = 1; i <= b.length; i++) {
for (j = 1; j <= a.length; j++) {
if (b.charAt(i - 1) == a.charAt(j - 1)) {
matrix[i][j] = matrix[i - 1][j - 1];
} else {
matrix[i][j] = Math.min(
matrix[i - 1][j - 1] + 1, // Substitution
Math.min(matrix[i][j - 1] + 1, // Insertion
matrix[i - 1][j] + 1) // Deletion
);
}
}
}
return matrix[b.length][a.length];
}
function calculateSimilarity(range1, range2) {
range1 = "A1:A3122";
range2 = "A1:A3122";
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var values1 = sheet.getRange(range1).getValues();
var values2 = sheet.getRange(range2).getValues();
var results = [];
for (var i = 0; i < values1.length; i++) {
var text1 = values1[i][0];
var text2 = values2[i][0];
// Ensure the inputs are strings or use empty strings if undefined
text1 = text1 ? text1.toString() : "";
text2 = text2 ? text2.toString() : "";
results.push([levenshtein(text1, text2)]);
}
// Write results to the next available column
var resultColumn = sheet.getRange(1, 3, results.length, 1); // C column
resultColumn.setValues(results);
}