Cómo implementar el algoritmo de similitud de oraciones

A2A.

Depende de qué datos tienes. Si ha etiquetado datos (pares de oraciones similares etiquetadas como +1 y pares de oraciones diferentes etiquetadas como -1), puede usar un algoritmo de aprendizaje supervisado.

Pero supongo que no tiene esos datos, porque estos datos no suelen ser fáciles de obtener. Por lo tanto, puede usar algunas heurísticas para hacer predicciones sin supervisión. Esto es lo que hice como parte de un proyecto de curso de PNL (copiado del informe del proyecto):

Para calcular la similitud entre las oraciones, utilizamos el siguiente enfoque:

  1. Para cada palabra en la oración 1, calcule su similitud con todas las palabras en la oración 2, para obtener valores de similitud [matemática] mn [/ matemática], donde [matemática] m [/ matemática] y [matemática] n [/ matemática] son número de palabras en las oraciones 1 y 2 respectivamente.
  2. A partir de estos valores de similitud [matemática] mn [/ matemática] calcule el promedio de los mejores valores [matemática] k [/ matemática].

Para similitud entre palabras, utilizamos las siguientes dos métricas

  • Distancia coseno entre las incrustaciones de palabras de las palabras.
  • Distancia euclidiana entre incrustaciones de palabras

Puede aumentar esto aún más usando tf-idf, etc.

Hola Aniruddh, gracias por A a A.
Creo que el algoritmo de predicción de secuencia es diferente del algoritmo de similitud de oraciones. Déjame explicar un poco,
Algoritmo de predicción de secuencia: se trata de predecir el próximo resultado de una secuencia. Por ejemplo, dada una secuencia infinita de 0 y 1, ¿cómo se puede predecir mejor el siguiente elemento de la secuencia?
Algoritmo de similitud de oración: para calcular la similitud entre textos muy cortos de longitud de oración. La similitud de las oraciones se calcula como una combinación de similitud semántica y similitud de orden de palabras. El algoritmo propuesto se aplica a un dominio del mundo real de agentes de conversación.

Ahora, sobre la implementación del algoritmo de similitud de oraciones, desde mi punto de vista, el uso del enfoque basado en corpus será muy bueno. Para profundizar en esto, le sugiero que use el paquete “WordNet” para R (el mismo está disponible para python / java) en sus datos y luego explore los códigos en el paquete para obtener más información.
Espero que esto ayude. Feliz aprendizaje !

More Interesting

¿Cuáles son algunos ejemplos de software del mundo real de pilas, colas y deques?

¿Dónde encontraré un algoritmo para el método de Euler modificado?

¿Qué debo hacer si no puedo obtener el algoritmo correcto para un problema de codificación?

¿La programación a nivel del sistema se ha vuelto obsoleta?

Cómo resolver este problema DP (http://codeforces.com/gym/101061/problem/F)

Además de la velocidad, ¿qué otras medidas de eficiencia se podrían usar en un entorno real?

¿Es necesario aprender un algoritmo antes de aprender cualquier lenguaje de programación?

¿Cuál es la explicación teórica más fácil posible sobre el algoritmo de clasificación de burbujas y el programa que usa C, ya que soy un viejo estudiante de 50 años completamente nuevo en programación?

¿Puede enumerar algunos de los libros más importantes / definitivos sobre informática, algoritmos, diseño de software, estructuras de datos, redes?

¿Qué libro (s) y otros recursos recomendaría para que un principiante entienda las estructuras de datos y los algoritmos en C ++?

¿Cómo encontraron los pilotos el camino más corto, cuando volaron a larga distancia en 1950?

Cómo escribir un programa C # para implementar un algoritmo de programación SRTF (el tiempo restante más corto primero), junto con la visualización del diagrama de Gantt

¿Qué algoritmos y estructuras de datos se pueden usar para encontrar anagramas?

No puedo desempeñarme bien en los concursos de programación, incluso después de practicar mucho. ¿Qué debería hacer ahora? ¿Debo dejar de hacer programación competitiva?

¿Cuáles son algunas de las preguntas de cadena que se hacen comúnmente en una entrevista técnica?