-
Notifications
You must be signed in to change notification settings - Fork 0
/
main2.py
42 lines (31 loc) · 1.07 KB
/
main2.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import spacy
import networkx as nx
import matplotlib.pyplot as plt
# Cargar modelo de Spacy en español
nlp = spacy.load('es_core_news_sm')
# Definir texto de ejemplo
text = "El perro marrón corre en el parque. La niña feliz juega con la pelota roja."
# Procesar texto con Spacy
doc = nlp(text)
# Crear grafo vacío
G = nx.DiGraph()
# Recorrer las oraciones del texto
for sent in doc.sents:
# Crear nodo para la oración
G.add_node(sent)
# Recorrer las palabras de la oración
for token in sent:
# Crear nodo para la palabra
G.add_node(token)
# Crear arista entre la palabra y la oración
G.add_edge(sent, token)
# Si la palabra tiene un padre, crear arista entre la palabra y su padre
if token.dep_ != 'ROOT':
G.add_edge(token.head, token)
# Configurar la visualizacion
pos = nx.spring_layout(G, seed=42) # posición de los nodos
labels = {node: str(node) for node in G.nodes()} # etiquetas de los nodos
# Dibujar el grafo
nx.draw(G, pos, labels=labels, with_labels=True)
# Mostrar la visualizacion
plt.show()