def add_coverage(self, symbol, children): key = expansion_key(symbol, children) if self.log: print("Found", key) if key not in self.expansion_counts: self.expansion_counts[key] = 0 self.expansion_counts[key] += 1
def set_expansion_probabilities(self, symbol, counts): expansions = self.grammar[symbol] if len(expansions) == 1: set_prob(self.grammar, symbol, expansions[0], None) return expansion_counts = [ counts.get(expansion_key(symbol, expansion), 0) for expansion in expansions ] total = sum(expansion_counts) for i, expansion in enumerate(expansions): p = expansion_counts[i] / total if total > 0 else None set_prob(self.grammar, symbol, expansion, p)