Solución al reto BBVA Contigo, Hack BBVA 2021

Overview

Solution

  • Solución propuesta para el reto BBVA Contigo del Hackathon BBVA 2021. Equipo Mexdapy. Integrantes:
    • David Pedroza Segoviano
    • Regina Priscila Badillo
    • Zaid de Anda Mariscal
    • Gabriel Missael Barco

Descripción

flow

Nuestro proyecto realizará escucha activa por batches diarios o semanales (A definir) de opiniones en Twitter. Se escuchará en 5 regiones geográficas diferentes:

  • España
  • México
  • Perú
  • Argentina
  • Colombia.

Se obtendrán los tweets usando la API de Twitter por medio de Tweepy (Librería de Python) usando consultas con palabras claves de las 4 prioridades estratégicas de BBVA:

  • Mejorar la salud financiera de los clientes.
  • Ayudar a los clientes hacia un futuro sostenible.
  • Crecer en clientes.
  • Buscar la excelentica operativa.

geolisten

Posterior a la recolección por zona y prioridad, se analizarán los Tweets usando modelos pre-entrenados de Natural Lenguaje Processing para identificar clusters (conjuntos) de tweets con temas e ideas similares (similitud semántica). Luego, se realizará análisis de sentimientos, extracción de palabras clave de cada conjunto, esto lo puede ver de manera sintetizada en el flowchart anexado.

Finalmente, utilizando las palabras clave y el sentimiento asociado a cada conjunto, se generará una oración, idealmente en forma de sugerencia, que resuma el contenido del conjunto.

Recursos de apoyo:

Análisis de tweets.

