Esta herramienta digital forma parte del catálogo de herramientas del Banco Interamericano de Desarrollo. Puedes conocer más sobre la iniciativa del BID en: https://knowledge.iadb.org/es/codigo-para-el-desarrollo
Versión en inglés aquí
SmartReader es una herramienta que utiliza técnicas de Procesamiento de Lenguaje Natural para proporcionar una nueva perspectiva a tu investigación (pregunta de investigación y literatura recopilada). Esto lo hace a través de consultar a Google y recuperar información actualizada y relacionada con tu pregunta de investigación. SmartReader es una alternativa para hacerle frente a la necesidad que tienen los trabajadores de conocimiento de mantener el ritmo a la cantidad exponencial de información que se genera todos los días y que se comparte en el internet.
El Departamento de Conocimiento Innovación y Comunicación del Banco Interamericano de Desarrollo creó esta herramienta luego de reconocer esta necesidad además de querer explorar tecnologías como la Inteligencia Artificial y el Procesamiento del Lenguaje Natural para asistir en el proceso de Gestión del Conocimiento.
La herramienta consta de cuatro interfaces: 1) Definición del modelo, 2) Estado del modelo, 3) Aplicación del modelo, e 4) Interfaz de resultados.
Como se muestra en la gráfica, de izquierda a derecha y de arriba a abajo, el proceso comienza cuando el usuario crea un modelo al ingresar un conjunto de temas y subtemas que son relevantes a una determinada pregunta de investigación. Con este conjunto de palabras, la herramienta generará cadenas de consulta utilizadas para recuperar los datos más relevantes disponibles en Google. Luego, al aplicar sklearn.TfidfVectorizer, se creará un modelo con términos ponderados. Posteriormente, se aplica un modelo al corpus de documentos que el usuario carga en un archivo comprimido de archivos .txt. El proceso ocurre al calificar los párrafos de cada documento, extraer sus entidades y ubicaciones correspondientes y ordenar estos párrafos en orden descendente. Después de elegir los párrafos con mayor calificación (se seleccionó un número aleatorio de 50 párrafos), la herramienta procederá a seleccionar las oraciones más relevantes. Los cálculos dará como resultado un archivo .json y la visualización de las palabras clave, entidades, ubicaciones geográficas y frases más relevantes de nuestro corpus de documentos. Para obtener más información sobre cómo contribuir a este proyecto, consulta la siguiente entrada en nuestro blog Abierto al Público.
- El servidor deberá contar con al menos 20GB de espacio en disco y un RAM de 4GB. La herramienta ocupa un espacio de mínimo 3GB.
- Se recomienda una buena conexión a Internet dado que una gran cantidad de datos se descarga durante la configuración del servidor.
- Recomendamos instalar la aplicación en una distribución de CentOS.
NOTA: asegúrate de estar usando python3 Primero comprueba si python3 ya está instalado en el servidor. Caso contrario, sigue los siguientes pasos:
sudo yum -y install https://centos7.iuscommunity.org/ius-release.rpm
sudo yum -y install python36u
sudo yum -y install python36u-pip
sudo pip install –upgrade pip
Confirma la instalación con: pip -V
- Navega a la carpeta madre (home)
- Haz clic aquí para ver los pasos de instalación de MongoDB. Si el enlace no funciona, copia y pega la siguiente url en tu navegador https://www.digitalocean.com/community/tutorials/how-to-install-mongodb-on-centos-7
Clona el repositorio usando el comando: git clone https://github.com/EL-BID/SmartReader.git.
- Crea una nueva carpeta para el proyecto y navega a esa carpeta
- Crea un entorno virtual e instala python3 en el entorno con el siguiente comando:
python3.6 -m venv my_env(dondemy_enves el nombre del entorno) - Activa el entorno recién creado con el siguiente comando:
source my_env/bin/activate - Para desactivar el entorno usa el siguiente comando:
deactivate
- Activa el entorno que creaste en el paso anterior
- Navega hacia la carpeta con la herramienta clonada
- Instala la librería enchant con el siguiente comando
sudo yum install enchant. - Para instalar el resto de los paquetes deberás modificar tu configuración local usando la siguiente línea:
export LC_ALL=C. - Instala todas las librerías que están en el archivo “requirements.txt” usando el siguiente comando:
sudo pip install -r requirements.txt. - Descarga los datos en inglés de la librería spacy así:
sudo python -m spacy download en. - La librería nltk deberá usarse utilizando python. Para esto, activa
pythonen la línea de comandos. - Importa nltk y descarga todos los datos usando los siguientes comandos:
>>> import nltk
>>> nltk.download('all')
- Instala screen con el siguiente comando:
sudo yum install screen - Crea una pantalla para el archivo principal usando el siguiente comando:
screen -S main. - Al iniciar el archivo principal podrás visualizar la interfaz de la aplicación. Para esto, ejecuta la siguiente línea:
python run.py - Desconecta la pantalla con Ctrl + A y luego Ctrl + D. Para confirmar que la pantalla fue desconectada puedes enlistar todas las pantallas disponibles usando
screen -ls. La pantalla con nombre “main” deberá tener el estado de “Desconectado”. - Crea la pantalla que va a albergar el procesador de los datos. Repite los pasos para crear una nueva pantalla. Puedes elegir un nombre arbitrario como “data_collection_processor”.
- Inicia el archivo para esta pantalla ejecutando:
python processor.py. Luego desconecta esta pantalla usando el mismo método mencionado anteriormente. - Finalmente, crea una pantalla para el proceso que llamaremos summary_processor y ejecuta el correspondiente archivo con esta línea:
python summary_processor.py. Desconecta la pantalla. - Chequea todas las pantallas en ejecución usando:
screen -ls. - El servidor estará funcionando. Para acceder a la aplicación, utilizando tu navegador de preferencia, navega a localhost:8080. Para acceso remoto, deberás especificar una IP pública como por ejemplo: http://127.0.0.1:8080
- Ir a la pestaña "Model Definition" y crear un nombre aleatorio para el modelo.
- Pensar en una lista de tópicos y subtópicos que describan la pregunta de investigación sobre la que quieres trabajar. Por ejemplo con la pregunta: "How will technology impact the economy of the future?", se podría decir que dos ejemplos de sub-tópicos podrían ser 1)"Technology" y 2)"Economics". Asismismo las palabras claves que corresponden a estos subtópicos serían 1)"artificial intelligence, machine learning, natural language processing" y 2)"behavioral economics" respectivamente. Toma en cuenta que las palabras clave deben estar separadas por coma. Una vez creado el modelo, hacer click submit.
- Luego en la pestaña de "Model Status" podrás chequear el estado de la creación del modelo.
- En la pestaña de "Model Aplication" selecciona el modelo que acabaste de crear. Seguidamente carga una carpeta comprimida zip que contiene el corpus de tus documentos en formato .txt (hemos adjuntado una muestra). Finalmente, envía el formulario.
- En la pestaña "Results" es donde podrás descargarte los resúmenes y formato json y visualizar los resultados.
Hemos puesto a disposción el código de esta herramienta y nos encataría escuchar tu experiencia con ella. Para ver un listado de posibles mejoras que podrías hacer a SmartReader consulta la pestaña Issues de este repositorio y el CONTRIBUTING.md.
Finalmente, te comentamos que escribimos una entrada sobre SmartReader en Abierto al Público. El enlace al blog está en la sección de Información Adicional de este documento. ¡Quedamos atentos!
Puedes ver el código de conducta aquí
© 2017 Banco Interamericano de Desarrollo e Instituto para el Futuro. Este software es el resultado de una asociación entre el Banco Interamericano de Desarrollo y el Instituto para el Futuro. Los derechos de autor del software son compartidos por ambas organizaciones, incluso si el licenciante es únicamente el Banco Interamericano de Desarrollo.
Banco Interamericano de Desarrollo
Involucrados:
- Daniela Collaguazo
- Kyle Strand
- Seaford Bacchas
Puedes ver la licencia del código fuente aquí
La Documentación de Soporte y Uso del software se encuentra licenciada bajo Creative Commons IGO 3.0 Atribución-NoComercial-SinObraDerivada (CC-IGO 3.0 BY-NC-ND)
El BID no será responsable, bajo circunstancia alguna, de daño ni indemnización, moral o patrimonial; directo o indirecto; accesorio o especial; o por vía de consecuencia, previsto o imprevisto, que pudiese surgir:
i. Bajo cualquier teoría de responsabilidad, ya sea por contrato, infracción de derechos de propiedad intelectual, negligencia o bajo cualquier otra teoría; y/o
ii. A raíz del uso de la Herramienta Digital, incluyendo, pero sin limitación de potenciales defectos en la Herramienta Digital, o la pérdida o inexactitud de los datos de cualquier tipo. Lo anterior incluye los gastos o daños asociados a fallas de comunicación y/o fallas de funcionamiento de computadoras, vinculados con la utilización de la Herramienta Digital.
Copyright © [2025]. Inter-American Development Bank ("IDB"). Authorized Use.
The procedures and results obtained based on the execution of this software are those programmed by the developers and do not necessarily reflect the views of the IDB, its Board of Executive Directors or the countries it represents.
Copyright © [2025]. Banco Interamericano de Desarrollo ("BID"). Uso Autorizado.
Los procedimientos y resultados obtenidos con la ejecución de este software son los programados por los desarrolladores y no reflejan necesariamente las opiniones del BID, su Directorio Ejecutivo ni los países que representa.
Copyright © [2025]. Inter-American Development Bank ("IDB"). The Support and Usage Documentation is licensed under the Creative Commons License CC-BY 4.0 license. The opinions expressed in the Support and Usage Documentation are those of its authors and do not necessarily reflect the opinions of the IDB, its Board of Executive Directors, or the countries it represents.
Copyright © [2025]. Banco Interamericano de Desarrollo (BID). La Documentación de Soporte y Uso está licenciada bajo la licencia Creative Commons CC-BY 4.0. Las opiniones expresadas en la Documentación de Soporte y Uso son las de sus autores y no reflejan necesariamente las opiniones del BID, su Directorio Ejecutivo ni los países que representa.
The Software may include features which use, are powered by, or are an artificial intelligence system (“AI-Powered Services”), and as a result, the services provided via the Software may not be completely error-free or up to date. Additionally, the User acknowledges that due to the incorporation of AI-Powered Services in the Software, the Software may not dynamically (in “real time”) retrieve information and that, consequently, the output provided to the User may not account for events, updates, or other facts that have occurred or become available after the Software was trained. Accordingly, the User acknowledges that the use of the Software, and that any actions taken or reliance on such products, are at the User’s own risk, and the User acknowledges that the User must independently verify any information provided by the Software.
El Software puede incluir funciones que utilizan, están impulsadas por o son un sistema de inteligencia artificial (“Servicios Impulsados por IA”) y, como resultado, los servicios proporcionados a través del Software pueden no estar completamente libres de errores ni actualizados. Además, el Usuario reconoce que, debido a la incorporación de Servicios Impulsados por IA en el Software, este puede no recuperar información dinámicamente (en “tiempo real”) y que, en consecuencia, la información proporcionada al Usuario puede no reflejar eventos, actualizaciones u otros hechos que hayan ocurrido o estén disponibles después del entrenamiento del Software. En consecuencia, el Usuario reconoce que el uso del Software, y que cualquier acción realizada o la confianza depositada en dichos productos, se realiza bajo su propio riesgo, y reconoce que debe verificar de forma independiente cualquier información proporcionada por el Software.