Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from transformers import MarianMTModel, MarianTokenizer | |
| # Load English→Spanish | |
| en_es_model = MarianMTModel.from_pretrained("Helsinki-NLP/opus-mt-en-es") | |
| en_es_tokenizer = MarianTokenizer.from_pretrained("Helsinki-NLP/opus-mt-en-es") | |
| # Load Spanish→English | |
| es_en_model = MarianMTModel.from_pretrained("Helsinki-NLP/opus-mt-es-en") | |
| es_en_tokenizer = MarianTokenizer.from_pretrained("Helsinki-NLP/opus-mt-es-en") | |
| def polish(sentence: str) -> str: | |
| # Step 1: English → Spanish | |
| inputs = en_es_tokenizer(sentence, return_tensors="pt", padding=True) | |
| translated = en_es_model.generate(**inputs, max_length=128) | |
| spanish = en_es_tokenizer.decode(translated[0], skip_special_tokens=True) | |
| # Step 2: Spanish → English | |
| inputs2 = es_en_tokenizer(spanish, return_tensors="pt", padding=True) | |
| back_translated = es_en_model.generate(**inputs2, max_length=128) | |
| english = es_en_tokenizer.decode(back_translated[0], skip_special_tokens=True) | |
| return english | |
| demo = gr.Interface( | |
| fn=polish, | |
| inputs=gr.Textbox(lines=2, placeholder="Enter a sentence in English..."), | |
| outputs=gr.Textbox(label="Corrected English"), | |
| title="Round-trip Grammar Polisher", | |
| description="Uses Helsinki-NLP MarianMT models (en→es→en) to smooth and correct English sentences." | |
| ) | |
| if __name__ == "__main__": | |
| demo.launch() | |