73
Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) [email protected] Simpósio de Sistemas de Informação – FTC 27 a 29 de out. de 2011

Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) [email protected]

Embed Size (px)

Citation preview

Page 1: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Extração de Informação em Bases Textuais utilizando

Expressões Regulares

Prof. Pablo Freire MatosInformática - Instituto Federal Baiano (IFBAIANO)

[email protected]

Simpósio de Sistemas de Informação – FTC

27 a 29 de out. de 2011

Page 2: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Roteiro

EI em Bases Textuais com ER

Vamos compreender as palavras-chave do título:

2

Page 3: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Roteiro

EI em Bases Textuais com ER3

Page 4: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

O que é Extração de Informação?

EI em Bases Textuais com ER

Recuperação de Informação

4

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 5: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

RI x EI Recuperação da Informação (RI)

Extração da Informação (EI)

EI em Bases Textuais com ER5

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 6: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

O que é Extração de Informação?

EI em Bases Textuais com ER

Informação Não Estruturada

Descoberta de Conhecimento

Informação Estruturada

Base de Dados

6

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 7: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Descoberta de Conhecimento

EI em Bases Textuais com ER

A

B

C

A = Proteína XB = PriapismoC = Anemia Falciforme

?

7

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 8: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Descoberta de ConhecimentoProteína Efeito

PositivoQuant.

Pacientea b 10

a b 20

a e 40

a b 15

EI em Bases Textuais com ER

Efeito Negativo Doença Quant.

Pacienteb c 10

b c 30

b f 20

A = Proteína XB = PriapismoC = Anemia Falciforme

8

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 9: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

O que é Extração de Informação?

EI em Bases Textuais com ER

Mineração de Dados

Mineração de Textos

9

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 10: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Roteiro

EI em Bases Textuais com ER10

Page 11: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

O que são Bases Textuais?

EI em Bases Textuais com ER

Formato TXT

11

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 12: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

O que são Bases Textuais?

EI em Bases Textuais com ER

Formato PDF

12

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 13: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

O que são Bases Textuais?

EI em Bases Textuais com ER

Formato HTML

13

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 14: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

O que são Bases Textuais?

EI em Bases Textuais com ER

Formato XML

14

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 15: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

O que são Bases Textuais?

EI em Bases Textuais com ER

Formatos Textuais

15

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 16: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

O que são Bases Textuais?Cenário Atual:

Grande quantidade de informação

Informação estas que encontram-se em: e-mail, blogs, wikis, artigos,... + de 80% das informações estão em formato textual

Gantz et al. (2007)

EI em Bases Textuais com ER16

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 17: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

O que são Bases Textuais? Capacidade humana de analisar e compreender

estes dados é limitada

EI em Bases Textuais com ER17

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 18: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

O que são Bases Textuais?

EI em Bases Textuais com ER

Informação e conhecimento importantes podem ser perdidos

18

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 19: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Roteiro

EI em Bases Textuais com ER19

Page 20: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

O que são Expressões Regulares? Definição

“É um método formal de especificar um padrão de texto”

Outra Definição: “Uma composição de símbolos, caracteres com funções

especiais, que, agrupados entre si e com caracteres literais, formam uma sequência, uma expressão.

Essa expressão é interpretada como uma regra, que indicará sucesso se uma entrada de dados qualquer “casar” com essa regra, ou seja, obedecer exatamente a todas as suas condições.”

EI em Bases Textuais com ER

Jargas (2009)

20

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 21: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

O que são Expressões Regulares? Outras Definições:

“Uma maneira de procurar um texto que você não lembra exatamente como é, mas tem uma ideia das variações possíveis”

“Uma maneira de procurar um trecho em posições específicas como no começo ou no fim de uma linha, ou palavra”

“Uma maneira de um programador especificar padrões complexos que podem ser procurados e casados em uma cadeia de caracteres”

“Uma construção que utiliza pequenas ferramentas feita para obter determinada sequência de caracteres de um texto”

