• Nenhum resultado encontrado

No passo de identificação de dados, casa-se o conjunto de padrões-en gerados com o conjunto de páginas das quais se pretende fazer a extração. Para escolher o padrão-en mais adequado a uma dada página, e extrair os dados da mesma, mais uma vez recorre-se ao algoritmo RTDM, com um modelo de custos apropriado.

Diz-se que, em um dado mapeamento, se um vértice curinga no padrão-en é mapeado para um vértice na árvore HTML alvo, então o curinga consome o vértice. Os vértices consumidos por curin- gas representam as diferenças entre as páginas. Assim como foi feito por Crescenzi et. al. [12], neste trabalho pressupõe-se que as partes divergentes das páginas são exatamente os dados provenientes do banco de dados. Ou seja, as diferenças entre as páginas correspondem às suas porções ricas em dados.

Para se identificar os dados de uma páginas Web, faz-se um casamento entre um padrão-en e a página, que nada mais é que um mapeamento satisfazendo um conjunto de requisitos apropriado à identificação dos dados. Diz-se que, se existe um casamento entre um padrão-en e uma página Web, então o padrão-en aceita a página. A Definição 4.7 formaliza o conceito de casamento.

Definição 4.7. Um casamento entre um padrão-en e uma árvore é um mapeamento Mx, tal que as

seguintes regras são satisfeitas, na ordem dada:

1. Todo vértice não curinga pertencente ao padrão-en deve ser mapeado para um vértice idêntico na árvore alvo.

2. Todo vértice restante na árvore alvo deve ser consumido por um curinga. 3. Curingas single (.) devem consumir exatamente uma sub-árvore da árvore alvo. 4. Curingas plus (+) devem consumir ao menos uma sub-árvore da árvore alvo.

5. Curingas option (?) devem consumir uma única sub-árvore da árvore alvo, se possível. 6. Curingas kleene (∗) devem consumir ao menos uma sub-árvore da árvore alvo, se possível. 7. Curingas plus (+) devem consumir tantas sub-árvore irmãs na árvore alvo quanto possível. 8. Curingas kleene (∗) devem consumir tantas sub-árvore irmãs na árvore alvo quanto possível.

A satisfação das regras 1, 2, 3 e 4 é suficiente para garantir que um padrão-en aceite uma árvore alvo. As regras 5 e 6 asseguram que o casamento é tão justo quanto possível, ou seja, se for possível utilizar um curinga opcional (option ou kleene) sem violar as regras anteriores, ele deve ser utilizado. As regras 7 e 8 são automaticamente satisfeitas, se as regras anteriores forem observadas, e estão declaradas para facilitar o entendimento do processo de casamento.

Para obtermos um casamento, usamos o algoritmo RTDM com a função de igualdade mostrada na Definição 4.8, e um modelo de custo apropriado. É interessante notar que o primeiro item da definição da função de igualdade é exatamente o contrário do usado no passo anterior, que pode ser visto na Definição 4.3. Esse é apenas um artifício para que os curingas apareçam no mapeamento como rótulos distintos, uma vez que, como veremos abaixo, adota-se, neste passo, o custo zero para um mapeamento com um curinga. Caso tivéssemos adotado a mesma definição de igualdade do passo anterior, ainda assim obteríamos o mesmo mapeamento, porém precisaríamos instanciar todo o mapeamento para encontrar os vértices consumidos por curingas. Com esse artifício, basta que instanciemos a porção do mapeamento que une vértices distintos.

Definição 4.8. Seja t[i] ∈ Txe t′[j] ∈ Tx′. Então, t[i] = t′[j] se e somente se:

1. t[i] e t[j] não são curingas. 2. t[i] e t[j] tem rótulos iguais.

O próximo passo é definir o modelo de custo para que o mapeamento se comporte de acordo com os requisitos de casamento, dados na Definição 4.7. Podemos encontrar na Definição 4.9 o modelo que satisfaz essa exigência.

Definição 4.9. Seja a um vértice em um padrão-en e seja b um vértice na árvore alvo. O modelo de custo para o algoritmo RTDM é definido da seguinte maneira:

• Substituição

(A) a é um curinga→ 0. (B) do contrário→ ∞. • Inserção

(C) Existe um ancestral de b que foi consumido por um curinga→ 0. (D) O antecessor de b foi consumido por um∗ → 0.

(E) O antecessor de b foi consumido por um+ → 0. (F) do contrário→ ∞.

4.3. IDENTIFICAÇÃO DEDADOS 37

• Remoção

(G) a=? ou a = ∗ → 1. (H) do contrário→ ∞.

O custo de substituição A garante que apenas curingas podem ser substituídos pelas sub-árvores que eles consomem. O custo de inserção C permite que sub-árvores completas sejam consumidas pelos curingas. Os custos D e E permitem aos curingas de tamanho variável consumir florestas de árvores irmãs. O custo de remoção de vértices G assegura que apenas curingas opcionais podem ser removidos, e associa um custo não nulo à remoção de um curinga, para que eles sejam preferencial- mente cobertos pelo custo A. Finalmente, os custos B, F e H em conjunto garantem que o padrão-en deve aceitar a árvore alvo, ou o mapeamento terá custo infinito. Embora os custos C, D e E possam, a primeira vista, parecer de cálculo complicado, eles podem ser trivialmente implementados em tempo constante dentro do algoritmo RTDM. Para testar a aplicabilidade de qualquer um deles, é preciso apenas verificar se o vértice na árvore alvo está sendo inserido na posição (ou imediatamente após) um curinga do padrão-en. Esse modelo de custos garante que ou as condições na Definição 4.7 são satisfeitas, ou o mapeamento tem custo infinito.

Uma vez que o padrão-en foi casado, o processo de identificação dos dados é direto. Ambas as árvores (o padrão-en e a árvore HTML) são percorridas em pré-ordem e, para cada curinga encontrado no padrão-en, a passagem de texto2nos vértices consumidos pelo curinga é extraída da página HTML.

Quando a extração de dados está sendo feita, em um conjunto de páginas já agrupadas, e com padrões-en correspondentes, a escolha do padrão-en para extração é simples. Basta usar o padrão-en correspondente ao grupo onde a página foi colocada. Quando se deseja aproveitar os padrões-en já gerados para algum sítio para se extrair dados de uma nova página, é preciso escolher o padrão-en correto. Para tanto, casa-se todos os padrões-en do sítio com a página, e o padrão-en escolhido é aquele cujo casamento tem o menor custo. A Figura 4.4 ilustra o processo de casamento.

A identificação de dados corresponde ao sub-problema (1), de acordo com o Capítulo 1. Iro- nicamente, foi preciso que primeiro se obtivesse uma aproximação da estrutura dos dados, o que corresponde ao sub-problema (2), através da geração dos extratores, para que então fosse possível identificar os dados.

Assim como o passo de geração de extratores, o passo de identificação dos dados não assume nada a respeito da entrada, exceto que se tratam de páginas Web, e que elas possuem um número igual de registros. Todas as técnicas mostradas até então podem portanto ser aplicadas em diferentes problemas. Mecanismos de busca, por exemplo, podem se beneficiar da identificação dos dados, que lhes permite descartar as partes irrelevantes das páginas, tais como menus e elementos de navega- ção. Já as heurísticas de rotulamento de dados que serão mostradas na próxima seção são aplicáveis somente ao problema específico de extração de notícias.

Figura 4.4: Casamento de padrões-en com uma página Web

Documentos relacionados