Update app.py
Browse files
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]]
|
294 |
-
x1, y1 = semantic_graph.nodes[edge[1]]
|
295 |
-
edge_x.
|
296 |
-
|
297 |
-
|
298 |
-
|
|
|
|
|
|
|
|
|
|
|
299 |
|
300 |
-
#
|
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")
|