Oracle Endeca – Text Enrichment y Sentiment Analysis

img tags

Hace un par de semanas avanttic organizó en Barcelona un workshop sobre Oracle Endeca Information Discovery (EID).

Uno de los temas que más despertó la curiosidad de los asistentes, y que de hecho es uno de los puntos fuertes de Endeca, es el Sentiment Analysis, o sea, la capacidad de tratar no solo contenido no estructurado sino de establecer si este contenido tiene una connotación positiva o negativa.

Hoy en día, casi cada entidad, tanto comercial como pública, tiene su presencia en las redes sociales (ej. Facebook, Twitter, etc.) y tener una buena reputación es de vital y estratégica importancia.

Debido a la gran cantidad de información no estructurada que se produce a diario, es necesario disponer de algoritmos que sean capaces de analizar este contenido y extraer la estructura y el significado que “se esconde” en este gran volumen de datos.

Sentiment Analysis es parte de lo que se conoce como Text Analytics, un conjunto de técnicas lingüísticas (sintácticas y semánticas),  analíticas y predictivas para extraer contenido a partir de documentos no estructurados.

Como seres humanos, la tarea de decodificar el significado de una frase es automática y lo hacemos sin darnos cuenta, pero el lenguaje tiene muchas trampas para las maquinas.

Básicamente porque el lenguaje es ambiguo. La misma palabra puede referirse a conceptos distintos según el contexto. Sin mencionar los infinitos matices relacionados con la sensación que se quiere transmitir al receptor (sarcasmo, ironía, critica, ira, agradecimiento, etc.).

Imagen1Hay muchísima literatura sobre las técnicas de NLP (Natural Language Processing). La mayoría se basan en un proceso de “tokenización”. Para poder analizar un texto hay que dividir cada frase en “tokens”, o sea, en sus partes mínimas y aplicar un análisis gramatical y sintáctico para detectar cada uno de los elementos de la frase (sujeto, verbo, preposición, etc.). Este proceso es conocido también como POS (Part of Speech) tagging y consiste en asignar un tag a cada una de las parte del discurso. Si pensamos en la palabra “como”, por ejemplo, resulta evidente que no significa lo mismo en “Me como una manzana” que en “Me gustan los deportes, como el futbol y el tenis”. Además hay que detectar donde empieza y termina una frase, y el simple punto puede no ser un separador suficiente (ej. “<Alea iacta est.> dijo Cesar”). Combinando varias técnicas es posible determinar la “estructura” de un documento (o de un conjunto de documentos) y utilizarla para analizar su contenido.

Otro aspecto importante es la Entity Detection, que indica la capacidad de detectar entidades (ej. localidades geográficas, nombres de empresas, etc.) en un texto. El sistema más simple se basa en un listado de términos que el programa buscará en los textos a analizar, mientras los sistemas más complejos pueden ser “entrenados” para reconocer las entidades automáticamente e identificar, por ejemplo, “NY”, “NYC” y “New York” como entidad única.

Entity Detection es una de las características del modulo Text Enrichment. Este modulo utiliza el motor de Salience, un producto propiedad de la empresa Lexalytics (licenciado aparte). Lexalytics es líder del software NLP desde hace varios años y lo mejora continuamente.

El módulo, a través de la feature Names and Entities es capaz de detectar:

  • Compañías (ej. nombres de empresas)
  • Personas
  • Localidades geográficas
  • Productos
  • Deportes
  • Títulos
  • Entidades ad-hoc (“White-list”, listado proporcionado por el usuario)

textenrich_graph

Además el modulo detecta los temas principales tratados en el texto (Themes), el texto entre comillas (Quotations) y crea automáticamente un resumen del texto (Document Summary).

emotionEn la web de Lexalytics es posible probar cada una de estas features (http://www.lexalytics.com/web-demo) y evaluar la eficacia del Sentiment Analysis. A cada elemento del texto se le asigna una puntuación (sentiment score) entre -1: negativo y +1: positivo, siendo 0: neutro, que valora el grado de positividad/negatividad que conlleva cada término. ¿Cómo se determina el sentiment score? A partir de una “red semántica” se generan listados de términos positivos y negativos, con distintos grados de “positividad” y “negatividad”. Por ejemplo, “excelente” se considerará “más positivo” que “bueno”. La proximidad de una palabra con cada uno de estos “indicadores de sentimiento” determinará el sentiment score. Por lo tanto la expresión “excelentes previsiones” tendrá una puntuación positiva bastante superior a “buenas previsiones”. Lexalytics ha elaborado un algoritmo para combinar las puntuaciones de cada elemento detectado y devolver el “sentimiento” general del texto.

La parte de Sentiment Analysis está implementada en el módulo Text Enrichment with Sentiment Analysis, un add-on para Endeca que utiliza los algoritmos de Lexalytics. Actualmente soporta 10 idiomas, entre los cuales están el castellano, el alemán, el francés y el italiano.

Resumiendo, Endeca incorpora unas herramientas NLP que permiten analizar y clasificar texto no estructurado. En empresas de retail o con mucha presencia en las redes sociales es fundamental poder aprovechar la información que estos medios proveen. Detectar una queja a tiempo o una demanda insatisfecha de un cliente, expresada a través de un post o un tweet, son una ventaja competitiva que Endeca nos permite capitalizar en nuestro beneficio.

Twitter
LinkedIn
Evolución, innovación y transformación
37 Service Expertise avalados por Oracle 
Our value proposition
100% Oracle posts
Follow our day-to-day activities