| import gradio as gr | |
| from corrector import GrammarCorrector | |
| import difflib | |
| corrector = GrammarCorrector() | |
| def highlight_diffs(original, corrected): | |
| diff = difflib.ndiff(original.split(), corrected.split()) | |
| result = [] | |
| for word in diff: | |
| if word.startswith("-"): | |
| result.append(f"~~{word[2:]}~~") | |
| elif word.startswith("+"): | |
| result.append(f"**{word[2:]}**") | |
| elif word.startswith(" "): | |
| result.append(word[2:]) | |
| return " ".join(result) | |
| def fix_sentence(text): | |
| corrected = corrector.correct(text) | |
| highlighted = highlight_diffs(text, corrected) | |
| return corrected, highlighted | |
| gr.Interface( | |
| fn=fix_sentence, | |
| inputs=gr.Textbox(lines=2, label="Input Sentence"), | |
| outputs=[ | |
| gr.Textbox(label="Corrected Sentence"), | |
| gr.Markdown(label="Changes Highlighted") | |
| ], | |
| title="Context-Aware Grammar & Spell Checker", | |
| description="Fixes grammar and spelling using a T5-based model.", | |
| examples=[ | |
| ["She go to school every day."], | |
| ["I can has cheeseburger?"], | |
| ["The cat sleeped on the mat."], | |
| ["We was going to the park yesterday."], | |
| ["This is teh best day of my life!"], | |
| ["He no went to office today."], | |
| ["Their coming too the party."], | |
| ["I hopes you gets better soon."], | |
| ["Where is you going now?"], | |
| ["He do not likes pizza."] | |
| ] | |
| ).launch() | |