sunnahapp / app.py
imranjamal's picture
Update app.py
c8761eb verified
import streamlit as st
from transformers import MarianMTModel, MarianTokenizer, T5ForConditionalGeneration, T5Tokenizer
# Load the MarianMT model for Urdu to English translation
src_lang = 'ur'
tgt_lang = 'en'
model_name = f'Helsinki-NLP/opus-mt-{src_lang}-{tgt_lang}'
model = MarianMTModel.from_pretrained(model_name)
tokenizer = MarianTokenizer.from_pretrained(model_name)
# Load T5 model for key phrase extraction
key_phrase_model = T5ForConditionalGeneration.from_pretrained("t5-small")
key_phrase_tokenizer = T5Tokenizer.from_pretrained("t5-small")
def translate_text(input_text):
# Translate Urdu text to English
translated = tokenizer(input_text, return_tensors="pt", padding=True, truncation=True)
translated_output = model.generate(**translated)
translated_text = tokenizer.decode(translated_output[0], skip_special_tokens=True)
return translated_text
def extract_key_phrases(text):
# Extract key phrases from English text using T5
input_text = f"extract key phrases: {text}"
inputs = key_phrase_tokenizer(input_text, return_tensors="pt", padding=True, truncation=True)
outputs = key_phrase_model.generate(**inputs)
key_phrases = key_phrase_tokenizer.decode(outputs[0], skip_special_tokens=True)
return key_phrases
# Streamlit UI
st.title("Urdu Text Translator and Key Phrase Extractor")
# Input Urdu text
input_urdu_text = st.text_area("Enter Urdu Text", "", height=200)
if input_urdu_text:
# Translate the Urdu text to English
st.subheader("Translated English Text")
translated_text = translate_text(input_urdu_text)
st.text_area("Translated Text (English)", translated_text, height=150, disabled=True)
# Extract key phrases from the translated English text
st.subheader("Extracted Key Phrases")
key_phrases = extract_key_phrases(translated_text)
st.write(key_phrases)
# Add a footer
st.markdown("---")
st.markdown("Developed by [Your Name]")