Function Repository Resource:

TimeToRead

Source Notebook

Estimate the time a human would take to read a text

Contributed by: Christian Pasquel

ResourceFunction["TimeToRead"][text]

estimates the time required to read text.

ResourceFunction["TimeToRead"][text,rate]

estimates the time required to read text using reading speed rate.

Details and Options

Reading speed rate must be a Quantity with units of words per time.
ResourceFunction["TimeToRead"] has the option Language, with a default of English, that sets the default reading rate of the provided language. Currently supported languages and rates include:
Arabic138 words/min
Dutch202 words/min
English238 words/min
Finnish250 words/min
French195 words/min
German179 words/min
Italian188 words/min
Polish166 words/min
Portuguese181 words/min
Spanish218 words/min
Swedish199 words/min

Examples

Basic Examples (1) 

Estimate the time required to read a Wikipedia article:

In[1]:=
ResourceFunction["TimeToRead"][WikipediaData["Keanu Reeves"]]
Out[1]=

Scope (2) 

Use the default reading rate:

In[2]:=
ResourceFunction["TimeToRead"][WikipediaData["Jennifer Lawrence"]]
Out[2]=

Compute the time providing a specific reading rate:

In[3]:=
ResourceFunction["TimeToRead"][WikipediaData["Jennifer Lawrence"], Quantity[500, ("Words")/("Minutes")]]
Out[3]=

Options (2) 

Language (2) 

Get a Wikipedia article in Spanish:

In[4]:=
article = WikipediaData["Keanu Reeves", Language -> Entity["Language", "Spanish::77gfp"]];

Estimate the reading time of the article using the default Spanish reading rate:

In[5]:=
ResourceFunction["TimeToRead"][article, Language -> Entity["Language", "Spanish::77gfp"]]
Out[5]=

Possible Issues (1) 

Unsupported languages (1) 

Using an unsupported language will return a Missing output and an error message:

In[6]:=
ResourceFunction["TimeToRead"][WikipediaData["Steven Wilson"], Language -> Entity["Language", "Japanese::y9r37"]]
Out[6]=

Neat Examples (2) 

Estimate the time it would take to read each Wikipedia article of every member of The Beatles:

In[7]:=
data = <|"Person" -> #, "Time" -> ResourceFunction["TimeToRead"][WikipediaData[#]]|> & /@
    Entity["MusicAct", "TheBeatles::r844v"][
    EntityProperty["MusicAct", "Members"]];
In[8]:=
Dataset[data][ReverseSortBy[#Time &]]
Out[8]=

Get the total time in hours and minutes:

In[9]:=
UnitConvert[Dataset[data][All, "Time"][Total], MixedUnit[{"Hours", "Minutes"}]]
Out[9]=

Version History

  • 2.0.0 – 16 June 2020
  • 1.0.0 – 14 May 2020

Related Resources

Author Notes

This is a first attempt to write a function that provides a useful estimate of the silent reading time for humans based on an input text. While I'm aware that different languages, contexts (e.g. fiction vs non-fiction), ages and skills affect the reading rate. I'll be adding more languages and options in the future. Future work could include using other more advanced methods to improve the answer (e.g. determine if the text is fiction or non-fiction to provide a more suitable reading rate).

License Information