Minería de Opiniones: Realidad y ficción (II)

En esta serie de artículos, pretendemos poner a esta tecnología (también llamada Sentiment Analysis, Opinion Extraction o Appraisal theory) en ‘su sitio’.

Antes de introducir las piedras técnicas y desmitificar algunas percepciones al respecto de la tecnología, se hace necesario introducir los siguientes conceptos:

  1. Subjetividad de un texto: Es una medida de la carga emocional del autor de un texto. Asi, por ejemplo: ‘Coca-cola es una compañía americada’ se considera una mención (no hay subjetividad), mientras que ‘Coca-cola me parece un buen refresco’ se considera una opinión. Es importante señalar que la subjetividad siempre es de un sujeto (el emisor) a un objeto (el receptor), y nos podemos encontrar con textos subjetivos respecto a una compañía y objetivos respecto a otra: “El otro día fui al Mercadona de mi barrio y me compré un exquisito jamón Bernardo Hernández”
  2. Polaridad de una opinión: Otra medida: cuantifica la negatividad/positividad de una opinión respecto a una entidad: “Coca-cola es demasiado cara” (polaridad negativa) vs “Coca-cola me encanta” (polaridad positiva)
  3. Sistema automático de clasificación de opiniones: Consta de dos etapas: detector de subjetividad y detector de polaridad
  4. Precisión de un sistema automático de clasificación de opiniones:
    • Respecto a la subjetividad: Qué porcentaje de textos clasificados como subjetivos respecto a una entidad (compañía, marca, persona, etc…) realmente lo son, cuando se revisan posteriormente por un humano
    • Respecto a la polaridad: Qué porcentaje de textos clasificados como positivos/negativos respecto a una entidad (compañía, marca, persona, etc…) realmente lo son, tras una revisión humana

Introducido el problema(1 y 2), su solución (3) y su medida de éxito (4), podemos proceder a desmitificar las siguientes asunciones académicas/comerciales:

Ficción número 1: El aprendizaje automático (machine learning) es la herramienta ideal para atacar el problema de la detección de polaridad de una opinión.

No es cierto. Es un tema con el que se siguen pegando en las universidades. El aprendizaje automático funciona bien, en general,cuando contamos con una gran muestra de ejemplos clasificados a mano y cuando las características sobre las que se entrena son estadísticamente independientes una de otra. El modelo común con el que se parte en este caso es el de ‘bag-of-words’: Es decir, el input al clasificador automático son las palabras del texto (‘tokens’), sin ningún orden, simplemente con el peso asociado a cada token correspondiente a su frecuencia de aparición. El problema es sutil, pero con un ejemplo se entiende bien:

  1. “No me gusta Coca-cola”. La entrada al clasificador es el vector [‘No’,’me’,’gusta’] (eliminamos la entidad para no sesgar el entrenamiento).
  2. “Me gusta Coca-cola”. La entrada al clasificador es el vector [‘me’, ‘gusta’]
  3. “Me gusta Coca-cola pero no tengo sed hoy”. La entrada al clasificador es [‘me’, ‘gusta’,’pero’,’no’,’tengo’,’sed’,’hoy’]

A pesar de que 1) es negativa, 2) positiva y 3) positiva:

  • La palabra ‘gusta’ aparece en las tres y estadísticamente no se puede correlar con la polaridad
  • La palabra ‘no’ aparece en 1) y 3), pero tampoco se puede correlar, pues 1) es negativa y 3) positiva

Realmente, la lógica nos hace pensar que no debemos usar como características los tokens, sino las secuencias ‘no_me_gusta’ y ‘me_gusta’. Esta aproximación se denomina clasificación de ‘N-gramas’ [1], pero una vez más, nos encontramos con algunas trampas:

  • De qué longitud escogemos las secuencias? En los ejemplos, si escogemos N=2, ‘me_gusta’ aparece en las tres opiniones!
  • Sólo las cogemos de una longitud determinada? Qué pasa con casos como ‘casi no me gusta’ (sólo si cogemos N=4 se captura la secuencia correctamente, pero si también incluimos N=2, vuelve a aparecer ‘me_gusta’)

Tras unos buenos tortazos iniciales, en los que nunca conseguíamos una precisión superior al 60% (sin n-gramas y con n-gramas de ventana variable y fija), en Paradigma decidimos usar máquinas de estados y gramáticas que ‘entendieran’ el papel sintáctico de cada token y así conocer ‘dónde debemos recortar’ la opinión, de manera 100% acoplada a cada caso particular. El fondo del problema es que, para tareas de clasificación compleja y dependiente de las secuencias de entrada, el trabajo humano inicial que alimenta a un clasificador automático debe ser lo más completo y exhaustivo posible; y una extracción automática de tokens, no resuelve el problema, así como tampoco la generación de N-gramas.

Con los nuevos modelos basados en gramáticas, saltamos de un 60% a un mínimo de un 80%, que como se verá más adelante, y por varios motivos, está muy cercano al techo tecnológico o incluso perceptual.

[1] http://es.wikipedia.org/wiki/N-grama

Óscar Marín Miró

Recibe más artículos como este

Recibirás un email por cada nuevo artículo.. Acepto los términos legales

Escribe un comentario