EI em Bases Textuais com ER21

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 22: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

O que são Expressões Regulares? Recurso poderoso utilizado por muitos

aplicativos

Por exemplo...

EI em Bases Textuais com ER22

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 23: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Editor de Texto (1/3)

EI em Bases Textuais com ER

Notepad++

23

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 24: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Editor de Texto (2/3)

EI em Bases Textuais com ER

Word 2007

24

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 25: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Editor de Texto (3/3)

EI em Bases Textuais com ER

Antes

Depois

25

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 26: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Navegador de Internet (1/2)

EI em Bases Textuais com ER

JavaScript

26

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 27: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Navegador de Internet (2/2)

EI em Bases Textuais com ER

HTML 5

27

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 28: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Banco de Dados Recuperar todos os alunos cujos nomes

terminem com “santos”

EI em Bases Textuais com ER

mysql> SELECT * –> FROM aluno –> WHERE nome LIKE “%santos”;

SQL

mysql> SELECT * –> FROM aluno –> WHERE nome REGEXP “santos$”;

SQL com Expressão Regular

?

28

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 29: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Linguagem de Programação pacote java.util.regex

Pattern p = Pattern.compile(<regular expression>); Matcher m = p.matcher(<input source>);

Exemplo 1:Pattern p = Pattern.compile("[jJ]ava");Matcher m = p.matcher("Java é mais java!");// enquanto o Matcher encontrar o padrão na String fornecida while (m.find()) { System.out.println(m.group()); }

EI em Bases Textuais com ER

Saída:Javajava

29

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 30: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Linguagem de Programação pacote java.util.regex

Pattern p = Pattern.compile(<regular expression>); Matcher m = p.matcher(<input source>);

Exemplo 2:Pattern p = Pattern.compile("Java", Pattern.CASE_INSENSITIVE);Matcher m = p.matcher("Java é mais java!");// enquanto o Matcher encontrar o padrão na String fornecida while (m.find()) { System.out.println(m.group()); }

EI em Bases Textuais com ER

Saída:Javajava

30

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 31: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Linguagem de Programação Exemplo 3:

Pattern p = Pattern.compile("Java", Pattern.CASE_INSENSITIVE);Matcher m = p.matcher("Java é mais java!");// enquanto o Matcher encontrar o padrão na String fornecida while (m.find()) {

System.out.printf("Encontrado: \"%s\" de %d à %d.\n", m.group(), m.start(), m.end());}

EI em Bases Textuais com ER

Saída:Encontrado: "Java" de 0 à 4. Encontrado: "java" de 12 à 16.

31

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 32: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Linguagem de Programação

EI em Bases Textuais com ER

API Java

32

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 33: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Linguagem de Programação Diferença dos métodos find() e matches()

Matches() inclui implicitamente o ^ no início e $ no final do padrão

Pattern p = Pattern.compile("\\d\\d\\d"); Matcher m = p.matcher("a123b"); System.out.println(m.find()); System.out.println(m.matches());

p = Pattern.compile("^\\d\\d\\d$"); m = p.matcher("123"); System.out.println(m.find()); System.out.println(m.matches());

EI em Bases Textuais com ER

Saída:truefalsetruetrue

33

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 34: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

O que são Expressões Regulares? Recurso poderoso utilizado por muitos

aplicativos: Editores de Texto Navegadores de Internet Linguagens de Programação Banco de Dados

... várias outras tarefas que envolvem manipulação de dados

EI em Bases Textuais com ER34

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 35: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Conhecendo as Expressões

Regulares (ERs)

Page 36: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Ambiente de Teste

EI em Bases Textuais com ER36

Piazinho

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 37: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Metacaracteres Correspondem as ferramentas básicas de uma expressão regular São combinados para representar o padrão de busca desejado Símbolos especiais

EI em Bases Textuais com ER

