enterprise-audio-intelligence / src /aspect_sentiment /conversation_context_engine.py
Akbub's picture
deploy: Nexus AI v0.2.0 - SAP C4C Lead Creation UI included in fresh frontend build
d1f3f31
Raw
History Blame Contribute Delete
1.31 kB
def analyze_context(transcript: str, raw_features: list) -> dict:
"""
Analyzes the depth and structure of the conversation.
Longer engaged conversations should increase confidence.
"""
words = transcript.split()
length = len(words)
# Estimate turns (very rough approximation by looking at punctuation / sentence breaks)
# A real system would use diarization
turns = transcript.count("?") + transcript.count(".") + transcript.count("!")
technical_features_count = len([f for f in raw_features if f.get("label") == "FEATURE"])
score = 0.0
# 1. Transcript length baseline
if length > 200:
score += 0.4
elif length > 100:
score += 0.2
elif length > 40:
score += 0.1
# 2. Conversational turns (engagement)
if turns > 10:
score += 0.3
elif turns > 5:
score += 0.15
# 3. Technical depth
if technical_features_count > 3:
score += 0.3
elif technical_features_count > 1:
score += 0.15
# Normalize to 0-1
engagement_score = min(1.0, score)
return {
"engagement_score": engagement_score,
"word_count": length,
"estimated_turns": turns,
"technical_depth": technical_features_count
}