def test_sonnets(self): self.assertTrue( poetrytools.guess_form(self.open_poem('sonnet.txt')) == 'Shakespearean sonnet') self.assertTrue( poetrytools.guess_form(self.open_poem('brokensonnet.txt')) == 'sonnet with trochaic pentameter or irregular meter')
def test_sonnets(self): self.assertTrue( poetrytools.guess_form(self.open_poem('sonnet.txt')) == 'Shakespearean sonnet') self.assertTrue( poetrytools.guess_form(self.open_poem('brokensonnet.txt')) == 'sonnet with unusual meter')
def analysis(x): print(len(temp_form)) print(type(x)) poem = poetrytools.tokenize(x) temp_form.append(poetrytools.guess_form(poem, verbose=False)) temp_metre.append(poetrytools.guess_metre(poem)[3]) temp_rhyme.append(poetrytools.guess_rhyme_type(poem)[1]) temp_stanza_type.append(poetrytools.guess_stanza_type(poem)[1])
def add_poem_form(poems_file_loc): form = {} with open(poems_file_loc, 'rb') as f: poems = cPickle.load(f) print "nbr of poems: %d" % count_poems(poems) iter = 0 for author, author_dct in poems.iteritems(): for poem_title, poem in author_dct.iteritems(): try: form[poem_title] = poetrytools.guess_form(poem) except: pass iter += 1 if iter % 100 == 0: print "%s: processed %d poems" % (datetime.now(), iter) return form
def test_rondeau(self): self.assertTrue( poetrytools.guess_form(self.open_poem('rondeau.txt')) == 'rondeau')
def test_heroiccouplets(self): self.assertTrue( poetrytools.guess_form(self.open_poem('heroiccouplets.txt')) == 'heroic couplets')
def test_ottavarima(self): self.assertTrue( poetrytools.guess_form(self.open_poem('ottavarima.txt')) == 'ottava rima')
def test_cinquain(self): self.assertTrue( poetrytools.guess_form(self.open_poem('cinquain.txt')) == 'cinquain')
def test_blankverse(self): self.assertTrue( poetrytools.guess_form(self.open_poem('blankverse.txt')) == 'blank verse')
def test_haiku(self): self.assertTrue( poetrytools.guess_form(self.open_poem('haiku.txt')) == 'haiku') self.assertTrue( poetrytools.guess_form(self.open_poem('tanka.txt')) == 'tanka')
if TEST: OUTPUT = r"../data/test/input.txt" VOCAB = 300 SUFFIX = "" else: OUTPUT = r"../data/large/gutenberg.txt" VOCAB = 40000 SUFFIX = "NEW" def write_out(text, f): # Write out with open(f, "w") as fobj: fobj.write(text) def read_in(ff): with open(ff, "r") as fobj: return fobj.read() # Prune vocab for most common words text = read_in(OUTPUT) #write_out(text, out) poem = poetrytools.tokenize(text) # need to tokenize the poem first print(poem) x = poetrytools.scanscion(poem) print(x) poetrytools.guess_form(poem, verbose=True)