def compute_info_gain(word_list, language_model): word_dict = dict() for word in word_list: if word in word_dict: word_dict[word] +=1 else: word_dict[word] = 1 wlm = LanguageModel(term_dict = word_dict) ig = 0.0 for word in word_dict: pw = wlm.get_term_prob(word) pwc = language_model.get_term_prob(word) g = 0.0 if pwc > 0.0: g = pw * (math.log(pwc)- math.log(pw)) ig += g return ig