precision-recall
Version:
JS percision, recall and F1 calculation library
45 lines (36 loc) • 1.02 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var defaultValues = {
precision: 0,
recall: 0,
f: 0
};
var calculator = function calculator(relevantStrings, retrievedStrings) {
if (!relevantStrings || relevantStrings.length === 0) {
return defaultValues;
}
if (!retrievedStrings || retrievedStrings.length === 0) {
return defaultValues;
}
var relevantSet = new Set(relevantStrings);
var uniqueRelevant = Array.from(relevantSet);
var retrievedSet = new Set(retrievedStrings);
var uniqueRetrieved = Array.from(retrievedSet);
var intersection = uniqueRelevant.filter(function (x) {
return retrievedSet.has(x);
});
if (!intersection || intersection.length === 0) {
return defaultValues;
}
var precision = intersection.length / uniqueRetrieved.length;
var recall = intersection.length / uniqueRelevant.length;
var f = 2 * (precision * recall) / (precision + recall);
return {
precision: precision,
recall: recall,
f: f
};
};
exports.default = calculator;