import json from collections import defaultdict TRANSCRIPTIONS = "transcriptions.json" def get_stats(): stats = defaultdict(dict) with open(TRANSCRIPTIONS, "r") as f: data = json.load(f) for i, elem in enumerate(data): task_num = i % 4 + 1 obj = stats[f"Task {task_num}"] if 'Sum True' in obj: obj['Sum True'] += elem['score_true'] obj['Sum Pred'] += elem['score_pred'] obj['Count'] += 1 else: obj['Sum True'] = elem['score_true'] obj['Sum Pred'] = elem['score_pred'] obj['Count'] = 1 for key, obj in stats.items(): stats[key]['Average True'] = stats[key]['Sum True'] / stats[key]['Count'] stats[key]['Average Pred'] = stats[key]['Sum Pred'] / stats[key]['Count'] stats[key]['MAE'] = abs(stats[key]['Average True'] - stats[key]['Average Pred']) return stats def main(): stats = get_stats() print(f"Статистика:") for name, obj in stats.items(): print(name) print(f'Avg True / Avg Pred / MAE = {obj['Average True']:.3f} / {obj['Average Pred']:.3f} / {obj['MAE']:.3f}') if __name__ == '__main__': main()