An advanced, human-like question generation system built from scratch. This project dynamically learns from your input notes and data, mimicking human intelligence to generate insightful questions, fully personalized to the text you provide. No templates, just pure learning and reasoning! π
- Human-like Question Generation: Understands the text you input, and formulates questions dynamically.
- Advanced NLP: Uses state-of-the-art Natural Language Processing techniques for parsing and understanding text.
- Fully Customizable Model: Train the system on your own data, making it adaptable to specific topics and contexts.
- No Templates: No predefined rules for questions β it learns and thinks just like a human would!
- Python 3.12.x: Core programming language.
- spaCy: NLP library for text processing, tokenization, and dependency parsing.
- scikit-learn: For machine learning components.
- Flask : For building a simple web-based interface.
- NumPy: For data manipulation.
git clone https://github.com/dmunasingha/Questions-Generator.git
cd Questions-Generator
Install the required libraries from the requirements.txt
file.
pip install -r requirements.txt
After installing spaCy
, download the required language model:
python -m spacy download en_core_web_sm
After installing the spaCy Model
, copy the .env.example
into .env
:
For Windows
copy .env.example .env
For Unix-like systems (Linux or macOS)
cp .env.example .env
-
Command Line Interface (CLI):
-
Run the main script to input your notes and generate questions:
python index.py
-
The system will prompt you to input your notes, and then it will generate a set of human-like questions based on your input.
-
-
Web App (Flask):
-
Start the Flask server:
python app.py
-
Navigate to
http://localhost:5000
in your browser to access the web-based interface for inputting notes and viewing generated questions.
-
Technology plays a transformative role in education by enhancing learning experiences and providing access to resources. Online platforms and educational apps allow for personalized learning.
1. What is the transformative role of technology in education?
2. How do online platforms enhance personalized learning?
3. Why is it important to have access to educational resources?
- Python 3.12+
- pip (for package management)
- spaCy NLP Model (
en_core_web_sm
)
Planned File structure to be implemented in the future with a model
π¦ question-generation
β£ π data
β β£ π dataset.json
β£ π controllers
β β£ π home_controller.py
β β£ π about_controller.py
β£ π models
β β£ π question_generator.py
β£ π static
β β£ π js
β β£ β£ π formValidator.js
β β£ β£ π home.js
β β£ π css
β β£ β£ π style.css
β£ π templates
β β£ π about.html
β β£ π base.html
β β£ π index.html
β£ π app.py # Flask app
β£ π index.py # Main CLI entry point
β£ π requirements.txt
β£ π README.md
β£ π SECURITY.md
Contributions are welcome! If you'd like to contribute, please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature/new-feature
). - Commit your changes (
git commit -m 'Add some new feature'
). - Push to the branch (
git push origin feature/new-feature
). - Open a pull request.
This project is licensed under the MIT License β see the LICENSE file for details.
- Implement deeper learning capabilities for improved question generation.
- Allow for training on larger datasets for domain-specific question generation.
- Add more sophisticated web UI with a question editor.
- Dunith Munasingha - Lead Developer π»
Reach me at munasingha.dunith@gmail.com
Special thanks to the developers of spaCy and scikit-learn for their amazing libraries.
Disclaimer: This project is for educational purposes and is constantly evolving. Feel free to explore, contribute, and adapt it to your