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):
- ¿Cuál es el mejor algoritmo de extracción en primer plano de escenas dinámicas, donde el fondo también puede cambiar (debido a las vibraciones de la cámara o los detalles en movimiento)?
- ¿Son SHA256 y AES256 funciones hash o cifrados o algoritmos?
- ¿Es realmente necesario que un programador aprenda estructuras de datos y algoritmos?
- ¿Se puede implementar la imaginación usando algoritmos? ¿Hay algo que no podamos explicar a través de un algoritmo, incluso en el futuro?
- Staad Pro: ¿Cómo puedo resolver este problema?
Para calcular la similitud entre las oraciones, utilizamos el siguiente enfoque:
- 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.
- 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.