GithubHelp home page GithubHelp logo

tet-project3's Introduction

Tópicos Especiales en Telemática Proyecto 3: Bigdata, Spark

Ambiente de ejecución

El proyecto se debe ejecutar en un cluster de Databricks Community

Notebook: ver

Metodologia: CRISP-DM

Cross Industry Standard Process for Data Mining

CRISP-DM divide el proceso de minería de datos en seis fases principales.

Las flechas en el diagrama indican las dependencias más importantes y frecuentes entre fases. El círculo exterior en el diagrama simboliza la naturaleza cíclica de la minería de datos en sí. Un proceso de minería de datos continúa después del despliegue de una solución. Las lecciones aprendidas durante el proceso pueden provocar nuevas preguntas de negocio, a menudo más centradas y posteriores procesos de minería de datos se beneficiarán de la experiencia de los anteriores.

Fases

  1. Entendimiento del negocio
  • Entender los requisitos y objetivos del proyecto.
  • Definición del problema de minería de datos.
  1. Entendimiento de los datos
  • Adquisición del dataset.
  • Exploración del dataset.
  1. Identificar las características de calidad de los datos.
  • Elección de los datos.
  • Preparación de los datos.
  • Limpieza de los datos.
  1. Modelado
  • Implementación en herramientas de Data Mining.
  1. Evaluación
  • Determinar si los resultados cumplen los objetivos del proyecto.
  • Identificar los temas que deben de ser cubiertos por el proyecto.
  1. Despliegue
  • Instalar el modelo.

Entendimiento del negocio

La minería o analítica de texto, son un conjunto de modelos, técnicas, algoritmos y tecnologías que permiten procesar texto de naturaleza NO ESTRUCTURADA.

La minería de texto (text mining) permite transformar el texto en una forma estructurada, de tal forma que facilite una serie de aplicaciones como Búsqueda en texto, relevancia de documentos, entendimiento natural del lenguaje (NLP), traducción automática entre idiomas, análisis de sentimientos, detección de tópicos entre muchas otras aplicaciones.

Quizás el procesamiento más sencillo de todos, sea el wordcount, el cual consiste en determinar la frecuencia de la palabra por documento o por todo el dataset.

Comprensión de los datos

El dataset comprende tres archivos CSV, compuestos por diversos artículos de diferentes periódicos y websites entre 2015 y 2016. Para cada artículo se tienen id, titulo, contenido, autor, url y fecha de publicación.

Preparación de datos

Se trabajó sobre el dataset all-the-news, el cual contiene 143000 noticias. Primero, se realizó la preparación de los datos a través del siguiente pre-procesamiento:

  1. Se borraron todos los caracteres especiales (. , % ( ) ‘ “ ...., mediante la expresión regular: '[^0-9a-zA-Z]+'
  2. Se borraron todas las stopwords haciendo uso de StopWordsRemover de Spark.
  3. Se borraron todas las palabras de longitud 1 mediante la expresión regular: '(?:^| )\w(?:$| )'

Búsqueda en índice invertido

Un índice invertido es un mecanismo orientado a palabras para indexación de documentos. El propósito de un índice invertido es permitir la rápida búsqueda en un texto completo, a un costo de procesamiento mayor cuando un documento se agrega a la base de datos. El índice invertido tendrá la frecuencia de cada palabra en el titulo+descripción.

Donde por cada palabra que se ingrese por teclado en el Notebook, se liste en orden descendente por frecuencia de palabra en el contenido de la noticia, las noticias más relevantes. El Índice invertido es una estructura de datos que contiene la siguiente estructura:

Screenshot

Agrupamiento de noticias

El agrupamiento de noticias permite a cualquier noticia identificar que otras noticias son similares.

Screenshot

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.