mholtzscher / spacy_readability

spaCy pipeline component for adding text readability meta data to Doc objects.
MIT License
56 stars 10 forks source link
nlp python3 spacy

spacy_readability

spaCy v2.0 pipeline component for calculating readability scores of of text. Provides scores for Flesh-Kincaid grade level, Flesh-Kincaid reading ease, Dale-Chall, and SMOG.

Installation

 pip install spacy-readability

Usage

 import spacy
 from spacy_readability import Readability

 nlp = spacy.load('en')
 nlp.add_pipe(Readability())

 doc = nlp("I am some really difficult text to read because I use obnoxiously large words.")

 print(doc._.flesch_kincaid_grade_level)
 print(doc._.flesch_kincaid_reading_ease)
 print(doc._.dale_chall)
 print(doc._.smog)
 print(doc._.coleman_liau_index)
 print(doc._.automated_readability_index)
 print(doc._.forcast)

Readability Scores

Readability is the ease with which a reader can understand a written text. In natural language, the readability of text depends on its content (the complexity of its vocabulary and syntax) and its presentation (such as typographic aspects like font size, line height, and line length).

Popular Metrics

Contributing

Setup

  1. Install Poetry
  2. Run make setup to prepare workspace

Testing

  1. Run make test to run all tests

Linting

  1. Run make format to run black code formatter
  2. Run make lint to run pylint
  3. Run make mypy to run mypy