Módulo 1 - Unidad 2

Actividad - Procesamiento distribuido de datos

Grupo 11

Hermilso Cruz

Michael Steven Morales F

Hernán A Tunjuelo Martínez

Definición y Delimitación del Problema

1. Contexto

Desde hace varios siglos uno de los principales métodos de comunicación de los seres humanos ha sido el texto escrito. Historias y conocimiento acumulados a lo largo del tiempo han sido transmitidos de generación en generación por medio de diarios informativos, revistas o libros.

Con el advenimiento de la era digital, el texto escrito ha tomado una mayor relevancia. Diariamente son miles de personas las que expresan sentimientos o posiciones políticas por medio de estados de Facebook o trinos de Twitter; y es a raíz de estas interacciones masivas que ocurren en las aplicaciones que las grandes empresas, dueñas de las mismas, se han dado cuenta de la importancia de los textos compartidos. Estos se convierten prácticamente en una mina de información que los empresarios pueden aprovechar para distintos objetivos como análisis de tendencias, análisis de sentimientos, verificación de los gustos de los usuarios con fines publicitarios, entre otros.

Por su parte, en el área investigativa, el conocimiento y los datos están diseminados en forma escrita a través de artículos en literatura científica y reportes técnicos. A su vez, la información también está diseminada de forma verbal a través de interacciones científicas en conferencias, seminarios y consultas [Friedman y Johnson], por lo que se vuelve indispensable el uso de un método con el que los investigadores puedan encontrar información valiosa en esta multitud de fuentes de información que se pueden encontrar a lo largo y ancho de la red.

El Procesamiento del Lenguaje Natural (NLP) aparece en escena como un área de las ciencias de la computación que busca la obtención de información a partir de textos escritos e incluso lenguaje hablado y donde el Machine Learning y la Lingüística Computacional son ampliamente usados [Vrah Shaj]. Uno de los tantos objetivos del NLP es la extracción de significado a partir de grandes volúmenes de texto: gramáticas formales que especifican relaciones entre unidades de texto y partes del habla como sustantivos, verbos o adjetivos [Chapman]. Para lograr esto, NLP internamente hace uso de la técnica conocida como Procesamiento de Texto, una de las formas de hacer procesamiento distribuido de datos.

Con el procesamiento de texto se busca realizar tareas como tokenización y conteo de palabras, análisis de textos, manipulación de textos y generación de textos. Algunos de los usos más frecuentes del procesamiento de textos son el análisis de temáticas donde se busca categorizar colecciones grandes de textos en temas; el análisis de sentimientos donde la meta principal es detectar los tonos emocionales de un texto de forma que se pueda clasificar en positivo, negativo o neutro; y la detección de intención donde el objetivo es detectar la intención de un texto, por ejemplo si determinado texto busca obtener información o busca realizar una compra o una venta.

2. Problema

Partiendo de lo planteado previamente, imagina que un profesional está realizando una investigación sobre determinado tema y quiere saber cuántas veces aparecen determinadas palabras claves en una publicación de carácter científico que piensa utilizar a modo de referencia bibliográfica en su propio trabajo investigativo. Teniendo en cuenta que el artículo puede llegar a tener entre 15 y 20 páginas sería complicado para el investigador contar por sí mismo las palabras por lo que desea usar una herramienta que le permita procesar el texto y realizar el conteo en un menor tiempo.

2.1. Hipótesis para el problema

2.1.1 Pregunta

¿Se puede generar un modelo de preprocesamiento de datos, convertir los datos categóricos (como texto o palabras) en un formato numérico e identificar las palabras más utilizadas de un documento escrito con la ayuda de un ecosistema como hadoop, un framework como spark y con un modelo MapReduce obtener unos resultados cercanos a los publicados en el sitio web “Español al Día” de las 500 palabras más utilizadas en el idioma español?

2.1.2 Hipótesis

El objetivo del ecosistema hadoop y el modelo MapReduce, es la capacidad de almacenar grandes volúmenes de datos, de recuperarse de errores de hardware y de gestionar datos de diferentes tipos con múltiples tareas de forma simultánea dándole valor a los datos. El sistema de archivos distribuidos HDFS, al igual que Spark el framework para el desarrollo de aplicaciones distribuidas, nos permiten generar un modelo de preprocesamiento de datos MapReduce permitiéndonos procesar grandes cantidades de datos en forma paralela dividiéndose las tareas en la fase de mapeo y la fase de reducción, agrupando así las palabras más utilizadas de un documento escrito en sólo segundos y su resultado ser coherente y cercano a la publicación de las 500 palabras más utilizadas en el español del sitio web “Español al día”.

3. Resolución del Problema

Para resolver el problema y una vez instalado en el equipo de cómputo portátil “Oracle VM VirtualBox”, corremos el Hortonworks Sandbox HDP 2.6.5

3.1. Inicio de Oracle VM VirtualBox

3.1.1. Inicio de sección HortanWorks SandBox

Al iniciarse la sección del HortonWorks SandBox, obtenemos el siguiente cdm

3.2. Inicio de sección en el explorador localhost:1080

En el explorador, localhost:1080, se ingresa el usuario raj_ops y el password raj_ops e ingresamos a la opción “ADVANCED HDP”

3.2.1. Inicio de AMBARI

En el AMBARI y localhost:8080 abrimos el ambiente virtual para acargar todos los servicios necesarios

3.2.2. Ambiente virtual AMBARI

Después de varios minutos, se activan o instalan todos los servios del ambiente AMBARI y elegimos HDFS

Ingresamos a la carpeta user

Ingresamos a la carpeta raj_ops

Creamos la carpeta mr y cargamos los archivos articulo.txt donde se encuentra el artículo “Nuevas tecnologías y educación” y mapreduce.py donde se encuentra el código escrito en python del MapReduce

