{"id":71,"date":"2025-02-21T02:04:16","date_gmt":"2025-02-21T02:04:16","guid":{"rendered":"https:\/\/e-icus.net\/blog\/?p=71"},"modified":"2025-02-21T02:33:45","modified_gmt":"2025-02-21T02:33:45","slug":"que-relacion-tiene-un-mapa-conceptual-con-un-chatbot","status":"publish","type":"post","link":"https:\/\/e-icus.net\/blog\/2025\/02\/21\/que-relacion-tiene-un-mapa-conceptual-con-un-chatbot\/","title":{"rendered":"\u00bfQu\u00e9 relaci\u00f3n tiene un mapa conceptual y un chatbot?"},"content":{"rendered":"\n<p>Una alternativa que tenemos para construir un chatbot son los mapas conceptuales, que nos ayudan a conectar conceptos y definir relaciones entre ellos. Esta pr\u00e1ctica fue parte de la tem\u00e1tica expuesta en la materia de Inteligencia Artificial, enfocada en la aplicaci\u00f3n de modelos de representaci\u00f3n del conocimiento en el desarrollo de asistentes virtuales.<\/p>\n\n\n\n<p>Los mapas conceptuales o grafos de conocimiento permiten modelar informaci\u00f3n en forma de nodos y relaciones, facilitando la organizaci\u00f3n y el acceso a los datos. En este contexto, podemos crear un chatbot que responda preguntas basadas en la estructura de un grafo. Los conceptos utilizados son referentes a la tem\u00e1tica de Inteligencia Artificial, aprovechando los temas propios de la materia de IA que imparto, en donde utilic\u00e9 el ejemplo para explicar la relaci\u00f3n.<\/p>\n\n\n\n<p>El primer ejercicio consisti\u00f3 en construir un grafo dirigido que representa la relaci\u00f3n entre distintos subcampos de la Inteligencia Artificial. Con la biblioteca <code>networkx<\/code>, al ejecutar el c\u00f3digo se puede observar el grafo.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"764\" src=\"https:\/\/e-icus.net\/blog\/wp-content\/uploads\/2025\/02\/image-2-1024x764.png\" alt=\"\" class=\"wp-image-72\" srcset=\"https:\/\/e-icus.net\/blog\/wp-content\/uploads\/2025\/02\/image-2-1024x764.png 1024w, https:\/\/e-icus.net\/blog\/wp-content\/uploads\/2025\/02\/image-2-300x224.png 300w, https:\/\/e-icus.net\/blog\/wp-content\/uploads\/2025\/02\/image-2-768x573.png 768w, https:\/\/e-icus.net\/blog\/wp-content\/uploads\/2025\/02\/image-2-1536x1147.png 1536w, https:\/\/e-icus.net\/blog\/wp-content\/uploads\/2025\/02\/image-2-1568x1171.png 1568w, https:\/\/e-icus.net\/blog\/wp-content\/uploads\/2025\/02\/image-2.png 1586w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>import networkx as nx\nimport matplotlib.pyplot as plt\n\nG = nx.DiGraph()\nG.add_edges_from(&#91;\n    (\"IA\", \"Machine Learning\"),\n    (\"IA\", \"Deep Learning\"),\n    (\"Machine Learning\", \"Redes Neuronales\"),\n    (\"Machine Learning\", \"\u00c1rboles de Decisi\u00f3n\"),\n    (\"Deep Learning\", \"CNN\"),\n    (\"Deep Learning\", \"RNN\")\n])\n\nplt.figure(figsize=(8,6))\nnx.draw(G, with_labels=True, node_color='lightblue', edge_color='gray', node_size=3000, font_size=10)\nplt.show()<\/code><\/pre>\n\n\n\n<p>Este ejercicio ayud\u00f3 a visualizar c\u00f3mo los conceptos de IA est\u00e1n conectados y c\u00f3mo se pueden representar jer\u00e1rquicamente mediante grafos.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>y el chat bot?<\/strong><\/h3>\n\n\n\n<p>Ahora toca integrar el mapa en un chatbot que pueda responder preguntas. Para esto se implement\u00f3 un sistema de preguntas y respuestas que interpreta consultas sobre conceptos en el grafo y devuelve respuestas basadas en las conexiones definidas.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def responder_pregunta(pregunta):\n    pregunta = pregunta.lower()\n    \n    # Pregunta: \u00bfQu\u00e9 es &lt;concepto&gt;?\n    for nodo in G.nodes:\n        if f\"qu\u00e9 es {nodo.lower()}\" in pregunta:\n            subtemas = list(G.successors(nodo))\n            if subtemas:\n                return f\"{nodo} es un \u00e1rea de la Inteligencia Artificial que incluye conceptos como: {', '.join(subtemas)}.\"\n            else:\n                return f\"{nodo} es un concepto en Inteligencia Artificial, pero no tiene subcategor\u00edas en este modelo.\"\n    \n    # Pregunta: \u00bfQu\u00e9 relaci\u00f3n tiene &lt;concepto1&gt; con &lt;concepto2&gt;?\n    conceptos = &#91;nodo for nodo in G.nodes if nodo.lower() in pregunta]\n    \n    if len(conceptos) == 2:\n        nodo1, nodo2 = conceptos\n        if G.has_edge(nodo1, nodo2):\n            return f\"{nodo1} es una subcategor\u00eda de {nodo2}.\"\n        elif G.has_edge(nodo2, nodo1):\n            return f\"{nodo2} es una subcategor\u00eda de {nodo1}.\"\n        else:\n            return f\"{nodo1} y {nodo2} est\u00e1n relacionadas con Inteligencia Artificial, pero no directamente en este grafo.\"\n    \n    return \"Lo siento, no tengo informaci\u00f3n sobre eso.\"<\/code><\/pre>\n\n\n\n<p>Aqu\u00ed algunas de las preguntas y la salida.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/e-icus.net\/blog\/wp-content\/uploads\/2025\/02\/image-3-1024x576.png\" alt=\"\" class=\"wp-image-73\" srcset=\"https:\/\/e-icus.net\/blog\/wp-content\/uploads\/2025\/02\/image-3-1024x576.png 1024w, https:\/\/e-icus.net\/blog\/wp-content\/uploads\/2025\/02\/image-3-300x169.png 300w, https:\/\/e-icus.net\/blog\/wp-content\/uploads\/2025\/02\/image-3-768x432.png 768w, https:\/\/e-icus.net\/blog\/wp-content\/uploads\/2025\/02\/image-3-1536x864.png 1536w, https:\/\/e-icus.net\/blog\/wp-content\/uploads\/2025\/02\/image-3-1568x882.png 1568w, https:\/\/e-icus.net\/blog\/wp-content\/uploads\/2025\/02\/image-3.png 1672w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>qu\u00e9 sigue?<\/strong><\/h3>\n\n\n\n<p>El reto no termina aqu\u00ed. Ahora se espera que los estudiantes puedan aplicar lo aprendido en otro contexto, utilizando otro tipo de conocimientos. La idea es ver los resultados m\u00e1s adelante y explorar c\u00f3mo se pueden extender estos modelos a otras \u00e1reas de conocimiento.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Una alternativa que tenemos para construir un chatbot son los mapas conceptuales, que nos ayudan a conectar conceptos y definir relaciones entre ellos. Esta pr\u00e1ctica fue parte de la tem\u00e1tica expuesta en la materia de Inteligencia Artificial, enfocada en la aplicaci\u00f3n de modelos de representaci\u00f3n del conocimiento en el desarrollo de asistentes virtuales. Los mapas&hellip; <a class=\"more-link\" href=\"https:\/\/e-icus.net\/blog\/2025\/02\/21\/que-relacion-tiene-un-mapa-conceptual-con-un-chatbot\/\">Seguir leyendo <span class=\"screen-reader-text\">\u00bfQu\u00e9 relaci\u00f3n tiene un mapa conceptual y un chatbot?<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-71","post","type-post","status-publish","format-standard","hentry","category-uncategorized","entry"],"_links":{"self":[{"href":"https:\/\/e-icus.net\/blog\/wp-json\/wp\/v2\/posts\/71","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/e-icus.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/e-icus.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/e-icus.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/e-icus.net\/blog\/wp-json\/wp\/v2\/comments?post=71"}],"version-history":[{"count":6,"href":"https:\/\/e-icus.net\/blog\/wp-json\/wp\/v2\/posts\/71\/revisions"}],"predecessor-version":[{"id":79,"href":"https:\/\/e-icus.net\/blog\/wp-json\/wp\/v2\/posts\/71\/revisions\/79"}],"wp:attachment":[{"href":"https:\/\/e-icus.net\/blog\/wp-json\/wp\/v2\/media?parent=71"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/e-icus.net\/blog\/wp-json\/wp\/v2\/categories?post=71"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/e-icus.net\/blog\/wp-json\/wp\/v2\/tags?post=71"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}