Spaces:
Sleeping
Sleeping
# π 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. | |