Cualquier algoritmo que aproveche el conocimiento de un corpus, específico para su dominio de interés, es más probable que funcione mejor que otros algoritmos que solo examinan la similitud de dos textos cortos: la información presente en el texto corto puede ser insuficiente y simple. Es probable que la referencia a un perro como labrador o caniche en dos oraciones no se reconozca por referirse a la misma clase de entidad: perro. Es probable que las medidas de similitud basadas en el recuento, sin reducción de dimensionalidad, tengan un rendimiento deficiente dado que el número de palabras con las que comparar es pequeño para comenzar en textos cortos.
- Entonces, quizás un enfoque podría ser crear incrustaciones de palabras usando word2vec, Glove o cualquiera de sus variantes ( por ejemplo, las que incluyen el manejo de la polisimia ). FastText también es una opción a considerar para generar incrustaciones de palabras también si el foco está en la similitud sintáctica en oposición a la similitud semántica. También vale la pena considerar un enfoque híbrido de similitud sintáctica y semántica y utilizar un modelo descendente para hacer una medida agregada basada en esas incorporaciones utilizando un algoritmo
- como la distancia de Word mover ( supuestamente es bueno para oraciones cortas, lento para las más largas ).
- O un modelo de secuencia como un RNN para la medida de similitud ( como el que se enumera a continuación )
- Otra opción es usar doc2vec, etc., para entrenar en el corpus relevante para el dominio de su problema y usarlo como medida para comparar dos oraciones.
- Por último, para obtener ganancias reales en el rendimiento también teniendo en cuenta el orden de las palabras ( todos los enfoques anteriores ignoran el orden de las palabras ), un modelo de secuencia como RNN que puede aprovechar las incrustaciones anteriores para realizar una medida de similitud. Este artículo presenta un modelo RNN que puede realizar similitudes de oraciones usando incrustaciones de palabras generadas por separado.
Figura de arquitecturas recurrentes siamesas para aprender similitud de oraciones, 2016
- ¿Cuál es más rápido: clasificación rápida o burbuja, y por qué?
- Si una computadora toma el control total del control del tráfico aéreo, ¿cómo será el algoritmo? ¿Cómo manejará los aterrizajes de emergencia y cómo manejará una pista paralela?
- ¿Cómo funciona el algoritmo de creación de coincidencias dota 2?
- ¿Cuándo la piratería se convirtió en algo malo? Pensé que hackear era una forma inteligente / ingeniosa de desarrollar un algoritmo para resolver un problema.
- ¿Cuáles son algunos algoritmos divertidos para practicar?
Sin embargo, en todos estos enfoques, el conocimiento se construye por adelantado y se captura en incrustaciones de palabras, fuera de un corpus, ya sea genérico o específico para el dominio del problema.