Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1
Índice
INTRODUCCIÓN ........................................................................................................................ 3
FILOSOFÍA DE DATOS ................................................................................................................ 3
¿CUÁNDO LOGRARÁ LA INTELIGENCIA ARTIFICIAL SUPERAR EL RENDIMIENTO HUMANO? ................................ 3
EVOLUCIÓN TECNOLÓGICA ....................................................................................................... 7
ERA DIGITAL ....................................................................................................................................... 7
INTELIGENCIA ARTIFICIAL (IA) ................................................................................................................ 8
PARADIGMA DE LOS GRANDES VOLÚMENES DE DATOS ............................................................................. 10
CARACTERÍSTICAS DEL BIG DATA .......................................................................................................... 11
FUENTES DE DATA MASIVA .................................................................................................................. 12
CARACTERÍSTICAS DEL SMALL DATA ...................................................................................................... 13
DILEMAS DE LOS GRANDES VOLÚMENES DE DATOS .................................................................................. 13
ARQUITECTURA TECNOLÓGICA ............................................................................................................. 14
FUENTES Y TIPOS DE DATOS .................................................................................................... 15
TIPOS DE DATOS ................................................................................................................................ 17
VARIABLES ....................................................................................................................................... 17
PROGRAMACIÓN ESTADÍSTICA ............................................................................................... 18
GIT ................................................................................................................................................. 18
BRANCH ........................................................................................................................................... 18
GIT-FLOW ........................................................................................................................................ 19
SOURCE TREE.................................................................................................................................... 20
RSTUDIO .......................................................................................................................................... 21
APRENDIENDO RSTUDIO – ALGORITMOS ............................................................................................... 21
OPERADORES .................................................................................................................................... 23
FUNCIONES ...................................................................................................................................... 24
CONDICIONALES ................................................................................................................................ 26
SECUENCIAS ..................................................................................................................................... 28
VECTORES Y LISTAS ............................................................................................................................ 29
DATAFRAMES ................................................................................................................................... 30
FOR Y LOOP ...................................................................................................................................... 31
HYPERTEXT MARKUP LANGUAGE ............................................................................................ 33
WEB SCRAPING....................................................................................................................... 38
PASO 1: IDENTIFICAR EL URL Y ASIGNARLO A UNA VARIABLE. .................................................................... 38
PASO 2: ALMACENAMIENTO DEL CONTENIDO HTML. ............................................................................. 39
PASO 3: EXTRACCIÓN DE LA INFORMACIÓN ÚTIL. .................................................................................... 39
PASO 4: ESTABLECER EL FORMATO QUE SE DESEA EXTRAER LA INFORMACIÓN .............................................. 40
PASO 5: EXTRAER COMO TABLA Y ALMACENAR EN UNA VARIABLE .............................................................. 41
PASO 6: VISUALIZACIÓN DE LA TABLA ................................................................................................... 41
EJERCICIO APLICADO .......................................................................................................................... 42
SCRIPT ECOOSFERA ............................................................................................................................ 43
ALCANCE Y RECOMENDACIONES ............................................................................................. 46
REFERENCIAS .......................................................................................................................... 47
2
Introducción
Este es un informe complementario de la asignatura Big Data, donde se realizará un
resumen, guía, ordenamiento y estructuración de la información impartida en el curso, con
el objetivo de servir como material de apoyo para los estudiantes que estén realizando esta
asignatura. Este abarca información básica de Big Data en relación a lenguajes
de programación, y en específico lo relacionado a R, y su IDE RStudio, que facilitan la
codificación, análisis y automatización de tareas repetitivas. Adicionalmente, se hará una
breve revisión de la historia de la evolución digital, una contextualización de los dilemas de
los grandes volúmenes de datos, definición de la arquitectura Hadoop y una explicación de
las técnicas de extracción de información (Web Scraping) a través de un ejercicio aplicado.
Filosofía de datos
El desarrollo de la Inteligencia Artificial también nombrado por sus siglas como “IA”, es un
concepto de la última década. Con ella, la profundización de áreas como el Machine
Learning han inspirado múltiples estudios en la comunidad científica, quiénes se han
centrado en un solo aspecto, planteando interrogantes cómo ¿Serán los seres humanos
superados por las máquinas? ¿Llegará el desarrollo de IA al punto de suplir a los humanos?
Por otro lado, Grace, Salvatier, Dafoe, Zhang y Evans (2018) realizaron una encuesta
internacional a un total de 352 investigadores de IA, con el objetivo de captar su perspectiva
respecto al “Timing” en los avances de la Inteligencia Artificial, incluyendo aspectos
prácticos y de aplicación, además de la automatización de trabajos realizados por humanos,
3
incorporando su impacto en el aspecto ético y social. Los resultados son variados, puesto
que abarcan temáticas desde actividades sencillas como doblado de ropa, traducciones,
hasta otras más complejas como conducción de autos, escritura de reportes, procesos del
sector retail, entre otras. Un ejemplo dentro de esta investigación determina que la
realización de cirugías a través de máquinas, puede superar completamente el rendimiento
de los seres humanos en absolutamente todas las tareas.
Cabe mencionar que dicha investigación realiza énfasis en la predicción por parte de
expertos, indicando que en el momento que las máquinas puedan sustituir a los humanos
en dichas actividades, se hará necesario realizar un análisis de costos y el cálculo de la
Tasa de Conversión Baja, que respecta a que la utilización de esta maquinaria “inteligente”
no solo debe superar en rendimiento, sino que también en costo de la mano de obra.
4
Gráfico 1: Predicciones de HLMI de 352 investigadores.
Por otro lado, las proyecciones de una completa sustitución del campo laboral se encuentra
en un rango completamente distinto, donde de manera agregada existe un 50% de
probabilidad de ocurrir dentro de 122 años, y un 10% de probabilidad dentro de 20 años.
5
4. La sociedad debe priorizar la investigación orientada a minimizar los riesgos
potenciales de IA. El 48% de los investigadores piensan que las investigaciones
de minimización de riesgos debe ser la prioridad de la sociedad más que el Status
Quo.
5. Los asiáticos esperan que HLMI ocurra 44 años antes que los
norteamericanos. En el gráfico 2 muestra los resultados agrupados por regiones
(Asia, Europa, Norteamérica y Otras) respecto a cuándo ocurrirá el HLMI. Los
asiáticos proyectan que dentro de los próximos 30 años aparecerá este fenómeno,
mientras que Norteamérica estima una media de 76 años, donde sus principales
representantes son los países de China y Estados Unidos, respectivamente.
6
Evolución tecnológica
Alan Mathison Turing fue un matemático inglés nacido en 1912 que tiene el reconocimiento
por ser el creador de la primera máquina que pudo generar respuestas lógicas a base de
reglas, nombrada como Máquina de Turing (1936).
De aquí deriva el Turing Test, el cual es una prueba utilizada para evaluar máquinas según
su habilidad de poseer un comportamiento similar al de un ser humano. Dicho de otro modo,
este test evalúa la capacidad de una máquina y un evaluador (persona) de reconocer y/o
traducir el lenguaje natural de una conversación entre un individuo y una máquina. Cuando
el evaluador no pueda distinguir entre la máquina y el ser humano, ésta habrá pasado la
prueba.
Era digital
Gordon Moore fue un ingeniero norteamericano que descubrió que cada año el número de
transistores por unidad de superficie en circuitos integrados se estaba duplicando (gráfico
3). Una de las evidencias de esto es que cada año se necesitaba menos espacio para
realizar procesos más complejos en un dispositivo, entonces, por un lado, el tamaño del
transistor disminuye cada año, y por otro, aumenta su utilización (Revista digital de la
Universidad Nacional Autónoma de México, 2005, vol. 6). A esto se le llama Ley de Moore,
que ha marcado un hito en la era digital donde el aumento de la capacidad de cómputo de
las máquinas ha permitido la evolución de las tareas que son capaces de realizar, dando
espacio a la Inteligencia Artificial y la adaptación de nuevas tecnologías en el qué hacer
humano.
7
Gráfico 3: Evolución del número de componentes de función integrada en el tiempo.
Dentro de esta disciplina se encuentran sub áreas que sostienen a la IA, las cuales son
Machine Learning y Deep Learning Machine Learning, que presentan la característica de
mejorar sus algoritmos cada vez que se le expone a cantidades de datos más grandes en
el tiempo. Por su parte, Deep Learning es un grupo específico del Machine Learning donde
se crean redes capaces de aprender, sin supervisión o con supervisión parcial, con grandes
cantidades de datos (figura 1).
8
Figura 1: Bosquejo de los componentes de la Inteligencia Artificial
9
Paradigma de los grandes volúmenes de datos
7
Véase en http://cltcms.vtc.edu.hk/what-happens-online-in-60-seconds/
8 Extracto obtenido de Centre for Learning and Teaching.
10
Figura 3: Resultados del uso de redes sociales enfocados a la enseñanza
Fuente: Seaman & Tinti-Kane (2013). Social media for teaching and learning
Por otro lado, no solo obtener una masa de información es útil para analizar aspectos
económicos, educacionales o de otra índole, sino que también es necesario manejar y
utilizar datos específicos que aborden temáticas complejas. Con esto nace el paradigma
entre Big Data y Small Data, donde la última es la más sencilla, ya que consta de una
cantidad y tamaño de datos suficientemente pequeños para el entendimiento humano. Big
Data, se enfoca en todo lo contrario, cantidades de información gigantes y difíciles de
comprender que deben ser realizadas por modelos y arquitecturas computacionales
complejas.
11
Fuentes de data masiva
Data Histórica:
• E-science (Astronomía, biotecnología, etc)
• Data Warehouse (Páginas con set de datos)
• Software applications (Logs, clicks, etc)
Streaming Data:
• Social Media (Facebook, twitter, Instagram, etc)
• Sensor Data (GPS, Weather, etc)
12
Características del Small Data
13
• Para guardar y procesar, se necesita una alta capacidad computacional, es decir,
un computador con la potencia necesaria para descargar y transformar la data a
exigencia del usuario. Esto resuelve el paradigma en cuanto al crecimiento del
internet y los grandes volúmenes de información.
• “Mass Media a Social Media” abarca los tipos de datos que se encuentran en las
principales fuentes de información de la Web, como lo son las redes sociales,
buscadores de Internet, entre otros. Siendo estos últimos quienes presentan
información en formatos “No Estructurados”, la cual se requiere modelar de manera
estandarizada para que sean posibles de analizar por una persona, sin embargo, al
tratarse de gigantescos volúmenes de datos se vuelve prácticamente imposible
obtener conclusiones, de esta manera Machine Learning y la Inteligencia Artificial
(IA) juegan un papel fundamental para entregar resultados de fácil entendimiento
humano.
• El “Internet de las Cosas” o IoT por sus siglas en inglés, es la interconexión de las
actividades y utensilios diarios al internet, impulsando a nuevas tecnologías como
la banda ancha de 5G. Es así, como el protocolo de Internet (IPv6) es un nuevo
reglamento que busca disminuir las restricciones al número de direcciones de
internet, limitaciones que existían en la versión anterior IPv4, permitiendo que el
crecimiento de los datos se mantenga en el tiempo.
Arquitectura tecnológica
El Big Data contempla repositorios de data masiva, lo cual hace referencia a la tecnología
necesaria para procesar y analizar grandes volúmenes de datos, lo que requiere una
arquitectura distribuida de la información, conseguida por ejemplo en un cluster.
Un cluster está compuesto por un conjunto de computadores que trabajan en paralelo para
realizar búsquedas a gran escala. El concepto que existe detrás de esta arquitectura es
que, si se necesita realizar una tarea, en vez de dársela a un computador gigante, se le
entrega dicha tarea a muchas máquinas, donde cada una leerá solo un pedazo de la
información y luego se sincronizarán sus respuestas. Por ejemplo, esto ocurre cuando se
hace una búsqueda en Google. Para ello, se debe buscar la información requerida en toda
14
la internet, si esta tarea la realizara una sola máquina, esta se demoraría semanas, meses
o años. En cambio, si se distribuye la búsqueda en varias máquinas, es posible cumplir la
tarea en tiempos que se perciben como casi instantáneos.
Una de estas arquitecturas se puede ver en la Figura 6, que muestra el Apache Hadoop
Platform, la cual consiste en un conjunto de herramientas que tienen la capacidad de
comunicarse con el sistema de archivo HDFS (del inglés Hadoop Distributed File System),
quien se encarga de distribuir la información en las diferentes computadoras o nodos, con
el objetivo de hacer consultas del tipo MapReduce. Considerando a “Map” como la
búsqueda de una llave en cada una de las particiones y “Reduce” que genera el conteo de
estas llaves. Posibilitando, el conteo de frases que permitan ordenar y entender tendencias
en grandes grupos de información. Cabe destacar, que este proceso es tratado de una
manera singular para cada tipo de información y fuente, debido a que cada una de ellas
presenta diversas maneras de extraer y analizar la data contenida.
15
características de aquel país, entonces, existirá una tabla que contenga todas las
características del país, y otra tabla contendrá el detalle de cada capital (figura 7).
Lo anterior evita que todo sea una gigante tabla llena de información. Luego, estos
datos son leídos y analizados por los softwares computacionales SQL, donde SQL
corresponde a la estructura sintáctica y semántica para extraer este tipo de
información. Entre estos se encuentran bases de datos como MS, SQL, ORACLE,
MySQL, POSTGRES.
16
Tipos de datos
Variables
17
Programación estadística
Git
Branch
18
Figura 9: Ramas de trabajo en GIT
Git-Flow
19
Figura 10: Flujo para el versionamiento de tareas.
Source Tree
20
RStudio
Un algoritmo es cualquier proceso computacional que toma algún set de valores, como input
y produce un resultado con valor o valores residuales, también conocidos como outputs.
Entonces un algoritmo es una secuencia de pasos computacionales que convierten un input
en un output.
21
Ejercicio 1: Ejercicio del Granjero
¿Cómo un granjero puede cruzar al otro lado del río una oveja, un lobo, y un arbusto, usando
una canoa, si la canoa sólo puede soportar el peso de uno de ellos?
22
Operadores
Es un símbolo que indica una operación matemática la cual se llevará a cabo en los
algoritmos que se crearán. Estas pueden ser:
• Negación: Sirve para convertir un código en su inverso lógico sin necesidad de escribirlo
a la inversa, para ello se utiliza un signo de exclamación (!). Por ejemplo, !(TRUE) ->
FALSE.
23
• Conjunción: También conocido como “y”, es representado por “&&” en R. Respecto a
su funcionamiento, esta entrega “TRUE” cuando todas las pruebas lógicas son
verdaderas y “FALSE” cuando al menos una de ellas es falsa. Por ejemplo, TRUE &&
FALSE -> FALSE.
• Comparación: También conocidos como operadores relacionales que sirven para tomar
decisiones mediante comparaciones (>, <, ==, !=, etc). Al utilizarlos el resultado obtenido
es un valor booleano.
• Aritméticos: Son aquellos que se usan para manipular datos enteros y/o reales. Existen
dos tipos, unarios y binarios, el primero es utilizado para dar valoración positiva o
negativa a los datos y el segundo para realizar cálculos entre 2 expresiones ( +, -, *, /,
%, etc).
Funciones
Es una estructura que realiza tareas dentro de un programa, recibiendo valores de entrada
y entrega valores de salida, bajo esta definición existen 2 tipos de funciones:
24
• Creadas: RStudio ofrece la posibilidad de crear funciones a conveniencia, estas se
forman a través de la función “function”, la que requiere variables y las operaciones a
ejecutar (figura 13). Es importante que cada función sea nombrada de manera clara en
relación con su objetivo.
Para la realización de una función es necesario conocer una receta de diseño y para esto
es necesario saber:
Figura 13: Ejemplo para la creación de una función que entregue el área de un círculo9.
25
Condicionales
26
Figura 15: Sintaxis en R y diagrama representativo de la estructura condicional IF-ELSE
● Condicional Múltiple: Es una estructura más compleja que se rige por IF- ELSE IF-
ELSE. En este se verifica la primera condición, si esta se cumple, se ejecuta la primera
instrucción, de lo contrario, pasa a la segunda condición, corroborando si esta se cumple o
no, realizando el mismo proceso que la anterior y en caso que ninguna se cumpla se ejecuta
la tercera instrucción.
27
Figura 16: Sintaxis en R de la estructura condicional múltiple.
Secuencias
Ejemplo 4: Secuencias en R
1:10 resulta los números 1,2,3,4,5…..10
10:1 resulta los números 10,9,8,7….1
28
Vectores y listas
Los vectores son la estructura más sencilla que se puede realizar en R, en la que se guardan
uno o más datos de un mismo tipo, es decir, no se pueden mezclar datos de diversas
tipologías, es por ello que son nombrados como vectores numéricos, de cadena de texto,
lógicos o secuenciales. Para guardar y crear un vector se requiere asignar a una variable
el comando “c(dato, dato)”, según la sintaxis de R, donde “dato” es el número, texto o
booleano que quiere agregar al vector.
Ejemplo 5:
# Cree un for que recorra los días de la semana y dos vectores que almacenen los días
de la semana y fines de semana (sábado y domingo).
#Se crea vector vacío para días de la semana y otro para fin de semana
diassemana <- c()
diasfindesemana <- c()
#Se crea un loop, donde su i es nombrado como días, los cuales se encuentran en vector
#”semana”. Este for recorrerá dicho vector y le asignará lo días correspondientes a los
#vectores vacíos que se crearon fuera del loop
for(dias in semana){
if(dias=="sabado"||dias=="domingo"){
diasfindesemana <- c(dias,diasfindesemana)
}else{
diassemana <- c(dias,diassemana)}
}
print(diassemana)
print(diasfindesemana)
29
Por otro lado, las listas son similares a los vectores, pero se diferencian en que los
elementos contenidos pueden tener diferentes tipos, es decir, se pueden mezclar datos
numéricos, caracteres, secuencias, entre otros. La sintaxis en R para guardar y crear una
lista consiste en otorgar un nombre y a él asignarle “list(número, “palabra”)”.
Ejemplo 6:
Dataframes
Un dataframe es similar a una hoja de cálculo con filas y columnas. Principalmente sirven
para almacenar vectores, listas o bases de datos con las que se puede trabajar en R. Para
que estas mantengan cierto orden que permita procesar fácilmente su información, es
necesario que las columnas representen cada una de las variables, y las filas cada una de
sus observaciones. Para guardar y crear un dataframe, la sintaxis es “data.frame()”
asignada a un nombre. Cabe destacar que en el contenido de aquella sintaxis se pueden
adjuntar estructuras de datos ya creadas, otorgándoles un nombre que saldrá en los índices
de filas y columnas.
30
Ejemplo 7:
# Ver el DataFrame
View(autos)
For y loop
31
Figura 17: Estructura para un LOOP.
32
En el ejemplo 9, se le indica al For que “i” será un valor desde el 1 hasta el largo (comando
length) de una lista con sintaxis equivalente a “ListaDeNumeros <- list(1, 5), es decir, el For
recorrerá su contenido y dará como resultado la frase “cuento nº misisipis” al igual que en
el ejemplo anterior.
Por ejemplo, los browser o buscadores (Google Chrome, Mozilla, Firefox, etc.) reciben
documentos HTML en un servidor, que puede ser local o web, y utilizando “Tags” lo
transforman en otros recursos multimedia, como imágenes, videos, gif, textos coloridos,
entre otros.
HTML se conforma de elementos, que son los bloques que forman las páginas, que a través
de esta estructura se pueden incorporar desde imágenes interactivas, hasta tipos de textos
como encabezados, párrafos, títulos, links, notas y otros. Estos elementos son delimitados
por los ya mencionados “tags”, usando los “Angle Brackets” (</>).
Tags
Son etiquetas o instrucciones que se le entregan al navegador y son utilizados como guía
para la realización de funciones. Estos pueden tener un atributo, es decir, pueden agregar
características como “Cuadro de Texto”, “Cuadro de Contraseña”, “Botones”, etc.
33
Ejemplo 10: Esquema de un tag
<nombre-de-elemento atributo="valor">Contenido</nombre-de-elemento>
<h1></h1>
<h2></h2>
<h3></h3>
<h4></h4>
<h5></h5>
<h6></h6>
34
• Espacio de división: Es un Tag que especifica el lugar donde se desea mostrar la
información, imagen, video, etc. A dicho Tag se le asigna un nombre que
posteriormente será utilizado como referencia para realizar extracciones de datos.
Estas divisiones también pueden ser utilizadas para dar formato en conjunto con los
Style, que se verán en el siguiente apartado. Este espacio se representa de la
siguiente manera:
35
Ejemplo 11: Estructura de una tabla en HTML y su representación
• Styles: Son nomenclaturas que se utilizan para dar estilo a las estructuras de una
página web, estas pueden ser Tablas, Nodes (Cajas), Headings (Títulos), entre
otros. Considerando que el conocimiento de cada uno de los componentes de HTML
permite extraer información desde los sitios web, teniendo en cuenta que se les
asigna un nombre único a cada estructura para incorporar un estilo. Los métodos
utilizados son:
36
1. <elemento class=”nombre”>contenido </elemento>, en este se especifica el
elemento que va a ser alterado y se le otorga un nombre único.
<html>
<head>
<style> 🡪 Inicio de Style
.gris{ background-color: gray; } 🡪 Se establece el formato y se
.rojo{ background-color: red; } le asigna el elemento “gris”
#negro{ background-color: black; } Se establece el formato para “negro”
</style> 🡪 Finalización de espacio Style
</head>
<body>
<p class="gris">texto en gris</p> 🡪 Aplicando el style en nodo/caja “gris”
<p class="rojo">texto en rojo</p>
<p id="negro">texto en negro</p>
</body>
</html>
37
Web Scraping
Web Scraping es una técnica utilizada mediante programas de software para la extracción
de información no estructurada en sitios web, para esto se indaga en el protocolo HTTP de
aquellas páginas web y se busca extraer la información organizada en estos, ya sea en
tablas, nodes u otras cajas disponibles. El objetivo principal del Web Scraping es
transformar dicha información no estructurada de la web y convertirla en estructurada que
pueda ser almacenada en bases de datos y posteriormente analizada.
El programa a utilizar en este documento utiliza las <class> y <div id=” ”> para ubicar la
información dentro de la página y extraerla en el formato deseado. Este formato puede ser
tabla o nodes, donde estos últimos son cajas dentro de las páginas web en las que existe
información, por ejemplo, un botón que dice “Descargas” es un node que tiene dentro un
link y un texto.
Web Scraping en R se realiza principalmente a través de los paquetes llamados “rvest”,
“xml2” y “readr”. Inicialmente es necesario instalarlos, para luego activarlos utilizando los
comandos:
#Instalar paquetes
Install.packages('xml2')
install.packages('rvest')
#Activar paquetes
library('xml2')
library('rvest')
library('readr')
38
Código:
Respuesta:
Se utiliza un código para expresarle a R que debe acceder al sitio web y almacenar toda la
información en formato HTML que éste contiene, es decir, ingresa al URL y copia todo lo
que se encuentra en el apartado de “Inspeccionar sitio web” el cual aparece al situarse en
la página y presionar click derecho. Al hacer esto también reconoce tanto el “Head” como
su apartado “Body”, quienes, según lo visto en el apartado HTML, son las dos divisiones
más grandes que utiliza HTML. Además, recordar que “Head” posee el apartado de “Style”
que servirá para dar formato a los distintos atributos.
Código:
Respuesta:
Ahora es necesario ubicar el nombre del elemento (tabla, nodo, división, etc) donde se aloja
la información que se desea extraer. En este paso, es crucial la exactitud en dos aspectos:
39
1. Identificar con claridad el nombre del elemento que se desea extraer la información.
Si estuviera mal escrito, no funcionará. Este siempre se muestra en el código HTML
entre comillas (“”), para el ejemplo expuesto anteriormente se reconoce la tabla
llamada “incentivos”.
2. El medio a utilizar para obtener los datos, los cuales pueden ser dos:
Código:
Respuesta:
En este paso se ejecuta un código que busca identificar una estructura para extraer el dato
y ordenarlo dentro del programa, para ello se utiliza la nomenclatura “table” dentro de la
función, especificando así la estructura de tabla.
Código:
40
Respuestas:
Ahora se utiliza una función que extrae aquella tabla del HTML y la almacena en una
variable llamada “tabla”. Un dato importante es que esta función almacena dichas tablas o
datos en formato lista.
Código:
Finalmente, del paso anterior se obtiene una lista llamada “tabla” dentro de la cual está
almacenada la o las tablas que se desean extraer. En este caso particular sólo se extrajo
la primera, por esto ella se encuentra dentro de la lista como el elemento uno.
Por otra parte, para extraer tablas, se hace necesario identificar el número que le
corresponde a esta y así obtenerla como un elemento de la lista a través de su posición, es
decir, según la sintaxis de R se utiliza el doble corchete y dentro de estos irá el número del
elemento que le corresponda, de la siguiente manera:
41
Código:
Ejercicio aplicado
Ecoosfera es una página web que nace en un Laboratorio de Conciencia Digital, su objetivo
es expandir el conocimiento de información respecto a la sustentabilidad, creatividad y
nuevas formas de entender la realidad, para ello presentan noticias sobre Arte, Evolución,
Guía Gaia, Medio ambiente, Noticias, SCI-Innovación, Wellness, Columna especial.
10
El desarrollo completo se encuentra en el siguiente link https://github.com/ariamp21/Ecoosfera
42
html_nodes con el objetivo de acceder a los links de las categorías. A continuación, se
rescataron aquellos links a través de la función html_attr respecto a la última entrada.
Se crea un loop a través de un for, en el que su i será aquella variable contenedora de los
links por categoría. La idea de este for es extraer y limpiar los títulos de las noticias. Luego
se crean listas y data frame que servirán para guardar información obtenida con un nuevo
for, en este último se extrajo la cantidad de compartidos por categoría y red social. Además,
se guarda toda la información en csv mediante un write.csv.
Finalmente se crean data frames para cada categoría y se unen creando una base final
(DF), que será el producto de esta programación.
Script Ecoosfera
#install.packages("rvest")
library('rvest')
library('ggplot2')
#Guardando la página
paginaEcoosfera <- https://www.ecoosfera.com/
#Obteniendo links
paginaEcooA <- html_attr(paginaEcooNodes, "href")
print(paginaEcooA)
43
#Extracción de Títulos de las "Noticias" de cada categoría
for (i in paginaEcooA){
print(i)
lecturaEcoo <- read_html(i)
CategoriaEcoo <- html_text(html_nodes(lecturaEcoo,"title"))
print(CategoriaEcoo)
TituloEcoo <- html_text(html_nodes(lecturaEcoo,".entry-header"))
TituloEcoo <- gsub("\t","",TituloEcoo)
TituloEcoo <- gsub("\n","",TituloEcoo)
TituloEcoo <- gsub(" ","",TituloEcoo)
TituloEcoo <- gsub(" ","",TituloEcoo)
print(TituloEcoo)
}
for (i in paginaEcooA){
44
for (x in LinksNoticias){
lecturaLinks <- read_html(x)
Compartidos <- html_text(html_nodes(lecturaLinks, ".sha_box"))
Compartidos <- gsub("Shares","",Compartidos)
Compartidos <- as.numeric(Compartidos)
#Se crea dataframe con los valores necesitados para realizar la estadística descriptiva
#Se pone la información dentro de un data frame creado fuera del for para no perder los
datos
# El orden es el siguiente
# 1. Se crea un data frame vacío para luego incorporar la información necesaria de cada
categoría.
# 2. Se realizó data frame por separado según los 10 links por categoría que ofrece la
página.
# 3. Luego se adjuntó la tabla estRRSS la cual contiene los compartidos de cada categoría
por RRSS
# 4. Finalmente se unieron todos los datos respecto a los 90 links.
45
dfMA <- data.frame(links= unlist(ListaLinks[31:40]))
dfFinal <- rbind(dfFinal,dfMA)
Alcance y recomendaciones
Aplicar modelos de conteo de palabras como TF-IDF, determinando relaciones entre estas
identificando alguna correlación.
Aplicar Visualizaciones ad hoc a los datos extraídos, y que permitan interpretar las ideas
por si solas.
Continuar mejorando este documento con la idea que sea un material de estudio atingente
a las necesidades de los alumnos.
46
Referencias
Chean Wong, J. (2005). Ley de Moore, nanotecnología y nanociencias: síntesis y
modificación de nanopartículas mediante la implantación de iones. Revista digital de la
Universidad Nacional Autónoma de México, No.7, Vol.6, ISSN: 1607 - 60.
Sajwan, V., Yadav, V. y Dr.Haider, M. (2015). The Hadoop Distributed File System:
Architecture and Internals. International Journal of Combined Research & Development
(IJCRD). (3ª ed, Volumen 4).
Seaman J. y Tinti-Kane H. (2013). Social media for teaching and learning. Pearson Learnin
Solutions.
Recuperado de:
https://onlinelearningsurvey.com/reports/social-media-for-teaching-and-learning-2013-
report.pdf
Xindong W., Xingquan Z., Gong-Qing W. y Wei D. (2014). IEEE Transactions on
Knowledge and Data Engineering, Institute of Electrical and Electronics Engineers.
26(1),97-107. doi: 10.1109/TKDE.2013.109
47