File size: 2,741 Bytes
1398925
d875027
 
1398925
d875027
6908aad
bf83ac1
 
d86acb9
 
bf83ac1
 
d86acb9
 
bf83ac1
3bc002c
 
 
 
 
 
bf83ac1
d875027
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6908aad
d875027
 
 
 
6908aad
d875027
d86acb9
 
 
07a4801
13081ab
d875027
 
6908aad
 
 
d875027
 
 
 
 
 
 
 
 
6908aad
 
af1aba9
d875027
6908aad
3bc002c
d86acb9
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
72
73
74
75
76
77
78
79
80
81
82
83
import gradio as gr
from transformers import MarianMTModel, MarianTokenizer, GPT2LMHeadModel, GPT2Tokenizer, AutoTokenizer, AutoModelForSequenceClassification
import torch

 # Translation
def translate(text, target_language):
    language_codes = {
        "Spanish": "es",
        "French (European)": "fr",
        "French (Canadian)": "fr",
        "Italian": "it",
        "Ukrainian": "uk",
        "Portuguese (Brazilian)": "pt_BR",
        "Portuguese (European)": "pt",
        "Russian": "ru",
        "Chinese": "zh",
        "Dutch": "nl",
        "German": "de",
        "Arabic": "ar",
        "Hebrew": "he",
        "Greek": "el"
    }
    

 # Text Generation
def generate_text(prompt):
    text_gen = pipeline("text-generation", model="gpt2")
    generated_text = text_gen(prompt, max_length=max_length, do_sample=True)[0]["generated_text"]
    return generated_text


     

 # Text Classification
def classify_text(text):
    classifier = pipeline("zero-shot-classification")
    result = classifier(text, labels.split(','))
    scores = result["scores"]
    predictions = result["labels"]
    sorted_predictions = [pred for _, pred in sorted(zip(scores, predictions), reverse=True)]
    return sorted_predictions

     

 # Sentiment Analysis
def sentiment_analysis(text):
    model_name = "distilbert-base-uncased-finetuned-sst-2-english"
    tokenizer = AutoTokenizer.from_pretrained(model_name)
    model = AutoModelForSequenceClassification.from_pretrained(model_name)
    inputs = tokenizer(text, return_tensors="pt")
    outputs = model(**inputs)
    sentiment_scores = torch.softmax(outputs.logits, dim=1)
    sentiment = "positive" if sentiment_scores[0, 1] > sentiment_scores[0, 0] else "negative"
    return sentiment

 language_options = [
    "Spanish", "French (European)", "French (Canadian)", "Italian", "Ukrainian",
    "Portuguese (Brazilian)", "Portuguese (European)", "Russian", "Chinese",
    "Dutch", "German", "Arabic", "Hebrew", "Greek"
]

 iface = gr.Interface(
    [translate, generate_text, classify_text, sentiment_analysis],
    inputs=[
        gr.inputs.Textbox(lines=5, label="Enter text to translate:"),
        gr.inputs.Dropdown(choices=language_options, label="Target Language"),
        gr.inputs.Textbox(lines=5, label="Enter text for text generation:"),
        gr.inputs.Textbox(lines=5, label="Enter text for text classification:"),
        gr.inputs.Textbox(lines=5, label="Enter text for sentiment analysis:"),
    ],
    outputs=[
        gr.outputs.Textbox(label="Translated Text"),
        gr.outputs.Textbox(label="Generated Text"),
        gr.outputs.Textbox(label="Classification Result"),
        gr.outputs.Textbox(label="Sentiment Result"),
    ],
)

 iface.launch()