Source code for fee.metrics.direct_bias

import numpy as np
from ..utils import get_g


[docs]class DirectBias(): """Direct Bias Metric""" def __init__(self, E, c=1, g=None): """Direct bias calculation Args: E (WE class object): Word embeddings object Kwargs: c (float): strictness factor g (np.array): gender direction """ if g is None: g = get_g(E) assert len(g) == E.dim self.g = g self.E = E self.c = c def _direct_bias(self, vec): """Direct bias computation Args: vec (np.array): numpy array to calculate direct bias for """ return np.power(np.abs(vec.dot(self.g)), self.c)
[docs] def compute(self, word_list): """Compute direct bias Args: word_list (list): list of words to compute bias for. Returns: The direct bias of each word in the `word_list`. """ if not isinstance(word_list, list): word_list = [word_list] db = np.mean( [self._direct_bias(self.E.v(word)) for word in word_list] ) return db