from app.services.sarcasm_service import ( predict_sarcasm ) from app.services.emotion_service import ( predict_emotions ) from app.services.emotion_adjuster import ( apply_keyword_emotion_corrections, adjust_emotions_for_sarcasm ) from app.services.interpreter import ( infer_sentiment, generate_interpretation ) def analyze_single(text: str): sarcasm_result = predict_sarcasm( text ) raw_emotion = predict_emotions( text, threshold=0.30, top_k=5 ) keyword_adjusted = ( apply_keyword_emotion_corrections( text, raw_emotion ) ) final_emotion = ( adjust_emotions_for_sarcasm( sarcasm_result, keyword_adjusted ) ) sentiment = infer_sentiment( final_emotion["top_emotions"], sarcasm_result ) interpretation = generate_interpretation( sarcasm_result, raw_emotion, final_emotion, sentiment ) return { "text": text, "sarcasm": sarcasm_result, "raw_emotion": raw_emotion, "final_emotion": final_emotion, "sentiment": sentiment, "interpretation": interpretation }