sentiment-analysis / sentiment.py
dayuian's picture
Update sentiment.py
a3452de verified
raw
history blame
1.56 kB
import requests
from config import HEADERS
# 轉換英文分類為中文
def translate_sentiment(label):
if "positive" in label.lower():
return "😃 **正向**"
elif "neutral" in label.lower():
return "😐 **中立**"
else:
return "😡 **負向**"
# 轉換信心度為更直觀的等級
def convert_confidence(score):
percentage = round(score * 100)
if score >= 0.90:
return f"🌟 **極高信心** ({percentage}%)"
elif score >= 0.75:
return f"✅ **高信心** ({percentage}%)"
elif score >= 0.50:
return f"⚠️ **中等信心** ({percentage}%)"
elif score >= 0.30:
return f"❓ **低信心** ({percentage}%)"
else:
return f"❌ **極低信心(建議忽略)** ({percentage}%)"
# 調用 Hugging Face API 進行情緒分析
def analyze_sentiment(text, model_id):
try:
API_URL = f"https://api-inference.huggingface.co/models/{model_id}"
response = requests.post(API_URL, headers=HEADERS, json={"inputs": text})
result = response.json()
if isinstance(result, list) and len(result) > 0:
sentiment = translate_sentiment(result[0]["label"])
confidence = result[0]["score"]
confidence_label = convert_confidence(confidence)
return f"**情緒分類**: {sentiment}\n**AI判斷的信心度為**: {confidence_label}"
else:
return "⚠️ **無法分析文本,請稍後再試**"
except Exception as e:
return f"❌ **錯誤**: {str(e)}"