SlideShare une entreprise Scribd logo
1  sur  22
Télécharger pour lire hors ligne
Détecter et nettoyer le contenu générique
pendant la phase de collecte de donnés (SCRAP)
Qui suis-je ?
Benoit Chevillot
Gerant de Divioseo à Dijon
06 07 44 57 57
info@divioseo.fr
Automatisation web
Développement web
Applications mobiles
Améliorations de la performance
Maintenance Ecommerce
Qu’est ce que le contenu générique ?
In information technology, a boilerplate is a unit of writing that can be
reused over and over without change. By extension, the idea is sometimes
applied to reusable programming as in "boilerplate code." The term derives
from steel manufacturing, where boilerplate is steel rolled into large plates
for use in steam boilers
En HTML : les footers, headers, éléments de navigations, …
Les entités
nommées
Consiste à rechercher des objets
textuels (c'est-à-dire un mot, ou un
groupe de mots) catégorisables dans
des classes telles que noms de
personnes, noms d'organisations ou
d'entreprises, noms de lieux, quantités,
distances, valeurs, dates, etc.
Les stops words
Les mots vides (ou stop words, en
anglais) sont des mots qui sont tellement
communs qu'il est inutile de les indexer
ou de les utiliser dans une recherche. En
français, des mots vides évidents
pourraient être « le », « la », « de », « du »,
« ce »…
Un mot qui apparaît avec une fréquence
semblable dans chacun des textes de
la collection n'est pas discriminant,
ne permet pas de distinguer les textes les
uns par rapport aux autres.
Scrappers
Crawlers, spiders : nutch, spidr, scrapy
Pentest tools : arachni scanner
Saas : 80leg, botify, … (https://www.quora.com/What-are-the-best-web-
crawling-services)
Pourquoi
nettoyer ?
- Garder seulement le contenu
pertinent
- Ne pas parasiter les résultats
- Gagner de la place en
stockage
- Gagner en temps de traitement
- Eviter les problèmes
Pourquoi nettoyer ?
Quand faire les
nettoyages /
calculs ?
Pendant le scrap ou après le
scrap
Quand faire les nettoyages / calculs ?
Pendant : résultat temps réel, pas de cloisonnement entre les actions de
récupération et de traitement
Après : le post traitement permet de mener des actions d’extraction et
raffinage à posteriori, et donc de pouvoir utiliser des crawls existants comme
matière première
Que faire ? : les deux mon capitaine. Des opérations de nettoyage légère au
crawl (détection de langue, suppression du boilerplate) et opérations
intensives post crawl (calcul des cooccurences ou détection des entités
nommées pr exemple)
Technologies à disposition
Détection et nettoyage
Expressions
régulières
Les expressions rationnelles sont
issues des théories mathématiques des
langages formels des années 1940.
Les expressions rationnelles sont
aujourd’hui utilisées par les
informaticiens dans l’édition et le
contrôle de texte ainsi que dans la
manipulation des langues formelles que
sont les langages de l’informatique.
from blog.it.edu
Regex PHP
autosplog
Regex Ruby
YTG
Dom parser
Parcourir le Document Object Model
pour exclure / garder seulement les
chemins intéressants
Xpath : //p[contains(@class, ‘mytext’)]

