Sentiment Analysis con Oracle Business Intelligence 12c

César Advíncula Ormeño
Publicado en enero 2017

MACHINE LEARNING R Y ORACLE BUSINESS INTELLIGENCE 12

INTRODUCCIÓN

Machine Learning y R son las novedades en “data science”, R que es un lenguaje de programación estadístico que contiene una serie de paquetes para construir modelos predictivos de una manera bastante simple y, adicionalmente, contiene paquetes de Machine Learning para poder realizar “Sentiment Analysis”, “Text Mining”, etc.

La plataforma Oracle Business Intelligence desde su versión 11g hasta la versión 12c, presenta la opción de poder integrarse con R, y aprovechar los distintos paquetes que R pone a disposición. Esta disponibilidad de paquetes R y que puedan ser usados muy fácilmente en nuestra plataforma Oracle Business Intelligence 12c, ha sido de la motivación para dar origen al siguiente artículo que tratará de cómo realizar “Sentiment Analysis”, que ,básicamente, es analizar si un texto tiene un “feeling” “positivo”, “negativo” o “regular”.

Para esto usaremos los paquetes “Sentiment Analysis” de R y como a través de la plataforma Oracle Business Intelligence 12c, podremos procesar data de comentarios de productos y finalmente poder analizar tendencias de los niveles de aceptación de los productos. El artículo será dividido en 4 secciones:

  • Instalación R 3.2.0
  • Instalación de Paquetes “Sentiment Analysis”
  • Configuración de “Sentiment Analysis” : Oracle Business Intelligence 12c
  • Conclusiones

INSTALACIÓN R 3.2.0

La instalación de “Oracle Distributions of R 3.2.0” se realizará sobre la instancia “Oracle Business Intelligence 12.2.1.2” que se encuentra en “Oracle Enterprise Linux 7.2”, antes de empezar con la instalación de R, es evidente que debemos de contar con una instancia ya instalada de “Oracle BI 12c”.

- Verificamos la disponibilidad de salida internet

- Instalamos el comando “WGET”

- Deshabilitamos el parámetro del proxy.

- Descargamos el archivo public-yum-ol7.repo, para esto ejecutamos el comando

wget http://public-yum.oracle.com/public-yum-ol7.repo

- Editamos el archivo public-yum-ol7.repo y habilitamos la descarga de los “addons”

- Para realizar la instalación de R, ejecutamos el coman

yum install R.x86_64

- Para verificar que la instalación de R haya sido exitosa, ejecutamos simplemente el comando R

- Ingresamos a la carpeta del instalador de “Oracle Distributions of R 3.2.0”, que se encuentra en la ruta ORACLE_HOME/bi/bifoundation/advanced_analytics/, descomprimimos el archivo “r-installer.zip”

- Miramos el código del script “r-package-install-linux320.R” de la instalación de los paquetes para R 3.2.0

Nota:

Empezaremos la instalación de los siguientes paquetes de manera manual, debido a que R es un lenguaje que se viene actualizando, y los paquetes cuentan upgrades constantemente.

Si analizamos el script, vemos que usan la función “installpackagecustom”, que realiza una validación si el paquete existe o no, si no existe entonces tratará de instalar el paquete que se encuentra en el segundo parámetro.

- Para proceder con la instalación, ingresamos a R

- Instalamos el paquete “bitops_1.0.5.tar.gz”

  • install.packages("http://cran.r-project.org/src/contrib/Archive/bitops/bitops_1.0-5.tar.gz",repos=NULL, type="source")

