Welcome to the Vocabulary Learning Tool, an interactive and engaging way to enhance your vocabulary. This application utilizes principles of spaced repetition and randomization to help users effectively learn and retain new words.
- Introduction
- Features
- Key Bindings
- Optimized Hand Placement
- How It Works
- Setup Instructions
- How to Use
- Data Format
- Data Analysis and Neural Networks
- Contributing
- License
Learning vocabulary is crucial for language acquisition, but it can often be tedious and ineffective without the right methods. This tool leverages spaced repetition and randomization to optimize the learning process. By randomizing the presentation of words, we prevent the brain from merely memorizing their sequences or positions, thus ensuring better retention and understanding.
- Spaced Repetition: Prioritizes words based on how well you remember them.
- Randomization: Prevents memorization of word sequences, ensuring better retention.
- Interactive Learning: Provides examples and pronunciation for each word.
- User-Friendly Interface: Easy-to-use graphical interface with visual feedback.
- Vim-like Key Bindings: Efficient and ergonomic key bindings for seamless interaction.
The application supports Vim-like key bindings for an intuitive and efficient learning experience:
n
- Next wordp
- Previous wordh
- Mark word as "don't remember"j
- Mark word as "hard"k
- Mark word as "normal"l
- Mark word as "nice"i
- Mark word as "very impressive"0
- Skip 10 words forwardf
- Show wordd
- Show meanings
- Show examplea
- Play pronunciation
For the best user experience, we recommend positioning your hands as follows:
- Right Hand: Place your index finger on
h
, middle finger onj
, ring finger onk
, and pinky onl
. This positioning allows easy access to the evaluation keys. - Left Hand: Place your index finger on
f
, middle finger ond
, ring finger ons
, and pinky ona
. This positioning allows easy access to the word interaction keys.
This hand placement mimics the efficient navigation of Vim, allowing for quick and comfortable interaction with the application.
The human brain tends to remember information better when it is presented in a non-linear, unpredictable manner. This tool randomizes the order of words to prevent users from simply memorizing their positions or sequences. Instead, it encourages true understanding and retention by presenting words in varied contexts.
Spaced repetition is a learning technique that involves increasing intervals of time between subsequent reviews of previously learned material. This tool tracks your progress with each word and adjusts the frequency of review based on how well you remember it.
Randomizing the order of words disrupts the potential for pattern recognition or memorizing positions, which can hinder true learning. This method ensures that your brain engages with the content meaningfully each time.
- Python 3.x
- Required Python libraries:
pygame
,pandas
,gtts
-
Clone the Repository
git clone https://github.com/yourusername/vocabulary-learning-tool.git cd vocabulary-learning-tool
-
Create and Activate a Virtual Environment (Optional but Recommended)
python -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate`
-
Install Dependencies
pip install -r requirements.txt
-
Prepare Your Vocabulary Data
- Place your vocabulary data in an
xlsx
orcsv
file namedcapture.xlsx
orcapture.csv
in the root directory.
- Place your vocabulary data in an
-
Run the Application
python main.py
-
Follow the On-Screen Instructions
- Use the provided key bindings to navigate and interact with the vocabulary words.
- Evaluate each word based on your familiarity to adjust its review frequency.
-
Close the Application
- Press
ESC
to exit the application. Your progress will be automatically saved.
- Press
To ensure your vocabulary data is properly loaded, please refer to the example Excel file example provided in the repository. The data should be structured with the following columns:
- word: The vocabulary word to learn.
- meaning: The definition or meaning of the word.
- example: A sentence or phrase using the word in context.
- date: The date the word was added.
- classes: The spaced repetition class of the word (used for tracking review intervals).
- last_changes_of_class: The date when the class was last changed.
- date_becoming: The date the word reached the highest class.
- recalling: A counter for recalling the word after it has reached the highest class.
These additional columns help the tool manage the spaced repetition algorithm more effectively.
The collected data can also be used for data analysis purposes and to train neural networks. The feedback columns are designed with this in mind. By analyzing user interactions and progress, we can provide more thorough feedback and potentially enhance the learning algorithm. This opens up opportunities for future improvements and personalized learning experiences.
Contributions are welcome! Please fork this repository and submit pull requests with your improvements.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/your-feature
) - Commit your Changes (
git commit -m 'Add your feature'
) - Push to the Branch (
git push origin feature/your-feature
) - Open a Pull Request
This project is licensed under the MIT License. See the LICENSE file for details.
Thank you for using the Vocabulary Learning Tool. We hope it helps you achieve your language learning goals effectively! If you have any questions or feedback, feel free to open an issue or contact us directly. Happy learning!