Cómo implementar un "relacionados con la" medida en grados algoritmo?
-
09-06-2019 - |
Pregunta
Yo iba a hacer una Pregunta hoy cuando me he presentado a un sorprendente funcionalidad en Stackoverflow.Cuando escribí mi pregunta de stackoverflow me sugirió varias preguntas y me enteré de que ya hay dos preguntas similares.Eso fue impresionante!
Entonces empecé a pensar cómo iba a implementar dicha función.Cómo iba a las preguntas de orden por la relación:
- La pregunta que tengan mayor número de palabras encaja con la nueva pregunta
- Si el número de partidos son los mismo, el orden de las palabras es considerado
- Palabras que aparece en el título mayor relevancia
Que sería de un flujo de trabajo simple o compleja puntuación algortithm?Algunos derivados para aumentar el recuerdo, tal vez?Hay algunos de la biblioteca de la implementación de esta función?¿Qué otros aspectos considera usted?Tal vez Jeff podría respuesta a sí mismo!¿Cómo se implementa esto en Stackoverflow?:)
Solución
Una manera de implementar un algoritmo de involucrar a la clasificación de las preguntas como por una heurística función que asigna un "relevancia" factor de peso mediante los pasos siguientes:
- Aplicar un filtro de ruido para la "Nueva" cuestión para eliminar las palabras que son comunes a través de un gran número de objetos, tales como:'la', 'y', 'o', etc.
- Obtener el número de palabras contenidas en la "Nueva" cuestión que coincide con las palabras del conjunto de preguntas que ya han publicado en el sitio web.[A]
- Obtener el número de etiqueta de coincidencias entre las palabras en la "Nueva" cuestión y el disponible.[B]
- Calcular la relevancia de peso', basado en [A] y [B] como 'x [] + y[B], donde x e y son el peso de los multiplicadores (Asignar un peso mayor multiplicador a [B] como el etiquetado es más relevante que la simple búsqueda de la palabra)
- Obtener el top 5 de las preguntas que tienen la mayor relevancia de peso".
La heurística puede requerir ajustes para obtener resultados óptimos, pero debería funcionar.
Otros consejos
Tu pregunta parece similar a este, que tiene algunas preguntas adicionales.
Lo siento, no soy consciente de ningún daño directo de referencia de la API de que yo pudiera sugerir aquí y nunca he trabajado con Lucene.
Sin embargo, soy consciente de que Google Desktop usa una API de Consulta para clasificar y sugieren los resultados de búsqueda relevantes.Más información sobre la API se puede encontrar aquí.
Tal vez otros puedan meter su cuchara y guía.
No es StackOverflow va a ser de código abierto en algún momento?Si es así, siempre puedes averiguar cómo lo hicieron allí.
Actualización:Parece que ellos dicen podría open source es.Espero que lo hagan.