import os import json import pandas as pd def model_hyperlink(model_link, model): return f'{model}' def load_all_data(data_dir): data_list = [] # Traverse the directory to find all JSON files for root, dirs, files in os.walk(data_dir): for file in files: if file.endswith('.json'): file_path = os.path.join(root, file) # Load JSON data with open(file_path, 'r', encoding='utf-8') as f: data = json.load(f) # Extract relevant data model = data.get("model", "") model_link = data.get("model_link", "") with_tie = data.get("with_tie", {}) without_tie = data.get("without_tie", {}) # Calculate averages avg_with_tie = round(sum(with_tie.values()) / len(with_tie), 2) if with_tie else 0 avg_without_tie = round(sum(without_tie.values()) / len(without_tie), 2) if without_tie else 0 avg = round((avg_with_tie + avg_without_tie) / 2, 2) # Append to list data_list.append({ "Model": model_hyperlink(model_link, model), "Model Type": data.get("model_type", ""), "Avg.": avg, "Avg. (w/o Ties)": avg_without_tie, "Avg. (w/ Ties)": avg_with_tie, "Overall (w/o Ties)": round(without_tie.get("overall", 0), 2), "VQ (w/o Ties)": round(without_tie.get("vq", 0), 2), "MQ (w/o Ties)": round(without_tie.get("mq", 0), 2), "TA (w/o Ties)": round(without_tie.get("ta", 0), 2), "Overall (w/ Ties)": round(with_tie.get("overall", 0), 2), "VQ (w/ Ties)": round(with_tie.get("vq", 0), 2), "MQ (w/ Ties)": round(with_tie.get("mq", 0), 2), "TA (w/ Ties)": round(with_tie.get("ta", 0), 2), }) # Create a DataFrame from the list of data df = pd.DataFrame(data_list) return df