reab5555 commited on
Commit
a9ba978
·
verified ·
1 Parent(s): 6800037

Update visualization.py

Browse files
Files changed (1) hide show
  1. visualization.py +22 -36
visualization.py CHANGED
@@ -29,48 +29,34 @@ def create_bar_chart(data, title, speaker):
29
  fig.update_layout(title=f"{title} - Speaker {speaker}", xaxis_title="Traits", yaxis_title="Score")
30
  return fig
31
 
32
- def create_heatmap(data, title, speaker):
33
- fig = go.Figure(data=go.Heatmap(
34
- z=[[data[k] for k in data]],
35
- x=list(data.keys()),
36
- y=[speaker],
37
- colorscale='Viridis'
38
- ))
39
- fig.update_layout(title=f"{title} - Speaker {speaker}")
40
- return fig
41
-
42
- def update_visibility_and_charts(status, exec_time, lang, info, attachments, bigfive, personalities):
43
  charts = []
44
 
45
- speakers_data = extract_speaker_data(attachments + "\n" + bigfive + "\n" + personalities)
46
- main_speakers = list(speakers_data.keys())[:2] # Limit to 2 main speakers
47
-
48
- for speaker in main_speakers:
49
- data = speakers_data[speaker]
50
-
51
- attachment_data = {k: v for k, v in data.items() if k in ["Secured", "Anxious-Preoccupied", "Dismissive-Avoidant", "Fearful-Avoidant"]}
52
- if attachment_data:
53
- charts.append(create_bar_chart(attachment_data, "Attachment Styles", speaker))
54
-
55
- bigfive_data = {k: v for k, v in data.items() if k in ["Extraversion", "Agreeableness", "Conscientiousness", "Neuroticism", "Openness"]}
56
- if bigfive_data:
57
- charts.append(create_bar_chart(bigfive_data, "Big Five Traits", speaker))
58
-
59
- personality_data = {k: v for k, v in data.items() if k in ["Depressed", "Paranoid", "Schizoid-Schizotypal", "Antisocial-Psychopathic", "Borderline-Dysregulated", "Hysteric-Histrionic", "Narcissistic", "Anxious-Avoidant", "Dependent-Victimized", "Obsessional"]}
60
- if personality_data:
61
- charts.append(create_bar_chart(personality_data, "Personality Traits", speaker))
62
-
63
- anxiety_avoidance_data = {k: v for k, v in data.items() if k in ["Anxiety", "Avoidance"]}
64
- if anxiety_avoidance_data:
65
- charts.append(create_heatmap(anxiety_avoidance_data, "Anxiety-Avoidance", speaker))
66
 
67
- self_others_data = {k: v for k, v in data.items() if k in ["Self", "Others"]}
68
- if self_others_data:
69
- charts.append(create_heatmap(self_others_data, "Self-Others", speaker))
 
 
 
 
 
 
 
 
 
 
70
 
71
  return [
72
  gr.update(value=status, visible=True),
73
  gr.update(value=exec_time, visible=True),
74
  gr.update(value=lang, visible=True),
75
- gr.update(value=info, visible=True),
76
  ] + charts
 
29
  fig.update_layout(title=f"{title} - Speaker {speaker}", xaxis_title="Traits", yaxis_title="Score")
30
  return fig
31
 
32
+ def update_visibility_and_charts(status, exec_time, lang, attachments, bigfive, personalities):
 
 
 
 
 
 
 
 
 
 
33
  charts = []
34
 
35
+ for analysis_text in [attachments, bigfive, personalities]:
36
+ speakers_data = extract_speaker_data(analysis_text)
37
+ if not speakers_data:
38
+ print(f"No speaker data extracted from: {analysis_text}")
39
+
40
+ # Determine the two main speakers
41
+ speaker_counts = Counter(speakers_data.keys())
42
+ main_speakers = [speaker for speaker, count in speaker_counts.most_common(2)]
 
 
 
 
 
 
 
 
 
 
 
 
 
43
 
44
+ for speaker in main_speakers:
45
+ data = speakers_data.get(speaker, {})
46
+ attachment_data = {k: v for k, v in data.items() if k in ["Secured", "Anxious-Preoccupied", "Dismissive-Avoidant", "Fearful-Avoidant"]}
47
+ if attachment_data:
48
+ charts.append(create_bar_chart(attachment_data, "Attachment Styles", speaker))
49
+
50
+ bigfive_data = {k: v for k, v in data.items() if k in ["Extraversion", "Agreeableness", "Conscientiousness", "Neuroticism", "Openness"]}
51
+ if bigfive_data:
52
+ charts.append(create_bar_chart(bigfive_data, "Big Five Traits", speaker))
53
+
54
+ personality_data = {k: v for k, v in data.items() if k in ["Depressed", "Paranoid", "Schizoid-Schizotypal", "Antisocial-Psychopathic", "Borderline-Dysregulated", "Hysteric-Histrionic", "Narcissistic", "Anxious-Avoidant", "Dependent-Victimized", "Obsessional"]}
55
+ if personality_data:
56
+ charts.append(create_bar_chart(personality_data, "Personality Traits", speaker))
57
 
58
  return [
59
  gr.update(value=status, visible=True),
60
  gr.update(value=exec_time, visible=True),
61
  gr.update(value=lang, visible=True),
 
62
  ] + charts