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