'Smoothing method 3: NIST geometric sequence smoothing
The smoothing is computed by taking 1 / ( 2^k ), instead of 0, for each
precision score whose matching n-gram count is null.
k is 1 for the first \'n\' value for which the n-gram match count is null/
For example, if the text contains:
- one 2-gram match
- and (consequently) two 1-gram matches
the n-gram count for each individual precision score would be:
- n=1  =>  prec_count = 2     (two unigrams)
- n=2  =>  prec_count = 1     (one bigram)
- n=3  =>  prec_count = 1/2   (no trigram,  taking \'smoothed\' value of 1 / ( 2^k ), with k=1)
- n=4  =>  prec_count = 1/4   (no fourgram, taking \'smoothed\' value of 1 / ( 2^k ), with k=2)'

def method3(self, p_n, *args, **kwargs):

    incvnt = 1
    for (i, p_i) in enumerate(p_n):
        if (p_i.numerator == 0):
            p_n[i] = (1 / ((2 ** incvnt) * p_i.denominator))
            incvnt += 1
    return p_n
