Este proyecto es una implementación del modelo vectorial para la recuperación de información sobre el corpus de los comentarios (en español) de varias publicaciones de las distintas redes sociales
La ejecución solo depende de python > 3.6, pip, docker-compose y algún navegador
El proyecto cuenta con un Makefile con dos reglas principales build y run, la primera para instalar el resto de dependencias y construir el container con las configuraciones de la db. Antes de ejecutar este comando se recomiendo crea un environment python, para lo que recomendamos pipenv. El comando build espera un parámetro port el cual es el puerto por el container de docker expondrá el servicio de db y por el que el modelo interactuara dicho servicio.
$> make build port=6379
Una vez resueltas todas las dependencias necesarias use el comando run para levantar un server de jupyter notebook que mostrar el código mínimo para interactuar con el modelo, y recuperar los distintos resultados. Este comando espera un parámetro port el cual es el puerto por el que se expondrá el servidor de jupyter
$> make run port=8888
Si todo va bien la salida debe mostrar algo parecido a lo siguiente:
Donde copiando la url señalada y pegandola en el navegador directamente podrá acceder a código básico interactivo
Una acceda al jupyter notebook, el código inicial que podrá ver se puede separa en tres bloques principales según su funcionalidad
En estas celdas del notebook se carga el corpus de la fuente, se le aplican las distintas técnicas del procesamiento de texto para finalmente persistir todos estos cálculos realizados en la db. Si ya existieran los texto en la db estas lineas no realizan ninguna operación.
Esta sección es mucho más interactiva y rápida que la anterior, aquí puede modificar la variable query
para decirle al modelo
sobre que tema desea buscar, ademas puede modificar el parámetro alpha
y de esta manera ver cual valor genera mejor ranking
Luego en con estas lineas finales se puede iterar relativamente cómodo por toda la lista de documentos y ver cual fue el ranking propuesto. Además se ofrece la función pretty para resaltar en los documentos los términos que se consideraron relevantes para la consulta en cuestión