Metacaractere Nome. Ponto[] Lista[^] Lista negada? Opcional* Asterisco+ Mais{} Chaves

Metacaractere Nome^ Circunflexo$ Cifrão\b Borda\ Literal| Ou() Grupo\1 Retrovisor

37

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 38: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Metacaracteres tipo RepresentantePonto: “.”

Curinga que casa com uma única letra, número, caractere especial (@,#,$,%,...) , TAB, o próprio ponto, ...

Exemplos.ato n.o .im 13.30 c.mprido

EI em Bases Textuais com ER

pato, rato, gato, ...não, nao, nÃo, ...fim, Fim, ...13:30, 13.30, 13 30, 13-30, ...comprido, cumprido, ...

38

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 39: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Metacaracteres tipo RepresentanteLista: [...]

Mais específica que o ponto, a lista determina quais caracteres ou símbolos podem ser casados

Só pode ser casado um caractere por vez dentro de cada lista

Exemplosn.o n[aã]o [pgr]ato 12[:. ]45 <[BIP]>

Observação O ponto dentro da lista NÃO é um metacaractere e sim um caractere

normal

EI em Bases Textuais com ER

não, nao, nÃo, n9o, nxo, n@o, ...não, nao (Obs: não casa com naão)pato, gato, rato12:45, 12.45, 12 45<B>, <I>, <P>

39

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 40: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Metacaracteres tipo RepresentanteLista: [...] Listas com intervalos

Como representar uma ER para casar com qualquer letra minúscula?[abcdefghijklmnop...z]??? MUITO LONGA!

Para facilitar a representação de sequências, pode-se usar intervalos[0123456789] [abcdefghijklmnop...z] [ABCDEFGHIJKLMNOP...Z]

Mais de um intervalo pode ser utilizado em uma lista[0-57-9] [d-fA-C5-7]

EI em Bases Textuais com ER

= [0-9]= [a-z]= [A-Z]

= [012345789]= [defABC567]

40

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 41: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Metacaracteres tipo RepresentanteLista: [...] Observações

Como representar o “-” dentro de uma lista se ele é especial? Deve-se sempre colocá-lo no final da lista

[a-f-] = [abcdef-][0-9-] = [0123456789-]

Como representar o “]” dentro de uma lista se ele é especial? Deve-se sempre colocá-lo no início da lista

[]] casa somente com o ][]6-9] casa com ], 6, 7, 8, 9[]-] casa com ] ou -

Intervalos respeitam a ordem da tabela ASCII [:-@]

EI em Bases Textuais com ER

casa com :, ;, <, =, >, ?, e @

41

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 42: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Tabela ASCII

EI em Bases Textuais com ER

American Standard Code for Information Interchange

42

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 43: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Metacaracteres tipo RepresentanteLista negada: [^...]

Funciona com a lógica inversa da lista normal

Tudo que encontra-se na lista não será casado[^0-9] [:;,.!?][^ ]

EI em Bases Textuais com ER

casa com qualquer símbolo que NÃO seja númerocasa com qualquer pontuação que não estejaseguida por um espaço em branco

43

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 44: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Metacaracteres tipo QuantificadorOpcional: ?

Indica nenhuma ou uma ocorrência do padrão anterior[pgr]atos? casa[r!]?

Asterisco: * Indica nenhuma ou muitas ocorrências do padrão anteriorto*c t[oc]*

O que casará [ar]*a na palavra arara ? 1. a [ar] zero vezes, seguido de a2. ara [ar] duas vezes, seguido de a3. arara [ar] quatro vezes, seguido de a4. n.d.a

Sempre é tentado casar o maior número de vezesEI em Bases Textuais com ER

pato, gato, rato, patos, gatos, ratoscasa, casar, casa!

tc, toc, tooc, toooc, toooooc, ...t, to, tc, toc, tooc, tocc, toccooocc, ...

Jargas (2009)

44

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 45: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Metacaracteres tipo QuantificadorMais: +

