¿Qué algoritmo de aprendizaje automático es mejor para agrupar pequeños cuerpos de texto por tema / categoría?

Eso depende de la cantidad de datos que tenga para capacitación y de cuánto tiempo tenga para implementar. Si tiene prisa y tiene una cantidad decente de ejemplos y los temas son bastante distintos (es decir, espera que contengan palabras específicas de la categoría), es posible que desee detener las palabras e ir con un simple ingenuo Bayes clasificador

Un enfoque más sofisticado es el análisis semántico explícito. Para resumir una historia larga e impresionante, la ESA trata de “imitar” la comprensión del lenguaje humano enfocándose en “conceptos” en lugar de palabras. Esto funciona mirando una palabra dada y asignándole un vector de “puntajes de similitud” (concretamente, el puntaje tf – idf), uno para cada concepto disponible. Un enfoque popular es usar artículos de Wikipedia para conceptos, de modo que el elemento i en el vector de una palabra denota su asociación con el artículo número i . Esto significa que, a diferencia de un filtro ingenuo-bayesiano, su clasificador tratará palabras similares, aunque no idénticas, de manera similar. Por ejemplo, las palabras ‘gaviota’ y ‘gaviota’ se pueden detectar como similares a través de los metadatos de Wikipedia; incluso si sus datos de entrenamiento solo contienen ‘gaviota’, aún puede contar para clasificar un texto en la categoría que contiene ‘gaviota’ que ingenuo filtro Bayes no pudo hacer. Hay un muy buen artículo que describe su implementación aquí: http://gabrilovich.com/publicati…

He oído que las personas obtienen buenos resultados simplemente alimentando un vector de recuentos de palabras (derivadas) en un clasificador de máquina de vectores de soporte, pero no tengo ninguna experiencia con esto. Si quieres ser súper elegante, también puedes combinar algunos de estos. Para mi tesis, obtuve los mejores resultados de clasificación usando primero ESA para convertir textos en vectores conceptuales, luego haciendo una descomposición de valores singulares para reducir su dimensionalidad y finalmente introduciéndolos en un clasificador ingenuo de Bayes.

Tenga en cuenta que de ninguna manera se afirma que esto es exhaustivo; estos son simplemente los pocos métodos con los que tengo un poco de experiencia.