probabilistic latent semantic analysis
DESCRIPTION
Para la resolución de este trabajo decidimos emplear el uso de un algoritmo de modelado llamado Probabilistic LSA(latent semantic analysis) teniendo como partida el siguiente paper [1] que es muy recomendado dentro de la comunidad de data science, para un modelo de revisión de peliculas. Esto permite generar un modelo que trata de entender los sentimientos expresados en una review, y no tanto en el contenido del léxico que este contiene. Luego en base a la precisión alcanzada, vamos a evaluar trabajar con un algoritmo de clasificación automática como es el SVM (support vector machine) para poder clasificar reviews según el sentimiento transmitido en el mismo, tal como lo realizan en [12]TRANSCRIPT
Trabajo Práctico: Bag of Words Meets Bags of Popcorn
75.06 Organización de Datos cuatrimestre año 20151er
Nombre del grupo de Kaggle : “La Papa Furiosa”
Alvarez Nicolás 93503 Deciancio Nicolás 92150 Monsech Santiago 92968 Ottavianoni Natan 86249
Abstract
Para la resolución de este trabajo decidimos emplear el uso de un algoritmo de modelado llamado Probabilistic LSA(latent semantic analysis) teniendo como partida el siguiente paper [1] que es muy recomendado dentro de la comunidad de data science, para un modelo de revisión de peliculas. Esto permite generar un modelo que trata de entender los sentimientos expresados en una review, y no tanto en el contenido del léxico que este contiene.
Luego en base a la precisión alcanzada, vamos a evaluar trabajar con un algoritmo de clasificación automática como es el SVM (support vector machine) para poder clasificar reviews según el sentimiento transmitido en el mismo, tal como lo realizan en [12] .
Fuente/Bibliografía
● [1] X. Yu, Y. Liu, J. Xiangji, A. An. Mining online reviews for predicting sales performance: A case study in the movie domain. (1999).
● [2] T. Hofmann. Probabilistic latent semantic indexing. (1999) ● [3] Hofmann, T. Probabilistic latent semantic analysis. (1999). ● [4] curso de Text Retrievalillinois de Coursera
1
● [5] curso de NLP Stanford de Coursera. ● [6] http://en.wikipedia.org/wiki/Latent_semantic_analysis ● [7] http://en.wikipedia.org/wiki/Expectation%E2%80%93maximization_algorithm ● [8] Data Mining for Business Applications Longbing Cao, Philip S. Yu Chengqi Zhang
Huaifeng Zhang, capítulo 13 :”Blog Data Mining: The Predictive Power of Sentiments” ● [9] http://blog.echen.me/2011/08/22/introductiontolatentdirichletallocation/ ● [10] David M., Blei Andrew Y. Ng, Michael I. Jordan, Latent Dirichlet Allocation ● [11] http://videolectures.net/slsfs05_hofmann_lsvm/ ● [12] Weijian Ren, Kaixu Han: Sentiment Detection of Web Users Using Probabilistic
Latent Semantic Analysis
Explicación de la solución Modelado: una vez obtenida la representación vectorial de las reviews ,el proceso para las modelar se llevará a cabo utilizando el algoritmo PLSA debido a su naturaleza latente (basado en el principio de probabilidad y definiendo un de modelo generativo adecuado). Para procesar los datos con este algoritmo deberíamos obtener la cantidad de sentimientos latentes que creemos que podrían estar presentes (experimental). Entrenamiento:
● Proponemos usar un clasificador que generaremos a partir del modelo de PLSA. Puesto que una vez obtenidas las probabilidades de los sentimientos latentes P[ ] y Z i de las condicionales P[ ] y P[ | ] podríamos estimar cuáles sentimientos | W k Z i Z i Dj corresponden a un sentimiento positivo y cuales son negativos, sin embargo a priori no tendríamos manera de saber de antemano la polaridad de los sentimientos, por lo cual buscamos enseñarle al modelo cuales nosotros creeremos que son sentimientos positivos a partir de los puntajes recibidos por las reviews, para lograr esto usamos las probabilidades condicionales, nosotros creemos que podríamos obtener la polaridad de los sentimientos mirando:
○ Para cada documento, las probabilidades de los sentimientos. Puesto que si sabemos que para un documento calificado como positivo, vemos probabilidades de sentimientos altas, podemos decir que esos sentimientos que son muy probables para un documento marcado como positivo, deberían ser sentimientos positivos.
Clasificación: El clasificador debería utilizar los sentimientos que nosotros creemos positivos obtenidos en la fase de entrenamiento, sabidos cuales son los sentimientos positivos podemos ver sobre el set de prueba, cuáles documentos tienen alta probabilidad (que podría definirse con un umbral) de esos sentimientos positivos,para determinar si finalmente corresponde a una review positiva.
2
Posibles mejoras: dependiendo de los resultados que consigamos con el modelo planteado analizaremos la posibilidad de mejorar el algoritmo utilizando un modelo SVM mediante una librería.
Procesamiento de textos
Como idea principal para el procesamiento del texto se pretende armar vectores de documentos eliminando stopwords, solo contemplando unigramas, es decir, palabras por sí mismas. Teniendo estos vectores que conforman una matriz, se normalizara cada uno bajo el criterio de normalización Tf * idf.
Algunas posibles mejoras para refinar la normalización es contemplar bigramas en lugar de unigramas, así como también la incorporación de un corpus con palabras definidas como adjetivos. Con esto estaríamos contemplando un contexto más reducido, lo que nos daría más certeza al momento de calcular las probabilidades que conciernen a cierta palabra dentro del texto. Aporte de grupo
Una de las cuestiones a determinar es la cantidad de sentimientos latentes, se realizarán experimentos, aplicando algoritmos como SVD, e ir variando la cantidad de valores singulares que serán aplicados al modelo, usando algún criterio (a decidir), y generar un histograma, para tratar de estimar el número óptimo de sentimientos.
Proponemos usar dos maneras de clasificación, usando SVM y la otra usando el modelo que nos genero el PLSA, realizando un entrenamiento previo.
La motivación de probar con dos algoritmos de clasificación son:
● Usar el modelo generado por PLSA para poder clasificar, nos permitirá observar qué tan bien se clasifica cuando se usa entendimiento de los sentimientos.
● En contraposición usar SVM, permitirá combinar el modelo generativo probabilístico del PLSA con el modelo discriminante de SVM.
Como conclusión nos gustaría que este análisis se pueda extender a otro tipo de dominios, siguiendo la idea de Domain Driven Data Mining, es por ello que nos gustaría probarlo sobre otro dataset, y también para el caso del concurso comprobar que las palabras cuya probabilidad es alta para los sentimientos que nosotros esperamos que fuesen positivos, resultasen ser palabras de índole positiva.
Librerías Aquí proponemos una lista de librerías que permiten resolver diversos problemas con los cuales nos vamos a encontrar en el desarrollo del mismo, muchas de ellas realizan la misma tarea pero es imposible a prima facie, poder optar por una u otra, sin haber realizado un set
3
de pruebas correspondiente, como así también conocer el grado de mantenimiento que tienen. No todas estarán presentes en la release final, pero si serviran para ir probando distintos módulos del sistema en cada una de las iteraciones correspondientes.
● GibbsLDA++: A C/C++ Implementation of Latent Dirichlet Allocation. ● Armadillo C++ linear algebra library implementation of SVD. ● YamCha http://chasen.org/~taku/software/yamcha/#source ● http://cdecdecoder.org/index.php?title=Main_Page ● http://www.cs.jhu.edu/~rflorian/fntbl/ ● http://nlp.lsi.upc.edu/freeling ● http://www.speech.sri.com/projects/srilm/ ● http://www.speech.cs.cmu.edu/SLM_info.html
4