2 votos

Encontrar la oración más similar de una lista de oraciones a otra

Tengo dos listas de frases cortas (Lista A y Lista B). Para cada frase corta en la Lista A, estoy tratando de encontrar la frase corta más similar en la Lista B.

Cada lista tiene un número diferente de elementos ~10000 elementos cada una con entre 1 y 10 palabras por frase.

¿Cuál es la mejor manera de hacer esto en python?

Intenté convertir cada frase corta en un vector one-hot, pero debido a que las dos listas tienen un número diferente de elementos, los vectores one-hot no coinciden en longitud al verificar la similitud del coseno. Pensé que la distancia de Levenshtein no funcionaría en este caso y la función de similitud de word2vec de gensim parece funcionar para un conjunto de datos pero no para encontrar una similitud en una lista diferente. Sin embargo, podría estar equivocado con cualquiera de estas suposiciones.

¡Cualquier ayuda o dirección sería muy apreciada!

0voto

nunya Puntos 21

Si las dos listas son traducciones (ordenadas) una de la otra, estás haciendo alineación de oraciones. Puedes consultar este documento: Vecalign: Mejora de la Alineación de Oraciones en Tiempo y Espacio Lineal.

Si las dos listas son del mismo idioma, puedes intentar con BLEU o sus alternativas NIST, TER, Precisión y Recuerdo, y METEOR.

Ya sea que sean de un idioma o de dos idiomas, puedes probar los siguientes dos métodos:

  1. entrenas un predictor entrenado en conjuntos de datos etiquetados por humanos para que genere directamente la puntuación;
  2. puedes probar métodos como BERTSCORE, y puedes clasificar las oraciones en la otra lista para una oración en una lista por F1.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X