README
flesch
Formula to detect the grade level of text according to the Flesch reading ease.
See syllable
for detecting syllables.
Install
This package is ESM only: Node 12+ is needed to use it and it must be import
ed
instead of require
d.
npm:
npm install flesch
Use
import {flesch} from 'flesch'
// For “The cat sat on the mat” (1 sentence, 6 words, 6 syllables).
flesch({sentence: 1, word: 6, syllable: 6}) // => 116.14500...
// For “The Australian platypus is seemingly a hybrid of mammal and reptilian
// creature.” (1 sentence, 12 words, 23 syllables).
flesch({sentence: 1, word: 12, syllable: 23}) // => 32.50499...
API
This package exports the following identifiers: flesch
.
There is no default export.
flesch(counts)
Given an object containing the number of words (word
), the number of sentences
(sentence
), and the number of syllables (syllable
) in a document, returns
the reading ease associated with the document.
Returned values are 120 (every sentence consisting of only two one-syllable words), or lower (including negative values).
The values have the following semantics:
Score | Semantics |
---|---|
90.0 – 100.0 | Easily understood by an average 11-year-old student |
60.0 – 70.0 | Easily understood by 13- to 15-year-old students |
0.0 – 30.0 | Best understood by university graduates |
Therefore we can use the following formula to approximate the average age a
student would understand a document at, given score score
:
var age = 20 - Math.floor(score / 10)
Related
automated-readability
— Uses character count instead of error-prone syllable parsercoleman-liau
— Uses letter count instead of an error-prone syllable parserdale-chall-formula
— Uses a dictionary, suited for higher reading levelsflesch-kincaid
— Likeflesch
, returns U.S. grade levelsgunning-fog
— Uses syllable count, needs POS-tagging and NERsmog-formula
— Likegunning-fog-index
, without needing advanced NLPspache-formula
— Uses a dictionary, suited for lower reading levels