¿Qué algoritmo de aprendizaje automático se debe usar para eliminar palabras innecesarias en una consulta de búsqueda realizada para recuperar datos de un texto grande?

Esto se relaciona con la búsqueda de lenguaje natural en IR. Como dijo Meir Maor, una lista de palabras clave ayudará mucho a resolver este problema. Sin embargo, para casos de uso más específicos, sugeriría un enfoque simplista pero efectivo.

a. Haga un análisis de frecuencia de las palabras en sus datos. Esto probablemente surgirá como una distribución beta de cola larga. Suelta todas las palabras que caen antes del corte (mediana – 1 sigma). Esto eliminará mucho ruido de su conjunto de resultados de recuperación.

si. La indexación es un gran enfoque, y Lucene lo hace por usted.

do. Si desea un enfoque un poco más sofisticado, tome todas sus palabras y use word2vec para convertirlas en vectores de palabras. Agrúpelos usando K-NN (y no k-significa) y almacene un hash de cada palabra en un grupo a la media del grupo. Úselo para transformar su conjunto de datos, así como sus consultas de búsqueda, que se encargarán de sinónimos, diferentes ortografías, etc.

Los algoritmos de Machine Learning se utilizan para aprender modelos y no eliminar palabras innecesarias. Para hacer eso, uno tiene que emplear técnicas de procesamiento de datos.

Sin embargo, parece que OP no tiene claro “qué son palabras innecesarias”, ya que no respondió mi pregunta en los comentarios.

Como indicó Meir Maor, las palabras innecesarias pueden ser las más discriminatorias y útiles en términos de clasificación. La forma en que entiendo las palabras innecesarias son las que se usan con más frecuencia para, por ejemplo, ‘esto’, ‘a’, ‘el’ etc. y no proporcionan información útil. Estas se llaman palabras de detención y deben eliminarse. El segundo paso de procesamiento podría ser Stemming, donde desea encontrar la palabra raíz en lugar de sus otras variaciones. Por ejemplo, ‘prueba’, ‘probado’ debe reemplazarse por ‘prueba’. Una última opción puede ser crear una ‘lista negra’ de palabras que cree que no son útiles en su problema. Siempre que ocurran, puede ignorar esas palabras de su análisis.

Una vez que haya terminado con el preprocesamiento de datos, puede emplear cualquier modelo de ML que se ajuste mejor a sus datos. Las opciones populares son Naive Bayes, SVM y los avances recientes en Deep Learning, como RNN, word2vec, etc. Sin embargo, debe tener cuidado con el enfoque que desea utilizar y por qué. Es muy esencial comprender y definir qué son palabras innecesarias, de lo contrario es difícil construir algo útil.

Responder de acuerdo con comentarios que sugieren que el problema está filtrando palabras irrelevantes para la búsqueda.

Para la búsqueda, a menudo filtramos palabras de detención basadas en una lista. Puedes encontrar muchos en línea. O simplemente filtre palabras comunes como “el”.

El algoritmo básico de relevancia de búsqueda es tf-idf, donde las palabras raras tienen más peso que las palabras comunes.

Busca en Apache Lucene, que hace todo esto por ti y mucho más.

Este es un problema clásico de minería de texto , donde el aprendizaje automático puede o no ser la mejor opción. Por lo tanto, dependería del objetivo más amplio que tenga, junto con los recursos disponibles, las horas de trabajo, los datos de capacitación, etc. para construir un algoritmo de aprendizaje para filtrar palabras irrelevantes en una consulta de búsqueda.

Cuando los problemas son bastante abstractos, recomiendo usar un bosque aleatorio para tales casos. Asegúrese de tener acceso a un conjunto de entrenamiento grande.