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
Exemple #3
0
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