Repositorio ideado para apoyar al proyecto ni una muerte vial en la recolección de datos.
- Lee el insumo (archivo excel con lista de sitios de noticias), o en su defecto, recolecta lista de urls por medio de una query en Apify.
- Realiza una consulta web a cada url para obtener su estructura html.
- Se extrae el texto de la nota de cada html. La estructura html varía por periódico.
- Procesa el texto para obtener variables de interés (edad de la víctima, medio de transporte de la víctima, etc.), ya sea utilizando LLMs de OpenAI (ChatGPT), o bien, a través de diversas reglas y ML.
- Exporta el resultado a un archivo csv.
- Ubicar insumo (archivo excel con lista de sitios de noticias) dentro del repositorio, o en su defecto, establecer el token de Apify como variable de entorno.
- Ejecutar los siguientes comandos en la terminal (se requiere conda):
conda env create -f environment.yml
conda activate niunamuertevial
python main.py
- Seguir los pasos indicados en la terminal.
- Se generará un archivo adicional con los datos añadidos.
Para ocupar las funciones de LLMs de OpenAI, se requiere generar un entorno con openai y pandas. Asumiendo que se tiene dicho entorno y se llama openai: 5. Ejecutar los siguientes comandos en la terminal (se requiere conda):
conda activate openai
python llm_feature_extraction.py
- Seguir los pasos indicados en la terminal.
- Se generará un archivo adicional con los datos añadidos.
Es posible ejecutar este proyecto en cualquier entorno con python instalando los
requisitos listados en requirements.txt
. Una opción es la siguiente:
$ python -m venv .venv
$ source .venv/bin/activate
(.venv) $ pip install -r requirements.txt
(.venv) $ python main.py
Para usar las APIs de Apify y OpenAI se requiere registrarse y generar sus accesos, que deberán conservar de manera privada. En algún punto dichos servicios pueden pedir registrar métodos de pago.