Implementation
Map<String, double> get analyzerRecall {
final trueMap = <String, int>{};
final falseNegMap = <String, int>{};
for (final entry in entries) {
for (final tp in entry.truePositives) {
trueMap[tp.analyzerName] = (trueMap[tp.analyzerName] ?? 0) + 1;
}
for (final fn in entry.falseNegatives) {
falseNegMap[fn.analyzerName] = (falseNegMap[fn.analyzerName] ?? 0) + 1;
}
}
final result = <String, double>{};
for (final key in {...trueMap.keys, ...falseNegMap.keys}) {
final tp = trueMap[key] ?? 0;
final fn = falseNegMap[key] ?? 0;
result[key] = tp + fn > 0 ? tp / (tp + fn) : 1.0;
}
return result;
}