Determine the “Readability” of a text with Python
George Klare (1963) defines readability as “the ease of understanding or comprehension due to the style of writing.”
Readability, although somewhat subjective, has been a well researched topic dating back to the 1920s. Since then, researchers have crafted a number of readability formulas that attempt to accurately identify the readability of a text.
Readability metrics have numerous uses. A writer might use the metrics to objectively assess the complexity of his work to determine whether it’s written at a level appropriate for his intended audience. An educational software firm might use readability metrics to recommend level-appropriate content for its students.
Currently, I work on the latter. As a result, I’ve written a Python package, py-readability-metrics that assesses the readability of a given text, using a variety of today’s most popular readability metrics. These include:
- Flesch Kincaid Grade Level
- Flesch Reading Ease
- Dale Chall Readability
- Automated Readability Index (ARI)
- Coleman Liau Index
- Gunning Fog
- SMOG
- Linear Write
Given a text, each of the above metrics calculate a score indicating the difficulty of the text. Often, the score is mapped to a grade level e.g.. kindergarten, first grade, …, through college graduate.
py-readability-metrics implements the above formulas and calculates their scores. Additionally, it enables one to easily interpret each score by reporting its grade level(s) mapping. For example, a “Flesch Reading Ease” score of 80 indicates that the text is written at a 6th grade reading level. A “Flesch-Kincaid Grade Level” score of 6.4 also indicates a 6th grade reading level.
Let’s see a few examples
To install the package, use pip:

- pip install py-readability-metrics installs the module
- python -m nltk.downloader installs a punctuation module
Now that we’ve installed the module, let’s see how to assess a text using the Flesch Kincaid Grade Level metric

To install the package, use pip:
And now, with assess the same text, using the SMOG Index

py-readability-metrics provides simple api that enables developers to easily assess the readability of a given text using a variety of popular metrics.
If you dig the project, star it on GitHub!