Todo el análisis se usa utilizando Python y múltiples librerías (ver requirements.txt en el repositorio). La representación gráfica del pipeline completo de recolección y análisis de tweets se encuentra en la carpeta de drive, con el nombre de "Solution pipeline.png". El proceso es el siguiente:

  1. Recolectamos tweets usando Tweepy, por zona geográfica en los 5 países de interés. Para esto, se especifica un centro con coordenadas y un radio, tal que se recolectan tweets de dicho circulo (que incluye al país en cuestión y a sus vecinos). Para obtener los tweets, se generan querys diferentes para cada una de las 4 prioridades, y esto se hace con palabras clave relacionadas con dicha prioridad. Por ejemplo, para la prioridad de salud financiera, se buscan palabras clave como "ahorro" e "inversión. Se recolectan un total de 5000 tweets por país y prioridad, obteniendo un total de 20 datasets de 5000 tweets cada uno.
  2. Realizamos clustering dentro de cada uno de estos 20 datasets para obtener los temas de los que se habla, para esto:
    1. Creamos embeddings de los tweets, esto es, pasamos cada tweet a un punto en el espacio. En particular, usamos un modelo pre-entrenado llamado Siamese BERT-Network, distiluse-base-multilingual-cased-v2, que pasa cada tweet a un punto en el espacio de 512 dimensiones. Esto tiene la propiedad de que los puntos cercanos (tweets) hablan de temas similares, y los puntos lejanos de temas diferentes.
    2. Aplicamos una técnica de reducción de dimensionalidad de los datos ya que 512 son demasiadas dimensiones para varias técnicas de clustering (particularmente de la que usamos). Para esto, usamos UMAP: Uniform Manifold Approximation and Projection for Dimension Reduction, un algoritmo de clustering eficiente y que preserva las características de los datos de manera eficiente. Reducimos a 15 dimensiones.
    3. Finalmente, aplicamos un algoritmo de clustering sobre estos puntos para obtener grupos de tweets que hablen de lo mismo y/o de manera similar. Para esto, usamos HDBSCAN: Hierarchical density-based spatial clustering of applications with noise. Este algoritmo determina por si mismo el número de clusters y manda los tweets irrelevantes a ruido (sin cluster asignado.
  3. Una vez con los clusters dentro de cada dataset, tomamos únicamente los que tengan más de 100 tweets, y analizamos cada uno de estos clusters. Hacemos un análisis de sentimientos sobre los tweets y también obtenemos las palabras que mejor representan la información de los clusters.
  4. Finalmente, realizamos varias visualizaciones de los clusters con este análisis y se genera la recomendación.

pipeline

AWS

En una instancia de AWS, se ejecutará primero nuestro scrapper de información de twitter (cuya información se detalla más a profundidad en la sección análisis de tweets, que guardaremos en la misma instancia, para posterior ingreso a el módulo de análisis de tweets. Después, de manera secuencial, se ejecutará un análisis de sentimiento sobre cada cluster, para procesar todos los datos y obtener todos los estadísticos, que se almacenarán en un servicio S3. Estos datos posteriormente se pondrán a disposición de la página web mediante una API, que siempre estará expuesta para que la página web la pueda consumir. Cuando reciba un request, la API cargará los datos de S3, y los cambiará a un formato json para que la página web los pueda consumir.

Página Web

Todos los datos obtenidos y procesados, serán desplegados en una página web, que consumirá la API antes implementada en la instancia de AWS (Ver sección anterior). Esta página contendrá una vista inicial, donde se podrán elegir entre distintos países: España, México, Perú, Argentina, Colombia, (Ver maqueta de página en la carpeta). Por cada país, existirá una página donde se mostrará un Dashboard de los estadísticos, mapas, wordclouds, y demás indicadores que ayuden a la comprensión de los datos procesados.

Esta página está siendo escrita con HTML, CSS y JavaScript puro, por el momento no hay necesidad de utilizar ninguna otra tecnología, se plantea que para el MVP, esta página pueda ser alojada en GitHub Pages.

Owner
Gabriel Missael Barco
Undergraduate physics student 📡 / Python enthusiastic 🐍 / Community member @futurelabmx 🚀 / #SoyUG 🐝
Gabriel Missael Barco
Cobalt Strike Beacon configuration extractor and parser.

Cobalt Strike Configuration Extractor and Parser Overview Pure Python library and set of scripts to extract and parse configurations (configs) from Co

Stroz Friedberg 102 Dec 18, 2022
Mr.Holmes is a information gathering tool (OSINT)

🔍 Mr.Holmes Mr.Holmes is a information gathering tool (OSINT). Is main purpose is to gain information about domains,username and phone numbers with t

534 Jan 08, 2023
A Static Analysis Tool for Detecting Security Vulnerabilities in Python Web Applications

This project is no longer maintained March 2020 Update: Please go see the amazing Pysa tutorial that should get you up to speed finding security vulne

2.1k Dec 25, 2022
Brute force attack tool for Azure AD Autologon/Seamless SSO

Brute force attack tool for Azure AD Autologon

nyxgeek 89 Jan 02, 2023
Midas ELF64 Injector is a tool that will help you inject a C program from source code into an ELF64 binary.

Midas ELF64 Injector Description Midas ELF64 Injector is a tool that will help you inject a C program from source code into an ELF64 binary. All you n

midas 20 Dec 24, 2022
Bypass 4xx HTTP response status codes.

Forbidden Bypass 4xx HTTP response status codes. To see all the test cases, check the source code - follow the NOTE comments. Script uses multithreadi

Ivan Šincek 165 Dec 28, 2022
CVE-2021-22005 - VMWare vCenter Server File Upload to RCE

CVE-2021-22005 - VMWare vCenter Server File Upload to RCE Analyze Usage ------------------------------------------------------------- [*] CVE-2021-220

r0cky 224 Aug 05, 2022
Experimental musig2 python code, not for production use!

musig2-py Experimental musig2 python code, not for production use! This is just for testing things out. All public keys are encoded as 32 bytes, assum

Samuel Dobson 14 Jul 08, 2022
Reverse engineered Parler API

Parler's unofficial API with all endpoints present in their iOS app as of 08/12/2020. For the most part undocumented, but the error responses are alre

393 Nov 26, 2022
Auto Tor Ip Changer

AutoTor Auto Tor Ip Changer for Linux! git clone https://github.com/Arest7/AutoTor cd AutoTor pip install -r requirements.txt python3 AutoTor.py follo

Ken Ryuguji 3 Jan 23, 2022
labsecurity is a tool that brings together python scripts made for ethical hacking, in a single tool, through a console interface

labsecurity labsecurity is a tool that brings together python scripts made for ethical hacking, in a single tool, through a console interface. Warning

Dylan Meca 16 Dec 08, 2022
Buffer Overflow para SLmail5.5 32 bits

SLmail5.5-Exploit-BoF Buffer Overflow para SLmail5.5 32 bits con un par de utilidades para que puedas hacer el tuyo REQUISITOS PARA QUE FUNCIONE: Desa

Luis Javier 15 Jul 30, 2022
Automatic SQL injection and database takeover tool

sqlmap sqlmap is an open source penetration testing tool that automates the process of detecting and exploiting SQL injection flaws and taking over of

sqlmapproject 25.7k Jan 08, 2023
Time Discretization-Invariant Safe Action Repetition for Policy Gradient Methods

Time Discretization-Invariant Safe Action Repetition for Policy Gradient Methods This repository is the official implementation of Seohong Park, Jaeky

Seohong Park 6 Aug 02, 2022
Hashpic - Hashpic creates an image from a MD5 or SHA512 hash

Hashpic Hashpic creates an image from the MD5 hash of your input. Since v0.2.0 i

0xflotus 15 Nov 23, 2022
This repo created for bypassing Widevine L3 DRM and obtaining keys.

First run: Copy headers (with cookies) of POST license request from browser to headers.py like dictionary. pip install -r requirements.txt # if doesn'

Mikhail 263 Jan 07, 2023
Fuck - Multi Brute Force 🚶‍♂

f-mbf Fuck - Multi Brute Force 🚶‍♂ Install Script $ pkg update && pkg upgrade $ pkg install python2 $ pkg install git $ pip2 install requests $ pip2

Yumasaa 1 Dec 03, 2021
Scanning for CVE-2021-44228

Filesystem log4j_scanner for windows and Unix. Scanning for CVE-2021-44228, CVE-2021-45046, CVE-2019-17571 Requires a minimum of Python 2.7. Can be ex

Brett England 4 Jan 09, 2022
EMBArk - The firmware security scanning environment

Embark is being developed to provide the firmware security analyzer emba as a containerized service and to ease accessibility to emba regardless of system and operating system.

emba 175 Dec 14, 2022
A Tool for subdomain scan with other tools

ReconTracer A Tool for subdomain scan with other tools ReconTracer Find subdomains by using another amazing sources!. Obs: In a close future recontrac

15 Dec 18, 2021