Reconstructs the MultiWeightsChemenvStrategy object from a dict representation of the
        MultipleAbundanceChemenvStrategy object created using the as_dict method.
        :param d: dict representation of the MultiWeightsChemenvStrategy object
        :return: MultiWeightsChemenvStrategy object

def from_dict(cls, d):
        """
        Reconstructs the MultiWeightsChemenvStrategy object from a dict representation of the
        MultipleAbundanceChemenvStrategy object created using the as_dict method.
        :param d: dict representation of the MultiWeightsChemenvStrategy object
        :return: MultiWeightsChemenvStrategy object
        """
        if d["normalized_angle_distance_weight"] is not None:
            nad_w = NormalizedAngleDistanceNbSetWeight.from_dict(d["normalized_angle_distance_weight"])
        else:
            nad_w = None
        return cls(additional_condition=d["additional_condition"],
                   symmetry_measure_type=d["symmetry_measure_type"],
                   dist_ang_area_weight=DistanceAngleAreaNbSetWeight.from_dict(d["dist_ang_area_weight"])
                   if d["dist_ang_area_weight"] is not None else None,
                   self_csm_weight=SelfCSMNbSetWeight.from_dict(d["self_csm_weight"])
                   if d["self_csm_weight"] is not None else None,
                   delta_csm_weight=DeltaCSMNbSetWeight.from_dict(d["delta_csm_weight"])
                   if d["delta_csm_weight"] is not None else None,
                   cn_bias_weight=CNBiasNbSetWeight.from_dict(d["cn_bias_weight"])
                   if d["cn_bias_weight"] is not None else None,
                   angle_weight=AngleNbSetWeight.from_dict(d["angle_weight"])
                   if d["angle_weight"] is not None else None,
                   normalized_angle_distance_weight=nad_w,
                   ce_estimator=d["ce_estimator"])