def finely_summarize_data_to_table()

in results/summarize_presupposition_results.py [0:0]


def finely_summarize_data_to_table(data, trigger, model, filtered):
    results_table = []
    for pair_type_key in right_answers.keys():
        pair_type = get_by_filter(data, pair_type_key)
        try:
            entail_n = sum([1 if d["pred_entailment"] > d["pred_neutral"] and d["pred_entailment"] > d["pred_contradiction"]
                            else 0 for d in pair_type]) / len(pair_type)
            neutral_n = sum([1 if d["pred_neutral"] > d["pred_entailment"] and d["pred_neutral"] > d["pred_contradiction"]
                            else 0 for d in pair_type]) / len(pair_type)
            contra_n = sum([1 if d["pred_contradiction"] > d["pred_neutral"] and d["pred_contradiction"] > d["pred_entailment"]
                            else 0 for d in pair_type]) / len(pair_type)
        except ZeroDivisionError:
            entail_n = 0
            neutral_n = 0
            contra_n = 0

        entry = np.zeros(1, dtype=data_type)
        entry["model"] = model
        entry["filtered"] = filtered
        entry["trigger_type"] = trigger
        entry["condition"] = pair_type_key
        if pair_type_key.startswith("control"):
            entry["control"] = True
            entry["trigger_condition"] = pair_type_key.split("_")[1]
            entry["presupposition_condition"] = ""
        else:
            entry["control"] = False
            entry["trigger_condition"] = pair_type_key.split("_")[1]
            entry["presupposition_condition"] = pair_type_key.split("_")[2]
        entry["entailment"] = entail_n
        entry["neutral"] = neutral_n
        entry["contradiction"] = contra_n
        entry["n_examples"] = len(pair_type)
        if right_answers[pair_type_key] == "entailment":
            entry["accuracy"] = entail_n
        elif right_answers[pair_type_key] == "neutral":
            entry["accuracy"] = neutral_n
        elif right_answers[pair_type_key] == "contradiction":
            entry["accuracy"] = contra_n
        results_table.append(entry)
    return results_table