Source code for explainy.core.explanation_mixin

# -*- coding: utf-8 -*-
"""
Created on Thu May 13 21:49:43 2021

@author: maurol
"""
import os

from explainy.utils.category_mapper import CategoryMapper


[docs]class ExplanationMixin:
[docs] def map_category(self, feature_name, feature_value): """ Args: feature_name (TYPE): DESCRIPTION. feature_value (TYPE): DESCRIPTION. Returns: feature_value (TYPE): DESCRIPTION. """ # TODO: fix path path_json = r"" if not os.path.exists(path_json): return feature_value if f"{feature_name}.json" in os.listdir(path_json): mapper = CategoryMapper(path_json, feature_name) # print(mapper[int(feature_value)]) feature_value = mapper[int(feature_value)] return feature_value
[docs] @staticmethod def join_text_with_comma_and_and(values: list) -> str: """ Merge values for text output with commas and only the last value with an "and"" Args: values (list): list of values to be merged. Returns: str: new text. """ if len(values) > 2: last_value = values[-1] values = ", ".join(values[:-1]) text = values + ", and " + last_value else: text = ", and ".join(values) return text
[docs] def get_number_to_string_dict(self) -> None: """ map number of features to string values """ number_text = ( "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen", "twenty", ) self.num_to_str = {} for text, number in zip(number_text, range(1, 21)): self.num_to_str[number] = text