Mapreduce.py

3.3. Inicio Simbolo del Sistema (cmd) en Windows

Accedemos por la terminal de Windows y abrimos el cmd agregamos la siguiente instrucción ssh -p 2222 con el password raj_ops

3.3.1. Accediendo y copiando carpetas

Para saber que directorios hay ingresamos hadoop fs -ls, copiamos los archivos que se encuentran el AMBARI de SandBox con la siguiente instrucción hadoop fs -copyToLocal mr, luego ingresamos a la carpeta copiada con cd mr/, he ingresamos como super-administradores con la instrucción su root

3.3.2. Instalando y modificando recursos

Se instala python con la instrucción yum install python-pip, se instala nano yum isntall nano-pip, se abre el mapreduce.py y se le agrega la línea # coding-utf 8

3.3.3. Instalando pip, pathlib y mrjob

Despúes de actualizar pip, se instala pathlib y mrjob

3.3.4. Actualizando pip

Se actualiza pip a la versión 9.0.3

3.3.5. Reinstalando mrjob versión 0.5.11

Luego, instalamos nuevamente el mrjob con la versión 0.5.11 con la instrucción pip install –ignore-installed mrjob==0.5.11

3.3.6. Utilizando el ecosistema de hadoop con modelo MapReduce

Por último, para utilizar el ecosistema de hadoop y con modelo MapReduce se ingresa la instrucción para utilizar el poder de hadoop utilizando los archivos articulo.txt donde se encuentra el artículo “Nuevas tecnologías y educación” y mapreduce.py donde se encuentra el código escrito en python del MapReduce

Con la siguiente instrucción corremos el modelo

python mapreduce.py -r hadoop –hadoop-streaming-jar /usr/hdp/current/hadoop-mapreduce-client/hadoop-streaming.jar articulo.txt

4. Solución del problema

Después de correr el código MpaReduce se optiene lo siguiente:

5. Verificación de la hipótesis elegida

Se da solución al problema propuesto mediante la comprobación de las hipótesis planteadas.

5.1. Instrucciones

Para realizar la verificación de la hipótesis se puede responder la siguiente pregunta:

Realiza una investigación sobre las palabras más usadas en el español.

¿Concuerda el resultado dado por cada herramienta con la investigación que hiciste?

5.2. Resultado

En la página web “Español al Día”, publican el siguiente artículo.

El Corpus de Referencia del Español Actual (CREA), un banco de datos de la Real Academia Española, determina las formas más frecuentes en idioma español sobre la base de un conjunto de textos, escritos y orales, de diversa procedencia. La última versión cuenta con casi 140.000 documentos y algo más de 154 millones de formas procedentes de textos de todos los países hispánicos y producidos entre 1975 y 2004.

De las 500 palabras, visualizamos las primeras 50 palabras, las que ocupan los primeros 10 puestos son las palabra De, La, Que, El, En, Y, A, Los, Se y Del.

Al realizar la búsqueda en el artículo elegido “Nuevas tecnologías y educación” formato .pdf, con la combinación de teclas control + F. Tecleamos la palabra que ocupa el puesto número 1 De

El resultado es que la palabra De se repite en el documento 315 veces, del 33, dentro 9, debe 5, debería 5.

Si comparamos el resultado obtenido en el punto “3. Solución del problema”, encontramos lo siguiente

Se evidencia que en todo el documento la palabra De es la que más se repite en el artículo elegido.

Al realizar la búsqueda de las primeras 10 palabras de las 500 más frecuentes en el documento “Nuevas tecnologías y educación” formato .pdf, se presenta el siguiente resultado.

Al realizar la búsqueda con el modelo MapReduce, se obtiene el mismo resultado

5.3. Conclusión Verificación de la hipótesis elegida

Respondiendo a la pregunta, ¿Concuerda el resultado dado por cada herramienta con la investigación que hiciste?.

La respuesta es si. Cuando confrontamos las primeras 10 palabras de las 500 palabras más frecuentes según el banco de datos de la Real Academia de Española, con las arrojadas por el modelo MapReduce para el artículo escogido, estas se ajustan a esta realidad aunque no en el mismo orden, si ocupan los primeros 10 lugares. Se puede afirmar que la herramienta utilizada del ecosistema Hadoop y MapReduce cumple con lo planteado en la hipótesis.

6. Crítica de la Hipótesis

6.1. Hipótesis

El objetivo del ecosistema hadoop y el modelo MapReduce, es la capacidad de almacenar grandes volúmenes de datos, de recuperarse de errores de hardware y de gestionar datos de diferentes tipos con múltiples tareas de forma simultánea dándole valor a los datos. El sistema de archivos distribuidos HDFS, al igual que Spark el framework para el desarrollo de aplicaciones distribuidas, nos permiten generar un modelo de preprocesamiento de datos MapReduce permitiéndonos procesar grandes cantidades de datos en forma paralela dividiéndose las tareas en la fase de mapeo y la fase de reducción, agrupando así las palabras más utilizadas de un documento escrito en sólo segundos y su resultado ser coherente y cercano a la publicación de las 500 palabras más utilizadas en el español del sitio web “Español al día”.

Al realizar todo el proceso recomendado para la utilización de las herramientas del ecosistema Hadoop junto al modelo MapReduce ejecutados en los puntos “3. Resolución del Problema” y “4. Solución del problema” y en el punto “5. Verificación de la hipótesis elegida”, evidenciar que la investigación hecha arroja resultados coherentes y cercanos a la publicación encontrada en el sitio web “Español al día”, se concluye que no se hacen ajustes a la hipótesis.

Grupo 11: Hermilso Cruz, Michael Steven Morales F, Hernán A Tunjuelo Martínez