Você está na página 1de 9

Um Processo Automtico para Extrao de Metadados de

Documentos PDF Usando um Template XML


Edimar Manica1, Cristiano Roberto Cervi1, Renata de Matos Galante2
1

Instituto de Cincias Exatas e Geocincias Universidade de Passo Fundo (UPF)


Bairro So Jos BR 285 Km 171 99001-970 Passo Fundo RS

Instituto de Informtica Universidade Federal do Rio Grande do Sul (UFRGS)


Caixa Postal 15.064 91.501-970 Porto Alegre RS Brasil
edimarmanica@yahoo.com.br, cervi@upf.br, galante@inf.ufrgs.br

Resumo. Este artigo descreve uma proposta para extrao de metadados de


documentos PDF. O extrator desenvolvido utiliza um template, representado
por um arquivo XML, que possui a descrio dos metadados a serem
extrados do documento desejado. A partir do XML, o extrator executa uma
srie de passos para a localizao dos metadados no documento indicado,
sendo todo o processo realizado de forma automtica, onde a nica
interveno por parte do usurio a construo do template XML.
Abstract. This paper presents a proposal for extracting metadata from PDF
documents. The developed extractor uses a template, represented in a XML
document, which has the specification of the metadata to be extracted from the
document. From the XML document, the extractor automatically executes a set
of steps in order to find the metadata in a specified document, and user
intervention is only necessary to build the XML document.

1. Introduo
Nos ltimos tempos, a necessidade por ferramentas de pesquisa, filtragem e
manipulao de informaes relevantes, disponibilizadas em meio eletrnico, tornou-se
essencial. Esta necessidade est presente em diversos contextos, desde ambientes
empresariais, para a manipulao de dados em Data Warehouse, at instituies de
pesquisa atravs da troca de produo cientfica. Neste cenrio, a Web aparece como o
principal veculo para troca e busca de informaes. Ao contrrio dos bancos de dados
relacionais, informaes neste meio apresentam uma estrutura fraca (os dados semiestruturados) ou at inexistente (dados no estruturados). O desafio atual construir
ferramentas que possibilitem a consulta e manipulao dos dados desta natureza.
Muito tem sido desenvolvido para a manipulao de dados semi-estruturados,
principalmente arquivos HTML (Mecca 1998), (Laender et al. 2002), (Laender, RibeiroNeto e Da Silva 2002), (Silveira e Heuser 2001). A ferramenta Debye (Laender et al.
2002), (Laender, Ribeiro-Neto e Da Silva 2002), por exemplo, funciona de forma
interativa, recebendo como entrada uma srie de exemplos criados por usurios a partir
de uma pgina de amostra. Dados estes exemplos, o sistema gera padres (atravs do
uso de wrappers) que permitem a extrao de objetos de pginas similares. Apesar da

Este trabalho foi parcialmente suportado pelo projeto Pronex FAPERGS nmero 0408933.

facilidade de uso, os resultados obtidos em alguns casos no so satisfatrios. Quando


