Rohan Wadhawan
ConTextual Leaderboard setup
e61d9ba
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