{"id":1985,"date":"2017-08-07T14:43:03","date_gmt":"2017-08-07T18:43:03","guid":{"rendered":"http:\/\/www.infosoft.com.ve\/Infosoft\/?p=1985"},"modified":"2017-08-07T14:43:03","modified_gmt":"2017-08-07T18:43:03","slug":"como-usar-python-extraer-big-data-analytics-twitter","status":"publish","type":"post","link":"https:\/\/www.infosoft.com.ve\/Infosoft\/2017\/08\/07\/como-usar-python-extraer-big-data-analytics-twitter\/","title":{"rendered":"Como usar Python para extraer Big Data Analytics de Twitter"},"content":{"rendered":"<p align=\"Justify\"><strong>Big Data<\/strong> es exactamente eso: una gran cantidad de datos que usamos para generar eso que en ingl\u00e9s llamamos \u00abinsights\u00bb o perspectivas. Una serie de datos puede darnos mucha informaci\u00f3n. Pero una gran cantidad terabytes combinados, junto a modelos matem\u00e1ticos complejos y poder de c\u00f3mputo suficiente, puede crear descubrimientos que los humanos no podr\u00edamos concebir. La cantidad y valor de la informaci\u00f3n, pero sobre todo la perspectivas, con las cuales nos proveen los analisis de Big Data sobrepasan la capacidad humana.\u00a0 Si bien esto es asunto por todos conocido, surgen siempre las preguntas de como iniciarse en las aplicaciones del Big data para nuestras empresas. Y uno de los puntos principales es de donde sacar la big data. El primer paso para el big data analytics es obtener las fuentes de informaci\u00f3n. Acceder y obtener adecuadamente esa informaci\u00f3n es el proceso que conocemos como <strong>Data Mining<\/strong>. La mayor\u00eda de los negocios manejan grandes cantidades de informaci\u00f3n trasaccional: clientes, productos, lugares, fechas, montos, etc, que vienen generalmente de sus sistemas de informaci\u00f3n en formato estructurado. En este art\u00edculo, vamos a explorar el uso de t\u00e9cnicas de data mining para extraer data de Twitter, una fuente p\u00fablica y accesible que puede ser muy \u00fatil para todo tipo de negocios. Desde conocer c\u00f3mo es vista nuestra empresa por el p\u00fablico (o la nueva camapa\u00f1a de radio), hasta cual es la marca de ron que mas se menciona en la zona de los Valles del Tuy (Miranda, Venezuela). Teniendo esos perspectivas nos ser\u00e1 m\u00e1s sencillo planificar nuestras campa\u00f1as, conversaciones en las redes y quiz\u00e1 hasta las compras de inventario. Twitter es una verdera mina de oro para minar datos.<\/p>\n<p>Herramientas Python<\/p>\n<p align=\"Justify\">Existe una librer\u00eda en Python llamada <em>Tweepy<\/em> (<a href=\"http:\/\/tweepy.org\">tweepy.org<\/a>) con la que podemos acceder a una gran cantidad de valores de la <strong>API de Twitter<\/strong>. Si bien su instalaci\u00f3n es bastante sencilla, usando pip o github,les recomendamos que vayan directamente a la fuente para los detalles.<\/p>\n<p>Creaci\u00f3n de una cuenta de Desarrollo<\/p>\n<p align=\"Justify\">Para usar la API de Twitter es necesario crear una cuenta de desarrollador en la API de Twitter. Para esto, es necesario logearse o crear una cuenta en apps.twitter.com. Una vez all\u00ed, deber\u00e1 crearse una nueva APP, pulsando el bot\u00f3n correspondiente. Es necesario rellenar los campos de la planilla de registro y aceptar los t\u00e9rminos y condiciones de Twitter. Una vez que el proyecto ha sido creado, hay que obtener los accesos correspondientes, generalmente pulsando en \u00abKeys and Access Tokens\u00bb. Luego de generar el Customer Secret y el Consumer Key, podremos acceder al Access Token y al Secret Token<\/p>\n<p>Comencemos a desarrollar:<\/p>\n<p align=\"Justify\">En cada proyecto debemos crear un API object usando <em>Tweepy<\/em>, con el que llamaremos las funciones. Este objeto debe estar autenticado con los par\u00e1metros obtenidos en el paso anterior. B\u00e1sicamente, primero importaremos la informaci\u00f3n de autenticaci\u00f3n<\/p>\n<p style=\"padding-left: 30px;\">import tweepy<br \/>\nconsumer_key = \u00abwXXXXXXXXXXXXXXXXXXXXXXX1\u00bb<br \/>\nConsumer_secret = \u00abqxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\u00bb<br \/>\naccess_token = \u00ab9XXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXi\u00bb<br \/>\naccess_token_secret = \u00abkXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXt\u00bb<\/p>\n<p>&nbsp;<\/p>\n<p>Luego, se crea el API object<\/p>\n<p style=\"padding-left: 30px;\">auth = tweepy.OAuthHandler(consumer_key, consumer_secret)<br \/>\nauth.set_access_token(access_token, access_token_secret)<br \/>\napi = tweepy.API(auth)<\/p>\n<p align=\"Justify\">Una vez construido este API object b\u00e1sico (formar\u00e1 parte de cada nuevo proyecto) podemos empezar a ejecutar comandos sobre nuestra cuenta (o aquella con la que nos hayamos logeado en primer lugar). En este primer ejemplo, recuperaremos lo 10 tweets mas recientes de nuestra cuenta, usando la funci\u00f3n home_timeline():<\/p>\n<p style=\"padding-left: 30px;\">public_tweets = api.home.timeline()<br \/>\nfor tweet in public_tweets:<br \/>\nprint tweet.text<\/p>\n<p align=\"Justify\">Como resultado, obtendremos una lista con los mas recientes (10) tweets de nuestra cuenta. Para operaciones mas complejas tenemos que revisar los atributos que el API nos puede devolver. Las respuestas del Twitter API estan en formato JSON y contienen mucha informaci\u00f3n a disposici\u00f3n. Si bien la mayor\u00eda de los queries consistir\u00e1n en el atributo \u00abtext\u00bb, JSON tiene disponibles otros como Fecha de Creaci\u00f3n (print tweet.created_at), Nombre (print tweet.user.screen_name), lugar (print tweet.user.location) y muchos otros. Para ua lista completa de los atributos del JSON. JSON tambien nos permite obtener tweets de otras cuentas con la funci\u00f3n user.timeline(), siempre y cuando los tweets de ese usuario sean p\u00fablicos o tengamos la autorizaci\u00f3n correspondiente.Tambien hay que notar que solo podemos obtener un n\u00famero de tweets por query limitado por las reglas del API de twitter.<\/p>\n<p align=\"Justify\">Sin menospreciar lo anterior, consideramos que la funci\u00f3n m\u00e1s importante en nuestros ejercicios de Big Data Analytics debe ser la funci\u00f3n search(). A trav\u00e9s de la funci\u00f3n search(), y espec\u00edficamente del par\u00e1metro -q, cuya funci\u00f3n es exactamente lo que queremos. Podemos crearnos ahora un c\u00f3digo en Python que sirva a nuestros prop\u00f3sitos<\/p>\n<p style=\"padding-left: 30px;\"># Creamos un objeto API co la info de autenticaci\u00f3n.<br \/>\napi = twepi.API(Auth)<\/p>\n<p style=\"padding-left: 30px;\"># Introducimos los t\u00e9rminos<br \/>\nquery = \u00abejemplo\u00bb<br \/>\n# Introducimos el lenguaje en el que queremos las respuestas<br \/>\nlanguage = \u00aben\u00bb<\/p>\n<p style=\"padding-left: 30px;\"># Aqui usamos la funci\u00f3n<br \/>\nresults = api.search(q=query, lang=language)<br \/>\n# Crearemos un lazo para imprimir los resultados<\/p>\n<p style=\"padding-left: 30px;\">for tweet in results:<br \/>\nprint tweet.user.screen_name,\u00bbTweeted\u00bb,tweet.text<\/p>\n<p align=\"Justify\">Esto crear\u00e1 en la pantalla un flujo de tweets con informaci\u00f3n, con el que podremos despu\u00e9s implementar nuestros procesos de anal\u00edtica.<\/p>\n<p align=\"Justify\">En conclusi\u00f3n, podemos usar la API de Twitter para obtener una gran cantidad de datos para minar siempre y cuando se comprendan bien y se menejen correctamente las Twitter rate Limiting Guidelines y la interfase Tweepy.<\/p>\n<p>Foto cortes\u00eda de:<br \/>\n<a style=\"background-color: black; color: white; text-decoration: none; padding: 4px 6px; font-family: -apple-system, BlinkMacSystemFont, 'San Francisco', 'Helvetica Neue', Helvetica, Ubuntu, Roboto, Noto, 'Segoe UI', Arial, sans-serif; font-size: 12px; font-weight: bold; line-height: 1.2; display: inline-block; border-radius: 3px;\" title=\"Download free do whatever you want high-resolution photos from Paulo Brandao\" href=\"https:\/\/unsplash.com\/@pbrandao?utm_medium=referral&amp;utm_campaign=photographer-credit&amp;utm_content=creditBadge\" target=\"_blank\" rel=\"noopener noreferrer\"><span style=\"display: inline-block; padding: 2px 3px;\">Paulo Brandao<\/span><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Uso de Python para extraer datos del api de twitter para aplicaciones de Data Mining y Big Data.<\/p>\n","protected":false},"author":6,"featured_media":1996,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","spay_email":""},"categories":[193],"tags":[221,257,258,256],"jetpack_featured_media_url":"https:\/\/i2.wp.com\/www.infosoft.com.ve\/Infosoft\/wp-content\/uploads\/2017\/08\/twitter-api-image.png?fit=299%2C300&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p8ocxs-w1","jetpack-related-posts":[{"id":1178,"url":"https:\/\/www.infosoft.com.ve\/Infosoft\/2013\/01\/11\/big-data-en-venezuela\/","url_meta":{"origin":1985,"position":0},"title":"Big Data en Venezuela: \u00bfRealidad o mito?","date":"enero 11, 2013","format":false,"excerpt":"Las empresas ya est\u00e1n utilizando\u00a0Big Data\u00a0para entender el perfil, las necesidades y el sentir de sus clientes respecto a los productos y\/o servicios vendidos. Esto adquiere especial relevancia ya que permite adecuar la forma en la que interact\u00faa la empresa con sus clientes y en c\u00f3mo les prestan servicio. Hasta\u2026","rel":"","context":"En \u00abBig Data\u00bb","img":{"alt_text":"Big data","src":"https:\/\/i0.wp.com\/www.infosoft.com.ve\/Infosoft\/wp-content\/uploads\/2013\/01\/IT-data-analisis-e1495227590207.jpg?fit=801%2C801&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":1866,"url":"https:\/\/www.infosoft.com.ve\/Infosoft\/2017\/05\/29\/smartphone-el-acceso-al-credito-para-los-no-bancarizados\/","url_meta":{"origin":1985,"position":1},"title":"Smartphone: el acceso al cr\u00e9dito para los no bancarizados","date":"mayo 29, 2017","format":false,"excerpt":"El acceso al cr\u00e9dito para al poblaci\u00f3n no bancarizada, siempre hab\u00eda estado cerrado debido a un problema recurrente: la falta de informaci\u00f3n, en este caso crediticia. Esta informaci\u00f3n se recopila de varias fuentes, tales como historial de cuenta bancaria, tarjetas de cr\u00e9dito y cr\u00e9ditos personales, entre otros. El problema es\u2026","rel":"","context":"En \u00abBig Data\u00bb","img":{"alt_text":"","src":"https:\/\/i2.wp.com\/www.infosoft.com.ve\/Infosoft\/wp-content\/uploads\/2017\/05\/Banca-en-linea-300x300.png?fit=300%2C300&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":1871,"url":"https:\/\/www.infosoft.com.ve\/Infosoft\/2017\/05\/24\/como-implementar-un-sistema-de-bi\/","url_meta":{"origin":1985,"position":2},"title":"\u00bfC\u00f3mo implementar un sistema de BI?","date":"mayo 24, 2017","format":false,"excerpt":"Este no es un post t\u00e9cnico sobre implementaci\u00f3n de sistemas de inteligencia de negocios sino mas bien una gu\u00eda ejecutiva para la instalaci\u00f3n de sistemas de BI. En \u00e9l, destacaremos los pasos previos y los planteamientos fundamentales para el \u00e9xito de toda implementaci\u00f3n de BI. Comencemos con definir que llamamos\u2026","rel":"","context":"En \u00abInteligencia de Negocios\u00bb","img":{"alt_text":"\u00bfComo implementar un sistema de BI?","src":"https:\/\/i1.wp.com\/www.infosoft.com.ve\/Infosoft\/wp-content\/uploads\/2017\/05\/data-screen-BI-medium.png?fit=800%2C570&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":1177,"url":"https:\/\/www.infosoft.com.ve\/Infosoft\/2013\/01\/10\/retos-retail\/","url_meta":{"origin":1985,"position":3},"title":"Retos del Retail de hoy","date":"enero 10, 2013","format":false,"excerpt":"Se exploran los retos del sector comercial moderno y c\u00f3mo la tecnolog\u00eda puede ayudar a aumentar la relaci\u00f3n con el cliente.","rel":"","context":"En \u00abInteligencia de Negocios\u00bb","img":{"alt_text":"","src":"https:\/\/i1.wp.com\/www.infosoft.com.ve\/Infosoft\/wp-content\/uploads\/2013\/01\/RETAIL-1.jpeg?fit=1200%2C799&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":1819,"url":"https:\/\/www.infosoft.com.ve\/Infosoft\/2017\/02\/10\/gocco-y-telefonica-presentan-su-propuesta-de-retail-digital\/","url_meta":{"origin":1985,"position":4},"title":"Gocco y Telef\u00f3nica presentan su propuesta de Retail Digital","date":"febrero 10, 2017","format":false,"excerpt":"Gooco y Telef\u00f3nica presentaron su propuesta para renovar digitalmente las tiendas retail. Han combinado una serie de tecnolog\u00edas a la tienda, con la intenci\u00f3n de mejorar la experiencia del cliente y hacer que se sienta mas atendido. Por supuesto, tambien se han incorporado elementos para capturar la informaci\u00f3n del cliente\u2026","rel":"","context":"En \u00abBig Data\u00bb","img":{"alt_text":"","src":"https:\/\/i1.wp.com\/www.infosoft.com.ve\/Infosoft\/wp-content\/uploads\/2017\/02\/retail-digital-e1495226412862.png?fit=754%2C754&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":1176,"url":"https:\/\/www.infosoft.com.ve\/Infosoft\/2013\/01\/09\/pagos-moviles\/","url_meta":{"origin":1985,"position":5},"title":"La capacidad de fraude est\u00e1 expandi\u00e9ndose en pagos m\u00f3viles.","date":"enero 9, 2013","format":false,"excerpt":"Sistemas de pago m\u00f3viles como Apple Pay, SamsungPay, \u00a0y otros que ya est\u00e1n apareciendo en Venezuela, est\u00e1n ganando usuarios, pero los problemas de seguridad prev\u00e9n que habr\u00e1 que aferrarse a las tarjetas de cr\u00e9dito y dinero en efectivo por el momento. Mientras que los pagos m\u00f3viles a\u00fan representan s\u00f3lo una\u2026","rel":"","context":"En \u00abPagos moviles\u00bb","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.infosoft.com.ve\/Infosoft\/wp-json\/wp\/v2\/posts\/1985"}],"collection":[{"href":"https:\/\/www.infosoft.com.ve\/Infosoft\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.infosoft.com.ve\/Infosoft\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.infosoft.com.ve\/Infosoft\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.infosoft.com.ve\/Infosoft\/wp-json\/wp\/v2\/comments?post=1985"}],"version-history":[{"count":6,"href":"https:\/\/www.infosoft.com.ve\/Infosoft\/wp-json\/wp\/v2\/posts\/1985\/revisions"}],"predecessor-version":[{"id":1997,"href":"https:\/\/www.infosoft.com.ve\/Infosoft\/wp-json\/wp\/v2\/posts\/1985\/revisions\/1997"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.infosoft.com.ve\/Infosoft\/wp-json\/wp\/v2\/media\/1996"}],"wp:attachment":[{"href":"https:\/\/www.infosoft.com.ve\/Infosoft\/wp-json\/wp\/v2\/media?parent=1985"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.infosoft.com.ve\/Infosoft\/wp-json\/wp\/v2\/categories?post=1985"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.infosoft.com.ve\/Infosoft\/wp-json\/wp\/v2\/tags?post=1985"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}