Siento que la representación del Análisis Semántico Explícito de las preguntas dará la descripción más cercana a la noción humana de similitud. Como ya se mencionó en respuestas anteriores, las similitudes simples basadas en palabras no dan las nociones correctas de similitud. Entonces un simple algo puede ser: –
- Elimine las palabras vacías en la pregunta y tome las palabras necesarias.
- Suponga que el número de palabras únicas en ambas preguntas es n. Por lo tanto, cada pregunta se puede representar como un vector binario n-dim / tf-idf.
- Para cada palabra, expréselo como un vector de páginas de wikipedia, es decir, si la palabra aparece entonces 1 más 0. También puede ser un peso tf-idf del término wrt en las páginas de wikipedia, lo que podría dar mejores pesos para los términos. Entonces, suponiendo que el número de páginas de Wikipedia sea N, obtienes una matriz n-por-N.
- Multiplique cada uno de los vectores de preguntas en esta matriz para obtener una representación 1 por N de la pregunta proyectada en el espacio wiki.
- Para estas representaciones se puede usar la similitud coseno / Jaccard.
Así que estoy ignorando los diversos problemas de estructura de datos y complejidad que surgirán con este algoritmo. La idea de ESA se toma de este sitio que contiene el código también (Análisis semántico explícito).
- ¿Qué debo aprender en línea si quiero obtener un trabajo bien remunerado en TI en India? ¿Debería ser algo así como algoritmos de estructura de datos o un lenguaje como Python o R o algo así como un desarrollador de aplicaciones de Android o algo más?
- ¿Ha habido algún trabajo teórico que delinee qué clase de algoritmos pueden y no pueden mapearse para mapear / reducir?
- ¿Qué tipo de algoritmo de programación de CPU se utiliza actualmente en los sistemas operativos?
- ¿Cuál es el número total de comparaciones en un tipo de burbuja?
- ¿Un ingeniero de Google sacrificaría la legibilidad del código por el rendimiento?