Css query : p.mytext
Quelques outils :
PHP Simple HTML DOM
Ruby Nokogiri
from wp2x.com
Chercher /
remplacer
Fonctionne partout : ctrl + F même
dans word !
Pour être sérieux en ligne de
commande :
Awk, sed
N’importe quel éditeur de code (vim,
notepad, sublimetext, coda, …)
Les frameworks et Apis
Plusieurs techniques en oeuvre : densité de liens, taille des séries
de mots, « footprint » de balises
Boilerpipe
https://github.com/kohlschutter/boilerpipe
https://github.com/search?utf8=%E2%9C%93&q=boilerpipe
Très performant en anglais et langues latines
JusText
Python / C++ / GO
https://github.com/miso-belica/jusText
Le meilleur en langues ‘exotiques’
Readability (arc 90)
Nombreux fork dans tous les languages pour la v1
https://github.com/masukomi/ar90-readability
Très peu performant
Name entity Recognizer (stanford)
Codé en java : http://nlp.stanford.edu/software/CRF-NER.shtml
Permet « d’entrainer » le système pour améliorer les détections
Détection de noms propre, sociétés, dates, pays, villes
Conseils
Utilisez plusieurs méthodes pour vos nettoyages et stockez les résultats (voir chainez les)
Pensez aux blacklists de mots clef (rappelez vous des voyants)
Supprimer les dates et série de chiffres (sauf si vous minez des numéros de téléphone bien sur)
Gardez les séries de mots (+ ponctuation) de plus de 6 mots.
Focalisez vous sur les balises de « type » texte, Hn, p, blockquote
Utilisez un ‘réparateur’ de code HTML comme tidy par exemple, vous améliorerez ainsi le taux d’extraction
Utilisez le bon charset lors de votre nettoyage, détectez le au préalable (extraction de meta charset) sinon vous
risquez la galère utf-8
Gardez si possible une version brut de la source de données pour faire un post traitement non anticipé

Contenu connexe

En vedette

Grc sap next evaluation of internal audit
Grc sap next evaluation of internal auditGrc sap next evaluation of internal audit
Grc sap next evaluation of internal audit
SARVJEET KAUSHAL
 
Copywriting, Conversion, and Your Customer's Comfort Zone
Copywriting, Conversion, and Your Customer's Comfort ZoneCopywriting, Conversion, and Your Customer's Comfort Zone
Copywriting, Conversion, and Your Customer's Comfort Zone
Kissmetrics on SlideShare
 
McCain.Reply Brief.Brief Sent to Court
McCain.Reply Brief.Brief Sent to CourtMcCain.Reply Brief.Brief Sent to Court
McCain.Reply Brief.Brief Sent to Court
Gustav Skurdal
 
How SMBs can win in Competitive SEO Sectors at #SAScon #SAScon2015
How SMBs can win in Competitive SEO Sectors at #SAScon #SAScon2015How SMBs can win in Competitive SEO Sectors at #SAScon #SAScon2015
How SMBs can win in Competitive SEO Sectors at #SAScon #SAScon2015
Aleyda Solís
 

En vedette (18)

Técnicas de comunicación creativa en el aula materiales
Técnicas de comunicación creativa en el aula materialesTécnicas de comunicación creativa en el aula materiales
Técnicas de comunicación creativa en el aula materiales
 
Mann-India_SAP-Offering_Extended-WM
Mann-India_SAP-Offering_Extended-WMMann-India_SAP-Offering_Extended-WM
Mann-India_SAP-Offering_Extended-WM
 
Searchlove London 2016 - The Changing Landscape of Mobile Search - Bridget Ra...
Searchlove London 2016 - The Changing Landscape of Mobile Search - Bridget Ra...Searchlove London 2016 - The Changing Landscape of Mobile Search - Bridget Ra...
Searchlove London 2016 - The Changing Landscape of Mobile Search - Bridget Ra...
 
Grc sap next evaluation of internal audit
Grc sap next evaluation of internal auditGrc sap next evaluation of internal audit
Grc sap next evaluation of internal audit
 
Copywriting, Conversion, and Your Customer's Comfort Zone
Copywriting, Conversion, and Your Customer's Comfort ZoneCopywriting, Conversion, and Your Customer's Comfort Zone
Copywriting, Conversion, and Your Customer's Comfort Zone
 
#PRlife: The Inside Scoop
#PRlife: The Inside Scoop#PRlife: The Inside Scoop
#PRlife: The Inside Scoop
 
Keyword Research in a Mobile World #PubconAustin
Keyword Research in a Mobile World #PubconAustinKeyword Research in a Mobile World #PubconAustin
Keyword Research in a Mobile World #PubconAustin
 
McCain.Reply Brief.Brief Sent to Court
McCain.Reply Brief.Brief Sent to CourtMcCain.Reply Brief.Brief Sent to Court
McCain.Reply Brief.Brief Sent to Court
 
