• Aucun résultat trouvé

Alignement de plusieurs records

1.3 Organisation du manuscrit

2.1.5 Systèmes de génération de wrappers

2.1.5.1 Alignement de plusieurs records

Un des défis majeurs de l’extraction d’information à partir du Web consiste à trouver une approche efficace pour la reconnaissance des patterns répétitifs dans les pages HTML. Certains travaux s’appuient sur l’alignement des records existants dans la page, en se basent principalement sur l’alignement de séquences de strings ou d’arbres de ces différents records. La Figure 2.6(a) présente un exemple de comparaison de strings (string

<html><body><b>T</b><ol>

<li><b>T</b>T<b>T</b>T</li> <li><b>T</b>T<b>T</b>T</li> </ol></body><html>

(a) Exemple d’alignement de strings (b) Exemple d’alignement d’arbres

Figure 2.6 – Le matching par l’alignement de plusieurs records d’un segment de page

Comparaison de strings

Le string edit distance, ou Levenshtein distance est la technique la plus utilisée pour la comparaison de string (string matching). La distance de Levenshtein mesure la similarité entre deux chaînes de caractères, en calculant le nombre minimal de caractères qu’il faut supprimer, insérer ou remplacer pour passer d’une chaine à l’autre.

IEPAD [CL01]

IEPAD, acronyme d’Information Extraction based on PAttern Discovery, comme son nom l’indique il permet l’extraction d’information par la découverte de patterns. IEPAD est l’un des premiers systèmes d’extraction d’information qui génère des patterns à partir de pages Web non annotées. Le système peut identifier automatiquement les records par les patterns répétitifs et l’alignement de plusieurs séquences de strings (voir la Figure 2.6(a)). La découverte de patterns répétitifs est réalisée en utilisant une structure de données appelée arbres PAT (connue sous le nom de Patricia trees, Practical Algorithm to Retrieve Information Coded in Alphanumeric) [Mor68], construite à partir des suffixes de strings. IEPAD comprend trois composantes principales :

– Découverte de patterns : prend une page en entrée et découvre les patterns qui contiennent les données ciblées à extraire.

– Génération de règles : l’utilisateur intervient pour sélectionner des patterns qui l’intéresse. Puis, le générateur de règles enregistre ces patterns et les sauvegarde

comme étant des règles d’extraction.

– Extraction de données : extrait les données souhaitées à partir des pages similaires en fonction des règles d’extraction choisies par l’utilisateur.

Cependant, cette approche reste semi-automatique vu que c’est l’utilisateur qui choisit les règles d’extraction. De plus, elle s’applique uniquement pour les pages listes, car l’inférence de règles se fait sur une seule page en entrée.

Comparaison d’arbres

Plusieurs travaux se sont inspirés du système IEPAD [CL01], en utilisant l’idée de la découverte de patterns répétitifs par l’alignement des strings similaires, comme DeLa [WL03], ou par l’alignement d’arbre, comme MDR [LGZ03] et DEPTA [ZL05], que nous allons détailler ci-dessous.

MDR [LGZ03], DEPTA [ZL05]

Chaque page HTML peut être convertie en un arbre DOM HTML en utilisant sa structure hiérarchique des balises. MDR [LGZ03] (Mining Data Records) utilise cette structure pour l’identification des records. Il permet de trouver les records dans la page, en trois étapes principales : (1) construire la structure arborescente des balises de la page en utilisant le code source HTML, (2) identifier les régions de la page qui contiennent des records similaires, et (3) détecter les records.

La méthode consiste à identifier les nœuds généralisés, qui sont une séquence de nœuds adjacents ayant le même parent (on note que le nœud généralisé peut être une région de donnée). MDR compare les nœuds d’une manière récursive en parcourant l’arbre en profondeur, commençant par la racine. Sachant que toutes les combinaisons des nœuds fils sont comparées afin de trouver quels sont les nœuds qui peuvent être regroupés. La comparison de nœuds est effectuée en utilisant soit le string edit distance ou soit le tree

matching. En outre, chaque nœud est examiné de manière récursive pour découvrir des

structures de balises imbriquées.

Toutefois, il est important de souligner que dans certaines pages le code source HTML peut être mal formé (des balises erronées dans le code source HTML, telles que des balises manquantes, des balises non fermées, etc.). Ceci rend difficile : (i) la construction d’arbres DOM corrects, (ii) la détection de records corrects. L’utilisation des informations visuelles de la page pour la construction des arbres dans DEPTA [ZL05] résout ce problème. DEPTA a été proposé afin d’améliorer le système MDR [LGZ03]. C’est un système non supervisé qui permet l’extraction d’information en deux étapes : (1) l’identification des différents records dans la page en utilisant les informations visuelles de la page, et (2)

l’alignement et l’extraction des attributs (valeurs) à partir des records identifiés. Toutes ces techniques (IEPAD [CL01], MDR [LGZ03], DEPTA [ZL05]) s’appliquent pour une seule page liste, ainsi les patterns découverts sont utilisés pour l’extraction à partir des autres pages listes de la même source Web. Cependant, l’utilisation d’une seule page pour l’inférence de wrapper peut causer certaines limites, telles que :

– Elles permettent de découvrir que les patterns existants dans la page en entrée. L’utilisation de plusieurs pages peut améliorer l’extraction, comme la découverte des parties optionnelles ou des informations complémentaires qui n’existent pas dans une seule page.

– Elles s’appliquent que pour les pages listes, et pas pour les pages détaillées. De plus, la page liste doit avoir au minimum trois records pour que l’algorithme fonctionne. Une alternative possible pour l’extraction à partir de pages détaillées est de considérer chaque page détaillée comme un record et ainsi construire un arbre DOM avec un nœud racine artificiel, chaque page comme étant un sous arbre de cette racine.

Les techniques que nous allons cités ci-après (RoadRunner [CMM01], ExAlg [AGM03], G-STM [JL10]) exploitent plusieurs pages en entrée pour l’extraction.

2.1.5.2 Inférence de grammaires

Documents relatifs