usar una tag questions question que ingles hacer estructura endings ejercicios ejemplos como nlp similarity stanford-nlp opennlp

nlp - una - tag questions ejercicios



¿Cómo detectar que dos oraciones son similares? (3)

Quiero calcular cuán similares son dos oraciones arbitrarias entre sí. Por ejemplo:

  1. Un matemático encontró una solución al problema.
  2. El problema fue resuelto por un joven matemático.

Puedo usar un etiquetador, un stemmer y un analizador, pero no sé cómo detectar que estas oraciones son similares.


En algunos casos, es posible transformar automáticamente las oraciones en estructuras de representación del discurso que representan sus significados. Si dos oraciones producen la misma estructura de representación del discurso, entonces es probable que tengan significados similares.


Estas dos oraciones no son solo similares, sino que son casi paraphrases , es decir, dos formas alternativas de expresar el mismo significado. También es un caso muy simple de paráfrasis, en el que ambas expresiones usan las mismas palabras con la única excepción de que una está en forma activa mientras que la otra es pasiva. (Las dos oraciones no son exactamente paráfrasis porque en la segunda oración el matemático es "joven". Esta información adicional hace que la relación semántica entre las dos oraciones no sea simétrica. En estos casos, diría que la segunda declaración "entails" la primera uno, o en otras palabras, que el primero puede inferirse del segundo).

A partir del ejemplo, no es posible entender si realmente está interesado en la detección de paráfrasis, la vinculación textual o la similitud de las oraciones en general, lo que es un problema aún más amplio y difuso. Por ejemplo, ¿es "la gente come comida" más similar a "la gente come pan" o a "los hombres comen comida"?

Tanto la detección de paráfrasis como la similitud de texto son problemas de investigación abiertos y complejos en el procesamiento del lenguaje natural, con una gran comunidad de investigadores activos que trabajan en ellos. No está claro cuál es el alcance de su interés en este tema, pero tenga en cuenta que a pesar de que muchos investigadores brillantes han dedicado y gastado toda su carrera tratando de descifrarlo, todavía estamos muy lejos de encontrar soluciones sólidas que funcionen en general.

A menos que esté interesado en una solución muy superficial que solo funcione en casos específicos y que no capture la alternancia sintáctica (como en este caso), sugeriría que analice el problema de la similitud del texto con mayor profundidad. Un buen punto de partida sería el libro "Fundamentos del procesamiento estadístico del lenguaje natural" , que ofrece una presentación muy bien organizada de la mayoría de los temas del procesamiento estadístico del lenguaje natural. Una vez que haya aclarado sus requisitos (por ejemplo, ¿en qué condiciones debe funcionar su método? ¿Qué niveles de precisión / recuperación está buscando? ¿Qué tipo de fenómenos puede ignorar de manera segura, y cuáles debe tener en cuenta?) Comience a buscar enfoques específicos sumergiéndose en trabajos de investigación recientes. Aquí, un buen lugar para comenzar serían los archivos en línea de la Asociación de Lingüística Computacional (ACL) , que es el editor de la mayoría de los resultados de investigación en este campo.

Solo para darte algo práctico con el que trabajar, una línea de base muy aproximada para la similitud de una oración sería la similitud del coseno entre dos vectores binarios que representan las oraciones como bolsas de palabras. Una bolsa de palabras es una representación de texto muy simplificada, comúnmente utilizada para la recuperación de información, en la que usted ignora por completo la sintaxis y solo representa una oración como un vector cuyo tamaño es el tamaño del vocabulario (es decir, el número de palabras en el idioma). ) y cuyo componente "i" se valora "1" si la palabra en la posición "i" en el vocabulario aparece en la oración, y "0" en caso contrario.


No estoy completamente seguro de qué se trata tu pregunta, pero puedes calcular la similitud de la secuencia de símbolos (en este caso, palabras) utilizando el algoritmo de distancia de edición de Levenshtein .