Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- def create_chain_arr_lines(lines):
- markov_chain = {}
- hasPrev = False
- for line in lines:
- for currWord in line.split():
- if currWord != '':
- currWord = currWord.lower()
- if hasPrev == False:
- prevWord = currWord
- hasPrev = True
- else:
- markov_chain.setdefault(prevWord, []).append(currWord)
- prevWord = currWord
- return markov_chain
- def construct_sentence(markov_chain):
- while True:
- word = random.choice(markov_chain.keys())
- if word[-1] not in ('.','?'):
- break
- generated_sentence = word.capitalize()
- while word[-1] not in ('.','?'):
- newword = random.choice(markov_chain[word])
- generated_sentence += ' '+newword
- word = newword #TODO fix possible crash if this is not a key (last word parsed)
- return generated_sentence
- #example usage
- mc = create_chain_arr_lines(open('someLargeText.txt'))
- #Generate 20 phrases
- for i in xrange(0, 20):
- print construct_sentence(mc)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement