38 lines
1.2 KiB
Python
38 lines
1.2 KiB
Python
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()
|