|
from transformers import pipeline |
|
import streamlit as st |
|
import streamlit.components.v1 as components |
|
|
|
|
|
pipe_1 = pipeline("text-classification", model="mavinsao/roberta-base-finetuned-mental-health") |
|
pipe_2 = pipeline("text-classification", model="mavinsao/mi-roberta-base-finetuned-mental-health") |
|
|
|
|
|
def ensemble_predict(text): |
|
|
|
results_1 = pipe_1(text) |
|
results_2 = pipe_2(text) |
|
|
|
|
|
ensemble_scores = {} |
|
|
|
|
|
for result in results_1: |
|
ensemble_scores[result['label']] = 0 |
|
|
|
|
|
for result in results_2: |
|
ensemble_scores[result['label']] = 0 |
|
|
|
|
|
for results in [results_1, results_2]: |
|
for result in results: |
|
label = result['label'] |
|
score = result['score'] |
|
ensemble_scores[label] += score / 2 |
|
|
|
|
|
predicted_label = max(ensemble_scores, key=ensemble_scores.get) |
|
confidence = ensemble_scores[predicted_label] |
|
|
|
return predicted_label, confidence |
|
|
|
|
|
st.title('Mental Illness Prediction') |
|
|
|
|
|
sentence = st.text_area("Enter the long sentence to predict your mental illness state:") |
|
|
|
if st.button('Predict'): |
|
|
|
predicted_label, confidence = ensemble_predict(sentence) |
|
|
|
|
|
st.markdown(""" |
|
<style> |
|
div[data-testid="metric-container"] { |
|
font-weight: bold; |
|
font-size: 18px; /* Adjust the font size as desired */ |
|
} |
|
</style> |
|
""", unsafe_allow_html=True) |
|
|
|
|
|
st.write("Result:", predicted_label) |
|
st.write("Confidence:", confidence) |
|
|
|
|
|
|
|
st.info("Remember: This prediction is not a diagnosis. Always consult with a healthcare professional for proper evaluation and advice.") |
|
|
|
|
|
st.markdown(""" |
|
### About Our Method |
|
|
|
Our method is designed to assist mental health professionals, such as psychologists and psychiatrists, rather than replace them. Using our model to directly calculate mental illness labels can introduce biases, potentially leading to inaccurate diagnoses. Therefore, the predictions made by our model should only be used as a reference, with the final diagnosis being carefully determined by qualified professionals. |
|
""") |
|
|