• No se han encontrado resultados

Índice de Fórmulas

Capítulo 6. Predicción de calificación de hoteles mediante el Análisis de Sentimientos

6.2. Descripción detallada del problema

6.3.2. Análisis de Sentimientos

6.3.2.2 Stanford CoreNLP (RNTN)

La suite de herramientas de procesamiento de lenguaje natural Stanford CoreNLP[10] provee archivos modelo para el análisis de texto a nivel léxico, sintáctico y semántico. Cada herramienta integrada en la suite está destinada a una tarea específica del procesamiento del lenguaje. Las herramientas que incluye CoreNLP son el etiquetador POS, identificador de nombres de entidad (named entity recognizer), analizador sintáctico y gramatical (parser), sistema de resolución de correferencias (co-reference resolution system) y análisis de sentimientos. Cada herramienta puede ser fácilmente activada como un anotador o etiquetador (annotator). Cada anotador está relacionado con un grupo de anotaciones las cuales son simples etiquetas generadas por cada módulo anotador.

143

El anotador de sentimientos fue recientemente integrado en CoreNLP. Este anotador se basa en el algoritmo de aprendizaje supervisado denominado “Red de tensor neural recursivo” (Recursive Neural Tensor Network – RNTN) el cual determina el sentimiento de las oraciones a partir de la composición de las palabras que componen las frases para lo cual utiliza un conjunto de datos denominado Sentiment treebank

(Socher, y otros, 2013). Este anotador es un clasificador supervisado multiclase que asigna una de cinco clases a cada oración: muy positiva, positiva, neutral, negativa y muy negativa. El algoritmo realiza la clasificación identificando n-gramas específicos con diferentes intensidades de sentimiento positivo o negativo. La oración:

“Your cat is beautiful”

Es clasificada como muy positiva y obtiene la siguiente anotación:

((your_0 cat_0)_0 ((is_0 beautiful_++)_++ ._0)_+)_++

Donde “_++”, “_+”, “_0”, “_-” y “_--” son las etiquetas correspondientes a muy positiva, positiva, neutral, negativa y muy negativa respectivamente. Para llegar a esta anotación la oración se descompone en palabras y signos. A cada palabra se le asigna una de las 5 etiquetas correspondientes a las clases mencionadas desde muy negativa hasta muy positiva. Las palabras se agrupan en frases nominales, verbales, adjetivales y adverbiales y éstas se buscan en el conjunto de datos de frases (sentiment treebank) y se etiquetan ahora como frases pertenecientes a una de las 5 clases. En el ejemplo, las palabras your y cat son etiquetadas como neutras (_0) así como la frase nominal “your cat” que juntas componen; las palabras is se etiqueta como neutra (_0) y beautiful como muy positiva (_++), por lo que la frase que juntas componen “is beautiful” se etiqueta

también como muy positiva. Al final toda la oración se clasifica como muy positiva por la influencia de esta última frase.

144

Figura 6.9. Ejemplo de clasificación utilizando RNTN

Las críticas de hoteles recopiladas también fueron analizadas con el anotador de sentimientos de CoreNLP.

Clasificación de oraciones: La clasificación de cinco clases de las oraciones efectuada por RNTN se transformó en una clasificación de tres clases. Esto fue necesario para estar en condiciones de comparar los resultados de las tres herramientas seleccionadas para este estudio, ya que las otras dos herramientas clasifican usando sólo tres clases. Para esto las oraciones se clasificaron como positivas, negativas o neutras considerando el intensificador “muy” (very) como indicador de doble fuerza, de esta forma, una oración “muy positiva” fue ponderada como dos oraciones positivas y lo mismo para el caso de las oraciones “muy negativas”.

Clasificación de críticas: La polaridad (clase) de una crítica se determinó resumiendo la polaridad de las oraciones contenidas en ésta y asignando la polaridad predominante a la crítica. Para esto se utilizó la misma fórmula 6.4 definida en la sección anterior para OpinionFinder. Para almacenar los resultados se utilizó la base de datos cuya estructura se muestra en la figura 6.10.

