# 📖 Code Explanation: Grammar & Spelling Corrector This document provides a step-by-step explanation of the **Grammar & Spelling Corrector** app, showing how each part works so even a beginner can follow. --- ## 📝 Overview **Purpose** Improve grammar and spelling of English sentences or paragraphs using a state-of-the-art NLP model. **Tech Stack** - **Model**: `grammarly/coedit-large` (Hugging Face Transformers) - **Interface**: Gradio Blocks + Buttons --- ## ⚙️ Setup & Dependencies Install required libraries: ``` pip install transformers gradio torch ``` --- ## 🔍 Block-by-Block Explanation ### 1. Imports ```python from transformers import pipeline import gradio as gr import torch ``` - **`pipeline`**: high-level API to load pre-trained models for various tasks. - **`gradio`**: library to quickly build web interfaces. ### 2. Model Loading ```python pipe = pipeline( "text2text-generation", model="grammarly/coedit-large, torch_dtype=torch.bfloat16 ) ``` - Loads the **CoEdit** model, fine-tuned for grammar and spelling correction. - The pipeline can generate corrected text from raw input. ### 3. Grammar Correction Function ```python def correct_grammar(text: str) -> str: outputs = pipe( text, max_length=256, num_beams=5, early_stopping=True ) return outputs[0]["generated_text"] ``` - **Input**: raw English text. - **Parameters**: - `max_length=256`: maximum tokens for output. - `num_beams=5`: beam search for more accurate generation. - `early_stopping=True`: stop beams when best hypothesis is found. - **Output**: corrected text string. ### 4. Gradio User Interface ```python with gr.Blocks(theme=gr.themes.Default()) as demo: gr.Markdown("# 📝 Grammar & Spelling Corrector") gr.Markdown("Paste any English sentence or paragraph below to get a corrected version.") with gr.Row(): inp = gr.Textbox( label="✍️ Input Text", placeholder="Type your text here...", lines=4, show_copy_button=True ) out = gr.Textbox( label="✅ Corrected Text", placeholder="Corrected text appears here.", lines=4, interactive=False, show_copy_button=True ) btn = gr.Button("✔️ Correct Grammar") btn.click(fn=correct_grammar, inputs=inp, outputs=out) gr.Markdown("---") gr.Markdown("Built with 🤗 Transformers (`grammarly/coedit-large`) and 🚀 Gradio") demo.launch() ``` - **Blocks** and **Rows** organize layout. - **Textbox** for input and output. - **Button** triggers the `correct_grammar` function. --- ## 🚀 Core Concepts | Concept | Why It Matters | |-----------------------|-------------------------------------------------| | Hugging Face Pipeline | Simplifies loading and using pre-trained models | | CoEdit Model | Specialized for grammar and spelling correction | | Gradio Interface | Quickly builds interactive web apps | --- ## 🔄 Extensions & Alternatives - **Alternative Models**: - `prithivida/grammar_error_correcter_v1` (T5-based) - `microsoft/trocr-base-handwritten` for OCR + correction - **UI Enhancements**: - Add file upload for batch corrections. - Include copy-to-clipboard buttons and download corrected text. - **Performance**: - Enable GPU support for faster inference. - Experiment with `torch_dtype=torch.bfloat16` on supported hardware.