def monte_carlo_export(self, nonterminal, filename, samplesscalar=1, ):
"""
returns a tab seperated value list of productions, duplicates removed.
one thing I need to change is to output the set of markup in a nicer fashion
"""
expansion = collections.Counter(sorted(self.monte_carlo_expand(nonterminal, samplesscalar)))
with open(filename, 'a') as csvfile:
row_writer = csv.writer(csvfile, delimiter='\t', quotechar='|', quoting=
csv.QUOTE_MINIMAL)
prob_range = 0
for deriv in expansion:
rng_interval = float(expansion[deriv]) / sum(expansion.values())
rng_max = prob_range + rng_interval
temp_prob = [prob_range, rng_max]
row_writer.writerow(
[nonterminal, str(deriv.expansion),
'^'.join(str(annotation) for annotation in list(deriv.markup)),
[prob_range, rng_max]]
)
prob_range += rng_interval
评论列表
文章目录