Spaces:
Runtime error
Runtime error
import pkg_resources | |
from transformers import pipeline | |
import gradio as gr | |
translator = pipeline("translation", model="Helsinki-NLP/opus-mt-is-en") | |
sentiment_classifier = pipeline("text-classification", model="Birkir/electra-base-igc-is-sentiment-analysis") | |
formality_classifier = pipeline("text-classification", model="svanhvit/formality-classification-icebert") | |
detoxify_pipeline = pipeline('text-classification', model='unitary/toxic-bert', tokenizer='bert-base-uncased', function_to_apply='sigmoid', top_k=None) | |
politeness_classifier = pipeline("text-classification", model="Genius1237/xlm-roberta-large-tydip") | |
def translate_text(text): | |
translation = translator(text, max_length=512) | |
return translation[0]['translation_text'] | |
def analyze_toxicity(text): | |
toxicity_results = detoxify_pipeline(text) | |
return toxicity_results[0] | |
def analyze_politeness(text): | |
politeness_result = politeness_classifier(text) | |
return politeness_result[0]['label'], politeness_result[0]['score'] | |
def analyze_formality(text): | |
formality_result = formality_classifier(text) | |
formality_label = formality_result[0]['label'] | |
formality_score = formality_result[0]['score'] | |
return formality_label, formality_score | |
def analyze_sentiment(text): | |
sentiment_result = sentiment_classifier(text) | |
sentiment_label = sentiment_result[0]['label'] | |
sentiment_score = sentiment_result[0]['score'] | |
return sentiment_label, sentiment_score | |
def analyze_text(icelandic_text): | |
formality_label, formality_score = analyze_formality(icelandic_text) | |
sentiment_label, sentiment_score = analyze_sentiment(icelandic_text) | |
# Convert sentiment label | |
sentiment_label = sentiment_label.replace("LABEL_", "") | |
translated_text = translate_text(icelandic_text) | |
toxicity_results = analyze_toxicity(translated_text) | |
if isinstance(toxicity_results, list): | |
toxicity_results = toxicity_results[0] | |
# Determine toxicity label based on score | |
toxicity_label = '1' if toxicity_results['score'] >= 0.5 else '0' | |
politeness_label, politeness_score = analyze_politeness(translated_text) | |
# Convert politeness label to binary | |
politeness_label = '1' if politeness_label.lower() == 'polite' else '0' | |
analysis_results = ( | |
f"Translated Text: {translated_text}\n\n" | |
f"Sentiment: Label: {sentiment_label}, Score: {round(sentiment_score, 2)}\n" | |
f"Formality: Label: {formality_label}, Score: {round(formality_score, 2)}\n" | |
f"Toxicity: Label: {toxicity_label}, Score: {round(toxicity_results['score'], 2)}\n" | |
f"Politeness: Label: {politeness_label}, Score: {round(politeness_score, 2)}" | |
) | |
return analysis_results | |
demo = gr.Interface(fn=analyze_text, | |
inputs=gr.Textbox(lines=2, placeholder="Enter Icelandic Text Here..."), | |
outputs=gr.Textbox(label="Analysis Results"), | |
title="Icelandic Text Analysis", | |
description="This app translates Icelandic text to English and performs sentiment, formality, toxicity, and politeness analysis.") | |
if __name__ == "__main__": | |
demo.launch() |