kambris commited on
Commit
188a8f6
·
verified ·
1 Parent(s): 7509238

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +45 -10
app.py CHANGED
@@ -189,12 +189,17 @@ class SpeechAnalyzer:
189
  for noun in top_nouns:
190
  G.add_node(noun)
191
 
192
- # Connect related nouns
 
193
  for i in range(len(top_nouns)):
194
  for j in range(i+1, len(top_nouns)):
195
  if top_nouns[i] in text and top_nouns[j] in text:
196
  G.add_edge(top_nouns[i], top_nouns[j])
197
 
 
 
 
 
198
  return G
199
 
200
  def main():
@@ -289,25 +294,55 @@ def main():
289
  # Convert NetworkX graph to Plotly
290
  edge_x = []
291
  edge_y = []
 
 
 
 
 
292
  for edge in semantic_graph.edges():
293
- x0, y0 = semantic_graph.nodes[edge[0]].get('pos', (0,0))
294
- x1, y1 = semantic_graph.nodes[edge[1]].get('pos', (0,0))
295
- edge_x.append(x0)
296
- edge_x.append(x1)
297
- edge_y.append(y0)
298
- edge_y.append(y1)
 
 
 
 
 
299
 
300
- # Plotly network visualization
301
  network_fig = go.Figure()
 
 
302
  network_fig.add_trace(go.Scatter(
303
- x=edge_x,
304
- y=edge_y,
305
  mode='lines',
306
  line=dict(width=0.5, color='#888'),
307
  hoverinfo='none'
308
  ))
309
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
310
  st.plotly_chart(network_fig)
 
311
 
312
  with tab5:
313
  st.subheader("Advanced NLP Analysis")
 
189
  for noun in top_nouns:
190
  G.add_node(noun)
191
 
192
+ # Connect related nouns and add positions
193
+ pos = nx.spring_layout(G)
194
  for i in range(len(top_nouns)):
195
  for j in range(i+1, len(top_nouns)):
196
  if top_nouns[i] in text and top_nouns[j] in text:
197
  G.add_edge(top_nouns[i], top_nouns[j])
198
 
199
+ # Store positions in graph
200
+ for node in G.nodes():
201
+ G.nodes[node]['pos'] = pos[node]
202
+
203
  return G
204
 
205
  def main():
 
294
  # Convert NetworkX graph to Plotly
295
  edge_x = []
296
  edge_y = []
297
+ node_x = []
298
+ node_y = []
299
+ node_text = []
300
+
301
+ # Add edges
302
  for edge in semantic_graph.edges():
303
+ x0, y0 = semantic_graph.nodes[edge[0]]['pos']
304
+ x1, y1 = semantic_graph.nodes[edge[1]]['pos']
305
+ edge_x.extend([x0, x1, None])
306
+ edge_y.extend([y0, y1, None])
307
+
308
+ # Add nodes
309
+ for node in semantic_graph.nodes():
310
+ x, y = semantic_graph.nodes[node]['pos']
311
+ node_x.append(x)
312
+ node_y.append(y)
313
+ node_text.append(node)
314
 
315
+ # Create the network visualization
316
  network_fig = go.Figure()
317
+
318
+ # Add edges
319
  network_fig.add_trace(go.Scatter(
320
+ x=edge_x, y=edge_y,
 
321
  mode='lines',
322
  line=dict(width=0.5, color='#888'),
323
  hoverinfo='none'
324
  ))
325
 
326
+ # Add nodes
327
+ network_fig.add_trace(go.Scatter(
328
+ x=node_x, y=node_y,
329
+ mode='markers+text',
330
+ marker=dict(size=10),
331
+ text=node_text,
332
+ textposition="top center",
333
+ hoverinfo='text'
334
+ ))
335
+
336
+ network_fig.update_layout(
337
+ showlegend=False,
338
+ hovermode='closest',
339
+ margin=dict(b=0,l=0,r=0,t=0),
340
+ xaxis=dict(showgrid=False, zeroline=False, showticklabels=False),
341
+ yaxis=dict(showgrid=False, zeroline=False, showticklabels=False)
342
+ )
343
+
344
  st.plotly_chart(network_fig)
345
+
346
 
347
  with tab5:
348
  st.subheader("Advanced NLP Analysis")