Read faster. Learn quicker. Understand deeper. SpeedPUB.
SpeedPUB provides syntax highlighting to written language.

TL;DR
SpeedPUB is a tool that leverages NLP neural network models to colour words based off their purpose in a text. SpeedPUB will improve your reading speed and comprehension in both English and Chinese (so far!).
Why?
As avid readers and language learners, we have come to appreciate how time-consuming reading can be. In pursuit of maximum cranial stimulation without resorting to watching car crash videos on Instagram Reels, we developed SpeedPub. We aim SpeedPUB to assist in learning languages, and to enhance the reading experience for languages you are already fluent in.
What?
SpeedPUB uses cutting-edge Natural Language Processing Neural Networks to determine the purpose of words in a sentence, and highlights them according to their function.
SpeedPUB also has the ability to bold portions of words to enable advanced speed-reading techniques.
The optional GUI provides an easy-to-use interface for creating highlighted EPUBs, and allows in-depth customization of highlight colours.
How?
Written in Python, SpeedPUB performs the following pipeline:
- Deserialise EPUB with EBookLib
- Parse EPUB XHTML content with BeautifulSoup
- Determine Parts of Speech using NLTK and HanLP
- Package back into EPUB
The optional GUI is written using tkinter
Challenges
- Our initial prototype was not language-agnostic, resulting in unnecessary time waste refactoring something that should have been engineered correctly initially.
- We are not colour scientists, and had a hard time figuring out which colours 'feel' the best to read
- We are not linguists, and had to learn a lot about language to work with NLP libraries
- Larry didn't pay attention during Chinese school so we had a difficult time understanding Chinese grammar
- We had too much fun at workshops and enjoy sleeping a little too much. Deadlines be damned.
Beyond the ILC
- We plan on actually using this tool for reading, and so we plan on extending it into the future to make using it a better experience.
- Having to manually convert EPUBs is tedious. It would be fruitful to work on an eReader application that does this for you.
- Performance for dense languages at high DPIs is slower than it needs to be, and needs to be looked into
- We hope the expand the features of SpeedPUB to more languages than just English and Chinese.
Built With
- chinese
- english
- epub
- full-stack
- natural-language-processing
- neural-network
- nltk
- python
- tkinter
Log in or sign up for Devpost to join the conversation.