Inspiration

As a college student, reading is half our lives. Whether it's textbooks, assignment descriptions, or just for fun, we need to ingest paragraph after paragraph of academic text every day. However, neurodivergent and dyslexic learners often disproportionately struggle with digesting these types of complex text, with these readers seeing paragraphs as walls of chaos. Uniform font weights, sizes, and spacing mean that there are no fixation points for our eyes to keep track of progress, and this can result in the feeling of being "lost" in a piece of text. We set out to create a method to break up large paragraphs and create more emphasis and fixation points to help alleviate pain points involved in reading academic texts.

What it does

NeuroRead takes in paragraphs, and weights sentences based on their complexity. The more complex the individual sentence, the more emphasized it is. This serves to break up "walls of text", while also telling the reader's brain to focus more on the sentences that will be more difficult to process. ** NeuroRead aims to improve the reader's comprehension of the paragraph and make the reading experience more pleasant and accessible overall**

How we built it

*The current iteration of NeuroRead is a simple HTML/CSS/JS website that serves as a demonstration of our backend, the PaCRAT API and Aenigma relative sentence complexity Python module. *

When a user enters a paragraph to process, the site sends the paragraph to the PaCRAT REST API, which in turn calls the Aenigma library. The Aenigma library first computes the individual Flesch-Kincaid readability score of each sentence within the paragraph, then compares these scores to the mean score to find the relative complexity score of each sentence in relation to the whole paragraph.

PaCRAT then assigns font weightage to each sentence based on the relative complexity score, and passes this as HTML back to the NeuroRead site, which displays it to the user.

Implementation Details

The demo NeuroRead site is implemented in plain HTML, CSS, and Javascript, PaCRAT is implemented as a REST API created using the FastAPI Python library, and Aenigma is implemented as a plain Python module, making extensive use of the Python Natural Language Toolkit (nltk).

Challenges we ran into

Some challenges we ran into included difficulties in creating a frontend for our application, resulting in us using a simple HTML/CSS/JS site rather than a full-stack application. We also faced difficulties in getting the API deployed and communicating correctly, resulting in having to do an entire rewrite from Flask to FastAPI.

Accomplishments that we're proud of

We accomplished a lot in this 24 hours! We:

  • Created a functional REST API
  • Published a package on the Python Package Index
  • Learned a lot about Full-Stack Development
  • Wrote an HTML/CSS/JS site from scratch
  • Came up with so many ideas on how to further extend this project and potentially turn aspects of it into academic research

What's next for NeuroRead

We plan to finish the React application we originally planned to submit, as well as polish up the PaCRAT API and the Aenigma library. We also plan to add more accessibilty features, such as the ability to use the OpenDyslexia font.

Share this project:

Updates