Indica uma ou mais ocorrências do padrão anteriorto+c t[oc]+

EI em Bases Textuais com ER

toc, tooc, toooc, toooooc, ...to, tc, toc, tooc, tocc, toccooocc, ...

45

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 46: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Metacaracteres tipo QuantificadorChaves: {...} Permite que seja especificada um limite mínimo ou

máximo de repetições para o padrão anterior Possibilidades

{n,m} de n até m{n,} pelo menos n{n} exatamente n{0,} o mesmo que o “*”{1,} o mesmo que o “+”

Exemplosto{1,3}c to{2,}c t[oc]{2,}

EI em Bases Textuais com ER

toc, tooc, toooctooc, toooc, tooooc, ...tooc, toooc, tooooc, tco, toc, tcooocoo ...

46

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 47: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Metacaracteres tipo Âncora Circunflexo: ^

Indica que o padrão a seguir deve ser considerado a partir do início da linha^[a-z] linhas que começam com letras minúsculas^[0-9] linhas que começam por números^[^0-9] linhas que NÃO começam por números'

Cifrão: $ Indica que o padrão anterior deve ser considerado no fim da linhatoc$ linhas que terminam com a palavra toc[0-9]$ linhas que terminam com número[:-@]$ linhas que terminam com os caracteres :, ;, <, =, >, ?, e @)

Combinações úteis^$ linha em branco...$ últimos três caracteres da linha^.{15,30}$ linhas que contenham entre 15 e 30 caracteres

EI em Bases Textuais com ER47

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 48: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Metacaracteres tipo ÂncoraBorda: \b

Indica a borda de uma palavra (início ou fim)ana ana, anamaria, analucia, mariana, luciana\bana ana, anamaria, analuciaana\b ana, mariana, luciana\bana\b ana Por palavra, deve-se entender sequências de letras, números e o

caractere “_”

EI em Bases Textuais com ER48

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 49: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Outros MetacaracteresLiteral: \

Deve ser utilizado antes de qualquer metacaractere para torná-lo um caractere normal sem qualquer efeito especial para a expressão regular

Ou alternativo: | Indica um padrão com várias alternativas

A lista funciona como um tipo de operador “OU” somente para uma letra

Hello | Ola casa com a palavra Hello ou com Olahttp:// | https:// casa com http:// ou https://

EI em Bases Textuais com ER49

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 50: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Outros MetacaracteresGrupo: (...) Possibilita o agrupamento de caracteres que serão tratados

atomicamente

(oi!)+

(\.[0-9]){3}

(www\.)?simsis.net

(super|hiper)mercado

(su|hi)permercado

((su|hi)per)?mercado

(mini|(su|hi)per)?mercado

EI em Bases Textuais com ER

oi!, oi!oi!, oi!oi!oi!, ...

.3.4.5, .7.2.4, ...

www.simsis.net, simsis.net

supermercado, hipermercado

supermercado, hipermercado

supermercado, hipermercado, mercado

supermercado, hipermercado, mercado, minimercado

50

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 51: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Outros MetacaracteresRetrovisor: \1 ... \9 Retrovisor \1 é uma referência ao texto casado do primeiro

grupo

(quero)-\1

([A-Za-z]+)-\1

([A-Za-z]+)-?\1

(lenta)(mente) é \2 \1

Ver exemplo prático no slide 24

EI em Bases Textuais com ER

quero-quero ...

quero-quero, bate-bate, ...

quero-quero, bate-bate, lili, dudu, ...

lentamente é mente lenta

51

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 52: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Metacaracteres tipo barra-letra

EI em Bases Textuais com ER

Metacaractere Função

\d Dígito

\D Não Dígito

\w Palavra

\W Não-palavra

\s Branco\S Não-branco

\w casa letras, dígitos, ou '_'.

52

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 53: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Metacaractere Moderno(?:ER) É como um grupo normal, só que não é guardado nem

