Spaces:
Runtime error
Runtime error
File size: 3,151 Bytes
34475ca 3c8522e 9254b4c 318e9b0 1a6e1ca 1998d95 1a6e1ca 1998d95 1a6e1ca 1998d95 1a6e1ca 1998d95 d218242 1998d95 1a6e1ca 318e9b0 1a6e1ca 0e88fea 6f918d6 0e88fea f80b079 318e9b0 f80b079 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
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() |