um wrapper gerado, a partir de uma pgina de exemplo, este funciona adequadamente
apenas para esta pgina, apresentando resultados equivocados quando aplicado a
pginas similares. A ferramenta Araneus (Mecca 1998) se baseia no formalismo
definido em Minerva (Crescenzi e Mecca 1998), utilizado para descrio de wrappers,
que combina uma gramtica declarativa com as caractersticas tpicas de linguagens de
programao procedimentais. necessrio grande conhecimento da estrutura da pgina
e da linguagem Minerva para a construo de um wrapper para a ferramenta Araneus. O
principal foco utilizado no desenvolvimento destas ferramentas o suporte a dados
representados em linguagens que possuem certa estrutura, como HTML.
A extrao de dados no estruturados, normalmente, possui o suporte de
modelos conceituais ou ontologias (Wessman, Liddle e Embley 2005), (Embley, Tao e
Liddle 2005), para que o processo funcione. Neste caso, torna-se indispensvel que a
ontologia, ou o modelo conceitual, seja projetado de forma bastante completa para que,
de fato, o processo seja executado de forma funcional.
Problemas na extrao de dados oriundos de documentos PDF podem ser
encontrados em diversas aplicaes, inclusive em sistemas de bibliotecas digitais. Como
tais sistemas armazenam o documento digital e precisam de informaes sobre ele para
que consultas possam ser executadas e apresentadas aos usurios, torna-se fundamental
a extrao de metadados especficos do documento armazenado para que as informaes
sejam geradas de maneira a satisfazer os critrios estabelecidos.
Neste artigo, apresentado um processo de extrao de metadados a partir de
documentos sem estrutura, especificamente documentos PDF. Para isso foi
desenvolvido o extrator de metadados denominado EMP (Extracting Metadata from
PDF file). O processo faz uso de um documento XML, que funciona como um template,
onde so especificados os campos de metadados que devem ser extrados dos
documentos. O processo automtico, sendo necessria a interveno do usurio apenas
na construo do template XML.
O artigo organizado como segue. Na Seo 2 apresentado o template XML
usado pelo extrator. Na seo 3 descrito o processo de extrao dos metadados. A
seo 4 apresenta um exemplo da utilizao do processo. Alguns experimentos so
mostrados na seo 5, bem como seus resultados. Finalmente, na seo 6 so descritas
as consideraes finais.

2. Template XML
Como os documentos PDF no possuem uma estrutura semntica, necessrio o
uso de um documento XML, que funciona como um template, tornando possvel que o
extrator EMP identifique os metadados que devem ser extrados em um documento. Isso
torna possvel que o processo de extrao proposto seja utilizado para qualquer
documento PDF, independente de seu layout de apresentao. Ressalta-se que o extrator
foi construdo para possibilitar um mecanismo semi-automtico de auto-arquivamento
em uma biblioteca digital de trabalhos de concluso apresentado em Manica, Cervi e
Dorneles (2007), ou seja, os elementos oferecidos para a especificao dos metadados
so disponibilizados a partir da necessidade observada na extrao dos metadados no
contexto de trabalhos de concluso de curso. Porm, isso no impede que o extrator seja
utilizado para outros documentos PDF, apenas pode restringir algumas extraes, que ao
serem observadas, sero implementadas no extrator. Contudo, todos os metadados de

documentos PDF que possam ser representados em um template XML com os


