Détecter et nettoyer le contenu générique
-
Upload
benoit-chevillot -
Category
Internet
-
view
969 -
download
2
Transcript of Détecter et nettoyer le contenu générique
Détecter et nettoyer le contenu génériquependant la phase de collecte de donnés (SCRAP)
Qui suis-je ?
Benoit Chevillot
Gerant de Divioseo à Dijon
06 07 44 57 57
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éesConsiste à 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 wordsLes 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 à dispositionDétection et nettoyage
Expressions régulièresLes 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 parserParcourir 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 /remplacerFonctionne 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 ApisPlusieurs 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
ConseilsUtilisez 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é