Spaces:
Running
Running
Modify predictions output if all same
Browse files
app.py
CHANGED
|
@@ -108,19 +108,21 @@ def analyze_sentiment_and_statistics(text):
|
|
| 108 |
|
| 109 |
# Calculate statistics
|
| 110 |
scores = list(results.values())
|
| 111 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 112 |
statistics = {
|
| 113 |
"Message": "All models predict the same score.",
|
| 114 |
-
"Average Score": f"{
|
| 115 |
}
|
| 116 |
else:
|
| 117 |
-
min_score_model = min(results, key=results.get)
|
| 118 |
-
max_score_model = max(results, key=results.get)
|
| 119 |
-
average_score = np.mean(scores)
|
| 120 |
-
|
| 121 |
statistics = {
|
| 122 |
-
"Lowest Score": f"{
|
| 123 |
-
"Highest Score": f"{
|
| 124 |
"Average Score": f"{average_score:.2f}",
|
| 125 |
}
|
| 126 |
return results, statistics
|
|
@@ -179,7 +181,7 @@ with gr.Blocks(css=".gradio-container { max-width: 900px; margin: auto; padding:
|
|
| 179 |
# Button to analyze sentiment and show statistics
|
| 180 |
def process_input_and_analyze(text_input):
|
| 181 |
results, statistics = analyze_sentiment_and_statistics(text_input)
|
| 182 |
-
if "Message" in statistics:
|
| 183 |
return (
|
| 184 |
f"{results['DistilBERT']}",
|
| 185 |
f"{results['Logistic Regression']}",
|
|
@@ -188,7 +190,7 @@ with gr.Blocks(css=".gradio-container { max-width: 900px; margin: auto; padding:
|
|
| 188 |
f"{results['RoBERTa']}",
|
| 189 |
f"Statistics:\n{statistics['Message']}\nAverage Score: {statistics['Average Score']}"
|
| 190 |
)
|
| 191 |
-
else:
|
| 192 |
return (
|
| 193 |
f"{results['DistilBERT']}",
|
| 194 |
f"{results['Logistic Regression']}",
|
|
|
|
| 108 |
|
| 109 |
# Calculate statistics
|
| 110 |
scores = list(results.values())
|
| 111 |
+
min_score = min(scores)
|
| 112 |
+
max_score = max(scores)
|
| 113 |
+
min_score_models = [model for model, score in results.items() if score == min_score]
|
| 114 |
+
max_score_models = [model for model, score in results.items() if score == max_score]
|
| 115 |
+
average_score = np.mean(scores)
|
| 116 |
+
|
| 117 |
+
if all(score == scores[0] for score in scores):
|
| 118 |
statistics = {
|
| 119 |
"Message": "All models predict the same score.",
|
| 120 |
+
"Average Score": f"{average_score:.2f}",
|
| 121 |
}
|
| 122 |
else:
|
|
|
|
|
|
|
|
|
|
|
|
|
| 123 |
statistics = {
|
| 124 |
+
"Lowest Score": f"{min_score} (Models: {', '.join(min_score_models)})",
|
| 125 |
+
"Highest Score": f"{max_score} (Models: {', '.join(max_score_models)})",
|
| 126 |
"Average Score": f"{average_score:.2f}",
|
| 127 |
}
|
| 128 |
return results, statistics
|
|
|
|
| 181 |
# Button to analyze sentiment and show statistics
|
| 182 |
def process_input_and_analyze(text_input):
|
| 183 |
results, statistics = analyze_sentiment_and_statistics(text_input)
|
| 184 |
+
if "Message" in statistics:
|
| 185 |
return (
|
| 186 |
f"{results['DistilBERT']}",
|
| 187 |
f"{results['Logistic Regression']}",
|
|
|
|
| 190 |
f"{results['RoBERTa']}",
|
| 191 |
f"Statistics:\n{statistics['Message']}\nAverage Score: {statistics['Average Score']}"
|
| 192 |
)
|
| 193 |
+
else:
|
| 194 |
return (
|
| 195 |
f"{results['DistilBERT']}",
|
| 196 |
f"{results['Logistic Regression']}",
|