def match_rhyme(stem, verse_model): # Check if rhymes exist try: ls = rhyme_finder(stem, tokenized_text) except KeyError: return None if not ls: return None # If rhymes exist generate lines for n in range(100): while True: rhyme_line = verse_model.make_sentence() #make random sentence with proper syntax and semantics from verse model if rhyme_line is not None: # Keep syllables within range syl_count = sylco(rhyme_line) if syl_count > 16 or syl_count < 6: continue # Get stem of rhyme_line rhyme_stem = clean(rhyme_line.rsplit(None, 1)[-1]) # Check for rhyme if rhyme_stem in ls: return rhyme_line break return None
def build_rhyme_dict(self, sentence): try: rhymes_dict = {} last_word = sentence.rsplit()[-1] last_word = self.remove_punctuation(last_word) rhymes_dict = {'line': sentence, 'last_word' : last_word, 'rhymes': [last_word] + rhyme_finder(last_word, self.tokenized_text) } return rhymes_dict except Exception as e: pass return None
def match_rhyme(stem, model, text): try: ls = rhyme_finder(stem, text) except KeyError: return None if not ls: return None for n in range(100): while True: rhyme_line = model.make_sentence() if rhyme_line is not None: rhyme_stem = clean(rhyme_line.rsplit(None, 1)[-1]) if rhyme_stem in ls: return rhyme_line break return None