'Smoothing method 4:
Shorter translations may have inflated precision values due to having
smaller denominators; therefore, we give them proportionally
smaller smoothed counts. Instead of scaling to 1/(2^k), Chen and Cherry
suggests dividing by 1/ln(len(T)), where T is the length of the translation.'

def method4(self, p_n, references, hypothesis, hyp_len, *args, **kwargs):

    for (i, p_i) in enumerate(p_n):
        if ((p_i.numerator == 0) and (hyp_len != 0)):
            incvnt = (i + ((1 * self.k) / math.log(hyp_len)))
            p_n[i] = (1 / incvnt)
    return p_n
