Various scripts for playing around with natural language processing/generation

generate_poem.py 803B

123456789101112131415161718192021222324252627
  1. import nltk
  2. import random
  3. from stat_parser import Parser
  4. class PoemGenerator():
  5. def __init__(self, corpus):
  6. self.sents = corpus.sents('austen-emma.txt')
  7. self.bigrams = list(nltk.bigrams(corpus.words('austen-emma.txt')))
  8. self.cfd = nltk.ConditionalFreqDist(self.bigrams)
  9. self.parser = Parser()
  10. self.history = []
  11. def generate_poem(self):
  12. sent = random.choice(self.sents)
  13. parsed = self.parser.parse(' '.join(sent))
  14. word = random.choice(self.bigrams)[0]
  15. for i in range(15):
  16. print word,
  17. for gram in self.cfd[word].items():
  18. import ipdb; ipdb.set_trace() # BREAKPOINT
  19. if __name__ == '__main__':
  20. generator = PoemGenerator(nltk.corpus.gutenberg)
  21. print generator.generate_poem()