Creando un buscador "inteligente" de ilustraciones etiquetadas

Al lío:

En mis ratos libres colaboro con un proyecto OpenSource / OpenArt de una compañera ilustradora para ofrecer ilustraciones en png/svg con licencia libre. El proyecto en cuestión es este: CocoMaterial y cuenta ya con más de 2500 ilustraciones.

Las ilustraciones están etiquetadas (1 o n) para su categorización. Las etiquetas son nombres (comunes o propios), verbos, adjetivos… todos en inglés.

Existe un buscador de ilustraciones que filtra por etiquetas con (un AND) que funciona relativamente bien, especialmente sí conoces las etiquetas.

Mi deseo sería mejorar el buscador y que a partir de un texto en lenguaje natural sea capaz de inferir que etiquetas mostrar del listado de etiquetas que existen.

Mi conocimiento en el campo de los buscadores y procesamiento del lengaje natural es muy limitado. Por ello pregunto:

  • ¿Creéis que es factible realizar lo que comento? En caso contrario ¿se podría realizar un buscador de sinónimos de etiquetas?
  • ¿conocéis documentación, bibliotecas, recursos… que me puedan ayudar para implementarlo?

Gracias de antemano.

1 me gusta

¿Te serviría usar un servicio como Algolia?

1 me gusta

Pues ni idea, le echaré un ojo. Aunque preferiría que fuese algo open source.

Muchas gracias por el puntero <3 <3 <3

Creo que puedes hacerlo utilizando clasification y natural language machine learning.

El mayor problema que yo veo seria encontrar la data para ensenar al modelo. La falta de data hacer el modelo menos exacto.

Yo cree un modelo, con data creado usando ChatGpt. El codigo lo puedes encontrar aqui:

CocoaMaterial Search

deployment_search.py. es el modelo ya entrenado. Correlo con tus valores de search

Si tienes alguna duda me dices

Suerte

1 me gusta

Muchas gracias, lo probaré a ver qué tal se comporta.

Hola @bameda

Leyendo tu pregunta me acordé de este post que vi hace poco en HN, y si bien no es exactamente lo que propones, creo que es una solución que te podría servir: Embeddings are a good starting point for the AI curious app developer

Consiste en utilizar los embeddings de los LLMs (que son algo así como vectores con muchas dimensiones que representan palabras), almacenándolos en una base de datos orientada a vectores, para poder buscar en ella por la distancia entre dichos vectores. El resultado sería que buscaría muy bien por sinónimos o incluso por palabras relacionadas (en plan “caniche” → “perro”).

No conozco mucho sobre IA, a lo mejor es algo similar a la propuesta de @Costero , si es así, mis disculpas por adelantado

Muchas gracias, @fede . Le echaré un ojo también