def __init__(self, config_file):
"""Constructor"""
# Load options
util.load_config(self, config_file)
# Set up the collection of verses
self.verses = load_verses(self.general.output_file)
self.n_verses = len(self.verses)
# Store the verses by rhyme
self.rhymes = defaultdict(lambda: set())
for i, verse in enumerate(self.verses):
self.rhymes[poetry.verse_rhyme(verse)].add(i)
# Total number of rhymes
self.n_rhymes = len(self.rhymes)
for k, v in self.rhymes.items():
self.rhymes[k] = list(v)
# Probability of picking a rhyme
# This probability is proportional to the number of verses for each rhyme.
# In particular, for rhymes with only one verse, the probability is set to 0
self.p_rhymes = {r: (len(v) - 1) for r, v in self.rhymes.items()}
self.names_rhymes, self.p_rhymes = zip(*self.p_rhymes.items())
self.p_rhymes = np.asarray(self.p_rhymes, dtype=float)
self.p_rhymes /= self.p_rhymes.sum()
# Title generator
self.tg = title.get_title_generator(self.title)
评论列表
文章目录