Compare commits
5 Commits
2c168f30f4
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3b0ba91ecc | ||
|
|
41294866c2 | ||
|
|
4855d4ebcd | ||
|
|
17ac026d34 | ||
|
|
d1573682c1 |
1
.~lock.preguntas_abiertas.ods#
Normal file
1
.~lock.preguntas_abiertas.ods#
Normal file
@@ -0,0 +1 @@
|
|||||||
|
,mongar,mongar,13.11.2025 12:45,file:///home/mongar/.config/libreoffice/4;
|
||||||
@@ -10,7 +10,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 29,
|
"execution_count": 1,
|
||||||
"id": "07f1b7f9-e990-4f49-81ec-5e7b85533ce6",
|
"id": "07f1b7f9-e990-4f49-81ec-5e7b85533ce6",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
@@ -22,10 +22,30 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 30,
|
"execution_count": 2,
|
||||||
"id": "2c0608fc-aaf0-4050-9802-132a3f57e264",
|
"id": "2c0608fc-aaf0-4050-9802-132a3f57e264",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [],
|
"outputs": [
|
||||||
|
{
|
||||||
|
"name": "stdout",
|
||||||
|
"output_type": "stream",
|
||||||
|
"text": [
|
||||||
|
"/home/forgedk/ProyectosCEO/extractor_tematizador_preguntas_abiertas\n",
|
||||||
|
"----------------------------------------------------------------------------------------------------\n",
|
||||||
|
"No hay claridad sobre si el rector conoce o está gestionando las iniciativas de formación de la Secretaría de Educación.\n",
|
||||||
|
"----------------------------------------------------------------------------------------------------\n",
|
||||||
|
"----------------------------------------------------------------------------------------------------\n",
|
||||||
|
"En 2022, el núcleo de ciencias naturales realizó una alianza con CORNARE y la UMATA como ejemplo de participación en procesos formativos.\n",
|
||||||
|
"----------------------------------------------------------------------------------------------------\n",
|
||||||
|
"----------------------------------------------------------------------------------------------------\n",
|
||||||
|
"La Secretaría Departamental divulgó la invitación a participar en la alianza a través de infogramas explicativos en su página web con instrucciones paso a paso.\n",
|
||||||
|
"----------------------------------------------------------------------------------------------------\n",
|
||||||
|
"----------------------------------------------------------------------------------------------------\n",
|
||||||
|
"Se proporcionó línea telefónica como canal de comunicación para facilitar la participación en las iniciativas de formación.\n",
|
||||||
|
"----------------------------------------------------------------------------------------------------\n"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
"source": [
|
"source": [
|
||||||
"module_path = os.path.abspath(os.path.join('..'))\n",
|
"module_path = os.path.abspath(os.path.join('..'))\n",
|
||||||
"\n",
|
"\n",
|
||||||
@@ -47,7 +67,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 31,
|
"execution_count": 7,
|
||||||
"id": "d9af271a-03f9-41c7-acf9-7497c5463cc8",
|
"id": "d9af271a-03f9-41c7-acf9-7497c5463cc8",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
@@ -72,7 +92,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 32,
|
"execution_count": 8,
|
||||||
"id": "ec64ee5e-1d45-4d1e-805c-45a608eea33a",
|
"id": "ec64ee5e-1d45-4d1e-805c-45a608eea33a",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
@@ -87,7 +107,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 33,
|
"execution_count": 9,
|
||||||
"id": "886d7f02-0f5a-4a1f-8bd2-cb18c0a86360",
|
"id": "886d7f02-0f5a-4a1f-8bd2-cb18c0a86360",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
@@ -102,7 +122,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 34,
|
"execution_count": 10,
|
||||||
"id": "16d3fb54-7385-401e-8a0a-b594d08ae181",
|
"id": "16d3fb54-7385-401e-8a0a-b594d08ae181",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [],
|
"outputs": [],
|
||||||
@@ -116,7 +136,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 35,
|
"execution_count": 11,
|
||||||
"id": "93c06255-a231-4aee-899d-803d9fb0b342",
|
"id": "93c06255-a231-4aee-899d-803d9fb0b342",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
@@ -142,6 +162,14 @@
|
|||||||
"source": [
|
"source": [
|
||||||
"format_all_answers(DIC_QUESTIONS)"
|
"format_all_answers(DIC_QUESTIONS)"
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"id": "85b47d83-32d0-4c6b-a693-82bd66bd5a3d",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": []
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"metadata": {
|
"metadata": {
|
||||||
|
|||||||
@@ -1,80 +1,60 @@
|
|||||||
#!/usr/bin/env python
|
|
||||||
# coding: utf-8
|
|
||||||
|
|
||||||
# # Imports
|
|
||||||
|
|
||||||
# In[29]:
|
|
||||||
|
|
||||||
|
|
||||||
import pandas as pd
|
import pandas as pd
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
from extraccion import agentes_entidades
|
||||||
|
|
||||||
|
module_path = os.path.abspath(os.path.join(".."))
|
||||||
# In[30]:
|
|
||||||
|
|
||||||
|
|
||||||
module_path = os.path.abspath(os.path.join('..'))
|
|
||||||
|
|
||||||
# Add to sys.path if not already present
|
# Add to sys.path if not already present
|
||||||
if module_path not in sys.path:
|
if module_path not in sys.path:
|
||||||
sys.path.append(module_path)
|
sys.path.append(module_path)
|
||||||
print(module_path)
|
print(module_path)
|
||||||
|
|
||||||
from extraccion import agentes_entidades
|
|
||||||
|
|
||||||
|
|
||||||
# # Variables
|
|
||||||
|
|
||||||
# In[31]:
|
|
||||||
|
|
||||||
|
|
||||||
INPUT_FOLDER = f"{module_path}/input/Preguntas Categoricas/"
|
INPUT_FOLDER = f"{module_path}/input/Preguntas Categoricas/"
|
||||||
OUTPUT_FOLDER = f"{module_path}/output/fase1"
|
OUTPUT_FOLDER = f"{module_path}/output/fase1"
|
||||||
FILES_TO_PROCESS = os.listdir(INPUT_FOLDER)
|
FILES_TO_PROCESS = os.listdir(INPUT_FOLDER)
|
||||||
DELIMITER = "|^"
|
DELIMITER = "|^"
|
||||||
DIC_QUESTIONS = {
|
DIC_QUESTIONS = {
|
||||||
"Encuesta_MediaG01Q02.csv":agentes_entidades.extractor_pre_1
|
"Encuesta_MediaG01Q02.csv": agentes_entidades.extractor_pre_1,
|
||||||
# COMPLETAR RESTO
|
"Encuesta_MediaG01Q04.csv": agentes_entidades.extractor_pre_2,
|
||||||
|
"Encuesta_MediaG01Q10.csv": agentes_entidades.extractor_pre_3,
|
||||||
|
"Encuesta_MediaG03Q17.csv": agentes_entidades.extractor_pre_4,
|
||||||
|
"Encuesta_MediaG03Q18.csv": agentes_entidades.extractor_pre_5,
|
||||||
|
# "Encuesta_MediaG03Q19.csv": agentes_entidades.extractor_pre_6,
|
||||||
|
"Encuesta_MediaG04Q22.csv": agentes_entidades.extractor_pre_7,
|
||||||
|
"Encuesta_MediaG04Q23.csv": agentes_entidades.extractor_pre_8,
|
||||||
|
"Encuesta_MediaG04Q25.csv": agentes_entidades.extractor_pre_9,
|
||||||
|
"Encuesta_MediaG05Q30.csv": agentes_entidades.extractor_pre_10,
|
||||||
|
"Encuesta_MediaG05Q34.csv": agentes_entidades.extractor_pre_11,
|
||||||
|
"Encuesta_MediaG05Q28.csv": agentes_entidades.extractor_pre_12,
|
||||||
|
"Encuesta_MediaG06Q35.csv": agentes_entidades.extractor_pre_13,
|
||||||
|
"Encuesta_MediaG06Q38.csv": agentes_entidades.extractor_pre_14,
|
||||||
|
"Encuesta_MediaG06Q40.csv": agentes_entidades.extractor_pre_15,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# # Functions
|
|
||||||
|
|
||||||
# In[32]:
|
|
||||||
|
|
||||||
|
|
||||||
def extract_answers(answers):
|
def extract_answers(answers):
|
||||||
answer_formated = ""
|
answer_formated = ""
|
||||||
iterator_answers = answers.acciones
|
iterator_answers = answers.acciones
|
||||||
for item in iterator_answers:
|
for item in iterator_answers:
|
||||||
answer_formated+=f"{item.accion}{DELIMITER}"
|
answer_formated += f"{item.accion}{DELIMITER}"
|
||||||
return answer_formated
|
return answer_formated
|
||||||
|
|
||||||
|
|
||||||
# In[33]:
|
def format_answer(dataframe, function):
|
||||||
|
|
||||||
|
|
||||||
def format_answer(dataframe,function):
|
|
||||||
dataframe["respuestas_formato"] = None
|
dataframe["respuestas_formato"] = None
|
||||||
for index, row in dataframe.iterrows():
|
for index, row in dataframe.iterrows():
|
||||||
answers = function (row['respuesta'])
|
answers = function(row["respuesta"])
|
||||||
answer_to_insert = extract_answers(answers)
|
answer_to_insert = extract_answers(answers)
|
||||||
dataframe.loc[index,'respuestas_formato'] = answer_to_insert
|
dataframe.loc[index, "respuestas_formato"] = answer_to_insert
|
||||||
|
|
||||||
|
|
||||||
# In[34]:
|
|
||||||
|
|
||||||
|
|
||||||
def format_all_answers(Dic_questions):
|
def format_all_answers(Dic_questions):
|
||||||
for key,value in Dic_questions.items():
|
for key, value in Dic_questions.items():
|
||||||
question_dataframe = pd.read_csv(INPUT_FOLDER+"/"+key)
|
question_dataframe = pd.read_csv(INPUT_FOLDER + "/" + key)
|
||||||
format_answer(question_dataframe, value)
|
format_answer(question_dataframe, value)
|
||||||
question_dataframe.to_csv(OUTPUT_FOLDER+"/"+key)
|
question_dataframe.to_csv(OUTPUT_FOLDER + "/" + key)
|
||||||
|
|
||||||
|
|
||||||
# In[35]:
|
|
||||||
|
|
||||||
|
|
||||||
format_all_answers(DIC_QUESTIONS)
|
format_all_answers(DIC_QUESTIONS)
|
||||||
|
|
||||||
|
|||||||
@@ -235,7 +235,7 @@ def extractor_pre_9(respuesta: str) -> Entidades:
|
|||||||
|
|
||||||
llm_so = llm.with_structured_output(Entidades)
|
llm_so = llm.with_structured_output(Entidades)
|
||||||
|
|
||||||
entidades: list = llm_so.invoke(prompt)
|
entidades = llm_so.invoke(prompt)
|
||||||
|
|
||||||
lista_entidades = entidades.entidades
|
lista_entidades = entidades.entidades
|
||||||
|
|
||||||
@@ -397,4 +397,4 @@ alianza con cornare y la UMATA, dicha invitación a participar se hizo
|
|||||||
por la página de la secretaria departamental, donde a partir de un
|
por la página de la secretaria departamental, donde a partir de un
|
||||||
infograma explicaba paso a paso como participar y además contaba con linea telefónica.
|
infograma explicaba paso a paso como participar y además contaba con linea telefónica.
|
||||||
"""
|
"""
|
||||||
extractor_pre_15(respuesta)
|
# extractor_pre_15(respuesta)
|
||||||
|
|||||||
2
input/Preguntas Categoricas/Encuesta_MediaG05Q28.csv
Normal file
2
input/Preguntas Categoricas/Encuesta_MediaG05Q28.csv
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
cod_dane,cod_pregunta,respuesta
|
||||||
|
205120001435/I.E. GASPAR DE RODAS,G05Q28,"En la última actualización del PEI intentamos que muchos de los temas de clase tengan como eje las problemáticas del territorio para que ellos analicen y de forma critican generen propuestas, sin embargo algunos profesores aún están reacios a cambiar la metodología"
|
||||||
|
2
input/Preguntas Categoricas/Encuesta_MediaG06Q35.csv
Normal file
2
input/Preguntas Categoricas/Encuesta_MediaG06Q35.csv
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
cod_dane,cod_pregunta,respuesta
|
||||||
|
205120001435/I.E. GASPAR DE RODAS,G06Q35,Son muy altas pues desde hace varios años hemos venido solicitando el apoyo de dicha institución para que nos colabore con recursos
|
||||||
|
2
input/Preguntas Categoricas/Encuesta_MediaG06Q38.csv
Normal file
2
input/Preguntas Categoricas/Encuesta_MediaG06Q38.csv
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
cod_dane,cod_pregunta,respuesta
|
||||||
|
205120001435/I.E. GASPAR DE RODAS,G06Q38,"Las veces que han dado charlas son mas que todo para motivarlos a que sigan en educación superior y ellos desean aprender herramientas tecnológicas para sus emprendimientos familiares o propios, pocos quieren seguir estudiando"
|
||||||
|
2
input/Preguntas Categoricas/Encuesta_MediaG06Q40.csv
Normal file
2
input/Preguntas Categoricas/Encuesta_MediaG06Q40.csv
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
cod_dane,cod_pregunta,respuesta
|
||||||
|
205120001435/I.E. GASPAR DE RODAS,G06Q40,"Comparte mucha información de las alianzas que se han logrado pero en nuestra subregión no hay nada, todo es para el oriente "
|
||||||
|
1
output/fase1/.~lock.Encuesta_MediaG01Q02.csv#
Normal file
1
output/fase1/.~lock.Encuesta_MediaG01Q02.csv#
Normal file
@@ -0,0 +1 @@
|
|||||||
|
,mongar,mongar,13.11.2025 14:35,file:///home/mongar/.config/libreoffice/4;
|
||||||
Binary file not shown.
@@ -15,4 +15,4 @@ llm = context.get_llm()
|
|||||||
pregunta = "¿Cuál es el mejor modelo de lenguaje?"
|
pregunta = "¿Cuál es el mejor modelo de lenguaje?"
|
||||||
respuesta = llm.invoke(pregunta)
|
respuesta = llm.invoke(pregunta)
|
||||||
print(respuesta)
|
print(respuesta)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user