File size: 2,388 Bytes
989ca35
 
3f736da
 
 
 
 
 
989ca35
3f736da
989ca35
 
 
 
3f736da
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
989ca35
 
3f736da
 
 
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
import gradio as gr
from transformers import pipeline
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score

# Step 1: Sentiment Analysis Pipeline
sentiment_analyzer = pipeline("sentiment-analysis")

def analyze_sentiment(text):
    result = sentiment_analyzer(text)
    return result[0]  # Return the result (positive/negative)

# Step 2: Machine Learning Model Suggestion and Classification
def suggest_ml_models(dataset):
    # You can add logic to select appropriate models based on the dataset
    models = {
        "Random Forest": RandomForestClassifier(),
        "Logistic Regression": LogisticRegression(),
        "Support Vector Classifier": SVC(),
    }
    
    # Assuming dataset is in the form (X, y)
    X_train, X_test, y_train, y_test = train_test_split(dataset[0], dataset[1], test_size=0.3, random_state=42)

    model_accuracies = {}
    for model_name, model in models.items():
        model.fit(X_train, y_train)
        y_pred = model.predict(X_test)
        accuracy = accuracy_score(y_test, y_pred)
        model_accuracies[model_name] = accuracy

    return model_accuracies

# Step 3: Create a synthetic dataset for classification
def create_synthetic_dataset():
    # Creating a synthetic classification dataset
    X, y = make_classification(n_samples=1000, n_features=20, random_state=42)
    return X, y

# Combine both functions in Gradio for user interaction
def analyze_and_suggest(text):
    # Sentiment analysis
    sentiment_result = analyze_sentiment(text)
    
    # Generate synthetic dataset
    dataset = create_synthetic_dataset()
    
    # Model suggestion for classification
    model_accuracies = suggest_ml_models(dataset)

    # Return both the sentiment analysis result and model suggestions
    return sentiment_result, model_accuracies

# Gradio interface for user interaction
interface = gr.Interface(
    fn=analyze_and_suggest,
    inputs=gr.Textbox(label="Enter Text for Sentiment Analysis"),
    outputs=[gr.JSON(label="Sentiment Analysis Result"), gr.JSON(label="Model Suggestions and Accuracies")],
    title="Sentiment Analysis and ML Model Suggestion"
)

# Launch Gradio Interface
interface.launch()