DEV Community

Cover image for AI-Powered MCQ Generator Using NLP and LSTM
Sowmiya Siva
Sowmiya Siva

Posted on

AI-Powered MCQ Generator Using NLP and LSTM

MCQ Generator: Automate Your Quiz Creation Process

Have you ever wished you could automatically generate multiple-choice questions (MCQs) from your lecture notes, articles, or other textual content? Look no further! Introducing MCQ Generator, a Flask-based web application that leverages Natural Language Processing (NLP) and deep learning to dynamically create quiz questions. This project is perfect for educators, students, and content creators who need a quick way to transform text into interactive quizzes.

Overview

MCQ Generator is designed to process input from various sources—whether it's a URL, manual text, or even a file upload (PDF or TXT)—and generate multiple-choice questions with answer options. It even provides a downloadable PDF of the generated questions, making it easy to share or print quizzes for classroom use.

Key Features

  • MCQ Generation: Automatically generates multiple-choice questions by processing input text.
  • NLP & Deep Learning: Uses spaCy for NLP processing and a TensorFlow/Keras LSTM model to understand sentence structures.
  • File & URL Support: Accepts input via URL, manual text entry, or file uploads (PDF/TXT).
  • PDF Download: Allows users to download the generated MCQs as a PDF.
  • User-Friendly Interface: Built with Flask and styled using Bootstrap for a clean, responsive design.

Technologies Used

  • Flask: Backend framework for building the web application.
  • BeautifulSoup & Requests: For web scraping and processing content from URLs.
  • PyPDF2: For extracting text from PDF files.
  • spaCy: For NLP tasks such as tokenization and sentence segmentation.
  • TensorFlow & Keras: To build and run an LSTM model for understanding sentence structures.
  • ReportLab: For generating PDFs of the MCQs.
  • Bootstrap: For a responsive and user-friendly frontend.

Folder Structure

The project is organized as follows:

your_project_folder/
├── app.py
├── requirements.txt
├── README.md
├── static/
│   └── style.css
└── templates/
    ├── index.html
    ├── mcqs.html
    └── result.html
Enter fullscreen mode Exit fullscreen mode

Here’s how it works:

Text Preprocessing:

Uses spaCy to break text into sentences and extract nouns.

LSTM-Based Model:

A neural network is built using TensorFlow/Keras.

The model is trained to understand sentence structures.

MCQ Generation:

Extracts a key noun from the text and replaces it with a blank.

Uses spaCy word vectors to find similar words as distractors.

Shuffles answer choices and formats them as MCQs.

code1

code2

Installation

  • Clone the repository:
   git clone https://github.com/your-username/nlp-mcq-generator.git
   cd nlp-mcq-generator
Enter fullscreen mode Exit fullscreen mode
  • Install dependencies:
   pip install -r requirements.txt
Enter fullscreen mode Exit fullscreen mode
  • Download the English spaCy model:
   python -m spacy download en_core_web_sm
Enter fullscreen mode Exit fullscreen mode
  • Run the application:
   python app.py
Enter fullscreen mode Exit fullscreen mode

Generating MCQs

Input Options:

  • Enter a URL to scrape text, paste your own text manually, or upload a PDF/TXT file.

Select Number of Questions:

  • Choose how many questions you want to generate.

Generate and View:

  • Click on Generate MCQs to see your questions.

  • You can also view detailed results with correct answers and download the quiz as a PDF.

    Screenshot

home

mcq

result

Conclusion

MCQ Generator offers a seamless way to convert text into engaging multiple-choice questions, making it an ideal tool for educators and learners alike. With its modern Flask-based architecture and robust NLP processing, creating quizzes has never been easier!

🔗 Check out the full project on GitHub:

👉 GitHub Repository

Happy Coding!

AWS Security LIVE!

Join us for AWS Security LIVE!

Discover the future of cloud security. Tune in live for trends, tips, and solutions from AWS and AWS Partners.

Learn More

Top comments (0)

AWS Security LIVE!

Join us for AWS Security LIVE!

Discover the future of cloud security. Tune in live for trends, tips, and solutions from AWS and AWS Partners.

Learn More

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay