Actualmente estoy construyendo un pequeño motor de búsqueda interno basado en Apache Lucene. Su propósito es simple: basado en algunas palabras clave, sugerirá algunos artículos escritos internamente dentro de nuestra empresa. Estoy usando una puntuación TF-IDF bastante estándar como métrica base y construí mi propio mecanismo de puntuación encima. Todo esto parece estar funcionando excelente, excepto en algunos casos en los que la clasificación parece desordenada.
Entonces, lo que planeo hacer es agregar un pequeño enlace Relevante / No Relevante a la página de resultados de búsqueda para que los usuarios puedan hacer clic en uno de ellos dependiendo de su percepción de si ese resultado debería haberse incluido en primer lugar.
Mi idea
- Trate estos Relevantes / No Relevantes como etiquetas y cree datos de capacitación.
- Use estos datos para entrenar a un clasificador (como SVM)
- Incorpore este modelo en el motor de búsqueda, es decir, cada nuevo resultado pasará por el clasificador y se le asignará una etiqueta sobre si es relevante o no.
Este enfoque me parece intuitivo, pero no estoy seguro de si funcionará en la práctica. Tengo dos preguntas específicas:
- ¿Qué características debo extraer?
- ¿Hay una mejor manera de integrar el componente de aprendizaje automático en el motor de búsqueda? Mi objetivo final es "aprender" la función de clasificación basada tanto en la lógica empresarial como en los comentarios de los usuarios.