Minería de Datos con Ruby

Para iniciar se debe contar con el gestor de base de datos MongoDB, y una cuenta en twitter, del cual obtendremos los datos de cada tweet que realicen nuestros seguidores. Para ello necesitamos instalar los paquetes de ruby (para este tutorial fue usado la v.1.9.3) y sus correspondientes gemas.

Preparando Ruby.

Para instalar ruby en linux puedes utilizar:

#apt-get install ruby1.9.3 

para windows deberás descargarlo de aquí e instalarlo.

Procedemos a instalar ruby descargándolo de la página oficial instalando las siguientes gemas para esta práctica se descargó la versión, se instalan con el comando #gem install <gema> tanto en linux como en windows.

  • awesome_print
  • bson
  • bson_ext
  • bundler
  • json
  • mongo
  • multi_json
  • rgl
  • stream
  • tweetstream
  • twitter
  • twitter-stream
Puedes verificar las gemas que tienes instaladas con el comando #gem list, en general las gemas son fáciles de instalar a excepción de bson_ext que requiere una instalación especial. Cuando instalemos la gema bson_ext nos pedirá la instalación del dev_kit de ruby, para ello descargamos de la página oficial el correspondiente a nuestra versión de ruby.


Y lo configuramos con los siguientes pasos en windows
  1. Extraemos el paquete en un directorio C:\DevKit
  2. Nos posicionamos en este directorio y ejecutamos el siguiente comando “ruby dk.rb init” donde nos generara el archivo “config.yml” de nuestra configuración, que es usado para configuraciones especiales.
  3. Por ultimo ejecutamos “ruby dk.rb install” para instalar el dev_kit.
  4. Terminado esto debería permitirnos instalar la gema bson_ext.

Preparando MongoDB.

Si eres linuxero bastará con escribir en la terminal #apt-get install mongodb, pero para windows deberás descargarlo e instalarlo manualmente. Ya instalado, crea una base de datos llamada "Twitter" con una colección de nombre "statuses".

Preparando Twitter.

Para twitter necesitas obtener las credenciales, lo que dará permisos a nuestra aplicación para acceder a la información. lo puedes obtener de dev.twitter.com  accedes con tu usuario normal, y creas una aplicación.


rellenas los datos, aceptas las condiciones de uso, y por ultimo creas la aplicación, con esto obtendrás las credenciales. 

El Código

el código esta constituido de las siguiente forma:
  • Gemfile.-colocamos las dependencias con las demás gemas de ruby y las que se incluirán.
  • mongo.yml.- la configuración de la conexión con mongo
  • twitter.yml.- la configuración de la conexión de twitter, las credenciales de nuestra aplicación.
  • counter.rb . el programa que se encargara de realizar el map-reduce
  • ejem.rb.- el programa que utilizaremos para insertar los tweet ́s  a mongo
  • tweetminer.rb.- la gema que construimos para realizar la minería de datos de twitter.
  • status_counter.rb .- el modulo que contendrá las clases y métodos para el map-reduce.
el cual puedes descargarlo desde aqui.

Ya teniendo configurado nuestro ruby procedemos a obtener las credenciales de twitter de una aplicación, para ello accedemos a https://dev.twitter.com de ahí tomamos las credenciales para personalizar nuestro archivo twitter.yml con la configuración de las credenciales.



La base de datos que se utilizara será mongo por lo tanto usaremos la configuración para su conexión, lo cual coloquemos esos datos en mongo.yml quedando de la siguiente forma.


La ejecución de ejem.rb obtendrá los datos de los tweet realizados y los almacenará en mongo en la colección statuses de la base twitter imprimiendo un punto.

La base quedara asi:


Nota.

Durante la inserción de datos en el archivo ejem.rb el objeto status que se obtiene de tweetstream, regresa un objeto de tipo tweet algo que no sucede en Linux, es por ello que el código inicial fue cambiado al siguiente.


puedes ver la documentación de la gema aqui.






Comentarios

Entradas más populares de este blog

Instalación de PROXMOX (por usb)

Firmar y publicar una app de Cordova en Play Store

Método PERT.