SEO en Estrategia UX en #UXFighters #EXF #SEOUX
SEO en Estrategia UX en #UXFighters #EXF #SEOUXSEO en Estrategia UX en #UXFighters #EXF #SEOUX
SEO en Estrategia UX en #UXFighters #EXF #SEOUX
 
Las Claves del SEO en 2015 en #PlatziConf
Las Claves del SEO en 2015  en #PlatziConfLas Claves del SEO en 2015  en #PlatziConf
Las Claves del SEO en 2015 en #PlatziConf
 
SEO para Contenido #ChileDigital
SEO para Contenido #ChileDigital SEO para Contenido #ChileDigital
SEO para Contenido #ChileDigital
 
How SMBs can win in Competitive SEO Sectors at #SAScon #SAScon2015
How SMBs can win in Competitive SEO Sectors at #SAScon #SAScon2015How SMBs can win in Competitive SEO Sectors at #SAScon #SAScon2015
How SMBs can win in Competitive SEO Sectors at #SAScon #SAScon2015
 
Cross-Functional SEO at #SearchFest
Cross-Functional SEO at #SearchFestCross-Functional SEO at #SearchFest
Cross-Functional SEO at #SearchFest
 
Strategical SEO Audits that Drive Growth at #DigitalOlympus
Strategical SEO Audits that Drive Growth at #DigitalOlympusStrategical SEO Audits that Drive Growth at #DigitalOlympus
Strategical SEO Audits that Drive Growth at #DigitalOlympus
 
Enterprise SEO Strategies and the Art of Resource Alignment
Enterprise SEO Strategies and the Art of Resource AlignmentEnterprise SEO Strategies and the Art of Resource Alignment
Enterprise SEO Strategies and the Art of Resource Alignment
 
Cross Functional SEO at #UKMarketingDay
Cross Functional SEO at #UKMarketingDay Cross Functional SEO at #UKMarketingDay
Cross Functional SEO at #UKMarketingDay
 
Competitions for Bloggers - Case Study. Marketing Festival 2015 #mktfest
Competitions for Bloggers - Case Study. Marketing Festival 2015 #mktfestCompetitions for Bloggers - Case Study. Marketing Festival 2015 #mktfest
Competitions for Bloggers - Case Study. Marketing Festival 2015 #mktfest
 
Optimising YouTube, Facebook and On-site Video
Optimising YouTube, Facebook and On-site Video Optimising YouTube, Facebook and On-site Video
Optimising YouTube, Facebook and On-site Video
 

Similaire à Détecter et nettoyer le contenu générique

03 Web Semantique
03  Web Semantique03  Web Semantique
03 Web Semantique
badirh
 
Gestion_d_un_projet_Web_e_commerce_Piece (1).pdf
Gestion_d_un_projet_Web_e_commerce_Piece (1).pdfGestion_d_un_projet_Web_e_commerce_Piece (1).pdf
Gestion_d_un_projet_Web_e_commerce_Piece (1).pdf
SofianeHassine2
 
Gestion_d_un_projet_Web_e_commerce_Piece.pdf
Gestion_d_un_projet_Web_e_commerce_Piece.pdfGestion_d_un_projet_Web_e_commerce_Piece.pdf
Gestion_d_un_projet_Web_e_commerce_Piece.pdf
SofianeHassine2
 
Moteurs de recherche et web sémantique
Moteurs de recherche et web sémantiqueMoteurs de recherche et web sémantique
Moteurs de recherche et web sémantique
Antidot
 

Similaire à Détecter et nettoyer le contenu générique (20)

03 Web Semantique
03  Web Semantique03  Web Semantique
03 Web Semantique
 
Acquia et Arte : Drupal Camp Paris 2013
Acquia et Arte : Drupal Camp Paris 2013Acquia et Arte : Drupal Camp Paris 2013
Acquia et Arte : Drupal Camp Paris 2013
 
Réussir son projet Drupal
Réussir son projet DrupalRéussir son projet Drupal
Réussir son projet Drupal
 
