Web Data Mining - Maria Malek
Transcription
Web Data Mining - Maria Malek
Web Data Mining Wrapper Induction Maria Malek Options GL, ISICO & IdSI EISTI Web Data Mining – p. 1/2 Fouille des Données de la Toile ?!! Découverte de la connaissance à partir des hyperliens. Web Structure Mining Web Data Mining – p. 2/2 Fouille des Données de la Toile ?!! Découverte de la connaissance à partir des hyperliens. Web Structure Mining Web Content Mining Analyse des contenus des pages web : Classer et/ou segmenter les pages selon le thème Chercher des descriptions de produits, etc. Web Data Mining – p. 2/2 Fouille des Données de la Toile ?!! Découverte de la connaissance à partir des hyperliens. Web Structure Mining Web Content Mining Analyse des contenus des pages web : Classer et/ou segmenter les pages selon le thème Chercher des descriptions de produits, etc. Web Usage Mining Analyse les traces de navigations des internautes (logs) Algorithmes d’analyse et de traitement de séquences Besoin d’une phase de pré-traitement Web Data Mining – p. 2/2 Extraction des données structurées Deux problèmes : Web Data Mining – p. 3/2 Extraction des données structurées Deux problèmes : 1. Extraction de l’information à partir du texte (langage naturel) Web Data Mining – p. 3/2 Extraction des données structurées Deux problèmes : 1. Extraction de l’information à partir du texte (langage naturel) 2. Extraction des données structurées en enregistrements Web Data Mining – p. 3/2 Extraction des données structurées Deux problèmes : 1. Extraction de l’information à partir du texte (langage naturel) 2. Extraction des données structurées en enregistrements Techniques utilisées : "Wrapper"? Web Data Mining – p. 3/2 Extraction des données structurées Deux problèmes : 1. Extraction de l’information à partir du texte (langage naturel) 2. Extraction des données structurées en enregistrements Techniques utilisées : "Wrapper"? Pourquoi ? Web Data Mining – p. 3/2 Extraction des données structurées Deux problèmes : 1. Extraction de l’information à partir du texte (langage naturel) 2. Extraction des données structurées en enregistrements Techniques utilisées : "Wrapper"? Pourquoi ? 1. Extraction des champs voulus, Web Data Mining – p. 3/2 Extraction des données structurées Deux problèmes : 1. Extraction de l’information à partir du texte (langage naturel) 2. Extraction des données structurées en enregistrements Techniques utilisées : "Wrapper"? Pourquoi ? 1. Extraction des champs voulus, 2. Intégration de plusieurs ressources : Services, meta-recherche, comparaisons etc. Web Data Mining – p. 3/2 Extraction des données structurées - "Wrapp Trois approches : Web Data Mining – p. 4/2 Extraction des données structurées - "Wrapp Trois approches : Programmeur écrit le programme en utilisant des patrons déjà spécifiés et leurs interfaces. Approche manuelle, 1990 Web Data Mining – p. 4/2 Extraction des données structurées - "Wrapp Trois approches : Programmeur écrit le programme en utilisant des patrons déjà spécifiés et leurs interfaces. ”Wrapper induction”, 1995-1996 Une approche d’apprentissage supervisé semi automatique, extraire des règles à partir d’une collection de pages étiquetées manuellement Approche manuelle, 1990 Web Data Mining – p. 4/2 Extraction des données structurées - "Wrapp Trois approches : Programmeur écrit le programme en utilisant des patrons déjà spécifiés et leurs interfaces. ”Wrapper induction”, 1995-1996 Une approche d’apprentissage supervisé semi automatique, extraire des règles à partir d’une collection de pages étiquetées manuellement Extraction automatique, 1998-. Approche non supervisée,Trouver automatiquement les patrons à extraire des données, Approche manuelle, 1990 Web Data Mining – p. 4/2 DEUX Types de pages Les pages listes Web Data Mining – p. 5/2 DEUX Types de pages Les pages listes Les pages détails Web Data Mining – p. 5/2 Modèle des données Des relations imbriquées Web Data Mining – p. 6/2 Modèle des données Des relations imbriquées Les types sont définis ainsi : Un ensemble de types de base B = {B1 , B2 , ..., Bk }, dom(Bi )est l’ensemble de constante Si T1 , T2 , ..., Tn sont des types de base ou des types ensembles alors [T1 , T2 , ..., Tn ] est un type tuple avec dom([T1 , T2 , ..., Tn ]) = {[v1 , v2 , ..., vn ], vi ∈ dom(Ti )} Si T est un type tuple alors {T } est un type ensemble Web Data Mining – p. 6/2 Modèle des données Des relations imbriquées Les types sont définis ainsi : Un ensemble de types de base B = {B1 , B2 , ..., Bk }, dom(Bi )est l’ensemble de constante Si T1 , T2 , ..., Tn sont des types de base ou des types ensembles alors [T1 , T2 , ..., Tn ] est un type tuple avec dom([T1 , T2 , ..., Tn ]) = {[v1 , v2 , ..., vn ], vi ∈ dom(Ti )} Si T est un type tuple alors {T } est un type ensemble Exemple : produit=[] nom : string ; image : image-file; tailles :{[ taille : string; prix : string;]} Web Data Mining – p. 6/2 Modèle des données - instance Une instance d’un type de base correspond à une feuille dans l’arbre Web Data Mining – p. 7/2 Modèle des données - instance Une instance d’un type de base correspond à une feuille dans l’arbre Une instance tuple [v1 , v2 , ..., vn ] est un nœud ayant n fils qui correspondent à v1 ,v2 ,...,vn Web Data Mining – p. 7/2 Modèle des données - instance Une instance d’un type de base correspond à une feuille dans l’arbre Une instance tuple [v1 , v2 , ..., vn ] est un nœud ayant n fils qui correspondent à v1 ,v2 ,...,vn Une instance ensemble {e1 , e2 , ..., en } est un nœud ayant n fils qui correspondent à e1 ,e2 ,...,en Web Data Mining – p. 7/2 Modèle des données - instance Une instance d’un type de base correspond à une feuille dans l’arbre Une instance tuple [v1 , v2 , ..., vn ] est un nœud ayant n fils qui correspondent à v1 ,v2 ,...,vn Une instance ensemble {e1 , e2 , ..., en } est un nœud ayant n fils qui correspondent à e1 ,e2 ,...,en Étiqueter récursivement un arbre de types : Web Data Mining – p. 7/2 Modèle des données - instance Une instance d’un type de base correspond à une feuille dans l’arbre Une instance tuple [v1 , v2 , ..., vn ] est un nœud ayant n fils qui correspondent à v1 ,v2 ,...,vn Une instance ensemble {e1 , e2 , ..., en } est un nœud ayant n fils qui correspondent à e1 ,e2 ,...,en Étiqueter récursivement un arbre de types : 1. Si un nœud ensemble est étiqueté ϕ alors les fils seront étiquetés ϕ · 0 Web Data Mining – p. 7/2 Modèle des données - instance Une instance d’un type de base correspond à une feuille dans l’arbre Une instance tuple [v1 , v2 , ..., vn ] est un nœud ayant n fils qui correspondent à v1 ,v2 ,...,vn Une instance ensemble {e1 , e2 , ..., en } est un nœud ayant n fils qui correspondent à e1 ,e2 ,...,en Étiqueter récursivement un arbre de types : 1. Si un nœud ensemble est étiqueté ϕ alors les fils seront étiquetés ϕ · 0 2. Si un nœud tuple est étiqueté ϕ alors les fils seront étiquetés ϕ · 1,ϕ · 2,..,ϕ · n Web Data Mining – p. 7/2 Coder les instances en HTML Pour une feuille étiquetée par ϕ, une instance c est codée par enc(ϕ · c) = OP EN − T AGS c CLOSE − T AGS Web Data Mining – p. 8/2 Coder les instances en HTML Pour une feuille étiquetée par ϕ, une instance c est codée par enc(ϕ · c) = OP EN − T AGS c CLOSE − T AGS Pour un nœud tuple étiqueté ϕ enc(ϕ : [v1 , v2 , ..., vn ]) = OPEN-TAGS1 enc(v1 ) .... enc(ve ) CLOSE-TAGS1 OPEN-TAGS2 enc(ve+1 ) .... enc(vg ) CLOSE-TAGS2 OPEN-TAGSh enc(vk+1 ) .... enc(vn ) CLOSE-TAGSh Web Data Mining – p. 8/2 Coder les instances en HTML Pour une feuille étiquetée par ϕ, une instance c est codée par enc(ϕ · c) = OP EN − T AGS c CLOSE − T AGS Pour un nœud tuple étiqueté ϕ enc(ϕ : [v1 , v2 , ..., vn ]) = OPEN-TAGS1 enc(v1 ) .... enc(ve ) CLOSE-TAGS1 OPEN-TAGS2 enc(ve+1 ) .... enc(vg ) CLOSE-TAGS2 OPEN-TAGSh enc(vk+1 ) .... enc(vn ) CLOSE-TAGSh Pour un nœud ensemble étiqueté ϕ enc(ϕ : {e1 , e2 , ..., en }) = OP EN − T AGSenc(ej1 ), ...enc(ej1 )CLOSE − T AGS Web Data Mining – p. 8/2 Exemple en HTML Restaurant Name : Good Noodles 205 Willow, Glen, Phone 1-773-366-1987 25 Oak, Forest, Phone (800) 234-7903 324 Halsted St., Chicago, Phone 1-800-996-5023 700 Lake St., Oak Park, Phone : (708) 798-0008 Web Data Mining – p. 9/2 Exemple en HTML - Codage <p> Restaurant Name : <b>Good Noodles</b><br><br> <li> 205 Willow, <i> Glen </i>, Phone 1-<i>773</i>-366-1987 </li> <li> 25 Oak, <i> Forest</i>, Phone (800) 234-7903</li> <li> 324 Halsted St., <i> Chicago</i>, Phone 1-<i>800</i>-996-5023</li> <li> 700 Lake St., <i> Oak Park</i>, Phone : (708) 798-0008 </li></p> Web Data Mining – p. 10/2 "Wrapper Induction" Approche supervisée pour l’extraction de règles à partir d’un ensemble d’exemples Web Data Mining – p. 11/2 "Wrapper Induction" Approche supervisée pour l’extraction de règles à partir d’un ensemble d’exemples Marquer les items de données "manuellement" Web Data Mining – p. 11/2 "Wrapper Induction" Approche supervisée pour l’extraction de règles à partir d’un ensemble d’exemples Marquer les items de données "manuellement" Utilisation de la structure arborescente de description de types (Tuple : Restaurant) STRING : Name Set : Addresses - Tuple : Address String : Steet String : City Integer : Area-code String : Phone-No. Web Data Mining – p. 11/2 Extraction des règles Utilisation de l’arbre pour naviguer dans la page et extraire les éléments recherchés Web Data Mining – p. 12/2 Extraction des règles Utilisation de l’arbre pour naviguer dans la page et extraire les éléments recherchés Chaque élément recherché est extrait par deux règles une règle de début et une règle de fin Web Data Mining – p. 12/2 Extraction des règles Utilisation de l’arbre pour naviguer dans la page et extraire les éléments recherchés Chaque élément recherché est extrait par deux règles une règle de début et une règle de fin Une règle est fondée sur l’idée de marqueurs. Un marqueur est un ensemble de tokens qui détermine le début et la fin de l’élément Web Data Mining – p. 12/2 Extraction des règles Utilisation de l’arbre pour naviguer dans la page et extraire les éléments recherchés Chaque élément recherché est extrait par deux règles une règle de début et une règle de fin Une règle est fondée sur l’idée de marqueurs. Un marqueur est un ensemble de tokens qui détermine le début et la fin de l’élément Exemple : extraction du nom du restaurant (règles forward & backword) : Web Data Mining – p. 12/2 Extraction des règles Utilisation de l’arbre pour naviguer dans la page et extraire les éléments recherchés Chaque élément recherché est extrait par deux règles une règle de début et une règle de fin Une règle est fondée sur l’idée de marqueurs. Un marqueur est un ensemble de tokens qui détermine le début et la fin de l’élément Exemple : extraction du nom du restaurant (règles forward & backword) : R1 SkipTo(<b>) Web Data Mining – p. 12/2 Extraction des règles Utilisation de l’arbre pour naviguer dans la page et extraire les éléments recherchés Chaque élément recherché est extrait par deux règles une règle de début et une règle de fin Une règle est fondée sur l’idée de marqueurs. Un marqueur est un ensemble de tokens qui détermine le début et la fin de l’élément Exemple : extraction du nom du restaurant (règles forward & backword) : SkipTo(<b>) R2 SkipTo(</b>) R1 Web Data Mining – p. 12/2 Extraction des règles - marqueurs et Jokers Règles de début, alternatives ? Web Data Mining – p. 13/2 Extraction des règles - marqueurs et Jokers Règles de début, alternatives ? R3 SkipTo(<Name_Punctuation__HtmlTag_>) Web Data Mining – p. 13/2 Extraction des règles - marqueurs et Jokers Règles de début, alternatives ? R3 SkipTo(<Name_Punctuation__HtmlTag_>) R4 SkipTo(Name)SkipTo(<b>) Web Data Mining – p. 13/2 Extraction des règles - marqueurs et Jokers Règles de début, alternatives ? R3 SkipTo(<Name_Punctuation__HtmlTag_>) R4 SkipTo(Name)SkipTo(<b>) On appelle _Punctuation & _HtmlTag : wildcards (jokers) Web Data Mining – p. 13/2 Extraction des règles - marqueurs et Jokers Règles de début, alternatives ? R3 SkipTo(<Name_Punctuation__HtmlTag_>) R4 SkipTo(Name)SkipTo(<b>) On appelle _Punctuation & _HtmlTag : wildcards (jokers) Exemple : Extraction du la donnée : Area-code : Web Data Mining – p. 13/2 Extraction des règles - marqueurs et Jokers Règles de début, alternatives ? R3 SkipTo(<Name_Punctuation__HtmlTag_>) R4 SkipTo(Name)SkipTo(<b>) On appelle _Punctuation & _HtmlTag : wildcards (jokers) Exemple : Extraction du la donnée : Area-code : R5 SkipTo(()or SkipTo(-<i>) Web Data Mining – p. 13/2 Extraction des règles - marqueurs et Jokers Règles de début, alternatives ? R3 SkipTo(<Name_Punctuation__HtmlTag_>) R4 SkipTo(Name)SkipTo(<b>) On appelle _Punctuation & _HtmlTag : wildcards (jokers) Exemple : Extraction du la donnée : Area-code : R5 SkipTo(()or SkipTo(-<i>) R6 SkipTo())or SkipTo(</i>) Web Data Mining – p. 13/2 Les Jokers Les jokers _Numeric_ _AlphaNum_ _Alphabetic_ _Capitalized_ _AllCaps_ _HtmlTag_ _Punctuation_ Web Data Mining – p. 14/2 Exemple en HTML - Codage - Area-code <p> Restaurant Name : <b>Good Noodles</b><br><br> <li> 205 Willow, <i> Glen </i>, Phone 1-<i>773</i>-366-1987 </li> <li> 25 Oak, <i> Forest</i>, Phone (800) 234-7903</li> <li> 324 Halsted St., <i> Chicago</i>, Phone 1-<i>800</i>-996-5023</li> <li> 700 Lake St., <i> Oak Park</i>, Phone : (708) 798-0008 </li></p> Web Data Mining – p. 15/2 Génération de règles - 1 Algorithm LearnRule (Examples) Rule ← φ While Example <> φ do Disjunct ← LearnDisjunt(Examples) Supprimer de Examples les exemples couverts par Disjunct Ajouter Disjunct à Rule Retourner Rule Web Data Mining – p. 16/2 Génération de règles - 2 Algorithm LearnDisjunct (Examples) seed ∈ Examples l’exemple le moins long Candidates ← getInitial(seed) While Candidates <> φ do D ← BestDisjunct(Candidates) If D est parfait Then Retourner D Candidates ← Candidates ∪ Refine(D, seed) Retourner D BestDisjunct : qui correspond le plus correctement,le moindre d’exemples négatifs le moindre de Jokers, les marqueurs les plus longs Web Data Mining – p. 17/2 Génération de règles - 3 seed est l’exemple 2 Web Data Mining – p. 18/2 Génération de règles - 3 seed est l’exemple 2 Les règles candidates suivantes sont générées Web Data Mining – p. 18/2 Génération de règles - 3 seed est l’exemple 2 Les règles candidates suivantes sont générées D1 SkipTo(() Web Data Mining – p. 18/2 Génération de règles - 3 seed est l’exemple 2 Les règles candidates suivantes sont générées SkipTo(() D2 SkipTo(_Punctuation_) D1 Web Data Mining – p. 18/2 Génération de règles - 3 seed est l’exemple 2 Les règles candidates suivantes sont générées SkipTo(() D2 SkipTo(_Punctuation_) D1 choix de D1 Web Data Mining – p. 18/2 Génération de règles - 3 seed est l’exemple 2 Les règles candidates suivantes sont générées SkipTo(() D2 SkipTo(_Punctuation_) D1 choix de D1 Cela couvre 2 et 4 Web Data Mining – p. 18/2 Génération de règles - 3 seed est l’exemple 2 Les règles candidates suivantes sont générées SkipTo(() D2 SkipTo(_Punctuation_) D1 choix de D1 Cela couvre 2 et 4 seed est l’exemple 1 Web Data Mining – p. 18/2 Génération de règles - 3 seed est l’exemple 2 Les règles candidates suivantes sont générées SkipTo(() D2 SkipTo(_Punctuation_) D1 choix de D1 Cela couvre 2 et 4 seed est l’exemple 1 D3 SkipTo(<i>) Web Data Mining – p. 18/2 Génération de règles - 3 seed est l’exemple 2 Les règles candidates suivantes sont générées SkipTo(() D2 SkipTo(_Punctuation_) D1 choix de D1 Cela couvre 2 et 4 seed est l’exemple 1 SkipTo(<i>) D4 SkipTo(_HTMLTag_) D3 Web Data Mining – p. 18/2 Génération de règles - 3 seed est l’exemple 2 Les règles candidates suivantes sont générées SkipTo(() D2 SkipTo(_Punctuation_) D1 choix de D1 Cela couvre 2 et 4 seed est l’exemple 1 SkipTo(<i>) D4 SkipTo(_HTMLTag_) Besoin de la phase de raffinement D3 Web Data Mining – p. 18/2 Génération de règles - 4 La phase de raffinement Web Data Mining – p. 19/2 Génération de règles - 4 La phase de raffinement Raffinement de marqueurs augmente la taille du marqueur Web Data Mining – p. 19/2 Génération de règles - 4 La phase de raffinement augmente la taille du marqueur Raffinements typologiques augmente le nombre de marqueur Raffinement de marqueurs Web Data Mining – p. 19/2 Génération de règles - 4 La phase de raffinement augmente la taille du marqueur Raffinements typologiques augmente le nombre de marqueur Raffinement de marqueurs A partir de D3 on obtient comme raffinements de marqueurs : Web Data Mining – p. 19/2 Génération de règles - 4 La phase de raffinement augmente la taille du marqueur Raffinements typologiques augmente le nombre de marqueur Raffinement de marqueurs A partir de D3 on obtient comme raffinements de marqueurs : D5 SkipTo(-<i>) Web Data Mining – p. 19/2 Génération de règles - 4 La phase de raffinement augmente la taille du marqueur Raffinements typologiques augmente le nombre de marqueur Raffinement de marqueurs A partir de D3 on obtient comme raffinements de marqueurs : D5 SkipTo(-<i>) D6 SkipTo(_Punctuation_<i>) Web Data Mining – p. 19/2 Génération de règles - 5 A partir de D3 on obtient comme raffinements typologiques (jusqu’à D21): Web Data Mining – p. 20/2 Génération de règles - 5 A partir de D3 on obtient comme raffinements typologiques (jusqu’à D21): D10 SkipTo(<i>)SkipTo(<i>) Web Data Mining – p. 20/2 Génération de règles - 5 A partir de D3 on obtient comme raffinements typologiques (jusqu’à D21): D10 SkipTo(<i>)SkipTo(<i>) D12 SkipTo(1)SkipTo(<i>) Web Data Mining – p. 20/2 Génération de règles - 5 A partir de D3 on obtient comme raffinements typologiques (jusqu’à D21): D10 SkipTo(<i>)SkipTo(<i>) D12 SkipTo(1)SkipTo(<i>) On choisit finalement la règle début : SkipTo(()or SkipTo(-<i>) Web Data Mining – p. 20/2 Identification des exemples informatifs Choisir au hasard un sous ensemble L de U Web Data Mining – p. 21/2 Identification des exemples informatifs Choisir au hasard un sous ensemble L de U Marquer manuellement L, U=U-L Web Data Mining – p. 21/2 Identification des exemples informatifs Choisir au hasard un sous ensemble L de U Marquer manuellement L, U=U-L Trouver le Wrapper W à partir de L Web Data Mining – p. 21/2 Identification des exemples informatifs Choisir au hasard un sous ensemble L de U Marquer manuellement L, U=U-L Trouver le Wrapper W à partir de L Appliquer W sur U et trouver un nouveau sous ensemble L Web Data Mining – p. 21/2 Identification des exemples informatifs Choisir au hasard un sous ensemble L de U Marquer manuellement L, U=U-L Trouver le Wrapper W à partir de L Appliquer W sur U et trouver un nouveau sous ensemble L S’arrêter si L est vide Web Data Mining – p. 21/2 Identification des exemples informatifs Choisir au hasard un sous ensemble L de U Marquer manuellement L, U=U-L Trouver le Wrapper W à partir de L Appliquer W sur U et trouver un nouveau sous ensemble L S’arrêter si L est vide Pour trouver L appliquer la méthode co-testing des règles forward et backward.. Web Data Mining – p. 21/2