Proyecto de Procesamiento de Lenguaje Natural (NLP) diseñado para agrupar (clustering) grandes volúmenes de comentarios utilizando vectorización TF-IDF y Agrupamiento Jerárquico Aglomerativo (usando Enlace de Ward y distancia Euclidiana). El proyecto cuenta además con una API en FastAPI y un Dashboard interactivo en React/Vite para visualizar los resultados (Dendrogramas y Treemaps).
El repositorio está dividido en dos partes principales:
- Backend (Python / FastAPI): Procesa los datos, limpia los comentarios, vectoriza el texto y genera los clusters.
- Frontend (React / Vite): Interfaz de usuario para visualizar los análisis en tiempo real.
Asegúrate de tener Python 3.8+ instalado. Las librerías principales utilizadas son:
fastapi: Framework web para construir la API.uvicorn: Servidor ASGI para ejecutar la API.pandasynumpy: Manipulación y análisis de datos.scikit-learn: Para cálculos de TF-IDF y agrupamiento jerárquico (AgglomerativeClustering).scipy: Para el cálculo de distancias y la creación del árbol jerárquico (scipy.cluster.hierarchy).spacy: Para el proceso de lematización y limpieza del texto mediante expresiones regulares.
Asegúrate de tener Node.js (v16+) instalado.
reactyreact-domviteechartsyecharts-for-react: Para las gráficas de Dendrograma y Treemap.axios(opcional, para las peticiones HTTP)
-
Abrir la terminal en la raíz del proyecto: Asegúrate de estar en
d:\Universidad\Ing. Sistemas\9no Semestre\PROCESAMIENTO DE LENGUAJE NATURAL\Unidad1. -
Crear y activar un entorno virtual (Recomendado):
python -m venv .venv # En Windows: .venv\Scripts\activate
-
Instalar las dependencias: (Si tienes un archivo
requirements.txt, ejecutapip install -r requirements.txt. Si no, instala las necesarias manualmente):pip install fastapi uvicorn pandas numpy scikit-learn scipy spacy python -m spacy download es_core_news_sm
-
Iniciar el servidor Backend: Ejecuta el archivo principal (generalmente
main.py) usando Uvicorn:uvicorn main:app --reload
La API estará disponible en
http://localhost:8000(puedes ver la documentación enhttp://localhost:8000/docs).
-
Abrir otra terminal y navegar a la carpeta del frontend:
cd frontend -
Instalar las dependencias de Node:
npm install
-
Iniciar el servidor de desarrollo del Frontend:
npm run dev
El dashboard interactivo estará disponible generalmente en
http://localhost:5173.
- Para que el clustering funcione correctamente, asegúrate de tener el dataset base (ej.
comentarios_limpios.csv) en la raíz del proyecto para quenlp_engine.pyoetl.pypuedan procesarlo. - Se ha configurado
.gitignorepara excluir archivos pesados, entornos virtuales y cachés.