Spaces:
Running
Running
File size: 1,087 Bytes
1c817fd |
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 |
from flask import jsonify
from main import *
import torch
def analyze_sentiment(text, output_path="output_sentiment.json"):
if sentiment_model is None:
return "Sentiment model not initialized."
input_tokens = sentiment_model.tokenizer(text, return_tensors="pt", padding=True).to(device)
with torch.no_grad():
sentiment_logits = sentiment_model(input_tokens['input_ids'])
predicted_class_id = torch.argmax(sentiment_logits, dim=-1).item()
sentiment_label = sentiment_model.config.id2label[predicted_class_id]
probability = torch.softmax(sentiment_logits, dim=-1)[0][predicted_class_id].item()
return {"sentiment": sentiment_label, "probability": probability}
def sentiment_api():
data = request.get_json()
text = data.get('text')
if not text:
return jsonify({"error": "Text is required"}), 400
output_file = analyze_sentiment(text)
if output_file == "Sentiment model not initialized.":
return jsonify({"error": "Sentiment analysis failed"}), 500
return jsonify(output_file)
|