- Empezamos a instalar manualmente los siguientes paquetes, tal y como lo hicimos con la instalación “bitops_1.0.5.tar.gz”

  • install.packages("http://cran.r-project.org/src/contrib/Archive/RCurl/RCurl_1.95-4.6.tar.gz",repos=NULL, type="source")
  • install.packages("http://cran.r-project.org/src/contrib/Archive/Rcpp/Rcpp_0.12.5.tar.gz",repos=NULL, type="source")
  • install.packages("http://cran.r-project.org/src/contrib/quadprog_1.5-5.tar.gz",repos=NULL, type="source")
  • install.packages("http://cran.r-project.org/src/contrib/Archive/lattice/lattice_0.20-33.tar.gz",repos=NULL, type="source")
  • install.packages("http://cran.r-project.org/src/contrib/zoo_1.7-13.tar.gz",repos=NULL, type="source")
  • install.packages("http://cran.r-project.org/src/contrib/Archive/colorspace/colorspace_1.2-6.tar.gz",repos=NULL, type="source")
  • install.packages("http://cran.r-project.org/src/contrib/Archive/timeDate/timeDate_3011.99.tar.gz",repos=NULL, type="source")
  • install.packages("http://cran.r-project.org/src/contrib/fracdiff_1.4-2.tar.gz",repos=NULL, type="source")
  • installpackagecustom("http://cran.r-project.org/src/contrib/nnet_7.3-12.tar.gz","http://cran.r-project.org/src/contrib/Archive/nnet/nnet_7.3-12.tar.gz")
  • install.packages("http://cran.r-project.org/src/contrib/Archive/gtools/gtools_3.4.2.tar.gz",repos=NULL, type="source")
  • install.packages("http://cran.r-project.org/src/contrib/Archive/forecast/forecast_6.1.tar.gz",repos=NULL, type="source",dependencies=TRUE)
  • install.packages("http://cran.r-project.org/src/contrib/RJSONIO_1.3-0.tar.gz",repos=NULL, type="source",dependencies=TRUE)
  • install.packages("http://cran.r-project.org/src/contrib/matrixcalc_1.0-3.tar.gz",repos=NULL, type="source",dependencies=TRUE)
  • install.packages("http://cran.r-project.org/src/contrib/randomForest_4.6-12.tar.gz",repos=NULL, type="source",dependencies=TRUE)
  • install.packages("http://cran.r-project.org/src/contrib/gdata_2.17.0.tar.gz",repos=NULL, type="source",dependencies=TRUE)
  • install.packages("http://cran.r-project.org/src/contrib/caTools_1.17.1.tar.gz",repos=NULL, type="source",dependencies=TRUE)
  • install.packages("http://cran.r-project.org/src/contrib/gplots_3.0.1.tar.gz",repos=NULL, type="source",dependencies=TRUE)
  • install.packages("http://cran.r-project.org/src/contrib/Archive/arules/arules_1.1-9.tar.gz",repos=NULL,type="source")
  • installpackagecustom("http://cran.r-project.org/src/contrib/NLP_0.1-9.tar.gz","http://cran.r-project.org/src/contrib/Archive/NLP/NLP_0.1-9.tar.gz")
  • install.packages("http://cran.r-project.org/src/contrib/Archive/slam/slam_0.1-34.tar.gz",repos=NULL, ype="source",dependencies=TRUE)
  • install.packages("http://cran.r-project.org/src/contrib/tm_0.6-2.tar.gz",repos=NULL, type="source",dependencies=TRUE)
  • install.packages("/u02/Oracle/Middleware/Oracle_Home/bi/bifoundation/advanced_analytics/OBIEERPackage/
  • OBIEEAdvancedAnalytics_12.2.1.2.0.tar.gz",repos=NULL, type="source")

- Para verificar que la instalación de los paquetes R, haya sido exitosa, creamos algún reporte de proyección de ventas usando nuestra Área Temática “Sample Sales Lite” y usando la función FORECAST de R.

INSTALACIÓN PAQUETES “SENTIMENT ANALYSIS”

Oracle Business Intelligence, aparte de contener los paquetes embebidos de R como cluster, forecast, trending, regression y outlier, posee la disponibilidad de poder utilizar paquetes adicionales, como por ejemplo, paquetes de machine learning para realizar “Sentiment Analysis”, usando simplemente la función EVALUATE_SCRIPT, entonces en esta sección veremos la instalación de estos paquetes.

- Descargamos e instalamos los paquetes de RSTEM

  • download.file("http://cran.cnr.berkeley.edu/src/contrib/Archive/Rstem/Rstem_0.4-1.tar.gz", "Rstem_0.4-1.tar.gz")
  • install.packages("Rstem_0.4-1.tar.gz", repos=NULL, type="source")

- Descargamos e instalamos el paquete de “SENTIMENT”

  • download.file("http://cran.r-project.org/src/contrib/Archive/sentiment/sentiment_0.2.tar.gz", "sentiment.tar.gz")
  • install.packages("sentiment.tar.gz", repos=NULL, type="source")

CONFIGURACIÓN DE SENTIMENT ANALYSIS: ORACLE BUSINESS INTELLIGENCE 12C

Creamos un archivo script XML el nombre que deseamos en este caso hemos usado el “Sentiment.xml” en la ruta:

- En el script presente ingresamos dos parámetros el código del producto y el contenido del texto en la función, luego cargamos las librerías de “Sentiment Analysis” y usamos el algoritmo de tipo “bayes”, para que nos muestre si el comentario es “positivo”, “negativo” o “regular”.

Nota:

Cuando usamos el script en nuestro RPD el código del producto debe de ser de tipo INTEGER.

- Creamos un reporte y usando la función “EVALUATE_SCRIPT” y usamos “Sentiment.xml”

- Observamos nuestros resultados.

CONCLUSIONES

La evolución de las redes sociales y blogs ha generado una cantidad de información donde el análisis de las críticas, recomendaciones, opiniones se han transformado en la actualidad en un activo valioso para las corporaciones. Sentiment Analysis puede ayudar considerablemente a las compañías a identificar oportunidades de mejora en sus productos y/o servicios, logrando obtener ventajas competitivas y que estos puedan mejorar los niveles de aceptación de sus clientes.

Sentiment Analysis, también nos pueden ayudar en distintos tópicos ,como por ejemplo, el ámbito político, donde podemos analizar la preferencia de los votantes por un partido político u otro.

R es un lenguaje que se viene trayendo consigo nuevos upgrades y novedades, y la plataforma Oracle Business Intelligence 12c con estas nuevas features, hace posible que sea bastante sencillo incorporar estos paquetes, lo cual hace que la plataforma sea sumamente atractiva.

Este artículo ha sido revisado por el equipo de productos Oracle y se encuentra en cumplimiento de las normas y prácticas para el uso de los productos Oracle.