Unsupervised Discovery of Rhyme Schemes
Project description
rhymediscovery
A python package for detecting rhyme schemes in poetry. With standard configuration, it achieves about 65% accuracy in the rhymedata corpus.
Basic usage
pip install rhymediscovery
>>> from rhymediscovery import find_schemes
>>> find_schemes.find_schemes([['herz', 'welt', 'geld', 'schmerz'], ...])
[(('herz', 'welt', 'geld', 'schmerz'), (1, 2, 1, 2)), ...]
Command line
The command line tool find_schemes
expects a file formatted like the .pgold files in the rhymedata corpus. A sample file can be found here in the repo.
To demonstrate the tool, we clone the rhymedata corpus:
git clone https://github.com/sravanareddy/rhymedata.git
Then we run:
find_schemes rhymedata/english_gold/1415.pgold 1415.out
The 1415.pgold
file from the corpus has been manually annotated with the correct rhyme schemes. Thus we can evaluate our result file using:
evaluate_schemes 1415.out rhymedata/english_gold/1415.pgold
Credits
This package implements the following paper:
Sravana Reddy and Kevin Knight. “Unsupervised discovery of rhyme schemes.” Proceedings of ACL 2011. (pdf)
It is a fork of the reference implementation by @sravanareddy which is available in its original form here.