incluído na contagem de grupos, ou seja, não é acessível com retrovisores

^(Pablo)\s(?:F\.)\s(Matos)

EI em Bases Textuais com ER

Pablo F. Matos

53

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 54: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Exercícios Validação de:

Data no formato dd/mm/aaaa

CPF

IP

E-mail

EI em Bases Textuais com ER54

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

[\d]{2}/[\d]{2}/[\d]{4}

[\d]{3}\.[\d]{3}\.[\d]{3}-[\d]{2}

[\d]{1,3}\.[\d]{1,3}\.[\d]{1,3}\.[\d]{1,3}

[\w\d._-]{3,}@[\w]{2,}\.[\w]{3,4}(\.[\w]{2})?

Page 55: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Metacaracteres (1/2)

EI em Bases Textuais com ER

Metacaractere Nome Função

. PontoUm caractere qualquer

[...] ListaLista de caracteres permitidos

[^...] Lista negada

Lista de caracteres proibidos

Representantes

Metacaractere Nome Função? Opcional Zero ou um

* Asterisco Zero, um ou mais

+ Mais Um ou mais{n,m} Chaves De n até m

Quantificadores

55

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 56: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Metacaracteres (2/2)

EI em Bases Textuais com ER

Metacaractere Nome Função

^ Circunflexo Início da linha

$ Cifrão Fim da linha

\b BordaInício ou fim da palavra

Âncoras

Metacaractere Nome Função

\. LiteralTorna literal o ponto

| Ou Ou um ou outro

(...) Grupo Delimita um grupo

\1...\9 RetrovisorTexto casado nos grupos 1...9

Outros

56

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 57: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Prática Acessar:

http://gbd.dc.ufscar.br/~pablofmatos/simSIS2011/

Programas: ftc-Etiquetador: Etiquetador morfossintático em Java ftc-ER:Testador de Expressão Regular em Java

Bases Textuais: Texto Texto Etiquetado

Ambiente de Teste: Piazinho (Testador de Expressão Regular no browser)

EI em Bases Textuais com ER57

Page 58: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Como Extrair Informação das Bases Textuais? Etiquetador Part-Of-Speech (POS)

O objetivo é atribuir automaticamente etiquetas (tags) de acordo com a classe gramatical de cada palavra

EI em Bases Textuais com ER

Palavras que podem ser tanto verbo como substantivo:Ex: programs, process

Dificuldade

58

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 59: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

EI em Bases Textuais com ER

Exemplo de Sentença Etiquetada

Como Extrair Informação das Bases Textuais?

Etiquetador POS da Stanford: 86,91% - novas palavras

Padrão Tag: Penn Treebank

Exemplo de Sentença

padrão JJ_NN

TagSet (2011)Marcus et al. (1993)

59

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 60: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Como Extrair Informação das Bases Textuais?

EI em Bases Textuais com ER

Arquivo TXT Não Etiquetado

60

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 61: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Como Extrair Informação das Bases Textuais?

EI em Bases Textuais com ER

Arquivo TXT Etiquetado

61

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 62: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Exemplo 1

62

Extrair Informação Padrão (JJ_JJ)

Grupo (JJ_JJ)

EI em Bases Textuais com ER

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 63: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Exemplo 1

EI em Bases Textuais com ER63

Compare o resultado com o programa ftc-ER

Resposta

26 sentença

s

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 64: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Padrão 1.0

64

Extrair Informação Padrão (JJ_JJ_NN_NN_(NN)?)

EI em Bases Textuais com ER

Resposta

6 sentenç

as

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 65: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Padrão 1.1

65

Extrair Informação Padrão (~JJ)_(JJ_NN_NN_(NN)?)

Grupo (JJ_NN_NN_(NN)?)

EI em Bases Textuais com ER

Resposta

13 sentença

s

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 66: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Padrão 1.2

66

Extrair Informação Padrão (JJ_JJ_NN)_(~NN)

