Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| import numpy as np | |
| from tensorflow.keras.models import load_model | |
| from sentence_transformers import SentenceTransformer | |
| import re | |
| # Load model & SBERT | |
| model = load_model("depression_sbert_optuna_model.keras") | |
| sbert = SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2") | |
| # Clean text | |
| def clean_text(text): | |
| text = re.sub(r"http\S+", "", text) | |
| text = re.sub(r"[^a-zA-Z\s]", "", text) | |
| return text.strip().lower() | |
| # Prediction logic | |
| def predict_depression(text): | |
| cleaned = clean_text(text) | |
| embedding = sbert.encode([cleaned]) | |
| prob = model.predict(np.array(embedding))[0][0] | |
| label = "Depressed" if prob > 0.5 else "Not Depressed" | |
| confidence = round(prob * 100 if label == "Depressed" else (1 - prob) * 100, 2) | |
| return f"{label} (Confidence: {confidence}%)" | |
| # Gradio UI | |
| interface = gr.Interface( | |
| fn=predict_depression, | |
| inputs=gr.Textbox(lines=4, placeholder="Enter a post..."), | |
| outputs="text", | |
| title="DeepPressNet - Depression Detection", | |
| description="Enter a post to detect if it's likely written by someone showing signs of depression." | |
| ) | |
| interface.launch() | |