Skip to content

gthomas/haikus

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#Haikus Haikus is a Python library for finding haikus in arbitrary text using NLTK. It simply finds 5 and 7 syllable phrases that form haikus in a 5,7,5 pattern.

##Installation Use pip!

pip install -e git+https://github.com/wieden-kennedy/haikus#egg=haikus

##Usage It's easy to find haikus in text with Haikus. Simply instantiate a HaikuText object with your choice of text and ask it to find haikus.

from haikus import HaikuText

f = open("/tmp/my_term_paper.txt", "r")
text = HaikuText(text=f.read())

haikus = HaikuText.get_haikus()

HaikuText's get_haikus() function will return a Haiku instance for every haiku in the text. Haiku's get_lines() method will return a list of lines in the haiku.

haiku = haikus[0]

print haiku.get_lines()
# oh look, a haiku from your term paper! ["abraham lincoln", "was a president one time", "he freed many slaves"]

##Haiku Evaluation Haikus includes functions for evaluating Haiku objects based on their contents. Haiku's calculate_quality() method will calculate the quality of a Haiku instance based on a set of evaluators. You can use the set of weighted evaluators provided by Haikus or create your own set of weighted evaluators.

haiku.calculate_quality()
# this will return the haiku's quality according to the DEFAULT_HAIKU_EVALUATORS

MY_RAD_EVALUATORS = [
  #look at these evaluator, weight tuples!
  (IsAwesomeEvaluator, 1),
  (ContainsDogEvaluator, 0.75),
]
haiku.calculate_quality(evaluators=MY_RAD_EVALUATORS)
#this will calculate the quality accordin to MY_RAD_EVALUATORS

You can create your own evaluators by inheriting from haiku.evaluators.HaikuEvaluator and implementing the evaluate() method. See haiku.evaluators for some examples.

For more usage examples, see the tests, or check out Django-Haikus

About

General-purpose haiku detection in Python

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%