Grupo (JJ_JJ_NN)

EI em Bases Textuais com ER

Resposta

17 sentença

s

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 67: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Padrão 2.0 - Otimizado

67

Extrair Informação Padrão (~JJ)_(JJ_NN_IN)_(JJ_NN)_(~NN)

Grupo (JJ_NN)

EI em Bases Textuais com ER

Resposta

7 sentença

s

Extração de Informação Bases Textuais Expressões Regulares (ERs) Conhecendo as ERs Prática

Page 68: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Outros Ambientes de Teste Regex-Coach:http://weitz.de/regex-coach/

RegexBuddy:http://www.regexbuddy.com/

Visual REGEXP:http://laurent.riesterer.free.fr/regexp/

FireFox:https://addons.mozilla.org/en-US/firefox/addon/regular-expressions-tester/

EI em Bases Textuais com ER68

Page 69: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Referências (1/2) FRIEDL, J. E. F. Mastering Regular Expressions. 3 ed. USA: O'Reilly

Media, 2006. 544 p.

GANTZ, J. F. et al. The expanding digital universe: a forecast of worldwide information growth through 2010. IDC Whitepaper, 2007.

JARGAS, A. M. Expressões Regulares: Uma Abordagem Divertida. 3 ed. São Paulo: Novatec, 2009. 208 p. Disponível em: <http://aurelio.net/er/>. Acesso em: 10 out. 2011.

JARGAS, A. M. Expressões regulares: guia de consulta rápida. 2001. Disponível em: <http://aurelio.net/regex/guia/>. Acesso em: 10 out. 2011.

MARCUS, M. P.; MARCINKIEWICZ, M. A.; SANTORINI, B. Building a large annotated corpus of English: the penn treebank. Computational Linguistics, v. 19, n. 2, p. 313-330, 1993.

EI em Bases Textuais com ER69

Page 70: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Referências (2/2) ORACLE. Java platform API specification: standard edition 6. 2011.

Disponível em: <http://download.oracle.com/javase/6/docs/api/>. Acesso em: 03 de out. 2011.

THE STANFORD NATURAL LANGUAGE PROCESSING GROUP. Stanford log-linear part-of-speech tagger. 2011. Disponível em: <http://nlp.stanford.edu/software/tagger.shtml>. Acesso em: 05 out. 2011.

TAGSET. Penn Treebank Tagset. 2011. Disponível em: <http://www.computing.dcu.ie/~acahill/tagset.html>. Acesso em: 05 out. 2011.

EI em Bases Textuais com ER70

Page 71: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Penn Treebank Tagset (1/2)

EI em Bases Textuais com ER

Tag Meaning

CC Coordinating conjunction e.g. and,but,or... CD Cardinal Number DT Determiner

EX Existential there

IN Preposition or subordinating conjunction

JJ Adjective

JJR Adjective, comparative

JJS Adjective, superlative

NN Noun, singular or mass

NNP Proper Noun, singular

NNPS Proper Noun, plural

NNS Noun, plural

71

Page 72: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Penn Treebank Tagset (2/2)

EI em Bases Textuais com ER

Tag Meaning

RB AdverbMost words that end in -ly as well as degree words like quite, too and very

TO To VB Verb, base form subsumes imperatives, infinitives and

subjunctives VBD Verb, past tense

includes the conditional form of the verb to be VBG Verb, gerund or present participle

VBN Verb, past participle

VBP Verb, non-3rd person singular present

VBZ Verb, 3rd person singular present

72

Page 73: Extração de Informação em Bases Textuais utilizando Expressões Regulares Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) pablofmatos@yahoo.com.br

Extração de Informação em Bases Textuais utilizando

Expressões Regulares

Prof. Pablo Freire MatosInformática - Instituto Federal Baiano (IFBAIANO)

[email protected]

Simpósio de Sistemas de Informação – FTC

27 a 29 de out. de 2011