Title: Extra
1Extração da Informação
Adaptado do seminário DIAL A Dedicated
Information Extraction Language for Text
Mining de Marcus Sampaio
2Estrutura da Apresentação
3Estrutura da Apresentação
- Prólogo O Problema e o Tema
4Estrutura da Apresentação
- Prólogo O Problema e o Tema
- Uma Solução A Linguagem DIAL
5Estrutura da Apresentação
- Prólogo O Problema e o Tema
- Uma Solução A Linguagem DIAL
- Uma Digressão Automatically Trainable IE Systems
6Estrutura da Apresentação
- Prólogo O Problema e o Tema
- Uma Solução A Linguagem DIAL
- Uma Digressão Automatically Trainable IE Systems
- DIAL e o Projeto SAD uma Discussão
7Estrutura da Apresentação
- Introdução O conceito
- Um sistema ClearForest
- Uma linguagem DIAL
- Uma Digressão Automatically Trainable IE Systems
- Bibliografia e Referências
8 9Exemplo de um Sistema de Extração da Informação
Subsistema I Apoio On-line à Decisão da Operação do Sistema Elétrico Subsistema II Recuperação Off-line avançada de Informação sobre Operação
Requisito Maior informação concisa, relevante e imediata em situações de contingência
10Um Esboço de Arquitetura para um Sistema de Apoio
a Decisão (SAD)
Visão Materializada
integrador
Partes relevantes anotadas e validadas
(In/No/...).xml
editor gráfico
Validação
wrapper
Instruções (In) / Normas (No) / ...
11 Interface de Apoio à Decisão
- Requisito Tempo
- BD ativo e estruturado, incluindo (muitas)
colunas em formato texto
Ações
Visão Materializada
Alarmes
Contingências
integrador
Partes relevantes anotadas e validadas
(In/No/...).xml
editor gráfico
Validação
O Problema
wrapper
Tema Extração de Informação
In / No / ...
12Extração de Informação
- Extração da Informação (Information Extraction -
IE) é uma tecnologia que ao invés de recuperar
documentos extrai trechos de informação
relevantes para o usuário.
O material deste slide e dos próximos quatro foi
copiado de
http//www.itl.nist.gov/iaui/894.02/related_projec
ts/muc/
13IE Glossário de Termos
- Attribute
- a property of an entity such as its name, alias,
descriptor, or type - Annotation
- mark up of a text span in a specific format that
indicates a feature or features of the text
within the span - Benchmark
- assessment of performance according to standard
measures - Data
- textual input for an information extraction
system - Dataset
- a set of texts chosen according to pre-specified
conditions and meant to represent a rich text
stream
14IE Glossário de Termos (2)
- Entity
- an object of interest such as a person or
organization - Event
- an activity or occurrence of interest
- Fact
- a relationship held between two or more entities
15IE Glossário de Termos (3)
- Information Extraction
- the extraction or pulling out of pertinent
information from large volumes of texts - Information Extraction Systems
- an automated system to extract pertinent
information from large volumes of text - Information Extraction Technologies
- techniques used to automatically extract
specified information from text - Metrics
- pre-defined measures of performance calculable by
comparison of system output with human-generated
answer keys
16IE Glossário de Termos (4)
- Definição de Tarefa (task)
- documento que define o formato e critérios para
annotação ou extração de textos e colocado em um
banco de dados ou template. - Por example, uma definição de tarefa da
instruções e exemplos para a extração de
entidades, atributos, fatos, e eventos de textos
17IE Estado da Arte, em Termos de Desempenho
Itens de Informação Percentual de Confiabilidade
Entities 90
Attributes 80
Facts 70
Events 60
http//www.itl.nist.gov/iaui/894.02/related_projec
ts/muc/
18 - ClearForest Um Sistema de IE
19ClearForest Um Sistema de IE
Extracting Semistructured Information from the
Web J. Hammer, H. Garcia-Molina, J. Cho, R.
Aranha, and A. Crespo Department of Computer
Science Stanford University Stanford, CA
94305-9040 hector,joachim,cho,aranha,crespo_at_cs.
stanford.edu http//www-db.stanford.edu/ We
describe a configurable tool for extracting semi
structured data from a set of HTML pages and for
converting the extracted information into
database objects. The input to the extractor is a
declarative specification that states where the
data of interest is located on the HTML pages,
and how the data should be packaged into
objects. We have implemented the Web extractor
using the Python programming language stressing
efficiency and ease-of-use. We also describe
various ways of improving the functionality of
our current prototype. The prototype is installed
and running in the TSIMMIS test bed as part of a
DARPA (Intelligent Integration of Information)
technology demonstration where it is used for
extracting weather data form various WWW sites.
20ClearForest (2)
- ltXMLgt ltTitlegt1187099374813-90148lt/Titlegt
ltDategt2007-08-14lt/Dategt - ltContent
Format"ClearForest"gt - ltText length"1121"gt -
ltDocumentgt ltTitlegt1187099374813-90148lt/Titlegt
ltDategt2007-08-14lt/Dategt ltBodygtExtracting
Semistructured Information from the Web J.
Hammer, H. Garcia-Molina, J. Cho, R. Aranha, and
A. Crespo Department of Computer Science Stanford
University Stanford, CA 94305-9040
hector,joachim,cho,aranha,crespo_at_cs.stanford.edu
http//www-db.stanford.edu/ We describe a
configurable tool for extracting semi structured
data from a set of HTML pages and for converting
the extracted information into database objects.
The input to the extractor is a declarative
specification that states where the data of
interest is located on the HTML pages, and how
the data should be packaged into objects. We
have implemented the Web extractor using the
Python programming language stressing efficiency
and ease-of-use. We also describe various ways of
improving the functionality of our current
prototype. The prototype is installed and running
in the TSIMMIS test bed as part of a DARPA
(Intelligent Integration of Information)
technology demonstration where it is used for
extracting weather data form various WWW
sites.lt/Bodygt lt/Documentgt lt/Textgt
lt/Contentgt - ltResultsgt
Observação A versão demo não permite definir a
tarefa de IE
21ClearForest (3)
- ltEntitiesgt - ltProvinceOrState offset"249"
length"2"gt ltProvinceOrState offset"249"
length"2"gtCalifornialt/ProvinceOrStategt
ltDetection offset"249" length"2"gtCAlt/Detectiongt
lt/ProvinceOrStategt - ltIndustryTerm
offset"358" length"17"gt ltIndustryTerm
offset"358" length"17"gtconfigurable
toollt/IndustryTermgt ltDetection offset"358"
length"17"gtconfigurable toollt/Detectiongt
lt/IndustryTermgt - ltIndustryTerm offset"1009"
length"24"gt ltIndustryTerm offset"1009"
length"24"gttechnology demonstrationlt/IndustryTerm
gt ltDetection offset"1009" length"24"gttechnolo
gy demonstrationlt/Detectiongt lt/IndustryTermgt -
ltTechnology offset"426" length"4"gt
ltTechnology offset"426" length"4"gtHTMLlt/Technolo
gygt ltDetection offset"426" length"4"gtHTMLlt/De
tectiongt lt/Technologygt - ltTechnology
offset"620" length"4"gt ltTechnology
offset"620" length"4"gtHTMLlt/Technologygt
ltDetection offset"620" length"4"gtHTMLlt/Detection
gt lt/Technologygt - ltOrganization offset"188"
length"30"gt ltOrganization offset"188"
length"30"gtDepartment of Computer
Sciencelt/Organizationgt ltScore offset"188"
length"30"gt3lt/Scoregt ltDetection offset"188"
length"30"gtDepartment of Computer
Sciencelt/Detectiongt lt/Organizationgt
22ClearForest (4)
- ltOrganization offset"219" length"28"gt
ltOrganization offset"219" length"28"gtStanford
University Stanfordlt/Organizationgt ltScore
offset"219" length"28"gt5lt/Scoregt ltDetection
offset"219" length"28"gtStanford University
Stanfordlt/Detectiongt lt/Organizationgt -
ltProduct offset"732" length"6"gt ltProduct
offset"732" length"6"gtPythonlt/Productgt
ltDetection offset"732" length"6"gtPythonlt/Detecti
ongt lt/Productgt lt/Entitiesgt ltEvents_Facts
/gt lt/Resultsgt lt/XMLgt
Obs A qualidade das anotações (marcações) aqui
não é alta. Por exemplo, os autores do artigo
não foram marcados
23ClearForest (5)
- Visualização de documentos marcados
24ClearForest (5)
25 - Uma Solução para a Definição de Tarefas de IE A
Linguagem DIAL
26Knowledge Engineering Approach Appelt 99
- Gramáticas construídas manualmente
- Padrões de domínio definidos por especialistas
humanos por introspecção e inspecção de um corpus - Regulagem trabalhosa / O preço a pagar /
27Características da Linguagem
- DIAL é um formalismo para definição de tarefas de
IE - Quem programa em DIAL?
- Engenheiro de Conhecimento
- Knowledge Engineering Approach
- Tem um grau de independência de um particular
domínio de conhecimento (domain-independence) - Programas DIAL são domain-dependent
- Linguagem de IE do ClearForest
28Uma Primeira e Ingênua Solução DIAL para o
Exemplo do Prólogo
Extracting Semistructured Information from the
Web J. Hammer, H. Garcia-Molina, J. Cho, R.
Aranha, and A. Crespo Department of Computer
Science Stanford University Stanford, CA
94305-9040 hector,joachim,cho,aranha,crespo_at_cs.
stanford.edu http//www-db.stanford.edu/ We
describe a configurable tool for extracting semi
structured data from a set of HTML pages and for
converting the extracted information into
database objects. The input to the extractor is a
declarative specification that states where the
data of interest is located on the HTML pages,
and how the data should be packaged into
objects. We have implemented the Web extractor
using the Python programming language stressing
efficiency and ease-of-use. We also describe
various ways of improving the functionality of
our current prototype. The prototype is installed
and running in the TSIMMIS test bed as part of a
DARPA (Intelligent Integration of Information)
technology demonstration where it is used for
extracting weather data form various WWW sites.
29Uma Solução DIAL ... (2)
- Queremos anotar, especificamente para o exemplo
- O título
- Os autores
- Os e-mails dos autores
- A frase fazendo referência ao protótipo
30Uma Solução DIAL ... (3)
- Concept Titulo
- Attributes
- string Descricao
-
- Rule Titulo
- Pattern
- Extracting ... from the Web -gt temp
- Actions
- Add(Descricao lt- temp)
-
- De forma semelhante, para autores, e-mails e o
trecho sobre o protótipo - Os padrões estão corretos, mas restritos demais
Nosso primeiro programa DIAL
31Uma Solução DIAL ... (4)
- Com a ajuda destes conceitos e regras para os
conceitos, o Servidor IE ? ver o slide seguinte ?
pode anotar o documento com ltTitulogt ...
lt\Titulogt, ltAutoresgt ... lt\Autoresgt, ltE-mailsgt
... lt\E-mailsgt, ltPrototipogt ... lt\Prototipogt -
32O Ambiente DIAL
Adaptada de Feldman 2007
33Arquitetura Simplificada do Servidor IE
Input Non-annotated Text
Output Annotated Text
Shallow parsing (análise rasa) melhora velocidade
e robustesa sacrificando profundidade da análise
34Estrutura de um Programa DIAL
- Estrutura em Blocos (linguagem algólica)
- Bloco
- Conceitos
- Regras
Os próximos quatro slides são copiados de
Feldman 2007
35Estrutura ... (2)
Block Section Description
Concept Attributes These are filled with values from the concept instances matching text
Concept Guards These are logical conditions on the attributes values
Concept Actions Code operations to perform after finding a concept
36Estrutura ... (3)
Block Section Description
Concept Internal Concepts that can be used only within the scope of the context and any inheriting concepts
Concept Function Add-on Perl functions, used only within the scope of the context and any inheriting concepts
Concept Context Defines the text units in which to search for the concept instances
37Estrutura ... (4)
Block Section Description
Concept Dependencies Permits definition of an explicit dependency of one concept to another
Rule Pattern Defines the text pattern to match when searching for a concept instance
Rule Constraints Defines logical conditions to apply to values extracted from the pattern match
38Estrutura ... (5)
Block Section Description
Rule Action Code operations to perform after finding a pattern match. Among other things, this is where concept instances are added
39Guards, Contraints, Function, Internal
- Por que tanta riqueza de construções?
- Estima-se que o uso de Guards, Contraints,
Function e Internal particamente se limita a
situações em que o documento para extração de
informação contém erros ou inconsistências
40Como se Proteger de uma Data Errada?
- Concept Data
- Attributes
- number Dia
- number Mes
- number Ano
- Guards
- (Dia gt 1) AND (Dia lt 31)
- (Mes gt 1) AND (Mes lt 12)
- (Ano gt 0)
41Contexto
- Concept ProcedimentoDeManobra
- ...
- Context
- (NOT Introdução) AND (NOT Seção
- X) AND ... // evita fazer
- // parsing nas seções indicadas
- ...
42Patterns
- String Constants
- Wordclass Names
- Thesaurus Names
- Concept Names
- Character-Level Regular Expressions
- Character Classes
- Scanner Properties
- Token Elements
43Exemplo 1 Extraindo Nomes de Pessoas
- No exemplo de motivação, tínhamos J. Hammer, H.
Garcia-Molina, J. Cho, R. Aranha, and A. Crespo - Mas um nome de pessoa pode ser precedido de um
título, ou um nome do meio, etc. - Vamos definir o conceito Pessoa, e regras para
Pessoa, de modo a ter uma certa generalidade - J. Hammer, Miss Alice Douglas Fitzgerald, ...
44Exemplo 1 ... (2)
- Wordclass wcTitulo Mr. Mr Mrs Mrs. Miss /
negrito obrigatório / - Concept Pessoa
- Attributes
- string Titulo
- string Prenome
- string NomeDoMeio
- string UltimoNome
-
- Rule Pessoa
- Pattern
- (wcTitulo ?)? -gt titulo // ? Titulo
- Capital -gt prenome (Capital ?)? -gt nomedomeio
- Capital -gt ultimonome
- Actions
- Add (Titulo lt- titulo, Prenome lt-
prenome.Text(), NomeDoMeio lt- nomedomeio.Text(),
UltimoNome lt- ultimonome.Text())
X? indica que a instância que casa com X é
opcional
45Exemplo 2 Um Sofisticado Pattern
- Engenheiros laureados X, Y, ... e Z
- Engenheiros premiados X, Y, ... e Z
- Técnicos laureados X, Y, ... e Z
- Técnicos premiados X, Y, ... e Z
46Exemplo 2 ... (2)
- Concept ListaDePessoas
- Wordclass wcSubstantivos engenheiros técnicos
- Wordclass wcAdjetivos laureados premiados
- Rule ListaDePessoas
- Pattern wcSubstantivos wcAdjetivos
- (Pessoa / re-uso de conceito / -gtgt /
operador de lista append / Lista , ?) and
Pessoa -gtgt Lista - Actions
- Iterate (Lista) Begin
- PessoaCorrente Lista.CurrentItem()
- Add (Pessoa, PessoaCorrente, Prenome lt-
PessoaCorrente.Prenome, UltimoNome lt-
PessoaCorrente.UltimoNome) - End
-
47Exemplo 3 Um Pattern Mais Refinado para a Frase
Fazendo Referência a um Protótipo
- We describe a configurable tool for extracting
semi structured data from a set of HTML pages and
for converting the extracted information into
database objects. The input to the extractor is a
declarative specification that states where the
data of interest is located on the HTML pages,
and how the data should be packaged into
objects. We have implemented the Web extractor
using the Python programming language stressing
efficiency and ease-of-use. We also describe
various ways of improving the functionality of
our current prototype. The prototype is installed
and running in the TSIMMIS test bed as part of a
DARPA (Intelligent Integration of Information)
technology demonstration where it is used for
extracting weather data form various WWW sites.
Observe que duas frases empregam a palavra
protótipo a verde e a vermelha.
48Exemplo 3 ... (2)
- . Token prototype Token .
- e
- . Prototype Token .
- Uma regra para cada pattern
49Exemplo 4 Um Pattern Mais Refinado para a Frase
Fazendo Referência a um Protótipo
- We describe a configurable tool for extracting
semi structured data from a set of HTML pages and
for converting the extracted information into
database objects. The input to the extractor is a
declarative specification that states where the
data of interest is located on the HTML pages,
and how the data should be packaged into
objects. We have implemented the Web extractor
using the Python programming language stressing
efficiency and ease-of-use. We also describe
various ways of improving the functionality of
our current prototype. The prototype is installed
and running in the TSIMMIS test bed as part of a
DARPA (Intelligent Integration of Information)
technology demonstration where it is used for
extracting weather data form various WWW sites.
Queremos escolher uma frase somente se ela
contiver TSIMMIS e DARPA, em qualquer ordem
50Exemplo 3 ... (2)
- . Token TSIMM Token DARPA Token
. - e
- . Token DARPA Token TSIMM Token
. - Uma regra para cada pattern
- Token substitui qualquer token cujo valor não é
importante - Token substitui um ou mais tokens
51Rule Constraints
- Suponha que queremos definir um pattern como uma
seqüência de palavras de qualquer comprimento,
exceto 5 - Pattern
- Capital / Capital qq token começando com
letra maiúscula / - Constraints
- this_match.TokenCount() ! 5
52Tipos de Pattern Mais Exemplos
- Character-Level Regular Expressions
- McDonald casa com McA-Za-z
- Character Classes
- Charclass ccltnomegt conjunto de character-level
regular expressions - Scanner Properties
- Number / só caracteres numéricos /, Alfa / só
caracteres alfabéticos /
53Considerações Finais
- Geração de anotações
- Toda instância de um conceito é marcada com o
nome do conceito - A BNF da linguagem não está disponível
54 - Automatically Trainable IE Systems
55Automatically Trainable Systems Appelt 99
- Use statistical methods when possible
- Learn rules from annotated corpora / Achar um
algoritmo adequado de indução de regras?
Desenvolver um novo algoritmo? / - Learn rules from interaction with user
56(LP)2 Um Algoritmo para Indução de Regras
57(LP)2 ... (2)
- A lógica do algoritmo Ciravegna 2001
- Tagging rule
- Pattern of conditions on words ? Action inserting
SGML tag in texts -
- Helped by
- Morphological analyzer
- Dictionary or Gazetteer
Shallow knowledge about LP
58(LP)2 ... (3)
- Um Exemplo
- Um trecho de um texto de um corpus ... The
Seminar at 4 pm will be ... - é marcado assim ... The Seminar at ltstimegt 4 pm
will be ... / Note lt/stimegt não é necessária / - A primeira regra The Seminar at 4 pm ? The
Seminar at ltstimegt 4 pm lt/stimegt - Regra generalizada (muito mais significativa) at
digit timeid ? at lttimegt digit timeid lt/timegt
59(LP)2 ... (4)
- Note que as regras induzidas são completamente
diferentes dos conceitos / regras DIAL - O que dizer da precisão da regra induzida?
- É diretamente proporcional ao número de
documentos no corpus que se refere a tempo da
mesma maneira (padrão ou freqüência) - Diversas outras regras de tempo podem ser
induzidas, com maior ou menor precisão - Necessidade de corpora grande e significativo
- Padrões confiáveis
- (LP)2 está no cerne de um protótipo de IE chamado
LearningPinocchio
60Knowledge Engineering Approach versus
Automatically Trainable Systems
- Qual abordagem é a melhor?
- Evidentemente, nenhuma das duas é definitivamente
a melhor - Ou cada uma tem suas vantagens, e suas
desvantagens - Também evidentemente, há os apaixonados por
cada enfoque
61Knowledge Engineering Approach versus
Automatically Trainable Systems (2)
- DIAL versus (LP)2
- DIAL
- Engenheiro de conhecimento (EC) tem que escrever
programas DIAL, possivelmente não triviais - A precisão das regras vai depender da habilidade
e conhecimento do EC, e do poder de expressão da
DIAL - Um parser avançado terá que ser construído
- Apoiado em programas DIAL para a análise
semântica de textos, ou análise do domínio
62Knowledge Engineering Approach versus
Automatically Trainable Systems (3)
- (LP)2
- O trabalho do EC agora pode ser simples e trivial
- Fazer anotações em corpora
- O resto, corre por conta do (LP)2
- Indução automática, dos corpora, de regras de
anotação de textos fora dos corpora - Moscas na sopa
- Quem pode garantir a priori que (LP)2 induza
regras relevantes e precisas sobre um particular
domínio? - Dispõe-se de corpora?
- Volume e qualidade
63Knowledge Engineering Approach versus
Automatically Trainable Systems (4)
- Fato 1
- Até nossos dias, Knowledge Engineering Approach
tem melhor desempenho, na média, do que
Automatically Trainable Systems - Fato 2
- Automatically Trainable Systems é um enfoque
extremamente sedutor - O grosso dos cientistas concernentes está se
debruçando sobre a abordagem - Text Mining, Machine Learning
64 - Bibliografia e Referências
65 - Definição de IE http//www.itl.nist.gov/iaui/894.
02/related_projects/muc/ - Sistema de IE http//sws.clearforest.com/Blog/
- Feldman 2007 Feldman, R. Sanger, J. The Text
Mining Handbook Advanced Approaches in Analyzing
Unstructured Data, Cambridge University Press,
2007 - Feldman, R. et al. A Domain Independent
Environment for Creating Information Extraction
Modules, International Conference on Information
and Knowledge Management (CIKM01), pp. 586-592 - Ciravegna, F. Adaptive Extraction from Text by
Rule Induction and Generalization, IJCAI, 2001 - Sistema de IE http//tcc.itc.it/research/textec/t
ools-resources/learningpinocchio.html - Appelt 99 Appelt, D. Israel, D. Introduction
to Information Extraction Technology, Tutorial
Prepared for IJCAI, 1999 -