#!/usr/bin/env python2 import math def BLEU(N, w, v): sum = 0 for i in range(N): j = i+1 if v[i] == 0: continue sum += (w[i]*math.exp(math.log(v[i])))/(2**(N-j+1)) print v[i], math.log(v[i]), w[i] * math.log(v[i]), w[i] return sum N = 4 w = [1.0/N for i in range(N)] v = [0.1, 0.1, 0.1, 0.1] print BLEU(N, w, v)