Figura 6.10. Base de Datos de crítica Analizadas por RNTN

0 0 ++ 0 + 0 0 ++ ++ Your cat is Beautiful .

145

6.3.2.3 SentUAH

Se desarrolló una herramienta basada en el método de aprendizaje supervisado naive Bayes combinado con el léxico de sentimientos SentiWordNet. La finalidad de desarrollar esta herramienta fue para comparar la confiabilidad de tres métodos distintos de análisis de sentimientos en la predicción de calificaciones numéricas.

En este algoritmo se usa SentiWordNet como datos de entrenamiento y la polaridad de las oraciones se determina usando los valores positivos y negativos que este léxico tiene asignado a las palabras y expresiones como la probabilidad de que una palabra determinada refleje un sentimiento positivo o negativo.

SentiWordNet es un léxico de sentimientos derivado de WordNet en el cual cada término (que puede ser una palabra o expresión) se asocia a tres valores numéricos. Los términos están clasificados en cuatro categorías: adjetivos, adverbios, verbos y sustantivos. Los valores asociados a los términos indican el grado en que éste es positivo, negativo u objetivo. La evaluación de la efectividad de SentiWordNet en el análisis de sentimientos ya ha sido evaluada y se ha determinado que este léxico es adecuado para esta disciplina (Esuli & Sebastiani, 2006; Baccianella, Esuli, & Sebastiani, 2010). En otras investigaciones se ha demostrado que SentiWordNet puede funcionar confiablemente en la clasificación de sentimientos (Ohana & Tierney, 2009; Hamouda & Rohaim, 2011).

Para esta investigación se adoptó la técnica propuesta por (Hamouda & Rohaim, 2011) para resumir los valores asociados a los términos en lugar de la técnica menos eficaz de conteo de palabras positivas y negativas. Las calificaciones de cada término de SentiWordNet se interpretaron como probabilidades de que ese término pertenezca a la clase positiva o negativa (Esuli & Sebastiani, 2006). Las palabras en SentiWordNet pueden tener diferentes sentidos y pertenecer a diferentes synsetsv con diferentes probabilidades de pertenecer a las clases positiva, negativa o subjetiva. En lugar de realizar una desambiguación del sentido de las palabras, la herramienta desarrollada (SentUAH) se diseñó para calcular las calificaciones de cada término como el promedio de todas las apariciones de tal término en la misma categoría. Es decir si un verbo aparece en cinco synsets de la categoría verbo, su calificación positiva se calcula como el promedio de las cinco calificaciones positivas de los cinco synsets de este término

v

146

como verbo, lo mismo para la calificación negativa y la objetiva. Se ha demostrado que esta técnica es más eficiente que determinar la polaridad de un término mediante el simple conteo de veces que tal término es más positivo que negativo o viceversa (Hamouda & Rohaim, 2011).

Clasificación de las oraciones: Para localizar cada término o expresión de polaridad de las oraciones en SentiWordNet se utilizó el etiquetador POS de CoreNLP. La polaridad (clase) de una oración C*(si) se calculó usando

∏ ( | )

Fórmula 6.5. Clasificación de oraciones por SentUAH

Donde p(tk|cj) es la probabilidad p de que el término tk pertenezca a la clase cj.

Clasificación de críticas: Se utilizó la misma fórmula 6.4 para determinar la polaridad de las críticas basándose en la clase predominante de las oraciones contenidas en la crítica.

La figura 6.11 ilustra el proceso de clasificación. SentUAH efectúa la división de oraciones, la identificación de elementos del lenguaje y el etiquetado POS en las críticas originales. Entonces cada adjetivo, adverbio, verbo y sustantivo se etiquetan con la probabilidad calculada correspondiente para el término (etiquetado del sentimiento). Posteriormente la polaridad del sentimiento de cada oración y crítica se determina como fue descrito anteriormente y se almacenan los resultados en la base de datos detallada en la figura 6.12.

147

Figura 6.11. Análisis de sentimientos de las críticas usando SentUAH

Figura 6.12. Base de datos de las críticas clasificadas por SentUAH