def __init__( self, lexicon, length_rv, ): self.lexicon_ = sorted( lexicon.items() ) self.length_random_variable_ = length_rv self.word_index_picker_ = DiscretePicker( [ w for (k,w) in self.lexicon_ ] )
class PortmanteauGenerator(object): def __init__( self, lexicon, length_rv, ): self.lexicon_ = sorted( lexicon.items() ) self.length_random_variable_ = length_rv self.word_index_picker_ = DiscretePicker( [ w for (k,w) in self.lexicon_ ] ) def generateName( self ): length = self.length_random_variable_.pick() portmanteau = "" weight = 0.0 for i in range( length ): k = self.word_index_picker_.pick() ith_word = self.lexicon_[ k ][0] ith_weight = self.lexicon_[ k ][1] portmanteau += "".join( ith_word ) weight += 1/ith_weight return (1/weight), portmanteau