Microformats - Métad0nnées pour Humains & Machines
Microformats - Métad0nnées pour  Humains & MachinesMicroformats - Métad0nnées pour  Humains & Machines
Microformats - Métad0nnées pour Humains & Machines
 
Arte utilise Acquia Cloud pour héberger ses plateformes web
Arte utilise Acquia Cloud pour héberger ses plateformes webArte utilise Acquia Cloud pour héberger ses plateformes web
Arte utilise Acquia Cloud pour héberger ses plateformes web
 
Presentation langage go_19022015
Presentation langage go_19022015Presentation langage go_19022015
Presentation langage go_19022015
 
Introduction à la veille sur le web
Introduction à la veille sur le webIntroduction à la veille sur le web
Introduction à la veille sur le web
 
Alfresco Meetup - ETL Connector & Talend
Alfresco Meetup - ETL Connector & TalendAlfresco Meetup - ETL Connector & Talend
Alfresco Meetup - ETL Connector & Talend
 
Cerberus Testing
Cerberus TestingCerberus Testing
Cerberus Testing
 
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
 
Evolutions et nouveaux outils SEO
Evolutions et nouveaux outils SEOEvolutions et nouveaux outils SEO
Evolutions et nouveaux outils SEO
 
Du texte à la connaissance : annotation sémantique et peuplement d'ontologie ...
Du texte à la connaissance : annotation sémantique et peuplement d'ontologie ...Du texte à la connaissance : annotation sémantique et peuplement d'ontologie ...
Du texte à la connaissance : annotation sémantique et peuplement d'ontologie ...
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !
 
Gestion_d_un_projet_Web_e_commerce_Piece (1).pdf
Gestion_d_un_projet_Web_e_commerce_Piece (1).pdfGestion_d_un_projet_Web_e_commerce_Piece (1).pdf
Gestion_d_un_projet_Web_e_commerce_Piece (1).pdf
 
Gestion_d_un_projet_Web_e_commerce_Piece.pdf
Gestion_d_un_projet_Web_e_commerce_Piece.pdfGestion_d_un_projet_Web_e_commerce_Piece.pdf
Gestion_d_un_projet_Web_e_commerce_Piece.pdf
 
Introduction à la fouille de textes et positionnement de l'offre logicielle
Introduction à la fouille de textes et positionnement de l'offre logicielleIntroduction à la fouille de textes et positionnement de l'offre logicielle
Introduction à la fouille de textes et positionnement de l'offre logicielle
 
code4lib 2011 : choses vues et entendues par l'ABES
code4lib 2011 : choses vues et entendues par l'ABEScode4lib 2011 : choses vues et entendues par l'ABES
code4lib 2011 : choses vues et entendues par l'ABES
 
Moteurs de recherche et web sémantique
Moteurs de recherche et web sémantiqueMoteurs de recherche et web sémantique
Moteurs de recherche et web sémantique
 
Captronic grenoble 01102014 version presentee
Captronic grenoble 01102014 version presenteeCaptronic grenoble 01102014 version presentee
Captronic grenoble 01102014 version presentee
 
Support de formation à HAL (théorie et pratique)
Support de formation à HAL (théorie et pratique)Support de formation à HAL (théorie et pratique)
Support de formation à HAL (théorie et pratique)
 

