def log_synonym_precision(corpus, model, history):
    weights = [1.0 / float(history)] * int(history)
    log_precision = 0.0
    precisions = synonym_precisions(corpus, model, history)
    for ww, pp in zip(weights, precisions):
        if precisions[pp] > 0.0:
            log_precision += ww * math.log(precisions[pp])

    return log_precision
def gmean_synonym_precision(corpus, model, history):
    return gmean(synonym_precisions(corpus, model, history).values())
def gmean_synonym_precision(corpus, model, history, m, threshold):
    return gmean(synonym_precisions(corpus, model, history, m,
                                    threshold).values())