diff --git a/testModel/results/graphs/ALL.png b/testModel/results/graphs/ALL.png new file mode 100644 index 0000000000000000000000000000000000000000..25d8bf1f052dba858e073ef9b11af4209b6dfed0 Binary files /dev/null and b/testModel/results/graphs/ALL.png differ diff --git a/testModel/results/graphs/LONG.png b/testModel/results/graphs/LONG.png new file mode 100644 index 0000000000000000000000000000000000000000..43ea56988ae898dfddfefd03d5ae2942b2f73e87 Binary files /dev/null and b/testModel/results/graphs/LONG.png differ diff --git a/testModel/results/graphs/MEDIUM.png b/testModel/results/graphs/MEDIUM.png new file mode 100644 index 0000000000000000000000000000000000000000..361693d0aa38711b173194f545a3f5d0cc8eff2a Binary files /dev/null and b/testModel/results/graphs/MEDIUM.png differ diff --git a/testModel/results/graphs/SHORT.png b/testModel/results/graphs/SHORT.png new file mode 100644 index 0000000000000000000000000000000000000000..10e9408a7531403a2df98cfe73525f9703e71561 Binary files /dev/null and b/testModel/results/graphs/SHORT.png differ diff --git a/testModel/results/graphs/VERY LONG.png b/testModel/results/graphs/VERY LONG.png new file mode 100644 index 0000000000000000000000000000000000000000..71d0bc321054d59e0dcb129b1087fb20b21c978b Binary files /dev/null and b/testModel/results/graphs/VERY LONG.png differ diff --git a/testModel/show_results.py b/testModel/show_results.py index e788900570384e2a9f879ae3ac1ccd326c4e0042..825c621d7ca128cb35419961cf76e9ce182e6d72 100644 --- a/testModel/show_results.py +++ b/testModel/show_results.py @@ -2,48 +2,70 @@ import sys import os import matplotlib.pyplot as plt import numpy as np +import json +import matplotlib.ticker as ticker +from matplotlib.ticker import MaxNLocator + -# Ajouter le répertoire parent au chemin de recherche sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "../"))) -from parsers.jsonParser import parseJsonFile +from variables.articles import LENGTH_CATEGORIES +from variables.models import MODELS + +def get_result_filename(model): + return model.replace(" ", "_").replace("-", "_").replace(".", "_").replace("/", "-") + +RESULTS_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), "./results")) +GRAPHS_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), "./results/graphs")) + +length_categories = LENGTH_CATEGORIES +length_categories.append("ALL") + +models = [model for model in MODELS.keys()] + +metrics = ["TPR", "TNR", "Precision", "F1"] + +for model in models: + print(get_result_filename(model)) + +models_results = {} + +for model in models: + with open(f"{RESULTS_DIR}/{get_result_filename(model)}.json", "r", encoding="utf-8") as file: + data = json.load(file) + + for length_category in length_categories: + values = [] + + for metric in metrics: + values.append(data["results"][length_category][metric]) + + data["results"][length_category] = values + + models_results[model] = data["results"] -RESULTS_DIR_NAME = "./results" -RESULTS_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), RESULTS_DIR_NAME)) +print(models_results) -try: - results = parseJsonFile(f"{RESULTS_DIR}/zero_shot/v2/condensed_results.json") - print(results) -except Exception as e: - print(f"Error: {e}") +x = np.arange(len(models)) +width = 0.2 -data = results -models = [entry["model"] for entry in data] -categories = [entry["Name"] for entry in data[0]["data"]] +for length_category in length_categories: -fig, axes = plt.subplots(5, 1, figsize=(18, 50), sharey=True) + fig, ax = plt.subplots(figsize=(14, 8)) -colors = ["skyblue", "orange", "green"] -metrics = ["TPR", "TNR", "Precision"] -bar_width = 0.2 -x_positions = np.arange(len(models)) + for i in range(len(metrics)): + ax.bar(x + i * width, np.array([models_results[model][length_category][i] for model in models]), width, label=metrics[i]) -for i, category in enumerate(categories): - ax = axes[i] - - for j, metric in enumerate(metrics): - values = [] - for model_data in data: - category_data = next(item for item in model_data["data"] if item["Name"] == category) - values.append(category_data[metric]) + ax.set_xticks(x + width * (len(metrics) / 2 - 0.5)) + ax.set_xticklabels(models, rotation=20, ha="right") - ax.bar(x_positions + j * bar_width, values, width=bar_width, label=metric, color=colors[j]) + ax.yaxis.set_major_locator(MaxNLocator(nbins=10)) + ax.yaxis.set_minor_locator(ticker.AutoMinorLocator(2)) - ax.set_title(category) - ax.set_xticks(x_positions + bar_width) - ax.set_xticklabels(models, rotation=15) - ax.set_ylabel("Valeur") + ax.set_ylabel("Score") + ax.set_title("Comparaison des modèles selon les métriques") ax.legend() -# plt.tight_layout() -plt.savefig(f"{RESULTS_DIR}/zero_shot/v2/condensed_results.png") \ No newline at end of file + plt.tight_layout() + plt.savefig(f"{GRAPHS_DIR}/{length_category}.png") + plt.close(fig) \ No newline at end of file diff --git a/variables/__pycache__/models.cpython-313.pyc b/variables/__pycache__/models.cpython-313.pyc index 9708832aa22f037d6e6f1218bad2ae42ae001a7f..2ed5f245944d97b2716f6c3919c2499d062f4fcb 100644 Binary files a/variables/__pycache__/models.cpython-313.pyc and b/variables/__pycache__/models.cpython-313.pyc differ