Détecter et nettoyer le contenu générique

  • 1. Détecter et nettoyer le contenu générique pendant la phase de collecte de donnés (SCRAP)
  • 2. Qui suis-je ? Benoit Chevillot Gerant de Divioseo à Dijon 06 07 44 57 57 info@divioseo.fr Automatisation web Développement web Applications mobiles Améliorations de la performance Maintenance Ecommerce
  • 3. Qu’est ce que le contenu générique ? In information technology, a boilerplate is a unit of writing that can be reused over and over without change. By extension, the idea is sometimes applied to reusable programming as in "boilerplate code." The term derives from steel manufacturing, where boilerplate is steel rolled into large plates for use in steam boilers En HTML : les footers, headers, éléments de navigations, …
  • 4. Les entités nommées Consiste à rechercher des objets textuels (c'est-à-dire un mot, ou un groupe de mots) catégorisables dans des classes telles que noms de personnes, noms d'organisations ou d'entreprises, noms de lieux, quantités, distances, valeurs, dates, etc.
  • 5. Les stops words Les mots vides (ou stop words, en anglais) sont des mots qui sont tellement communs qu'il est inutile de les indexer ou de les utiliser dans une recherche. En français, des mots vides évidents pourraient être « le », « la », « de », « du », « ce »… Un mot qui apparaît avec une fréquence semblable dans chacun des textes de la collection n'est pas discriminant, ne permet pas de distinguer les textes les uns par rapport aux autres.
  • 6. Scrappers Crawlers, spiders : nutch, spidr, scrapy Pentest tools : arachni scanner Saas : 80leg, botify, … (https://www.quora.com/What-are-the-best-web- crawling-services)
  • 7. Pourquoi nettoyer ? - Garder seulement le contenu pertinent - Ne pas parasiter les résultats - Gagner de la place en stockage - Gagner en temps de traitement - Eviter les problèmes
  • 9. Quand faire les nettoyages / calculs ? Pendant le scrap ou après le scrap
  • 10. Quand faire les nettoyages / calculs ? Pendant : résultat temps réel, pas de cloisonnement entre les actions de récupération et de traitement Après : le post traitement permet de mener des actions d’extraction et raffinage à posteriori, et donc de pouvoir utiliser des crawls existants comme matière première Que faire ? : les deux mon capitaine. Des opérations de nettoyage légère au crawl (détection de langue, suppression du boilerplate) et opérations intensives post crawl (calcul des cooccurences ou détection des entités nommées pr exemple)
  • 12. Expressions régulières Les expressions rationnelles sont issues des théories mathématiques des langages formels des années 1940. Les expressions rationnelles sont aujourd’hui utilisées par les informaticiens dans l’édition et le contrôle de texte ainsi que dans la manipulation des langues formelles que sont les langages de l’informatique. from blog.it.edu
  • 15. Dom parser Parcourir le Document Object Model pour exclure / garder seulement les chemins intéressants Xpath : //p[contains(@class, ‘mytext’)]
 Css query : p.mytext Quelques outils : PHP Simple HTML DOM Ruby Nokogiri from wp2x.com
  • 16. Chercher / remplacer Fonctionne partout : ctrl + F même dans word ! Pour être sérieux en ligne de commande : Awk, sed N’importe quel éditeur de code (vim, notepad, sublimetext, coda, …)
  • 17. Les frameworks et Apis Plusieurs techniques en oeuvre : densité de liens, taille des séries de mots, « footprint » de balises
  • 19. JusText Python / C++ / GO https://github.com/miso-belica/jusText Le meilleur en langues ‘exotiques’
  • 20. Readability (arc 90) Nombreux fork dans tous les languages pour la v1 https://github.com/masukomi/ar90-readability Très peu performant
  • 21. Name entity Recognizer (stanford) Codé en java : http://nlp.stanford.edu/software/CRF-NER.shtml Permet « d’entrainer » le système pour améliorer les détections Détection de noms propre, sociétés, dates, pays, villes
  • 22. Conseils Utilisez plusieurs méthodes pour vos nettoyages et stockez les résultats (voir chainez les) Pensez aux blacklists de mots clef (rappelez vous des voyants) Supprimer les dates et série de chiffres (sauf si vous minez des numéros de téléphone bien sur) Gardez les séries de mots (+ ponctuation) de plus de 6 mots. Focalisez vous sur les balises de « type » texte, Hn, p, blockquote Utilisez un ‘réparateur’ de code HTML comme tidy par exemple, vous améliorerez ainsi le taux d’extraction Utilisez le bon charset lors de votre nettoyage, détectez le au préalable (extraction de meta charset) sinon vous risquez la galère utf-8 Gardez si possible une version brut de la source de données pour faire un post traitement non anticipé