Terminado

Recomendación de artículos similares en base a su nombre

Publicado el 02 Noviembre, 2021 en Programación y Tecnología

Sobre este proyecto

Abierto

En Avellaneda a un toque contamos con un gran catálogo de artículos organizados por rubro. Necesitamos poder agrupar los artículos activos para que, cuando un usuario ingrese a un artículo, le recomendemos cuáles otros de su mismo rubro pueden interesarle por similitud en su título

Se deben ignorar palabras no relevantes (preposiciones, etc), tildes y caracteres no alfanuméricos
No debe importar el orden de las plabras. "Jean azul de gabardina" debe vincularlo con "Jean de gabardina color azul".
Tampoco tienen que coincidir todas las palabras. "Jean hermoso azul" y "Jean azul de gabardina" pueden pertenecer al mismo cluster si no hubiese otros más similares entre sí.
También tiene que tener la capacidad de matchear palabras conceptualmente equivalentes, ya sea por plural-singular (jean y jeans) o por error ortográfico (zapatillas y sapatillas)


Además del modelo, es necesario desarrollar una API para interactuar con él.

Endpoints necesarios:
1) Dado un id de artículo y su título, calcular el vector del título, agregarlo a la base de datos local y retornar su vector. Si para el id de artículo ya hay un vector en la base local, reemplazarlo. La base de datos de artículos puede persistir los vectores generados por el modelo para agilizar el cold-start.

2) Dado un vector o un id de articulo, devolver los N id de artículos del mismo rubro más similares (N configurable)
3) Al iniciarse la API debería llenar su base de datos propia (preferentemente en memoria) con los vectores de los artículos. Si los persisto en mi base, entonces debería llamar a un endpoint de mi base que devuelve id articulo, id rubro, vector
4) Reiniciar la API, borrando base local y llamando al endpoint nro 3
5) Borrar un id de artículo de la base local

Consideraciones:
- El sistema debe ser llave en mano, y sin depender de un SaaS externo como AWS Sagemaker o similares. Librerías como Tensorflow, Keras, etc no hay problema
- Los títulos están escritos en español
- No debe haber limitaciones en la cantidad de artículos, longitud de los títulos, cantidad de consultas ni de ningún otro tipo
- No debe haber costos adicionales
- Los rubros son un conjunto dinámico.
Actualmente hay unos 30, que pueden cambiar en cualquier momento. Si se agregara un nuevo rubro, reiniciando la API, al hacer su carga inicial debería incluirlo de forma transparente
- Periódicamente debo poder reiniciar la API para hacer un "borrón y cuenta nueva", limpiando artículos que ya no están vigentes
- Debo poder configurar el tamaño del cluster para ir ajustándolo

Contexto general del proyecto

Avellaneda a un toque es un marketplace del importante centro comercial de Av Avellaneda, en el barrio de Flores, Ciudad Autónoma de Buenos Aires. La aplicación mobile tiene más de 1M descargas

Categoría Programación y Tecnología
Subcategoría Data Science
Tamaño del proyecto Medio
¿Es un proyecto o una posición? Un proyecto
Disponibilidad requerida Según se necesite

Plazo de Entrega: No definido

Habilidades necesarias

Otros proyectos publicados por A. A. U. T.