Hay un problema que estamos tratando de resolver donde queremos hacer una búsqueda semántica en nuestro conjunto de datos, es decir, tenemos datos específicos de dominio (ejemplo: oraciones que hablan de automóviles)
Nuestros datos son solo un montón de oraciones y lo que queremos es dar una frase y recuperar las oraciones que son:
- Similar a esa frase
- Tiene una parte de una oración que es similar a la frase
- Una oración que tiene significados contextualmente similares.
Déjame intentar darte un ejemplo, supongo que busco la frase "Experiencia de compra", debería obtener las siguientes frases:
- Nunca pensé que la compra de automóviles podría tomar menos de 30 minutos para firmar y comprar.
Encontré un auto que me gustó y el proceso de compra fue
sencillo y sencilloAbsolutamente odiaba ir de compras, pero hoy me alegro de haberlo hecho.
Quiero poner énfasis en el hecho de que estamos buscando similitudes contextuales y no solo una búsqueda de palabras de fuerza bruta.
Si la oración usa palabras diferentes, entonces también debería poder encontrarla.
Cosas que ya hemos probado:
Búsqueda semántica abierta El problema que enfrentamos aquí es generar ontología a partir de los datos que tenemos, o por eso buscar ontología disponible de diferentes dominios de nuestro interés.
Búsqueda elástica (BM25 + Vectores (tf-idf)), probamos esto donde daba algunas oraciones, pero la precisión no era tan buena. La precisión también era mala. Intentamos contra un conjunto de datos curado por humanos, solo pudo obtener alrededor del 10% de las oraciones.
Probamos diferentes incrustaciones como las que se mencionaron anteriormente en transformadores de oraciones y también pasamos por el ejemplo e intentamos evaluar contra nuestro conjunto curado por humanos y eso también tenía una precisión muy baja.
Intentamos ELMO . Esto fue mejor pero aún menor precisión de lo que esperábamos y hay una carga cognitiva para decidir el valor del coseno por debajo del cual no deberíamos considerar las oraciones. Esto incluso se aplica al punto 3.
Cualquier ayuda será apreciada. Muchas gracias por la ayuda de antemano