Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Machine Learning en la Extraccion de Datos Web

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for matiskay matiskay
October 09, 2017

Machine Learning en la Extraccion de Datos Web

* Autopager
* Soft404 Classifier
* Form and fields Classifier
* Similarity Between HTML pages

Avatar for matiskay

matiskay

October 09, 2017
Tweet

More Decks by matiskay

Other Decks in Programming

Transcript

  1. Acerca de Mi • Ingeniero de Software en GovPredict •

    Organizacion del Data Science Meetup • Mucho interes en Machine Learning y Ciencia de Datos • Trabajando en Extraccion de Datos desde el 2012 • Vivo en Arequipa • matiskay en Twitter, Gmail y Github.
  2. Casos de Uso • Comparacion de precios • Lead Generation

    • Real State • Company Reputation • Customer Behaviour • Tracking Legislation • Hiring
  3. Extraccion de Caracteristicas • ¿Que caracteristicas podemos usar de una

    pagina web? • Transformar arboles HTML en HTML tokens es decir la informacion de la posicion en el HTML es preservada. • Agrupar grupos en textos. • Representar el HTML como una secuencia de tags. • Anotar informacion usando https://github.com/ scrapinghub/webstruct
  4. Soft404 • Pagina que no retorna un codigo 404 (Pagina

    no encontrada / Contenido no disponible). • https://github.com/TeamHG-Memex/soft404 • Entrenado en 120k paginas de 25k dominios, con una razon 1/3. • Usando 10-fold-cross validation, ROC AUC es 0.995 +/- 0.002 • SGDClassifier + Logistic Regression
  5. Paginacion • Detectar y clasificar links de paginacion • https://github.com/TeamHG-Memex/autopager

    • Usa Conditional Random Fields. • Clasificar los links en • PREV: Link a la pagina previa • PAGE: Link a una pagina especifica • NEXT: Link a la proxima pagina • OTHER: No es link de un paginado • Features • Texto del Link. • La clase del CSS. • Partes de la URL. • Contexto de la izquierda y derecha. • La pagina es representada como una secuencia de elementos <a>. Solo <a> con href no vacio son considerados en la secuencia.
  6. Formularios Web • Clasificar que tipo de formulario que se

    encuentra en una pagina web (login, signup, search, mailing list, etc) • https://github.com/TeamHG-Memex/ Formasaurus • Formsaurus usa 2 modelos uno para detectar formularios y otro para detectar el tipo de campo. • El modelo fue entrenado en 1000+ formularios anotados.
  7. Formularios Web • Deteccion de Formularios: Usa Regresion Logistica. •

    Features • POST/GET? • Texto en los botones de submit. • Nombres de las clases y los IDS. • Etiquetas de los inputs. • Presencia de algunos strings en las urls.
  8. Formularios Web • Deteccion de los tipos de Campos: Usa

    Conditional Random Field. Todos los campos en el formulario es una secuencia donde el orden importa. • Features • El tipo de formulario predecido por el clasificador de formularios. • El tag del campo. • El valor del campo • El texto anterior y posterior del campo • El css y el ID del campo • El texto de la etiqueta
  9. Similaridad entre paginas Web • Las paginas web se pueden

    clasificar por estructura (DOM Tree) y por el Estilo (CSS).
  10. Similaridad de Estilo • Calcula las classes de las paginas

    web y luego calcula la similaridad de Jaccard para ver que tan similares son las paginas web en terminos de estilos. • El numero de classes repetidas no afecta la metrica • Documentos que tiene el mismo conjunto de clases poseen una mayor metrica. • La similaridad de estilo puede causar falsos positivos.
  11. • Detect and extract listing data from HTML page https://github.com/scrapinghub/mdr

    • Automatic Item List Extraction: https://github.com/ scrapinghub/aile • Extract structured data from HTML page: https:// github.com/scrapinghub/pydepta Otras Bibliotecas Interesantes