Spaces:
Sleeping
Sleeping
import gradio as gr | |
from googletrans import Translator | |
import nltk | |
from nltk.tokenize import word_tokenize | |
from nltk.corpus import stopwords | |
from nltk.stem import WordNetLemmatizer | |
# Download necessary NLTK data | |
nltk.download('punkt', quiet=True) | |
nltk.download('stopwords', quiet=True) | |
nltk.download('wordnet', quiet=True) | |
# Initialize components | |
translator = Translator() | |
def natural_language_understanding(text): | |
tokens = word_tokenize(text.lower()) | |
stop_words = set(stopwords.words('english')) | |
lemmatizer = WordNetLemmatizer() | |
processed_tokens = [lemmatizer.lemmatize(token) for token in tokens if token not in stop_words] | |
return " ".join(processed_tokens) | |
def translate_text(text, target_language): | |
translated = translator.translate(text, dest=target_language) | |
return translated.text | |
def process_input(input_text, feature, target_language): | |
if not input_text: | |
return "No input provided" | |
processed_text = natural_language_understanding(input_text) | |
if feature == "Translation": | |
result = translate_text(processed_text, target_language) | |
elif feature == "Transcription": | |
result = processed_text | |
else: | |
result = "Invalid feature selected" | |
return result | |
# Create Gradio interface | |
iface = gr.Interface( | |
fn=process_input, | |
inputs=[ | |
gr.Textbox(label="Input Text"), | |
gr.Radio(["Translation", "Transcription"], label="Feature"), | |
gr.Textbox(label="Target Language (for translation)") | |
], | |
outputs=gr.Textbox(label="Result"), | |
title="Simple Multi-Faceted Chatbot", | |
description="Enter text, choose a feature, and specify a target language for translation if needed." | |
) | |
# Launch the interface | |
iface.launch(inline = False) |