elementos oferecidos pelo extrator sero extrados, no importando a rea do
documento, desde trabalhos de concluso a relatrios de faturamento de empresas.
O documento XML possui a estrutura apresentada na Figura 1 atravs de uma
DTD (Document Type Definitions).
<!ELEMENT structure (coverSheet*, otherPages*)>
<!ELEMENT coverSheet (metadata+)>
<!ATTLIST coverSheet page CDATA #REQUIRED>
<!ELEMENT metadata (position?, prefix?, suffix?, separator?)>
<!ATTLIST metadata id CDATA #REQUIRED>
<!ELEMENT position (#PCDATA)>
<!ATTLIST position type (general|prefix) #REQUIRED>
<!ELEMENT prefix (#PCDATA)>
<!ATTLIST prefix type (start|all_line) #REQUIRED>
<!ELEMENT suffix (#PCDATA)>
<!ATTLIST suffix type (new_line|same_line) #REQUIRED>
<!ELEMENT separator (#PCDATA)>
<!ELEMENT otherPages (metadata+)>
<!ATTLIST otherPages startPage CDATA #REQUIRED
endPage
CDATA #REQUIRED>

Figura 1 Estrutura do arquivo XML.

A raiz do documento XML representada por um elemento chamado


structure, que composto pelos elementos coverSheet e otherPages. O
elemento coverSheet representa a pgina que contm metadados que so sempre
encontrados em uma nica pgina, e so representados atravs do elemento metadata.
A identificao do nmero da pgina do documento PDF feita atravs do atributo
page. O elemento otherPages descreve um intervalo de pginas em que a
ocorrncia dos metadados no possui uma pgina especfica, sendo possvel sua
distribuio dentro deste intervalo, definido atravs dos atributos startPage e
endPage. No caso do elemento otherPages, os metadados tambm so
representados dentro do elemento metadata. A separao entre os metadados que
esto sempre em uma determinada pgina daqueles que podem estar em um intervalo de
pginas, possibilita que sejam feitas estatsticas para verificar em qual dos casos
encontra-se a maioria dos erros de digitao por parte do usurio. Da mesma forma,
pretende-se destacar os metadados que devem estar em uma pgina especfica, aos
usurios que criaro seus documentos a partir do XML. Isso possibilitar que eles
descrevam os metadados na pgina correta.
Para completar o documento XML, cada elemento metadata deve possuir um
atributo id, que usado para identific-lo, cujo valor o campo do metadado. Para que
o metadado seja reconhecido no texto, necessrio identificar os limites de incio e fim
da string do metadado, que podem ser representados atravs da combinao dos
seguintes elementos: (i) prefix, que define uma string que sempre antecede o
metadado, e possui o atributo type que identifica se ela se encontra no incio da
mesma linha do metadado ou corresponde a toda a linha anterior; (ii) position, que
conforme o valor de seu atributo type pode indicar a linha onde o metadado se
encontra, ou qual o nmero de ocorrncia da string que antecede o metadado, para o
caso desta string se repetir na pgina, ou no intervalo de pginas onde se encontra o
metadado em questo; (iii) suffix, que define uma cadeia de caracteres que sempre
se encontra ao fim do metadado, e possui o atributo type para informar se este se

encontra na mesma linha do metadado ou no incio da linha seguinte. Quando existe um


metadado composto por um conjunto de valores, tal como as palavras-chave que
descrevem um documento, utiliza-se o elemento separator para indicar o caractere
usado na separao dos valores deste conjunto. Ressalta-se que no necessrio definir
todos esses elementos citados, mas necessrio no mnimo para cada metadado definir
um elemento position identificando uma posio fixa ou um elemento prefix
identificando onde o metadado inicia. Caso no seja definido um elemento suffix o
extrator entende o fim da linha como sufixo.

3. Processo de Extrao dos Metadados


O processo como um todo inicia com a interpretao do arquivo XML, como
apresentado na Figura 2.

Figura 2 Processo de extrao dos metadados.

Inicialmente, o arquivo XML lido (1), a fim de validar a existncia de


elementos que, para serem corretamente usados, necessitam de outros. Por exemplo, um
elemento position, tendo o atributo type com valor prefix , define o nmero de
ocorrncia de um prefixo e necessita a ocorrncia do elemento prefix, cujo valor
indica o prefixo de um metadado. Em seguida, o validador envia o documento XML
vlido ao coletor de informaes (2), que deve separar os campos de metadados em duas
partes: aqueles encontrados em uma nica pgina, e aqueles encontrados em um
intervalo de pginas. As informaes coletadas, e o documento PDF, servem de entrada
para o EMP, que extrai os metadados descritos nos elementos coverSheet e
otherPages.

Para cada elemento coverSheet, e para cada elemento otherPages,


especificados no arquivo XML, os seguintes procedimentos so necessrios: (i)
transformao da pgina referente ao elemento coverSheet em um arquivo TXT (3),
e converso do intervalo de pginas referente ao elemento otherPages em um
arquivo TXT (5). Ambos os procedimentos so executados com o auxlio das
bibliotecas PDF BOX1 e FONT BOX2, que delimitam o que texto e o que so
elementos de formatao; (ii) extrao de metadados, a partir do arquivo TXT usado
como entrada para o extrator (4 e 6), atravs da leitura do arquivo TXT e extrao dos
metadados. Em seguida, o contedo extrado associado ao metadado correspondente.
Depois de concluda a etapa de extrao de todos os metadados contidos em
todos os elementos coverSheet e otherPages, os resultados so integrados a fim
de montar a resposta final que contm todos os metadados extrados.

4. Exemplificando a Extrao
Para entender melhor o funcionamento do extrator, apresentado um exemplo a
partir do template XML observado na figura 3.
<structure>
<coverSheet page="3">
<metadata id="instituicao">
<position type="general">1</position>
</metadata>
<metadata id="titulo">
<position type="general">4</position>
<suffix type="newLine">ALUN</suffix>
</metadata>
<metadata id="avaliador1">
<prefix type="start">AVALIADOR: PROF.| AVALIADOR:
</prefix>
<position type="prefix">1</position>
</metadata>
<metadata id="avaliador2">
<prefix type="start">AVALIADOR: PROF.| AVALIADOR:
</prefix>
<position type="prefix">2</position>
</metadata>
</coverSheet>
<otherPages startPage="4" endPage="10">
<metadata id="resumo">
<prefix type="allLine">RESUMO</prefix>
<suffix type="newLine">PALAVRAS-CHAVE:|PALAVRASCHAVE</suffix>
</metadata>
<metadata id="palavras_chave">
<prefix type="start">PALAVRAS-CHAVE:|PALAVRASCHAVE</prefix>
<separator>,</separator>
<suffix type="sameLine">.</suffix>
</metadata>
</otherPages>
</structure>
Figura 3 Template XML de exemplo.

1
2

Disponvel em http://www.pdfbox.org
Disponvel em http://www.fontbox.org

Para o template apresentado na figura 3 o extrator procura na terceira pgina os


seguintes metadados:

instituio: inicia no primeiro caractere da primeira linha e termina ao


encontrar o final desta mesma linha.

ttulo: inicia na quarta linha e termina no final da linha que antecede a


linha que inicia ALUN.

avaliador1: inicia na primeira linha que comea por AVALIADOR:


ou por AVALIADOR: e termina no fim desta mesma linha.

PROF.

avaliador2: inicia na segunda linha que comea por AVALIADOR:


ou por AVALIADOR: e termina no fim desta mesma linha.

PROF.

O extrator tambm procura da pgina 4 a pgina 10 os seguintes metadados:

resumo: inicia na linha sucessora linha que contm nica e


exclusivamente a string RESUMO e termina na linha que antecede a
linha que inicia por PALAVRAS-CHAVE: ou por PALAVRAS-CHAVE.
palavras_chave: inicia na
ou por PALAVRAS-CHAVE

linha que comea por PALAVRAS-CHAVE:


e termina ao encontrar um .. Alm disso,
quebra os metadados extrados em n metadados a cada ocorrncia de
uma , ou e (\\s representa espao em branco).

O extrator case insensitive, mas ser implementado um elemento que permite


diferenciar maisculas de minsculas.
O caractere | separa as opes. Uma vez que o extrator no usa busca por
similaridade necessrio definir todas as opes possveis. Tambm, ressalta-se a
importncia da ordem das opes, as quais indicam a ordem que ser pesquisada, logo
deve-se especificar primeiro as opes de maior tamanho. Por exemplo, se for definido
PALAVRAS-CHAVE antes de PALAVRAS-CHAVE: ao comparar a linha
PALAVRAS-CHAVE: banco de dados, ontologia. com PALAVRAS-CHAVE o
extrator encontrar a combinao e comear a extrair a partir do caractere sucessor, ou
seja, extrair o : como parte do metadado.

5. Experimentos e Resultados
Para validar o processo, primeiramente, o extrator foi incorporado no
mecanismo de auto-arquivamento da BDTC3 (Biblioteca Digital de Trabalhos de
Concluso). Foram realizados 64 testes, sendo que cada um deles consiste na submisso
de um trabalho de concluso, no formato PDF, para o auto-arquivamento da BDTC.
Aps este processo de submisso, o extrator executa seu trabalho, verificando se os
metadados que foram extrados condizem com o esperado.
Os 13 primeiros testes foram realizados com o template XML apresentado na
figura 4.

Disponibiliza os trabalhos de concluso dos cursos de graduao e ps-graduao da rea de informtica


da Universidade de Passo Fundo (http://inf.upf.br/bibdig).

<structure>
<coverSheet page="3">
<metadata id="instituicao">
<position type="general">1</position>
</metadata>
<metadata id="unidade">
<position type="general">2</position>
</metadata>
<metadata id="curso">
<position type="general">3</position>
</metadata>
<metadata id="titulo">
<position type="general">4</position>
<suffix type="newLine">ALUN</suffix>
</metadata>
<metadata id="aluno">
<prefix type="start">ALUNO:|ALUNA:</prefix>
</metadata>
<metadata id="orientador">
<prefix type="start">Orientador: Prof.| ORIENTADOR
PROF| ORIENTADOR:|ORIENTADORA: Prof.| ORIENTADORA PROF|
ORIENTADORA:</prefix>
</metadata>
<metadata id="avaliador1">
<prefix type="start">AVALIADOR: PROF.| AVALIADOR:
PROF| AVALIADOR:|AVALIADORA: PROF.| AVALIADORA: PROF|
AVALIADORA:</prefix>
<position type="prefix">1</position>
</metadata>
<metadata id="avaliador2">
<prefix type="start">AVALIADOR: PROF.| AVALIADOR:
PROF| AVALIADOR:|AVALIADORA: PROF.| AVALIADORA: PROF|
AVALIADORA:</prefix>
<position type="prefix">2</position>
</metadata>
<metadata id="areas">
<prefix type="start">REAS:|REA:</prefix>
<separator>,</separator>
<suffix type="sameLine">.</suffix>
</metadata>
</coverSheet>
<otherPages startPage="4" endPage="10">
<metadata id="resumo">
<prefix type="allLine">RESUMO</prefix>
<suffix type="newLine">PALAVRAS-CHAVE:|PALAVRAS
CHAVE:|PALAVRAS-CHAVE|PALAVRAS CHAVE</suffix>
</metadata>
<metadata id="palavras_chave">
<prefix type="start">PALAVRAS-CHAVE:|PALAVRAS
CHAVE|PALAVRAS-CHAVE|PALAVRAS CHAVE</prefix>
<separator>,</separator>
<suffix type="sameLine">.</suffix>
</metadata>
</otherPages>
</structure>
Figura 4 Template XML usado em testes.

Dos 13 trabalhos de concluso submetidos no primeiro teste, 10 foram extrados


com sucesso. Em um deles a ltima palavra-chave foi extrada de forma errada, pois as
palavras-chave no terminavam com o sufixo definido. Em outro o ttulo e o curso
foram extrados incorretamente, pois estes possuem especificao de posio fixa e o

criador do documento adicionou o nmero da pgina no cabealho da pgina, contando


como uma linha, logo os metadados estariam uma linha abaixo do especificado.
Finalmente, em outro documento o arquivo criado e convertido para PDF no Windows e
submetido ao auto-arquivamento da BDTC, que roda em Linux, teve problemas com a
codificao do PDF e no reconheceu os caracteres com acento. O processo j est
sendo alterado para atender esta ltima situao.
No segundo teste foram realizadas 51 submisses com um template XML mais
simples, conforme apresentado na figura 5.
<structure>
<otherPages startPage="1" endPage="10">
<metadata id="palavras_chave">
<prefix type="start">PALAVRAS-CHAVE:|PALAVRAS CHAVE:|PALAVRAS CHAVE:|PALAVRAS-CHAVE | PALAVRAS CHAVE
</prefix>
<separator>,|\\se\\s</separator>
<suffix type="same_line">.</suffix>
</metadata>
</otherPages>
</structure>
Figura 5 - Template XML para encontrar palavras-chave

Dos 51 trabalhos de concluso submetidos, 37 trabalhos foram extrados


corretamente, 4 no foram extrados porque estavam protegidos, 4 foram extrados
incorretamente porque as palavras-chave no terminavam por .(suffix definido no
XML), 1 foi extrado incorretamente pois seus metadados eram separados por um
caractere diferente das opes de separador definidas no XML pelo elemento
separator, 4 no possuam palavras-chave logo nada foi extrado, e 1 no foi
extrado por motivo ainda no identificado.
Ressalta-se que o erro na busca de um metadado no interfere busca dos
demais, porm foram contados nos testes como extrados incorretamente, at mesmo,
aqueles documentos que tiveram apenas um metadado extrado incorretamente.

6. Consideraes Finais
Este artigo apresentou um processo de extrao de metadados a partir de
documentos PDF. O processo automtico, sendo que a nica interveno do usurio
a construo do template XML.
O extrator de metadados desenvolvido implementado atravs de um processo
facilmente executvel, que faz uso de um template XML para a especificao dos
metadados a serem extrados. A principal contribuio est no fato do processo ser
aplicvel a qualquer documento PDF, e por no exigir a associao de estruturas mais
complexas, como ontologias, para a execuo da extrao.
Os testes realizados com o extrator apresentaram resultados satisfatrios, uma
vez que dos 64 documentos submetidos, 47 foram extrados com sucesso, ou seja,
aproximadamente 73,43%. Dos 17 documentos no extrados ou extrados
incorretamente, 15 (88,23%) tiveram esta situao por erros de digitao do usurio que,
por exemplo, esqueceu de colocar o ponto final (.) ao final das palavras-chave, ou

nem as escreveu, ou ainda protegeu o documento PDF contra cpia, impossibilitando a


extrao.
Aps esta anlise, pode concluir que o processo de extrao foi bem sucedido
durante os testes, pois houve 73,43% de acerto real. Se considerarmos a porcentagem de
erros de responsabilidade do usurio, o ndice de sucesso sobe para 96,87%.
Como trabalhos futuros, pretende-se utilizar funes de similaridade para
identificao dos metadados nos documentos PDF. Por exemplo, em um texto referente
a uma tese, o metadado orientador pode ter sido escrito de forma incorreta, tal
como, orintador. Neste caso, o EMP no encontra o referido metadado no arquivo
se apenas foi definido como prefixo orientador e definir todas as opes similares
separando-as por | possvel, porm trabalhoso. Alm disso, est sendo analisada a
necessidade de construir um editor que facilite a construo do template XML, bem
como permita uma melhor visualizao de sua estrutura aos usurios que desejem
construir seus documentos a partir do template.
Tambm se deseja fazer uma anlise de outros extratores de caractersticas
semelhantes, usando o mesmo estudo de caso, para verificar se os resultados alcanados
com o EMP so realmente satisfatrios.
Pretende-se, finalmente, implementar mais elementos para atender a mais
metadados de documentos PDF na medida em que sejam observadas as necessidades.
Da mesma forma, aps os testes realizados, os erros por parte do usurio que mais
ocorreram devero ser tratados no processo de extrao, aumentando, dessa forma, o
ndice de sucesso de todo o processo.

Referncias
Crescenzi, Y.; Mecca, G. Grammars have exceptions. Information Systems v. 23, n. 8,
p.539-565., 1998.
Embley, D. W.; Tao, C.; Liddle, S. W. Automating the extraction of data from HTML
tables with unknown structure. Data Knowledge Engineering. 54(1): 3-28 (2005).
Laender, A. H. F., et al. The Debye Environment for Web Data Management. IEEE
Internet Computing. Volume 6, Issue 4 (July 2002). Pages: 60 69.
Laender, A. H. F.; Ribeiro-Neto, B.; Da Silva., A. S. DEByE - Data Extraction By
Example, Data and Knowledge Engineering v. 40, n. 2, p. 121-154, 2002.
Manica, E.; Cervi, C.R.; Dorneles, C.F. Um Mecanismo Semi-automtico de AutoArquivamento de Documentos em uma Biblioteca Digital. III Workshop on Digital
Libraries (WDL 2007). Gramado, RS, 2007.
Mecca, G.; et al. The Araneus Web-Base Management System. In Proceedings of the
ACM SIGMOD International Conference on Management of Data, p. 544-546, 1998.
Silveira, I. C.; Heuser, C. A. Extrao de Dados Semi-estruturados Atravs de
Exemplos e Ferramentas Visuais. In: CLEI, 2001, Mrida. p. 48-48.
Wessman, A.; Liddle, S. W.; Embley, D. W. A Generalized Framework for an
Ontology-Based Data-Extraction System. ISTA 2005: 239-253.

Você também pode gostar