|
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', return_all_scores=True) |
|
politeness_classifier = pipeline("text-classification", model="Genius1237/xlm-roberta-large-tydip") |
|
|
|
def analyze_icelandic_text(icelandic_text): |
|
analysis_result = analyze_text(icelandic_text) |
|
|
|
sentiment_label = "Positive" if analysis_result["sentiment"]["label"] == "LABEL_1" else "Negative" |
|
formality_label = "Formal" if analysis_result["formality"]["label"] == "formal" else "Informal" |
|
toxic_label = "Toxic" if analysis_result["toxicity"]["score"] > 0.5 else "Not Toxic" |
|
politeness_label = "Polite" if analysis_result["politeness"]["label"] == "polite" else "Impolite" |
|
|
|
return { |
|
"Translated Text": analysis_result["translated_text"], |
|
"Sentiment": f"{sentiment_label} (Score: {round(analysis_result['sentiment']['score'], 2)})", |
|
"Formality": f"{formality_label} (Score: {round(analysis_result['formality']['score'], 2)})", |
|
"Toxicity": f"{toxic_label} (Score: {round(analysis_result['toxicity']['score'], 2)})", |
|
"Politeness": f"{politeness_label} (Score: {round(analysis_result['politeness']['score'], 2)})" |
|
} |
|
|
|
iface = gr.Interface( |
|
fn=analyze_icelandic_text, |
|
inputs=gr.inputs.Textbox(lines=2, placeholder="Enter an Icelandic sentence here..."), |
|
outputs=[ |
|
gr.outputs.Textbox(label="Translated Text"), |
|
gr.outputs.Textbox(label="Sentiment"), |
|
gr.outputs.Textbox(label="Formality"), |
|
gr.outputs.Textbox(label="Toxicity"), |
|
gr.outputs.Textbox(label="Politeness"), |
|
], |
|
title="Icelandic Text Analysis", |
|
description="This app translates Icelandic text to English and analyzes its sentiment, formality, toxicity, and politeness." |
|
) |
|
|
|
if __name__ == "__main__": |
|
iface.launch() |
|
|