Acabo de hacer este ejercicio. Analizamos casi 1 millón de reseñas y utilizamos LDA para crear un modelo con 75 temas. No encontré una mejor manera de evaluar realmente los temas, en lugar de que los humanos los miraran y vieran si tenían sentido.
Se necesita mucho trabajo para llegar al punto en que su tema tenga sentido. Comienza al principio, con calidad de datos:
1. ¿Estás permitiendo que las palabras entren en LDA que no pertenecen a la descripción de los temas?
En nuestro modelo solo usamos sustantivos (treebank NN y NNS). Parte del etiquetado del discurso es importante para construir la mayoría de los modelos de temas. Como mínimo, debe detener las palabras de detención comunes (the, a, it, etc.). También debe asegurarse de no permitir que las palabras de muy alta frecuencia dominen al resto del corpus. Probablemente tampoco quieras palabras muy poco frecuentes. En nuestro modelo, eliminamos las palabras que estaban en 5 o menos documentos y cualquier palabra que aparecía en más del 60% de los documentos.
Utilizamos técnicas como la corrección ortográfica y la lematización para agregar más palabras y reducir la dimensión de los datos. Esto puede o no ser apropiado para su modelo particular.
2. ¿Estás ejecutando LDA el tiempo suficiente?
Hay muchas formas de evaluar si LDA se está ejecutando el tiempo suficiente. Puede ver cosas como las diferencias de tema o la deriva del tema. Esto puede ayudarlo a comprender la convergencia. Este tipo de métodos requieren tiempo para establecerse, por lo que obtendrá temas deficientes a menos que permita una convergencia adecuada. Dependiendo del tamaño de los datos y de la cantidad de recursos que tenga, ¡esto podría llevar minutos, horas, días o incluso más!
3. ¿Seleccionó la cantidad adecuada de temas?
Es muy fácil elegir muy pocos o demasiados temas. Un método para evaluar la cantidad de temas es usar una búsqueda de cuadrícula y evaluar la perplejidad del modelo en los datos retenidos. Hicimos esto, pero no hay sustituto para ejecutar algunos modelos diferentes con diferentes números de temas y hacer que los humanos lo evalúen. Puede usar Mechanical Turk si tiene muchos datos / temas. En mi situación, nos decidimos por 75 temas y cada una de las cuatro personas de mi grupo tardó unas horas en ver las 10 palabras principales de cada tema.
Debido a que este es un aprendizaje no supervisado, no puede establecer arbitrariamente una serie de temas. Es similar a la agrupación K-means, tienes que encontrar el número ideal de centroides. Y de manera similar, existen métodos para ayudarlo a hacer esto, pero no es perfecto.
4. ¿Tiene sentido la densidad de palabras en los temas?
Si tiene temas con densidades débiles / bajas para sus palabras constituyentes, entonces es probable que sea un tema débil. Una vez que clasifique los documentos y asigne los nombres de los temas, extraiga los documentos que se correlacionan fuertemente con ese tema. Léelos, ¿tiene sentido el tema?
5. ¿La palabra tiene múltiples significados? ¿Necesitas agregar algo de contexto?
Muchas palabras pueden tener múltiples significados o contextos. De alguna manera, puede “ayudar” a la LDA mediante el uso de bigrams además de los unigrams normales. Puede usar pares de adjetivos / sustantivos, o simplemente sustantivos, verbos / sustantivos. Puede usar la fragmentación para ver frases verbales o solo frases nominales.
6. ¿Son sus expectativas demasiado altas?
Es probable que haya algunos temas difíciles de identificar. Las distribuciones de frecuencia insisten en que son un tema, pero puede ser débil. Puede clasificar el nombre del tema como “Ambiguo” o “Desconocido”. Creo que con nuestros 75 temas en casi 1 millón de comentarios, tuvimos quizás 7 o quizás 10 en la mayoría de los temas que eran muy débiles.
Algunas cosas que realmente pueden arruinar los temas son las palabras de sentimiento. A algunas personas les gusta usar las mismas palabras una y otra vez en sus escritos, como la palabra “genial”. He visto técnicas que limitan el uso de algunas palabras al construir casi un “conjunto” de palabras por documento. Personalmente no me gusta este enfoque. También he visto la transformación TF-IDF realizada en el corpus para dar diferentes pesos a las palabras. Experimenté con esto yo mismo, pero no es cierto para la LDA tradicional usar este enfoque (no digo que no valga la pena analizarlo).
David Mimno ha realizado un trabajo interesante en LDA, aquí hay un enfoque interesante para construir modelos en los que ha arreglado distribuciones de probabilidad de tema-palabra: Página sobre Cornell