示例#1
0
    def __str__(self):
        results = self.to_dict()
        stat_str = "************{name:*<30}\n\n".format(
            name=f"  {self.analysis.key}  ")
        stat_str += "-----------  general  -----------\n"
        general_dict = OrderedDict({
            "Number of runs":
            results['general']['n_states'],
            "Number of papers":
            results['general']['n_papers'],
            "Number of included papers":
            results['general']['n_included'],
            "Number of excluded papers":
            results['general']['n_excluded'],
            "Number of unlabeled papers":
            results['general']['n_unlabeled']
        })

        n_query_list = np.array(results['general']['n_queries'])
        if np.all(np.array(n_query_list) == n_query_list[0]):
            general_dict["Number of queries"] = n_query_list[0]
        else:
            avg = np.average(n_query_list)
            minim = np.min(n_query_list)
            maxim = np.max(n_query_list)
            tstr = f"{avg} (min: {minim}, max: {maxim})"
            general_dict["Number of queries"] = tstr

        stat_str += pretty_format(general_dict)
        stat_str += f"\n"
        stat_str += "-----------  settings  -----------\n"
        if isinstance(results["settings"], str):
            stat_str += results["settings"] + "\n"
        else:
            stat_str += pretty_format(results["settings"]) + "\n"

        stat_str += "-----------    ATD    -----------\n"
        stat_str += f"{results['loss']: .3g}\n\n"

        if len(results["wss"]) + len(results["rrf"]) > 0:
            stat_str += "-----------  WSS/RRF  -----------\n"
            for wss_at, wss_val in results["wss"].items():
                if wss_val is not None:
                    wss_val_str = f"{wss_val:.2f}"
                else:
                    wss_val_str = "NA"
                stat_str += f"WSS@{wss_at: <3}: {wss_val_str: <5} %\n"
            for rrf_at, rrf_val in results["rrf"].items():
                if rrf_val is not None:
                    rrf_val_str = f"{rrf_val:.2f}"
                else:
                    rrf_val_str = "NA"
                stat_str += f"RRF@{rrf_at: <3}: {rrf_val_str: <5} %\n"

        return stat_str
示例#2
0
 def __str__(self):
     return pretty_format(self.to_dict())
示例#3
0
 def __str__(self):
     dataset_dict = self.datasets[-1].to_dict()
     dataset_dict["versions_available"] = [d.dataset_id for d in self.datasets]
     return pretty_format(dataset_dict)