Más sobre paralelismos entre textos vía embeddings

Retomo el asunto de los paralelismos entre textos, que ya traté aquí, por el siguiente motivo:

  • Estoy explorando las posibilides del RAG
  • Para lo cual es necesario crear una base de datos documental con los fragmentos debidamente embebidos
  • En particular, estoy probando lo que chroma da de sí.

Esencialmente, chroma consiste en:

  • Una base de datos (SQLite, de hecho) donde se almacenan los fragmentos, sus metadatos y sus embeddings.
  • Mecanismos para crear los embeddings.
  • Mecanismos para buscar (por similitud de los embeddings) fragmentos relacionados con una petición de búsqueda.

Mis experimentos en español han sido catastróficos. La culpa, realmente, no parece ser de crhoma en sí sino de los algoritmos de embedding —se supone que específicos para el español— que he utilizado. Lo que sigue es un resumen de los resultados obtenidos en inglés, que parecen mucho mejores.

Para ello he vuelto al asunto de los evangelios paralelos obteniendo

Esta vez, lo he construido así: para cada frase (fragmento) de cada uno los evangelios, he buscado los 10 fragmentos más próximos del otro. Lo que se muestra en la gráfica es la matriz de coincidencias correspondiente. Se aprecia vagamente, como en el experimento anterior, el hilo argumental paralelo. Pero tampoco hay mucho más que añadir.

Eso sí, dejo para referencia futura el código completo aquí.

Y una nota: en el código en cuestión he usado los embeddings por defecto de chroma. Uno tiene la opción de usar otros manualmente.