Spaces:
Runtime error
Runtime error
import json | |
import re | |
import string | |
import warnings | |
import pandas as pd | |
import numpy as np | |
import os | |
def instruction_scorer(data, judgment_file, model_name): | |
df = data | |
img_dict = {} | |
for j in range(len(df)): | |
row = df.iloc[j] | |
img_dict[row['image_url']] = {'category': row['category']} | |
with open(judgment_file, 'r') as f: | |
judgements = json.load(f) | |
model_data = judgements[model_name] | |
model_analysis = {} | |
cat = {'time': [0,0], 'shopping': [0,0], 'navigation-transportation': [0,0], 'abstract': [0,0], 'app': [0,0], 'web': [0,0], 'infographics': [0,0], 'stvqa': [0,0], 'estvqa': [0,0]} | |
count, total = 0, 0 | |
for key in model_data: | |
if key in img_dict: | |
img_data = img_dict[key] | |
rating = model_data[key] | |
count += rating | |
total += 1 | |
cat[img_data['category']][1] += 1 | |
cat[img_data['category']][0] += rating | |
model_analysis[model_name] = {'category': cat} | |
x = model_analysis[model_name]['category'] | |
output_dict = {} | |
for h in x: | |
output_dict[h]=100*x[h][0]/x[h][1] | |
output_dict["misc"]= 100 * (x['stvqa'][0] + x['estvqa'][0])/(x['stvqa'][1] + x['stvqa'][1]) | |
output_dict["average"] = (output_dict["time"]+output_dict["shopping"]+output_dict["navigation-transportation"]+output_dict["abstract"]+output_dict["app"]+output_dict["web"]+output_dict["infographics"]+output_dict["misc"])/8 | |
return output_dict | |