Extração e Mineração de Informação Independente de - INF

Propaganda
U NIVERSIDADE F EDERAL DE G OIÁS
I NSTITUTO DE I NFORMÁTICA
J ULIO C ESAR BATISTA P IRES
Extração e Mineração de Informação
Independente de Domínios da Web na
Língua Portuguesa
Goiânia
2015
U NIVERSIDADE F EDERAL DE G OIÁS
I NSTITUTO DE I NFORMÁTICA
AUTORIZAÇÃO PARA P UBLICAÇÃO DE D ISSERTAÇÃO
EM
F ORMATO E LETRÔNICO
Na qualidade de titular dos direitos de autor, AUTORIZO o Instituto de Informática da Universidade Federal de Goiás – UFG a reproduzir, inclusive em outro formato
ou mídia e através de armazenamento permanente ou temporário, bem como a publicar na
rede mundial de computadores (Internet) e na biblioteca virtual da UFG, entendendo-se
os termos “reproduzir” e “publicar” conforme definições dos incisos VI e I, respectivamente, do artigo 5o da Lei no 9610/98 de 10/02/1998, a obra abaixo especificada, sem que
me seja devido pagamento a título de direitos autorais, desde que a reprodução e/ou publicação tenham a finalidade exclusiva de uso por quem a consulta, e a título de divulgação
da produção acadêmica gerada pela Universidade, a partir desta data.
Título: Extração e Mineração de Informação Independente de Domínios da Web na
Língua Portuguesa
Autor(a): Julio Cesar Batista Pires
Goiânia, 08 de Maio de 2015.
Julio Cesar Batista Pires – Autor
Dr. Cedric Luiz de Carvalho – Orientador
J ULIO C ESAR BATISTA P IRES
Extração e Mineração de Informação
Independente de Domínios da Web na
Língua Portuguesa
Dissertação apresentada ao Programa de Pós–Graduação do
Instituto de Informática da Universidade Federal de Goiás,
como requisito parcial para obtenção do título de Mestre em
Ciência da Computação.
Área de concentração: Ciência da Computação.
Orientador: Prof. Dr. Cedric Luiz de Carvalho
Goiânia
2015
J ULIO C ESAR BATISTA P IRES
Extração e Mineração de Informação
Independente de Domínios da Web na
Língua Portuguesa
Dissertação defendida no Programa de Pós–Graduação do Instituto de
Informática da Universidade Federal de Goiás como requisito parcial
para obtenção do título de Mestre em Ciência da Computação, aprovada
em 08 de Maio de 2015, pela Banca Examinadora constituída pelos
professores:
Prof. Dr. Cedric Luiz de Carvalho
Instituto de Informática – UFG
Presidente da Banca
Profa. Dra. Ana Paula Laboissière Ambrósio
Instituto de Informática – UFG
Profa. Renata Vieira, Ph.D.
Faculdade de Informática – PUCRS
Todos os direitos reservados. É proibida a reprodução total ou parcial do
trabalho sem autorização da universidade, do autor e do orientador(a).
Julio Cesar Batista Pires
Graduou-se em Tecnologia em Análise e Desenvolvimento de Sistemas
(2012) pelo Instituto Federal de Educação, Ciência e Tecnologia Goiano –
IF Goiano. Durante toda a sua graduação foi monitor de diversas disciplinas de programação. Também fez projeto de iniciação científica, o qual gerou
o sistema Backlog, um software educativo em que os alunos aprendiam o
funcionamento de uma cadeia produtiva de modo cooperativo. O programa
é um sistema distribuído que utiliza programação paralela e possui interfaces ricas. Tal projeto ainda gerou dois artigos publicados em congressos com
Qualis B4 e mais alguns resumos expandidos. Durante o mestrado na UFG
– Universidade Federal de Goiás, foi bolsista da CAPES - Coordenação de
Aperfeiçoamento de Pessoal de Nível Superior e desenvolveu pesquisa na linha da Inteligência Computacional, mais especificamente em Web Semântica,
Processamento de Linguagem Natural e Mineração de Dados. Ainda realizou
estágio docência na UFG, em uma disciplina de programação para o curso de
Engenharia Elétrica. Também possui formação técnica em Informática (2009)
pelo IF Goiano. Atualmente é professor do ensino básico, técnico e tecnológico do IF Goiano e aluno especial do programa de doutorado da UFG. Possui
interesse na Inteligência Computacional em geral, no Processamento Paralelo
e Distribuído e no Desenvolvimento de Jogos Eletrônicos.
Dedico este trabalho à minha família, principalmente aos meus pais, Bosco e
Divina, exemplos de vida que sempre se preocuparam com a minha educação.
Agradecimentos
Agradeço primeiramente a Deus, por mais esta conquista e por todas as oportunidades que me foram dadas, graças à sua benção. Também agradeço aos meus pais, meu
irmão e minha noiva que sempre me apoiaram para nunca desistir nos tortuosos caminhos
da vida e pela compreensão por dedicar tantas horas ao presente trabalho.
Além dos apoios citados, a realização deste trabalho contou com várias colaborações, às quais fico bastante grato. Deixo meus agradecimentos a seguir:
À Coordenação de Aperfeiçoamento de Pessoal de Nível Superior (CAPES) pela
bolsa até quando eu comecei a trabalhar. Essa bolsa me permitiu dedicação exclusiva ao
mestrado enquanto eu cursava as disciplinas.
Ao professor Cedric Luiz de Carvalho, pelas orientações, considerações, correções e críticas construtivas referentes ao trabalho.
Ao professor americano, Jeffrey Van Baalen da Universidade de Wyoming, pela
colaboração e sugestão de ideias fundamentais para o trabalho.
Aos professores Ana Paula Ambrósio, Humberto Longo e Wellington Martins,
com os quais tive maior contato no mestrado e puderam contribuir de várias formas.
Agradeço também a todos os professores do mestrado.
Ao amigo Cleon Xavier pelas sinceras sugestões e ajuda na revisão dos resultados deste trabalho.
Aos colegas de mestrado Ernesto Fonseca, Jáderson Cruz, Marcos Alves,
Matheus Ullmann, Norton Guimarães, e todos os demais que estavam presentes, ajudavam com dúvidas e sugeriam ideias.
Ao professor Etzioni e ao aluno Fader do Centro de Turing da Universidade de
Washington, que responderam algumas dúvidas de uma forma bastante encorajadora.
Aos demais, amigos, colegas e familiares que de alguma forma contribuíram para
a realização do presente trabalho.
Can machines think? [77] – Podem as máquinas pensar?
Alan M. Turing,
pai da Computação e precursor da Inteligência Artificial, propôs essa
questão em seu famoso artigo de 1950, Computing Machinery and
Intelligence.
Resumo
Pires, Julio C. B.. Extração e Mineração de Informação Independente de
Domínios da Web na Língua Portuguesa. Goiânia, 2015. 91p. Dissertação de
Mestrado. Instituto de Informática, Universidade Federal de Goiás.
Muitas pessoas estão constantemente conectadas na Web. Elas estão procurando por todo
tipo de coisa. A Web é uma enorme fonte de informação. Assim, as pessoas podem
encontrar praticamente tudo que elas precisam. Entretanto, as informações da Web são
desorganizadas e não possuem uma estrutura formal. Isso dificulta o processamento das
máquinas e consequentemente torna o acesso à informaçã mais difícil. Trazer estrutura
para a Web pode ser um dos pontos chave para facilitar a busca e navegaçã dos usuários.
Uma técnica recente, Extração de Informação Aberta, foi aplicada com sucesso para
extrair informação da Web. Essa técnica foi aplicada principalmente em páginas em
Inglês. Este trabalho é focado especificamente na extração de informação em Português.
As técnicas usadas aqui também podem ser utilizadas para outras linguagens.
Palavras–chave
Web Semântica, Extração de Informação, Mineração de Dados.
Abstract
Pires, Julio C. B.. Mining and Extraction of Domain Independent Information in Portuguese.. Goiânia, 2015. 91p. MSc. Dissertation. Instituto de Informática, Universidade Federal de Goiás.
Many people are constantly connected on the Web. They are looking for all kinds of
things. The Web is a huge source of information. So, they can find almost everything
they want. However, Web information is disorganized and have no formal structure. This
hampers machine processing and consequently makes information access more difficult.
Bringing structure to the Web can be one of the key points for facilitating user searching
and navigation. A recent technique, Open Information Extraction, has been successfully
applied to extract structured information from the Web. This technique has been mostly
applied in pages written in English. This work is specifically focused on information
extraction for Portuguese. Techniques used here can be also used to other languages too.
Keywords
Semantic Web, Information Extraction, Data Mining.
Sumário
Lista de Figuras
11
Lista de Tabelas
12
Lista de Algoritmos
13
Lista de Códigos de Programas
14
1
15
19
21
22
23
Introdução
1.1
1.2
1.3
1.4
2
Extração de Informação
2.1
2.2
2.3
3
Motivação e Justificativas
Objetivos
Metodologia
Organização da Dissertação
Extração de Informação Clássica
2.1.1
Métricas de Extração
2.1.2
O que Pode ser Extraído
2.1.3
Trabalho Manual
2.1.4
Aprendizado
Extração de Informação Aberta
2.2.1
Objetivos Chave e Técnicas
2.2.2
Tuplas Relacionais
2.2.3
Funcionamento
2.2.4
Convencional vs. Aberta
Considerações
Trabalhos Relacionados
3.1
3.2
3.3
3.4
TextRunner
Wanderlust
WOE
ReVerb
3.4.1
Algoritmos de Extração
Extração de Relação
Extração de Argumentos
3.4.2
3.5
3.6
3.7
R2A2
OLLIE
KrakeN
Exemplo de Extração
25
25
26
26
27
27
28
29
29
29
30
30
32
32
33
34
35
36
36
37
37
38
38
39
ClausIE
CORE
DepOE
Discussão
40
40
41
41
Mineração das Triplas
44
44
45
46
47
47
48
50
51
3.8
3.9
3.10
3.11
4
4.1
4.2
4.3
4.4
4.5
4.6
5
Mineração de Dados
Mineração Web
4.2.1
Categorias de Mineração
4.2.2
Subtarefas de Mineração
Mineração Web Semântica
Mineração de Regras de Associação
Configurações de Mineração
Conclusões
Implementação do Extrator/Minerador
5.1
Extrator
5.1.1
Entrada
5.1.2
Pré-processador
5.1.3
Sentence Detector
5.1.4
Tokenizer
5.1.5
POS Tagger
Conversor de Etiquetas
5.2
5.3
6
Chunker
5.1.7
Extração, Restrições e Dicionário
5.1.8
Saída
Minerador
5.2.1
Descoberta de Recursos
5.2.2
Seleção de Informação
5.2.3
Montagem das Transações
5.2.4
Generalização
5.2.5
Análise
5.2.6
Novas Triplas
Aplicação das Triplas Semânticas
Experimentação e Avaliação dos Resultados
6.1
7
5.1.6
Análise dos Resultados
Considerações Finais
7.1
7.2
Principais Contribuições
Limitações e Trabalhos Futuros
53
53
55
55
56
56
57
58
58
61
61
62
62
62
64
64
65
66
66
70
70
74
75
76
Referências Bibliográficas
77
8
85
Apêndice de Sentenças
Lista de Figuras
5.1
5.2
5.3
5.4
5.5
Arquitetura do ReVerb Modificado.
Arquitetura do Minerador.
Principais Aplicações das Triplas Semânticas
Pesquisa no Google.
Pesquisa em um sistema de Pergunta-Resposta.
54
63
67
68
69
6.1
Métricas de Confiança das Extrações.
72
Lista de Tabelas
2.1
Contrastes entre a EI e a EIA [30].
30
3.1
3.2
Padrão da Restrição Sintática. Adaptado [33].
Sistemas da EIA.
35
42
4.1
Configurações de alvo e contexto [2, 3].
50
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
5.10
5.11
5.12
5.13
5.14
5.15
5.16
Exemplo de detecção de sentenças.
Exemplo de segmentação de tokens.
Exemplo de rotulação de tokens.
Etiquetas e seus significados.
Conversão de Formatos.
Exemplo dos dados de treinamento para o Chunker.
Significado das etiquetas de chunk.
Treinamento do Chunker.
Avaliação do Chunker.
Comparação de desempenho dos Chunkers.
Exemplo de execução do Chunker.
Exemplo de execução do ReVerb.
Amostra de Triplas.
(Conf. 3) Sujeitos no Contexto de Predicados.
(Conf. 5) Sujeitos no Contexto de Objetos.
(Conf. 6) Predicados no Contexto de Objetos.
56
57
57
57
59
59
60
60
60
60
61
62
64
65
65
65
6.1
6.2
Avaliação do ReVerb: Inglês Vs. Português
Valores de Confiança para as triplas. Adaptado [33].
71
72
Lista de Algoritmos
3.1
3.2
ExtratordeRelacionamentos(S)
ExtratordeArgumentos(R)
36
37
Lista de Códigos de Programas
5.1
5.2
5.3
Carregamento de um documento a partir de um URL.
Conversão de tipos de Etiqueta.
Conversão de tipos de Etiqueta.
55
58
58
CAPÍTULO 1
Introdução
A porção hipermídia da Internet (rede mundial de computadores) é a World Wide
Web (“WWW” ou simplesmente “Web”), uma grande coleção de documentos de hipertexto (páginas) interligados e espalhados através de milhões de máquinas1 (Servidores).
Isto permite que pessoas e computadores compartilhem documentos (informações) globalmente. As páginas da Web são formatadas pela Linguagem de Marcação de HiperTexto - HTML, uma linguagem que mistura conteúdo e apresentação. Com um navegador
(browser) é possível ver essas páginas, que contêm textos, imagens, vídeos, e outras multimídias, e navegar entre elas através de hyperlinks [60]. Porém, no início da Web, era preciso ocupar as linhas telefônicas para ter acesso à Internet. Atualmente, as pessoas estão
constantemente conectadas e, para elas, aquele tempo já ficou para trás. A maioria dessas
pessoas acessam a rede através de seus computadores pessoais, tablets ou smartphones.
Elas geralmente estão à procura de fontes de informação, notícias, redes sociais, compras, etc. A rápida evolução da Web permitiu aos usuários uma maneira fácil para acessar
informações e serviços.
Tudo começou com a primeira geração da Web (Web 1.0), criada por Tim
Berners-Lee em 1989, com o intuito de fornecer um espaço onde as pessoas poderiam
se comunicar compartilhando informação. Nessa Web, a interação e a contribuição dos
usuários com o seu conteúdo eram limitados, ou seja, era possível apenas buscar e ler
o conteúdo de páginas estáticas criadas por empresas [27]. Em um site de vendas por
exemplo, os produtos eram apresentados apenas em catálogos onde as pessoas podiam
ler e ligar para os vendedores. Além dos sites não serem interativos, as páginas não
eram atualizadas frequentemente [5]. Apesar disso, a Web 1.0 obteve grande sucesso no
século 20 e se tornou uma das maiores invenções da humanidade. Seu sucesso se deve
à simplicidade de localização (URIs2 ), publicação (HTML 3 ) e navegação (HTTP4 ) de
informações na rede de computadores [9].
1 Nesta
dissertação, máquinas e computadores são tratados com o mesmo sentido.
Resource Identifier (http://www.w3.org/Addressing/)
3 HyperText Markup Language (http://www.w3.org/html/)
4 HyperText Transfer Protocol (http://www.w3.org/Protocols/)
2 Universal
16
Atualmente, mais e mais pessoas são capazes de acessar a Web e utilizar sua
informação. O que mudou a forma de acesso e permitiu maior interatividade é conhecida
como Web participativa ou Web social (Web 2.0). Agora, ao invés de apenas consumir
conteúdo, os usuários também são capazes de publicar seus próprios conteúdos para o
consumo de outros usuários. Para isso, a Web 2.0 fornece ferramentas de fácil utilização
para que pessoas gerem e publiquem conteúdos, como o Youtube5 (vídeos), o Blogger6
(blog), o Facebook7 (rede social), o Twitter 8 (rede social microblog), a Wikipédia9
(enciclopédia cooperativa multilíngue) e o Flickr10 (fotos) por exemplo. Aqui, o foco é
conteúdo de usuários para usuários e, a criação de conteúdo não está limitada apenas à
organizações [27]. A criação e modificação de conteúdo colaborativo facilitado resultou
na explosão de conteúdo da Web (a cada segundo é adicionada mais informação) e
aumento da quantidade de seus usuários [5].
Devido ao sucesso da segunda versão da Web, ela é largamente usada por
pessoas e, se tornou uma das maiores fontes públicas de informação [39]. Estimase que, atualmente seu tamanho passe de trilhões de páginas (14,3 trilhões em 2013
[49]). Por um lado é bom ter muita informação disponível, pois os usuários podem
encontrar praticamente tudo que precisam [70]. Por outro lado, essa grande quantidade
de informação faz com que os usuários tenham que vasculhar o conteúdo de várias
páginas para encontrar uma resposta para suas consultas, tornando o gerenciamento das
informações oneroso. Desse modo, o maior problema agora é a dificuldade de se encontrar
informação relevante na imensidão da Web [9].
O crescimento rápido e caótico da informação da Web aliado à sua falta de
estrutura e semântica, resultou em uma rede carente de organização. Essa carência torna
difícil para as máquinas entenderem11 as informações [56]. A enorme quantidade de
informação desorganizada está publicada em diversos formatos e é difícil estruturar,
padronizar e organizar tudo isso [48] para facilitar o processamento das máquinas. Além
disso, a informação da Web foi feita primariamente para o consumo dos humanos, ou seja,
é apresentada em linguagem natural, o que é fácil para os humanos entenderem é difícil
para as máquinas processarem. Assim, os conteúdos não foram projetados para programas
de computador manipulá-los de forma significativa. Por causa de tudo isso, os usuários
estão se sentido muitas vezes desorientados e perdidos na sobrecarga de informação [67]
5 (https://www.youtube.com/)
6 (https://www.blogger.com/)
7 (https://www.facebook.com/)
8 (https://twitter.com/)
9 (http://pt.wikipedia.org/)
10 (https://www.flickr.com/)
11 Qualquer
parte desta dissertação que associe a um computador ou máquina a capacidade de entendimento, compreensão, legibilidade, interpretação ou manipulação, significa único e exclusivamente a capacidade de processamento.
17
que continua a se expandir exponencialmente para um tamanho ilimitado [51].
Para encontrar informação na Web, os usuários utilizam ferramentas especializadas em pesquisa, os chamados motores de busca. Existem muitas dessas ferramentas
disponíveis atualmente, o Google12 , o Bing13 e o Yahoo14 são alguns exemplos. Esses
motores procuram por palavras-chave correspondentes para responder às consultas dos
usuários e filtram páginas desnecessárias utilizando algoritmos avançados. Eles podem
retornar boas respostas, entretanto, recuperar informação relevante é difícil. Milhões e
até bilhões de resultados podem ser retornados em resposta à uma simples consulta e somente uma parte desses resultados pode ser relevante. Muitas vezes, apenas a avaliação
sintática de termos e a análise de conexões (links) entre as páginas não são apropriadas
para encontrar o que o usuário precisa. As tecnologias da Web Semântica desempenham
um grande papel para resolver os problemas descritos e recuperar informação significativa
de maneira inteligente através do fornecimento de semântica interpretável por máquinas
[10].
Também chamada de Web 3.0, a Web Semântica é uma proposta em que os documentos sejam melhor processáveis por máquinas associando descrições semânticas a eles.
Essa nova Web também foi proposta por Tim Berners-Lee e, segundo ele, ela não é uma
Web separada, e sim uma extensão da Web atual [17]. A Web 3.0 permitirá que o significado da informação seja precisamente descrito em termos de vocabulários bem definidos
que são entendidos por computadores e pessoas. Isso apoiará a descoberta mais eficiente,
automação, integração e reuso de dados e proverá suporte para interoperabilidade [56].
Tudo isso para permitir aos computadores um melhor processamento dos documentos
Web e, consequentemente diminuir as tarefas dos usuários.
Alguns problemas da Web atual podem ser corrigidos pela adição de estrutura e
semântica para o seu conteúdo. Isso pode facilitar o processamento das máquinas, e deve
tornar o acesso ao seu conteúdo um processo mais eficiente [52]. Nesse sentido, podem
ser encontradas respostas mais precisas para as consultas dos usuários, descartando o que
não é relevante. Desse modo, a Web Semântica possibilitará que programas determinem
facilmente sobre o que os documentos tratam, como pessoas, lugares e outras entidades
[25]. As tecnologias dessa Web são desenvolvidas, padronizadas e mantidas por um
movimento colaborativo guiado pelo W3C - World Wide Web Consortium15 .
Como a quantidade de informação disponível na Web atualmente é maior do que
já foi um dia (cresce diariamente) e as suas páginas foram feitas para serem amigáveis para
os seres humanos (visualização) e não para os computadores (processamento), ainda é um
12 (https://www.google.com/)
13 (http://www.bing.com/)
14 (https://www.yahoo.com/)
15 (http://www.w3.org/)
18
grande desafio tornar a Web mais semântica. Extrair informação útil da Web pode ser uma
das questões mais significantes para a realização da Web Semântica. Isso possibilitará
para as máquinas a capacidade de acesso mais efetivo e inteligente aos dados Web,
como busca e recuperação [74]. Isso quer dizer que a informação pode ser usada por
máquinas não apenas para propósitos de apresentação, mas também para automatização
do processamento. Para isso, é necessário a transformação da Web de documentos para
a Web dos dados. Entretanto, atualmente não existe muito dessa transformação, e assim,
ainda é necessário a construção de mecanismos para transformar os documentos existentes
na Web em formatos mais adequados para serem processados por máquinas.
Ainda existem divergências entre os autores sobre os rumos que a Web vai
tomar depois da Web Semântica. Especula-se que a Web 4.0 será a Web de interações
inteligentes, porém ainda não existe uma definição exata sobre isso. Para Aghaei [5]
a ideia é que as pessoas interajam com a quarta geração da Web através de interfaces
controladas pela mente. Ainda não se tem uma ideia exata das tecnologias dessa Web,
mas está claro que a Web está se movendo através do uso de Inteligência Computacional
para se tornar uma Web inteligente [5]. Na visão de Tekli [74], a Web Semântica será
estendida para a Web Inteligente, onde objetos semanticamente ricos, como smartphones,
carros inteligentes, sistemas robóticos e agentes de software, como aplicações e APIs, vão
interagir em um ambiente virtual multimídia. Devido ao surgimento da Web Semântica
e da Internet Móvel, aparece a Web Inteligente, ou Internet das Coisas, onde objetos
do mundo real são ligados com objetos do mundo virtual, permitindo conectividade
em qualquer lugar a qualquer hora. Internet das Coisas pode ser definida como uma
infraestrutura dinâmica de rede global; fundindo redes de computadores, comunicações,
Web, e Inteligência Artificial; para manipular objetos físicos ou virtuais ou “coisas”,
como computadores, sensores, pessoas, TVs, veículos, smartphones, etc. Existem muitas
aplicações potenciais para a construção da Web Semântica (e Inteligente), como por
exemplo a Extração de Informação [74].
A rápida expansão da Internet fez da Web um lugar popular para disseminar e coletar informação. Porém, as máquinas encontram dificuldades na interpretação de toda informação disponível para retornar apenas informações significativas. Esse problema torna
oportuno o uso de técnicas da Inteligência Computacional para encontrar texto relevante
e, transformar informação desestruturada da Web em conhecimento estruturado pode ajudar [44], mas tecnologias relevantes tem que escalar para a Web [32]. Nesse contexto, a
Extração de Informação se tornou uma das áreas de pesquisa mais ativas. Basicamente, a
Extração de Informação retira informações de textos desestruturados identificando entidades e relacionamentos entre entidades, ou seja, informações estruturadas. Essas novas
informações estruturadas podem ser utilizadas por máquinas com o intuito de facilitar o
processamento e melhorar o acesso à informação. Já existem alguns sistemas capazes de
1.1 Motivação e Justificativas
19
extrair informação estruturada da Web. A maioria desses sistemas utiliza textos em inglês e, dentre eles, existe um sistema notável, o ReVerb, abordado mais adiante (Seção
3.4). Este trabalho foca na extração de informações a partir de documentos em português
utilizando o ReVerb.
1.1
Motivação e Justificativas
Desde a invenção da escrita, ela tem sido o repositório fundamental do conhecimento humano. Com o surgimento da prensa tipográfica, do computador e da Web, a
quantidade de texto acessível ultrapassou a capacidade de leitura dos seres humanos [32].
O advento da tecnologia da informação e da Web possibilitou e facilitou a publicação
de informações eletrônicas. Como reflexo disso, agora estão disponíveis enormes quantidades de informação. A maior quantidade de informação disponível está em linguagem
natural (veículo que carrega informação para os humanos) e esse conteúdo é voltado para
leitura e entendimento dos seres humanos, não para as máquinas manipulá-los significativamente. Assim, o acesso (pesquisa e navegação) dos usuários ficou limitado. Quanto
mais a informação cresce, mais limitações na busca dessa informação são reveladas. Para
que as buscas sejam completas é necessário que os computadores ‘entendam’ o significado dos documentos.
Por causa da enorme quantidade de informação, as pessoas recorrem aos motores
de busca. Eles são muito bons em encontrar documentos potenciais, mas o usuário precisa
navegar através da longa lista de links e procurar o que precisa para tentar resolver seu
problema [30]. Se esses motores pudessem extrair mais significado do texto e entender
melhor o que as pessoas estão procurando, os recursos da Web poderiam ser acessados de
forma mais efetiva. Além disso, os motores de busca só conseguem indexar a superfície
da Web, a outra parte chamada de Web Profunda (Deep Web) é ignorada. Estima-se que
essa parte “escondida” usualmente em bancos de dados estruturados, é centenas de vezes
maior que a superfície da Web [84]. Assim, os motores de busca atuais podem até fazer
um bom trabalho ao catalogar texto, contar links e entregar listas de páginas relevantes
ao tópico de busca do usuário. Porém, essas ferramentas não são poderosas o bastante.
Nesse contexto, as buscas podem ser melhoradas através do entendimento profundo do
significado dos documentos [69].
Pessoas em seus computadores ou smartphones estão tentando navegar na estrondosa quantidade de informação da Web e estão à procura por todo tipo de coisa. Além
dessa quantidade (pode ser a maior quantidade do que em qualquer parte de sua história),
o acesso à informação é limitado devido à sua heterogeneidade, desorganização e falta de
uma estrutura semântica. Devido a isso tudo, os usuários estão perdendo bastante tempo
procurando o que precisam nas páginas retornadas e usualmente tem que fazer alterações
1.1 Motivação e Justificativas
20
em suas consultas para encontrar informações relevantes. Além disso, as pessoas precisam de respostas exatas para suas consultas. O uso das tecnologias da Web Semântica
pode ajudar a contornar os problemas da recuperação de informações relevantes da Web
[73], mas para isso surgem alguns desafios.
Encontrar informação relevante na Web é uma tarefa complicada e essa informação só poderá ser utilizada ao máximo se forem desenvolvidas ferramentas capazes de
extrair e lidar com a grande quantidade de informação. A expansão da informação (texto
desestruturado) na Web demanda novos métodos para processar automaticamente e extrair
informação relevante [63]. Assim, surge a necessidade do uso de técnicas que permitam a
diferenciação de informações úteis de informações desnecessárias, ou seja, é preciso que
as informações sejam extraídas de textos e convertidas em um formato melhor processável
por máquinas para que aplicações possam utilizar essa informação e, consequentemente
fornecer respostas relevantes para os usuários. Para se obter informação estruturada de
textos da Web, pode-se usar a Extração de Informação Aberta – EIA (Open Information
Extraction - Open IE), que examina texto em linguagem natural e tenta obter dados relacionais estruturados. Nessa técnica, um algoritmo procura por triplas que possuem a
estrutura entidade-relacionamento-entidade. As triplas extraídas podem ser indexadas e
buscadas. As respostas podem ser trazidas rápida e precisamente [69], ou seja, a tarefa
tediosa e propensa a erros de navegar através de documentos pode ser automatizada [30].
Existem quantidades numerosas de páginas disponíveis na Web, e embora esses
documentos possuam informações valiosas, seu uso é limitado se eles não podem ser
processados automaticamente por aplicações [29]. Entretanto, ao invés de longas listas
pobres de documentos que contém palavras-chaves requisitadas, os usuários precisam de
respostas diretas para suas perguntas. Se os usuários receberem respostas exatas para suas
perguntas, não perderão tempo navegando através da lista de links. Utilizar estruturas
relacionais se torna importante para a busca na Web sofrer uma mudança de simples
recuperação de documentos para perguntas e respostas (tarefa de prover uma resposta para
uma pergunta do usuário) [30]. Outro ponto importante a se ressaltar é que a EIA extrai
informação automaticamente, ao contrário de sua antecessora (Seção 2.1) que deixava
trabalho manual para o usuário.
As representações semânticas superficiais descobertas pela EIA podem ser aplicadas posteriormente em tarefas semânticas mais complexas [40]. Como por exemplo,
construção e extensão de ontologias (ontology learning) [80] e auxiliar a busca semântica
[56], ou seja, extrair informação estruturada de páginas Web e transformar essa informação em metadados (anotações semânticas em conjunto com ontologias) para páginas
Web, com o intuito de melhorar a precisão das buscas. Além disso, as informações extraídas poderão ser utilizadas para a construção e expansão de repositórios semânticos, como
1.2 Objetivos
21
a DBPedia16 e o Freebase17 . Tão importante como o reuso da informação da Web, extrair
informação pode também ajudar na transição da Web para a Web Semântica. Tornar a
Web Semântica real em larga escala é um desafio limitado pela falta de ferramentas de
processamento semântico, a EIA pode ser usada para isso [78]. Finalmente, a EIA também pode ser aplicada para outras linguagens além do inglês [30]. Cada linguagem tem
seus próprios desafios [29], mas em geral o paradigma da EIA poderá se estender para
outras linguagens [32].
Durante muito tempo a pesquisa em Extração de Informação esteve focada em
textos em inglês. A grande disponibilidade de textos em outras linguagens demanda que
o foco da pesquisa se volte para técnicas a serem aplicadas em outras linguagens [65].
Não existem muitas ferramentas capazes de operar em outras linguagens. Além disso,
estruturar a informação da Web é uma das premissas básicas da Web Semântica. Desse
modo, o presente trabalho tem como principal motivação oferecer novas ferramentas para
o apoio à construção da Web Semântica em português. O foco não é a construção propriamente dita da Web Semântica, mas sim o primeiro e mais importante passo em direção
a isso, ou seja, a transferência de informações desestruturadas do conteúdo da Web em
português para estruturas simples, semanticamente estruturadas. Posteriormente, outros
sistemas poderiam ser desenvolvidos para consumir essas informações estruturadas. Por
exemplo, um sistema de pergunta e resposta alimentado por essas informações poderia
resolver o problema de recuperação de informação significativa da Web sintática. Assim,
ao invés de realizar todo o processo manual de navegar através de vários documentos em
busca de uma resposta que o satisfizesse, o usuário obteria uma resposta relevante em
um tempo menor. Além disso, incorporar conhecimento de forma inteligente (extração
de informação) em tarefas, ao invés de simplesmente processar dados, é considerado o
ingrediente chave para gerar e representar conhecimento para uma variedade de outras
aplicações [12].
1.2
Objetivos
O foco do presente trabalho é extrair informação de textos da Web em português.
Além disso, deseja-se minerar as informações extraídas para obtenção de mais informação. O objetivo principal é adaptar o ReVerb para o português, tendo em vista a extração
de tuplas relacionais deste idioma. O propósito geral é disponibilizar uma ferramenta ge16 A
DBpedia é um esforço colaborativo para extrair informações estruturadas da Wikipédia.
(http://pt.dbpedia.org/)
17 Freebase é um Banco de Dados colaborativo de pessoas, lugares e coisas bem definidas.(https://www.freebase.com/)
1.3 Metodologia
22
radora de fatos semânticos em português, ou seja, contribuir com a área de pesquisa da
EIA, onde a maioria de suas ferramentas extrai informação de textos em inglês.
Com o intuito de alcançar o objetivo principal, os objetivos específicos a seguir
foram elaborados:
• Análise dos trabalhos relevantes e das tecnologias utilizadas pelos sistemas da EIA.
• Definição de um método para minerar a saída dos sistemas da EIA para obter mais
triplas.
• Projeto e desenvolvimento de uma ferramenta que integre o sistema ReVerb devidamente modificado para o português com um minerador semântico.
• Uso da ferramenta desenvolvida para extração de informação de páginas da Web
em português, e em seguida, minerar essas informações para a descoberta de mais
informações.
• Avaliação e comparação dos resultados da ferramenta em inglês e português para
validar a hipótese de pesquisa e constatar a viabilidade de apoio à base de transição
da Web para a Web Semântica no idioma português.
1.3
Metodologia
Os materiais e métodos deste trabalho comportam as etapas descritas a seguir:
• Fundamentação Teórica: esta etapa compreende a pesquisa a respeito do referencial teórico deste trabalho. Nessa parte foram estudados assuntos como a Web,
a Extração de Informação e a Mineração de Dados. Nesta etapa de pesquisa bibliográfica, foram encontrados vários artigos relevantes para a pesquisa. Além de
utilizar o portal de periódicos da CAPES18 (http://www.periodicos.capes.gov.br/)
como auxiliador, a maioria dos artigos foram pesquisados dos seguintes bancos de
dados de artigos e conferências:
–
–
–
–
–
–
–
ACM Digital Library (http://dl.acm.org/)
Elsevier (http://www.elsevier.com/)
Google Scholar (http://scholar.google.com/)
IEEE Xplore Digital Library (http://ieeexplore.ieee.org/)
Scopus (http://www.scopus.com/)
Science Direct (http://www.sciencedirect.com/)
Springer Link (http://link.springer.com/)
18 Coordenação
de Aperfeiçoamento de Pessoal de Nível Superior (http://www.capes.gov.br/)
1.4 Organização da Dissertação
•
•
•
•
•
•
1.4
23
Os artigos foram pesquisados de acordo com relevância (geralmente é a quantidade
de vezes que o artigo foi citado), atualidade (mais recentes) e área (congressos e
revistas de computação).
Estudo do Estado da Arte: nesta etapa foi realizado o estudo dos trabalhos mais
recentes relacionados ao presente trabalho. Foram analisados os pontos fortes, as
desvantagens e o que ainda precisa ser feito na Extração de Informação da Web.
Os trabalhos levantados diferem deste em relação ao idioma utilizado e ao tipo de
processamento de texto.
Construção do Segmentador de Palavras: nessa parte foi feito a construção do
Chunker (segmentador de palavras) a partir de exemplos do idioma português. O
Chunker é responsável por receber as frases etiquetadas pelo POS Tagger e, separálas em seus respectivos grupos gramaticais.
Implementação e Alterações do ReVerb: aqui aconteceu a integração do ReVerb
aos processadores de linguagem natural em português, como o Sentence Detector,
o Tokenizer, o POS Tagger e o Chunker em português. Além disso, foram feitos
vários ajustes de tradução direto no código e no dicionário do ReVerb.
Implementação do Minerador de Dados: essa etapa compreendeu a construção
do montador de transações a partir das triplas extraídas pelo ReVerb, para que
seja realizada a Mineração de Regras de Associação. Essa parte também contempla
o desenvolvimento do pré-processador de triplas e da integração do algoritmo
minerador de dados.
Avaliação dos Resultados: após todas as implementações e testes feitos, os resultados dos experimentos foram colhidos, tanto de extração de informação quanto de
mineração de dados, para análise e exposição dos dados.
Documentação do Trabalho: nesta parte foi construída a documentação de todo o
trabalho realizado, que terá como resultado a dissertação final.
Organização da Dissertação
Além desta Introdução, esta dissertação está organizada em mais 6 capítulos.
No Capítulo 2, é apresentado um referencial teórico para uma subárea do Processamento
de Linguagem Natural, a Extração de Informação. No início do capítulo, é apresentada a
Extração de Informação tradicional, em que o foco são domínios específicos, com relações
já pré-especificadas, trabalho manual e processamento robusto para extração de relações
semânticas. No decorrer do capítulo, é apresentado um paradigma recente de Extração
de Informação da Web, a EIA, em que não é mais necessário especificar o domínio ou
as relações requeridas. A EIA utiliza processamento leve para extrair relações semânticas
gerais e escala para a Web.
1.4 Organização da Dissertação
24
No Capítulo 3, são apresentados os trabalhos semelhantes a este trabalho. O
capítulo é estruturado como um estudo do estado-da-arte, em que são mostrados os
trabalhos mais relevantes e mais recentes com relação à Extração de Informação da Web.
Neste capítulo, também é feita uma comparação entre o funcionamento e os benefícios de
cada sistema apresentado.
O Capítulo 4 é dedicado à descrição da aplicação da Mineração de Dados
como complemento do presente trabalho. Primeiro, é explicado sobre a Mineração de
Dados, passando pela Mineração Web, até a Mineração Web Semântica, que é o mais
relevante para este trabalho. Ao final do capítulo, é apresentado um método para minerar
as informações geradas por extratores de informação da Web para a descoberta de novas
informações.
O Capítulo 5 comporta o projeto da ferramenta que integra extrator e minerador,
sua implementação e os fundamentos para esse desenvolvimento. Além disso, são apresentados alguns exemplos básicos do processo de extração de informação e mineração.
No Capítulo 6, são descritos os resultados obtidos da solução explicada no capítulo anterior. Neste capítulo, é feita uma análise dos resultados obtidos em comparação
aos objetivos e ao ReVerb original para validação do presente trabalho.
No Capítulo 7, são apresentadas as conclusões do desenvolvimento deste trabalho. Neste capítulo, é feito um resumo das técnicas utilizadas e das contribuições do
trabalho. Também são mostradas algumas possibilidades para trabalhos futuros.
CAPÍTULO 2
Extração de Informação
A Extração de Informação - EI (Information Extraction – IE) é um campo do Processamento de Linguagem Natural (PLN), uma área que explora como os computadores
podem ser usados para compreender e manipular texto em linguagem natural ou discurso
(fala) para fazer coisas úteis [19]. Não se deve confundir Recuperação de Informação - RI
(Information Retrieval - IR) com a EI, elas são tecnologias diferentes. Ao invés de extrair
informação, a RI tem como objetivo selecionar um subconjunto de documentos relevantes
dentre uma coleção vasta, e isso de acordo com uma consulta de um usuário. Enquanto
a EI extrai informação relevante de documentos, a RI recupera documentos relevantes de
coleções [26]. Nas próximas seções deste capítulo serão apresentadas a EI clássica e seu
novo paradigma, a EIA.
2.1
Extração de Informação Clássica
O conteúdo e a codificação da informação da Web estão em linguagem natural1 .
Isso dificulta a manipulação e o processamento dessa informação de forma significativa
pelas máquinas. Uma solução para esse problema pode ser a EI, uma tecnologia que
mapeia texto em linguagem natural para informações estruturadas [13, 30].
Originalmente, a EI era a tarefa de localizar informações específicas em documentos em linguagem natural [26]. Tudo começou com uma iniciativa da DARPA2 , com
as conferências Message Understanding Conferences (MUCs), desafiando a comunidade
de PLN para construir novos e melhores sistemas para lidar com extração de informação
em texto. O primeiro sistema da EI foi construído para um domínio específico e utilizava
padrões e regras criados manualmente. Era necessário alterar as regras para cada novo
domínio. Esse sistema não era escalável ou portável através de domínios [30].
1 Linguagem
2
natural é a linguagem falada e escrita pelos seres humanos.
Defense Advanced Research Projects Agency (www.darpa.mil)
2.1 Extração de Informação Clássica
2.1.1
26
Métricas de Extração
Existem duas métricas de qualidade importantes na Extração de Informação que
foram adaptadas da área de Recuperação de Informação. Essas métricas são a cobertura
(recall) e a precisão (precision).
A precisão pode ser interpretada como a fração de extrações retornadas que
estão corretas. Enquanto a cobertura é a fração de extrações corretas no corpus que são
retornadas [33]. Em outras palavras, Cobertura se refere a quantidade de informação que
foi extraída corretamente, enquanto Precisão se refere a confiabilidade da informação
extraída. Para ficar mais claro, as medidas são definidas pelas fórmulas a seguir [26]:
RespostasCorretas
Total
(2-1)
RespostasCorretas
RespostasProduzidas
(2-2)
Cobertura =
Precisao =
As medidas apresentadas são inversamente proporcionais, ou seja, se aumentar
a precisão a cobertura diminui, e vice-versa. Ambas as medidas estão no intervalo [0, 1],
sendo 1.0 o ótimo.
2.1.2
O que Pode ser Extraído
A EI é uma técnica que extrai informação estruturada de texto desestruturado,
ou seja, a ênfase é extrair entidades e relações entre entidades de textos em linguagem
natural. A área da EI cresceu e se tornou o tópico central de interesse da comunidade de
PLN nos últimos anos[18].
As entidades e relações ou argumentos e predicados (dependendo do autor), são
os elementos básicos da EI que podem ser extraídos do texto. As entidades representam
objetos do mundo real, como pessoas, organizações, locais, produtos, etc. Já as relações
expressam os relacionamentos entre as entidades, por exemplo, uma pessoa ‘married_to’
(casada_com) outra pessoa, ou mesmo, uma pessoa ‘born_in’ (nasceu_em) uma cidade
[12].
A maioria das técnicas de extração são totalmente baseadas no processamento
de linguagem natural de documentos ou textos. Existe uma grande variedade de técnicas
de PLN que permitem dissecar textos e olhar para os papéis gramaticais de todas as
palavras e frases. Para Balke [12], o papel mais importante é o part-of-speech (POS),
que permite fazer distinções das classes gramaticais das palavras. Relações são expressas
geralmente por verbos ou frases verbais e as entidades são expressas por substantivos ou
frases nominais. O núcleo de um sistema da EI é composto por um extrator de relações e
entidades que analisam sentenças [30].
2.1 Extração de Informação Clássica
2.1.3
27
Trabalho Manual
A tarefa básica de Extração de Informação é automaticamente extrair informação
estruturada de documentos desestruturados. Isso significa que dados que podem ser
detectados em um ou mais textos podem ser classificados, transformados, e armazenados
para uso posterior. Tradicionalmente, a Extração de Informação contou com grande
quantidade de envolvimento humano, em que todas as relações entre as entidades eram
fornecidas por especialistas de domínio [12].
A Extração de Informação clássica focou em domínios pequenos, homogêneos
e previamente especificados, o que usualmente requer trabalho manual e processamento
pesado. Mudar para um novo domínio requer do usuário nomear as relações manualmente
e criar novas regras de extração ou novos exemplos rotulados à mão. Esse trabalho manual
cresce linearmente com o número de relações [14].
A Extração de Informação tradicional teve grande envolvimento humano, tanto
na criação manual de regras de extração e exemplos de treinamento, quanto na especificação das relações de interesse. A EI se tornou mais automatizada com o passar dos anos,
porém encontrou problemas de extração em corpus grandes e variados, como a Web por
exemplo [14].
Por ser formada primariamente por textos, a Web pode ser uma fonte de documentos úteis para a descoberta e extração de fatos. Além disso, o aumento da informação
da Web levou a maiores interesses e pesquisas para a extração de informação. Porém, a
informação da Web está espalhada por diversos servidores e disponível em diferentes formatos, ou seja, seus documentos são diferentes dos documentos utilizados na Extração de
Informação tradicional, seu volume é muito grande, e ainda, documentos novos aparecem
dinamicamente e conteúdos mudam frequentemente [26].
É preciso novas abordagens capazes de abranger a diversidade de documentos
da Web, onde o número de relações é muito grande e elas não são conhecidas antecipadamente [63]. Além disso, o corpus da Web contém bilhões de documentos, necessitando
de técnicas de extração escaláveis.
2.1.4
Aprendizado
Sistemas de Extração de Informação buscam extrair relações semânticas de textos em linguagem natural, mas a maioria dos sistemas são de aprendizado supervisionado,
ou seja, precisam de exemplos rotulados como entrada para extrair as relações. Enquanto
os métodos supervisionados podem alcançar cobertura e precisão altas, eles estão limitados pela disponibilidade de dados de treinamento e dificilmente vão escalar para as
milhares de relações encontradas em textos da Web [80].
2.2 Extração de Informação Aberta
28
A EI moderna aprende extração de um conjunto de exemplos de treinamento rotulados para cada domínio. Um sistema chamado KnowItAll [31], aprende a rotular seus
próprios exemplos de treinamento utilizando apenas um pequeno conjunto de padrões de
extração independentes de domínio. É o primeiro sistema publicado para extração em páginas Web que não é supervisionado, independente de domínio e em larga escala. Ao invés
de utilizar dados rotulados à mão, o programa seleciona e rotula seus próprios exemplos.
KnowItAll ainda necessita que as relações de interesse sejam nomeadas por humanos.
A EI apresenta vários desafios para a extração de informações a partir da
Web [13], que é muito grande e onde as relações não são conhecidas e não podem
ser especificadas com antecedência. Como essa especificação é feita manualmente, a
quantidade de esforço cresce linearmente de acordo como número de relações. O desafio
de extração na Web levou à EIA, que objetiva adequar os métodos da EI para o tamanho
e a diversidade do corpus da Web [30].
As extrações realizadas pela EIA não precisam de uma entrada estabelecida por
um ser humano, não utiliza dados de treinamento específicos de domínio [30], e executa
rápido o suficiente para a escala da Web. A EIA é explicada melhor na próxima seção.
2.2
Extração de Informação Aberta
Enquanto a maioria dos trabalhos da EI focou em um pequeno número de
relações em domínios específicos, como enciclopédias, notícias e e-mails, a EIA aborda
relações ilimitadas, não requer exemplos de treinamento e abrange domínios genéricos
[30], como a Web. Em oposição aos sistemas de EI que exigem trabalho manual para
construir as relações, sistemas de EIA aprendem um modelo de como as relações são
expressas em geral. Esse modelo é independente do número de relações, porém específico
para um idioma [13].
Os extratores da EIA focam nas formas genéricas em que as relações são
expressas, assim podem ser aplicados a qualquer domínio ou corpus em inglês para a
extração de informação significativa [32]. A maioria dos sistemas atuais da EIA lidam
apenas com textos em inglês, porém em geral, esse paradigma poderá ser estendido para
outras linguagens.
A extração de informação estruturada de texto é um desafio de longa data do
PLN que tem sido revigorado com o aumento da disponibilidade de conteúdo textual
gerado por usuários na Web [59]. A EIA escalou a EI tradicional para o tamanho e a
diversidade da Web, que não conseguia escalar para domínios onde o número de relações
que se desejava extrair era muito grande.
Outro ponto bastante importante de comparação entre as duas EIs é a independência de domínio, que é justamente o que o novo paradigma sugere, a extração de infor-
2.2 Extração de Informação Aberta
29
mação de domínios abertos. Em contradição ao paradigma tradicional, a EIA foi aplicada
com sucesso na escala da Web e foi capaz de extrair uma enorme quantidade de relações
que não precisavam ser conhecidas previamente.
2.2.1
Objetivos Chave e Técnicas
A EIA obtém uma representação semântica superficial de grandes quantidades
de texto em linguagem natural na forma de relações e seus argumentos. Suas premissas
são (1) independência de domínio, (2) extração não supervisionada, e (3) escalabilidade
para grandes quantidades de texto [22]. Além disso, o objetivo de transformar texto
desestruturado da Web para uma forma estruturada está ligado aos princípios da Web
Semântica [63].
Com o passar do tempo, as técnicas de extração de informação foram evoluindo,
desde a codificação baseada em conhecimento (humano entra com expressões regulares
ou regras); passando por aprendizado supervisionado (humano fornece exemplos de
treinamento rotulados); até o aprendizado auto supervisionado (sistema encontra e rotula
automaticamente seus próprios exemplos) [30].
2.2.2
Tuplas Relacionais
A EIA é um paradigma recente em que um sistema realiza uma passada em um
corpus de texto e extrai um grande conjunto de tuplas relacionais sem requerer nenhuma
entrada humana. A única entrada de um sistema da EIA é um corpus e sua saída é um
conjunto de diversas relações extraídas [14].
A EIA extrai informação na forma de triplas semânticas (entidades e relações
simples) do texto. Uma tripla semântica ou tupla relacional tem o modelo: tr = (e1 , r, e2 ),
em que e1 e e2 denotam as entidades e r denota o relacionamento entre elas [14]. As tuplas
extraídas tentam capturar as relações importantes em cada sentença do texto.
2.2.3
Funcionamento
Um sistema da EIA opera em duas fases. Na primeira fase, é aprendido um modelo geral de como relações são expressas em uma linguagem particular. Na segunda
fase, é utilizado esse modelo como base para o extrator. O aprendizado do modelo acontece com base em características não lexicalizadas como part-of-speech (identificação de
um verbo ou substantivo no texto) e expressões regulares independentes de domínio [30].
Em todo este processo, não é requerido um vocabulário pré-determinado [57].
A EIA analisa texto em linguagem natural e tenta obter informações sobre as
relações entre as palavras [69]. Sua única entrada é um corpus, e sua saída é um conjunto
2.3 Considerações
30
de relações extraídas [30]. Dentre suas vantagens estão processamento eficiente e a
capacidade de extrair relações ilimitadas [33].
2.2.4
Convencional vs. Aberta
A Extração de Informação tradicional opera em um pequeno conjunto de relações bem definidas e requer grandes quantidades de dados de treinamento para cada
relação [20], ou seja, requer cada relação que se deseja extrair seja especificada como
exemplo para as extrações. Esse paradigma é mais apropriado para extrações onde o número de relações é pequeno e o custo é baixo para rotular dados de treinamento [15].
Quando o número de relações é massivo, e as relações não podem ser préespecificadas, a EIA é necessária, pois utiliza um extrator independente de domínio que
escala para a Web e não precisa de nenhuma entrada humana. A força dos sistemas da
EIA é o processamento eficiente, bem como a habilidade de extrair relações ilimitadas
[32]. Entretanto, comparada à EI tradicional, sua cobertura é baixa [15]. Para ficar mais
claro as diferenças entre a EI e a EIA, é mostrado na Tabela 2.1 (D = Documentos e R =
Relações) uma comparação melhor entre elas. O processo de extração da EIA é linear ao
número de documentos nos corpus, e constante com o número de relações.
Tabela 2.1: Contrastes entre a EI e a EIA [30].
EI
EIA
Entrada
Corpus + Dados Rotulados Corpus + Métodos Independentes
Relações
Especificados Previamente
Descobertos Automaticamente
Complexidade
O(D * R)
O(D)
2.3
Considerações
A Extração de Informação consegue identificar um conjunto de relações de texto
livre. Até recentemente, sistemas da EI eram específicos para domínio e precisavam da
combinação de trabalho manual e aprendizado supervisionado para se adaptar a cada
domínio. Abordagens semi supervisionadas requeriam apenas uma pequena quantidade de
exemplos de treinamento feitos à mão, mas requeriam isso para cada relação de interesse.
O grupo de pesquisa KnowItAll da Universidade de Washington é o pioneiro do novo
paradigma da EIA, que opera de uma maneira totalmente independente de domínio e na
escala da Web. A EIA é ideal para Web onde as relações não são conhecidas previamente
e seu número é gigantesco [72]. Ela não precisa de relações rotuladas a mão, muito menos
de relações pré-especificadas.
A Extração de Informação tem uma longa história na comunidade de processamento de linguagem natural, desde as conferências MUCs [42]. O primeiro sistema era
2.3 Considerações
31
baseado em regras e altamente dependente de domínio. Para alcançar robustez, os sistemas baseados em regras foram substituídos por métodos estatísticos e probabilísticos
usando Hidden Markov Models [79], e mais tarde Contidional Ramdom Fields [58]. Mas,
todos esses sistemas permaneceram focados em domínios e requeriam significante trabalho manual e esforço.
Alguns sistemas, principalmente os focados em extração de informação da Web
investigaram extração de informação de domínio aberto. Mesmo que os métodos fossem
gerais e aplicados em diferentes domínios, ainda, os extratores precisariam reaprender,
muitas vezes manualmente, para cada relação de interesse [72]. Com milhares de relações
de interesse, tais sistemas não conseguiriam escalar para todas as relações da Web.
O paradigma recente da EIA supera essas limitações aplicando um extrator auto
supervisionado com características não léxicas para separar as relações expressas em
uma sentença, como também as entidades entre cada relação expressa [72]. A EIA não
requer entrada humana, é rápida e escala para grandes coleções de documentos. Além de
escalável, a EIA é um método que não requer processamento profundo. Tal paradigma
identifica relações desconhecidas e escala para a Web que possui bilhões de documentos.
A EIA é relativamente recente e foi estudada por um pequeno número de pesquisadores
[20].
Muitos sistemas realizam extração de informação semi supervisionada usando
apenas alguns exemplos ou regras de treinamento. Esses sistemas incluem o KnowItAll.
No próximo capítulo, são apresentados os sistemas que possuem uma abordagem mais
automatizada, ou seja, sistemas que usam um método auto supervisionado.
CAPÍTULO 3
Trabalhos Relacionados
Este capítulo trata dos trabalhos relacionadas à EIA. A grande maioria dos
trabalhos encontrados na literatura abordam a tarefa da EIA para textos em Inglês e alguns
poucos foram aplicados a outras linguagens. Nas subseções a seguir são apresentados os
principais trabalhos publicados na área da EIA.
3.1
TextRunner
O TextRunner é o primeiro sistema da EIA, desenvolvido por Banko e Etzioni
[13, 14, 30, 82]. O sistema faz uma única passagem em um corpus de texto desestruturado
e extrai uma grande quantidade de tuplas relacionais, sem requerer nenhuma entrada
humana. O primeiro sistema da EIA extrai uma grande quantidade de informações
estruturadas de sentenças da Web [14].
O TextRunner é uma abordagem auto supervisionada que escala para a Web.
É auto supervisionada porque produz seus próprios exemplos positivos e negativos de
como relações são expressas em inglês. Depois, um classificador é treinado usando
esses exemplos para realizar as extrações [82]. A primeira versão do programa utilizava
um modelo Naive-Bayes treinado utilizando exemplos gerados heuristicamente da Penn
TreeBank [75]. Um trabalho subsequente mostrou que utilizar Conditional Radom Fields
– CRFs [54] (modelos gráficos não direcionais treinados para maximizar a probabilidade
condicional de que uma sequência de palavras formem uma relação plausível [72]), ou
rede Markov Logic [85] pode melhorar as extrações [33].
O TextRunner opera na escala da Web com processamento leve, linear com
relação ao número de documentos e constante com relação ao número de relações, ou
seja, o número de relações não importa. Ao invés de requerer relações já especificadas,
o programa usa técnicas do PLN, o part-of-speech (POS) tagger e um chunker para
rotular as palavras em uma sentença de acordo com seus tipos gramaticais. Para cada
par de frases substantivas não muito separadas, baseado em muitas restrições, é utilizado
3.2 Wanderlust
33
um classificador1 para determinar quando é interessante extrair ou não uma relação.
Depois, as sentenças são analisadas linearmente para extrair rapidamente as triplas
textuais (entidade1, relação, entidade2). A tripla, logicamente, é composta de três partes,
a primeira e a terceira denotam entidades e a segunda denota o relacionamento entre elas
[30].
Resumidamente, o extrator atribui rótulos para cada palavra em uma sentença
denotando seu tipo gramatical. Depois, as sentenças são analisadas para capturar as entidades e suas relações. Por último, é gerada uma tupla relacional no modelo já apresentado.
As vantagens do TextRunner em relação a sistemas de extração de informação anteriores
são automação na extração de relações, independência de domínio e escalabilidade.
De um modo geral, o algoritmo do TextRunner funciona usando um método de
três passos [30]:
1. Rotular: sentenças são automaticamente rotuladas usando heurísticas ou supervisão
distante;
2. Aprendizado: o extrator aprende usando um modelo CRF;
3. Extração: o sistema toma a sentença como entrada, identifica um par de frases
nominais candidatas a argumentos (arg1, arg2) da sentença, e então usa o que o
extrator aprendeu para rotular cada frase entre os dois argumentos como parte da
relação.
Dada a seguinte frase como entrada: “Kafka, a writer born in Prague, wrote The
Metamorphosis” – “Kafka, um escritor nascido em Praga, escreveu a Metamorfose”. O
TextRunner rotula cada parte da frase em sequência: “Kafka_ENT ,_O a_O writer_ENT
born_B-REL in_I-REL Prague_ENT”; as entidades são etiquetadas como ENT, B-REL
significa o começo da relação e, I-REL a continuação da relação. Desse modo, o sistema
forma a tripla (Kafka, born in, Prague) – (Kafka, nasceu em, Praga).
3.2
Wanderlust
O Wanderlust foi desenvolvido por Akbik e Bross [7] para extrair relações
semânticas de textos em linguagem natural. Para isso, o sistema utiliza uma representação
chamada Gramática de Ligação (Link Grammar) para encontrar padrões gramaticais
que expressam relações entre entidades. Para tanto, o programa realiza uma análise
(parsing) linguística profunda. Durante a referida análise, são atribuídos links entre termos
gramaticalmente dependentes dentro de uma sentença. Os links são rotulados de acordo
1 Modelo
Gráfico de Rotulagem Sequencial [54]
3.3 WOE
34
com a natureza do relacionamento gramatical de dois termos. Por exemplo, um ‘S’ é
usado para conectar um sujeito a um verbo.
Um caminho entre duas palavras de uma sentença é chamado linkpath (caminho
de ligação). Uma fonte e um alvo do linkpath são denotados respectivamente pelo começo
e término de um termo. O conjunto de todos os links descreve a gramática de toda
sentença e é referido como linkage (acoplamento). O Wanderlust atravessa linkpaths
para encontrar pares de argumentos conectados por um relacionamento. Se existe um
relacionamento direto entre dois termos expresso pela ligação deles, então a cadeia de
dois termos conectados descreve o relacionamento entre o termo de início e outro de
parada [7], ou seja, as entidades.
Resumidamente, o Wanderlust rotula ligações entre as palavras de uma frase.
As palavras ligadas possuem alguma dependência gramatical. Depois, essas ligações são
analisadas e, a partir disso, as triplas são montadas. Por exemplo, tomando a frase: “Essen
is a beautiful city in the Ruhr Area” – “Essen é uma bela cidade na região do Ruhr”.
Depois da entrada, o Wanderlust liga as palavras: Essen_Ss_is, is_Ost_city, city_Mp_in
e in_Js_RuhrArea. As siglas em negrito representam os linkpaths. O passo final extrai
a tupla: IsCityIn(Essen, Ruhr Area) – ÉCidadeNa(Essen, Região do Ruhr). Na próxima
seção, é apresentado um outro sistema da EIA que combina dados da Wikipédia para fazer
extrações.
3.3
WOE
O WOE (Wikipedia-based Open Extractor) foi desenvolvido por Wu e Weld
[80]. Esse sistema utiliza correspondentes heurísticos entre valores de atributos de infoboxes da Wikipédia e sentenças correspondentes para construir seus dados de treinamento
[80], ou seja, cria paralelos entre relações extraídas do texto com relações da Wikipédia.
O sistema identifica o caminho de dependência mais curto entre frases nominais utilizando os dados de treinamento. O WOE é melhor em precisão e cobertura comparado ao
TextRunner.
O WOE pode operar de duas formas: POS e PARSE. Quando restrito a características de processamento superficial de texto o programa executa tão rápido quanto o
TextRunner. Quando utiliza características de análise de dependência, sua precisão e cobertura aumentam consideravelmente, mas abre mão da velocidade de extração. O WOE
utiliza dados da Wikipédia para treinar o extrator de informação. Dependendo da sua versão, utiliza OpenNLP [37] para fornecer anotações de rótulos POS e Chunk ou Stanford
Parser [43] para criar análises de dependência [80].
3.4 ReVerb
3.4
35
ReVerb
O ReVerb é um programa desenvolvido por Fader e Etzioni [33]. Esse programa
usa um novo modelo para identificar e extrair automaticamente argumentos e relações
expressas por verbos em sentenças em inglês. Ele se mostrou melhor que o TextRunner
e o WOE[33]. Além de corrigir problemas das versões anteriores e possuir melhor
desempenho, o ReVerb mais que dobra a precisão e a cobertura. Existem dois tipos
de erros frequentes na saída de sistemas da EIA como o TextRunner e o WOE:
extrações incoerentes e extração não informativas. ReVerb foi desenvolvido utilizando
certas restrições em resposta à essas limitações.
De acordo com Fader et al. [33] os problemas identificados nas versões anteriores
são resolvidos pela implementação de duas restrições simples, a sintática e a léxica.
A restrição sintática elimina extrações incoerentes (relações extraídas sem interpretação
significativa, incompreensíveis), e a restrição léxica reduz informações não informativas
(omissão de informação crítica) e separa as relações válidas das não válidas. Esses tipos
de erro são causados pelo manuseio impróprio de relações que são expressas utilizando
uma combinação de verbo com substantivo.
A restrição sintática requer que a relação corresponda a um padrão baseado em
uma expressão regular (Tabela
Tabela 3.1: Padrão da Restrição Sintática. Adaptado [33].
Padrão
V | VP | VW*P
V
verbo? advérbio?
W
(substantivo | adjetivo | advérbio | pronome )
P
(preposição | marcador)
Segundo seus desenvolvedores, o ReVerb primeiro identifica as relações que
satisfazem as restrições já descritas, e então, encontra um par de argumentos para cada
relação identificada. Para cada extração resultante são atribuídos escores (pontuação)
de confiança usando um classificador de regressão logística. Candidatos abaixo de um
determinado limite são descartados. Seu algoritmo difere dos trabalhos anteriores em três
diferentes formas. Primeiro, a relação é identificada como um todo em vez de palavrapor-palavra. Segundo, frases potenciais são filtradas baseadas em estatísticas ao longo de
um grande corpus. Finalmente, o ReVerb procura a relação primeiro, ao invés de procurar
primeiro os argumentos, isso evita gerar os erros cometidos pelos trabalhos anteriores.
O ReVerb utiliza a abordagem de duas tarefas do PLN, o (Part-Of-Spech tagging
– POS tag) e o (Noun Phrase Chunking – NP Chunking) [33]. Para realizar tais tarefas
o sistema utiliza a OpenNLP, uma biblioteca de Processamento de Linguagem Natural
[37]. Segundo a sua Documentação [36], o POS tag marca cada palavra do texto com
base no seu tipo e contexto, ou seja, dada uma sentença qualquer, suas palavras são
3.4 ReVerb
36
rotuladas de acordo com sua classe gramatical (substantivos, verbos, entre outros) [55].
Já o NP Chunking consiste em identificar [68] e dividir o texto em partes sintaticamente
correlacionadas, como grupos nominais, grupos verbais, entre outros. Nesse caso, todas
as frases nominais (Noun Phrases - NP) são separadas. A seguir, o algoritmo do ReVerb
será detalhado e um exemplo de execução será explicado de acordo com seus criadores.
3.4.1
Algoritmos de Extração
O ReVerb toma como entrada uma sentença e retorna um conjunto de triplas de
acordo com os algoritmos a seguir:
Extração de Relação
Algoritmo 3.1: ExtratordeRelacionamentos(S)
Entrada: Sentença S tratada pelo PLN.
Saída: Relação R.
1
2
para cada Verbo V em S faça
Encontre uma sequência de palavras P.
se P satisfaz a restrição sintática então
se P satisfaz a restrição léxica então
R←P
3
4
5
se Existem correspondências adjacentes então
Junte-as em uma única relação.
fim
retorna R
6
7
8
9
fim
10
fim
11
12
fim
3.4 ReVerb
37
Extração de Argumentos
Algoritmo 3.2: ExtratordeArgumentos(R)
Entrada: Relação R.
Saída: Tripla X, R, Y .
1
2
3
4
5
6
7
para cada Relação R faça
Encontre a frase nominal X mais próxima da esquerda de R em S.
Encontre a frase nominal Y mais próxima da direita de R em S.
se X <> pronome relativo OU advérbio “que” então
se Y <> pronome relativo OU advérbio “que” então
se o par (X; Y ) foi encontrado então
retorna (X; R; Y )
fim
fim
8
fim
9
10
fim
Para ficar mais claro o funcionamento desse algoritmo, na seção abaixo é
mostrado um exemplo de execução.
3.4.2
Exemplo de Extração
Como exemplo do algoritmo de extração em ação, pode ser considerada a
seguinte sentença de entrada: “Hudson was born in Hampstead, which is a suburb of
London” (Hudson nasceu em Hampstead, que é um subúrbio de Londres).
Passo 1 - O algoritmo identifica três relações que satisfazem as restrições
sintática e léxica: was, born in, e is a suburb of. As primeiras duas frases são adjacentes
na sentença, então elas são fundidas em uma única relação: was born in.
Passo 2 - Encontre um par de argumentos para cada relação. Para was born in, as
frases nominais mais próximas são (Hudson, Hampstead). Para is a suburb of, o extrator
pula o NP which (que) e escolhe o par de argumentos (Hampstead, London). A saída final
é (Hudson, was born in, Hampstead) e (Hampstead, is a suburb of, London).
Como os extratores anteriores, o algoritmo de extração explicado possui cobertura alta, mas baixa precisão. O ReVerb ainda perde algumas extrações em que a relação
correta é encontrada mas existem erros na extração de argumentos. Na seção a seguir, é
mostrado um sistema combinado com o ReVerb para corrigir esses erros.
3.5 R2A2
3.5
38
R2A2
O R2A2 é a segunda geração dos sistemas da EIA. Esse sistema é a combinação
do ReVerb com o ArgLearner [32], um identificador de argumentos para extrair melhor
argumentos para as relações baseadas em verbo. O ReVerb possibilitou uma performance
substancialmente melhor (comparado aos trabalhos anteriores) porque utiliza um modelo
de como as relações são expressas por verbos em inglês em conjunto com certas restrições.
Os sistemas anteriores utilizam heurísticas simples, como por exemplo extrair
frases nominais ou entidades da Wikipédia como argumentos. Tudo isso não é capaz
de capturar a complexidade da linguagem. Além disso, o ReVerb extrai mais relações
corretas do que argumentos. A grande maioria dos erros de extração dos sistemas da EIA
são devido à extração inapropriada de argumentos. O ArgLearner pode ser a solução
para esses problemas.
A análise de padrões sintáticos revelou que a maioria dos argumentos se encaixam em um pequeno número de categorias sintáticas. De maneira similar, existem delimitadores comuns que podem ajudar na detecção de limites de argumentos. O ArgLearner
usa esses padrões para identificação de argumentos. O conjunto padrão de características
incluem aquelas que descrevem frases nominais, contexto, tamanho e toda a sentença.
O programa divide uma tarefa em duas subtarefas - encontrar Arg1 e Arg2, então
subdivide cada uma dessas subtarefas novamente para identificar o limite esquerdo e
o limite direito de cada argumento. Para tanto, emprega três classificadores para este
objetivo. Dois classificadores identificam os limites direito e esquerdo para o Arg1 e
o último classificador identifica o limite direito do Arg2. Ao final, a combinação das
relações do ReVerb com os argumentos do ArgLearner resulta no R2A2 [32].
3.6
OLLIE
O OLLIE (Open Language Learning for Information Extraction) foi desenvolvido por Mausam et al. [57], um sistema melhorado que alcançou alto rendimento ao
extrair relações mediadas por substantivos, adjetivos e mais. Outro ponto importante, a
análise de contexto aumentou a precisão porque inclui informação contextual das sentenças nas extrações. Sistemas anteriores limitados por verbos e padrões verbais perdem
informações importantes mediadas por outras entidades sintáticas como substantivos e adjetivos. O OLLIE supera essas limitações, aumenta o escopo sintático das relações para
cobrir mais relações, expande a representação da EIA para permitir informação adicional
de contexto e pode lidar com relações que não estão entre os argumentos. O OLLIE encontra mais extrações corretas em comparação ao ReVerb e ao WOEPARSE , mas também
perde algumas extrações encontradas pelo ReVerb [57].
3.7 KrakeN
39
De acordo com os autores, a extração de relações é como a do ReVerb, as
relações começam com verbos, mas OLLIE também pode lidar com relações que estão
ligadas à outras entidades sintáticas. Outro benefício é a análise de contexto das tuplas
relacionais extraídas, assim pode-se transformar uma tupla incorreta em correta. Por
exemplo, dada a sentença “If he wins five key states, Romney will be elected President”
(Se ele ganhar em cinco estados chave, Romney será eleito presidente). Os sistemas
anteriores extrairiam a tupla relacional (Romney; will be elected; President), afirmando
que Romney seria eleito presidente, quando isso é verdade somente se ele em ganhar cinco
estados chave. O OLLIE coloca informação adicional na tupla para validá-la. Sua saída
seria ((Romney; will be elected; President) ClausalModfier if; he wins five key states). O
atributo ClausalModfier indica que a tupla só é verdade se atende essa condição.
3.7
KrakeN
Desenvolvido por Akbik e Löser, o Kraken é um sistema projetado especialmente para capturar fatos n-ários, mas é vulnerável a ruídos. Abordagens importantes
como o ReVerb e o WOE, extraem fatos binários (fatos que consistem apenas de dois
argumentos, e um relacionamento entre os argumentos). Entretanto, um estudo feito por
Christensen et al. [20] revelou que fatos n-ários (fatos que conectam mais de dois argumentos) estão presentes em 40% das sentenças pesquisadas em inglês. Fatos n-ários estão
bastante presentes em sentenças em inglês [8]. Infelizmente, os sistemas atuais da EIA
não são projetados para capturar fatos n-ários.
O KrakeN funciona da seguinte maneira, dada uma sentença de entrada com
dependências já analisadas (palavras são ligadas quando conectadas por alguma dependência gramatical), são executados três passos [8]:
1. Detecção do fato: o sistema identifica a relação como uma cadeia de verbos,
modificadores e/ou preposições.
2. Detecção de argumentos: para cada relação, os argumentos são encontrados usando
caminhos. Cada caminho indica uma ou mais ligações.
3. Detecção completa: combinação dos passos 1 e 2 que completam a tupla relacional.
Levando em consideração a frase: “Doublethink , a word that was coined by Orwell
in the novel 1984 , describes a fictional concept” – Duplipensamento, uma palavra
que foi inventada por Orwell no romance 1984, descreve um conceito de ficção.
Após todo o processamento, é gerada a tripla WasCoined(Doublethink, (by) Orwell,
(in) the novel 1984) – Inventou(Duplipensamento, (por) Orwell, (no) romance
1984).
3.8 ClausIE
3.8
40
ClausIE
O ClausIE é um extrator de relações e seus argumentos de textos em linguagem
natural. O sistema foi desenvolvido por Del Corro e Gemulla [22]. De acordo com os
autores, o ClausIE é uma abordagem baseada em “cláusulas”. Uma cláusula é uma parte
de uma sentença que consiste de um sujeito (S), um verbo (V), e opcionalmente um objeto
indireto (O), um objeto direto (O), um complemento (C), e um ou mais advérbios (A).
O ClausIE identifica um conjunto de cláusulas para cada sentença e, para cada
cláusula, o tipo da cláusula de acordo com uma função gramatical constituinte de (sujeitoverbo-objeto, SVO). A detecção de cláusulas é baseada na análise de dependência (análise
da conexão de palavras de acordo com seus relacionamentos). Os tipos de cláusulas são
combinações do sujeito com o verbo mais um objeto, complemento ou advérbio.
Em comparação com outras abordagens, o ClausIE não usa dados de treinamento e não precisa de pós-processamento (utilizado para filtrar extrações com baixa
precisão). O ClausIE obtém mais tuplas que algumas abordagens anteriores, mas perde
algumas porque nem todas as combinações utilizadas aparecem na língua inglesa [22].
Como exemplo de entrada: “Bell , a telecommunication company , which is based in Los
Angeles , makes and distributes electronic , computer and building products” – Bell, uma
empresa de telecomunicações, que tem sede em Los Angeles, faz e distribui eletrônicos,
informática e constrói produtos. A saída é (S: Bell, V: makes, O: products) – (S: Bell,
V: faz, O: produtos). Nas próximas seções, são apresentados sistemas da EIA para outras
linguagens.
3.9
CORE
Todos os sistemas apresentados anteriormente alcançaram boa performance
para extração de informação de sentenças em inglês. Ao aplicar esses sistemas para
outras linguagens, surgem diversos desafios, no Chinês por exemplo, em que as funções
gramaticais são bem diferentes e não existem limites de separação das frases. Para a
construção de um sistema da EIA multilíngue deve-se entender as diferenças entre as
linguagens. Segundo seus vários autores, o CORE (Chinese Open Relation Extraction)
[76] é a primeira aplicação da EIA para o Chinês.
O CORE utiliza uma série de técnicas do PLN para extrair informações de
sentenças em Chinês. Dado um texto em Chinês como entrada, o programa primeiro
segmenta as palavras das sentenças, etiqueta as palavras com seus tipos gramaticais,
faz análise (parsing) da estrutura sintática e agrupa as palavras com tipos gramaticais
similares. Depois disso tudo, as triplas são extraídas [76]. Como no exemplo da seguinte
sentença: “Democrats on the House Budget Committee released a report on Monday”
3.10 DepOE
41
(Democratas na Comissão de Orçamento da Câmara divulgaram na segunda-feira um
relatório). O primeiro passo segmenta e etiqueta as palavras. O próximo passo identifica
uma frase verbal e a considera como uma relação potencial. As duas frases nominais
antes e depois da frase verbal são então consideradas como entidades. Assim, a tripla
(Democratas na Comissão de Orçamento da Câmara / divulgaram na segunda-feira / um
relatório) é montada. Essa tripla é fragmentada de acordo com a frase original e um
processo final de filtragem resulta na tripla (Democratas / divulgaram / relatório).
3.10
DepOE
O DepOE é um sistema multilíngue baseado em análise (parsing) de dependência [41]. O DepOE usa um analisador baseado em regras para realizar extrações em
inglês, espanhol, português e galego. Para isso, o sistema utiliza três passos principais: o
primeiro consiste em analisar as dependências de cada frase usando um analisador multilíngue, o DepPattern, construído pelos desenvolvedores do DepOE. Esse analisador
toma como entrada uma frase já etiquetada pelos seus tipos gramaticais. A partir disso
são descobertas as cláusulas verbais. Para cada cláusula são identificados os sujeitos, objetos diretos, atributos e complementos preposicionais. Depois são aplicadas várias regras
para extrair as triplas. Todos esses processos são similares aos utilizados pelo CORE,
mas é claro que existem alguns passos específicos de linguagem. Para maiores detalhes e
exemplos de execução, pode-se olhar as referências listadas na próxima seção que faz um
resumo geral das aplicações explicadas.
3.11
Discussão
Del Corro e Gemulla [22] fazem uma comparação interessante entre os melhores
e mais conhecidos trabalhos da EIA. Os pesquisadores explicam que praticamente todas
as técnicas da EIA, em alto nível usam heurísticas de extração feitas a mão ou constroem
automaticamente seus dados de treinamento para os extratores aprenderem e obterem
tuplas relacionais (fatos), triplas na forma (sujeito, relação, argumento).
Algumas abordagens como o TextRunner [30], o WOEPOS [80], o Reverb [33],
e o R2A2 [32] focam na eficiência, e assim, são restritos apenas a análises sintáticas, como
o part-of-speech tagging e o chunking. Esses extratores rápidos usualmente obtém alta
precisão, e a restrição da análise sintática superficial limita a cobertura máxima. Outras
abordagens como o Wanderlust [7], o WOEPARSE [80], o KrakeN [8], e o OLLIE
[57] usam análise de dependência (dependency parse - DP). Esses extratores geralmente
são mais caros que os extratores acima, eles trocam eficiência por melhores cobertura e
3.11 Discussão
42
precisão. O CORE [76] e o DepOE [41] também usam análise de dependência, o que
muda é o foco da linguagem explorado pelos sistemas.
Como foi mostrado, existem duas maiores categorias de sistemas: as que usam
apenas análise sintática superficial, e as que aplicam PLN pesado. O TextRunner pertence à primeira classe, assim como o WOEPOS que também usa um classificador, mas
seu classificador é baseado em um corpus de treinamento obtido da Wikipédia. O Reverb é talvez o extrator superficial mais simples (e por isso muito atrativo), ele faz uso
de restrições sintáticas e léxicas que tem o objetivo de reduzir a quantidade de extrações
não informativas e incoerentes. O R2A2 identifica argumentos de uma frase verbal, e é
capaz de extrair argumentos que não são frases substantivas. O R2A2 é o extrator superficial de melhor desempenho até agora. O ClausIE é significativamente mais lento que as
técnicas acima, mas produz extrações de alta qualidade. A segunda categoria de sistemas
usam análise de dependência. Alguns sistemas usam dados de treinamento rotulados a
mão (Wanderlust) ou geram automaticamente seus dados de treinamento (WOEPARSE ,
OLLIE). Outras abordagens (KrakeN) usam um conjunto de padrões feitos à mão [22].
O CORE e o DepOE também geram seus exemplos de treinamento. Na Tabela 3.2 são
mostradas as diferenças básicas entre os sistemas descritos.
Tabela 3.2: Sistemas da EIA.
Sistema
Relações
PLN
Linguagem
TextRunner Binárias Superficial
Inglês
Wanderlust Binárias Profundo
Inglês
POS
WOE
Binárias Superficial
Inglês
PARSE
WOE
Binárias Profundo
Inglês
ReVerb
Binárias Superficial
Inglês
R2A2
Binárias Superficial
Inglês
OLLIE
Binárias Profundo
Inglês
KrakeN
N-árias
Profundo
Inglês
ClausIE
Binárias Profundo
Inglês
CORE
Binárias Profundo
Chinês
DepOE
Binárias Profundo Inglês, Espanhol, Português e Galego
O ReVerb foi melhor descrito (com maiores detalhes) nesse texto por ter sido
este o escolhido como ponto de partida do presente trabalho (adequação para textos
em português). Esse sistema foi escolhido devido à sua forma de funcionamento mais
simples, por causa do seu excelente desempenho (pode ser executado em computadores
comuns com resultados satisfatórios) e também por pertencer à primeira categoria dos
sistema da EIA.
Como pode ser notado na apresentação destes trabalhos relacionados, sempre
existe um embate entre desempenho e qualidade. Analogamente à análise de algoritmos
em que pode-se abrir mão do uso de mais memória utilizando mais processamento,
3.11 Discussão
43
e vice-versa. O mesmo acontece com os sistemas da EIA, de um lado aqueles que
conseguem melhores extrações, e de outro lado aqueles que são bem mais rápidos. Na
maioria das vezes, o desempenho e a qualidade são inversamente proporcionais. Isso
não quer dizer que os sistemas mais rápidos sejam de péssima qualidade, e sim que
os sistemas mais lentos podem alcançar melhores resultados. Os sistemas baseados em
regras (1a categoria) executam melhor do que classificadores que geram seus dados de
treinamento automaticamente (2a categoria). Entretanto, os sistemas baseados em análise
de dependência possuem melhores extrações [40]. Isso é até lógico, visto que existe uma
análise profunda, que consome maior tempo e processamento computacional.
CAPÍTULO 4
Mineração das Triplas
Extrair informações úteis da Web para trazer estrutura relacional para texto
não estruturado é oportuno. Por outro lado, essa não é uma tarefa trivial, visto que as
informações espalhadas na rede mundial estão formatadas apenas pela HTML. Tal tarefa
pode ser alcançada por uso de técnicas da EIA, que identificam entidades e relações de
texto plano e montam triplas semânticas a partir destas. Um extrator produz uma tripla
para cada relação explícita no texto, mas não infere fatos implícitos [80]. Neste capítulo,
começa a segunda parte do trabalho, ou seja, uma complementação da parte principal
pela utilização da Mineração de Dados da Web Semântica, para a descoberta de fatos
implícitos e ampliação do número das triplas. A parte principal compreende a extração de
triplas semânticas. Aqui acontece a mineração dessas triplas.
A Mineração de Dados encontra padrões úteis em meio a gigantescas quantidades de dados. Suas principais tarefas são a Classificação, o Agrupamento, as Regras
de Associação, entre outras. A Mineração Web aplica as técnicas da Mineração de Dados para extrair informação (não trivial, implícita, previamente não conhecida e útil) dos
dados (estrutura, uso ou conteúdo) da Web. Suas metodologias são classificadas em três
eixos, a Mineração de Conteúdo Web, a Mineração de Estrutura Web e a Mineração de
Uso da Web. Sua tarefa principal é subdividida em quatro tarefas, a Descoberta de Recursos, a Seleção de Informação e Pré-processamento, a Generalização e a Análise. A
Mineração Web Semântica é a integração da Mineração Web com a Web Semântica, para
melhorar os resultados da Mineração Web explorando as novas estruturas semânticas da
Web, da mesma forma, minerando as páginas Web para a Mineração Web ajudar a construir a Web Semântica [16]. Nas próximas seções, as áreas da Mineração de Dados são
melhor detalhadas.
4.1
Mineração de Dados
De acordo com Fayyad et al. [34], a área Mineração de Dados (Data Mining DM), consegue descobrir informações úteis em meio a grandes quantidades de dados, e se
refere a um passo particular da Descoberta de Conhecimento em Bancos de Dados (Kno-
4.2 Mineração Web
45
wledge Discovery in Databases - KDD). O KDD é um processo não trivial de descoberta
de padrões (modelos) compreensíveis, novos, válidos e potencialmente úteis a partir de
dados. Essa Mineração de Dados, consiste na aplicação de algoritmos específicos para a
descoberta e extração de conhecimento dos dados. Devido ao crescimento da quantidade
de dados e a importância de se extrair informação relevante, o processo de descoberta de
informação útil de enormes quantidades de dados se tornará crucial. A maioria dos métodos da Mineração de Dados são baseados em técnicas como Classificação, Agrupamento,
Regras de Associação, entre outros [23, 34, 71]. A seguir esses métodos são explicados.
• Classificação (Classification): como o nome sugere, classifica itens de dados em
uma ou várias classes já pré-definidas. Os dados são classificados de acordo com a
correspondência de características ou propriedades de uma categoria.
• Agrupamento (Clustering): significa encontrar categorias ou grupos para descrever
dados, ou seja, é a formação de grupos homogêneos (padrões similares) de objetos.
Agrupamento é um método em que classes são definidas e grupos de objetos
similares são agrupados nessas classes de acordo com suas características.
• Mineração de Regras de Associação (Association Rule Mining): é usada para encontrar relacionamentos entre itens de dados. Essa técnica encontra padrões frequentes, associações, correlações entre conjuntos de itens ou objetos em transações. Em outras palavras, encontra regras que implicam na ocorrência de um item
baseado na co-ocorrência de outro.
Tradicionalmente, a Mineração de Dados tem sido aplicada a Bancos de Dados
[28]. Entretanto, uma tendência atual é a Mineração (de Dados) Web, que pode ser
definida como a utilização de técnicas de Mineração de Dados para extrair relações úteis
a partir dos dados da Web [81]. Na próxima seção essa nova área é melhor detalhada.
4.2
Mineração Web
Segundo Etzioni [28], a Mineração Web (Web Mining - WM), é o uso de
técnicas da Mineração de Dados para automaticamente descobrir e extrair informação
de documentos e serviços da Web. Esta definição considera importante as tarefas de
mineração. Para Cooley et al. [21], a Mineração Web é a análise e descoberta de
informação útil da Web. Esta última definição considera interessante a fonte de dados
minerada. Atualmente, a Mineração Web é definida por vários autores como a aplicação
das técnicas da Mineração de Dados no conteúdo, estrutura e uso da Web.
Técnicas da Mineração de Dados são usadas em aplicações da Mineração Web
para encontrar padrões escondidos e conhecimento interessante e potencialmente útil
nos dados da Web. Enquanto a Mineração de Dados lida principalmente com dados na
4.2 Mineração Web
46
forma estruturada e organizada em bancos de dados, a Mineração Web minera dados
desestruturados, por isso minerar a Web é um desafio [23]. Na próxima seção, são
apresentados os três eixos da Mineração Web, cada eixo é categorizado com base em
qual parte da Web se deseja minerar (conteúdo, estrutura ou uso). Na seção seguinte são
descritas as quatro subtarefas (descoberta, seleção, generalização e análise) da Mineração
Web.
4.2.1
Categorias de Mineração
O foco principal da Mineração Web é procurar, juntar e analisar dados da Web.
Ela pode ser dividida em três categorias. Cada uma dessas categorias minera diferentes
partes da Web [10, 23, 48, 50, 60, 70, 71]:
Mineração de Conteúdo Web (Web Content Mining): é o processo de análise
e descoberta de conhecimento do conteúdo das páginas Web. O conteúdo da Web pode
ser desestruturado (texto plano), semiestruturado (documentos HTML), mais estruturado
(bancos de dados e tabelas HTML) [67], e basicamente consiste de vários tipos de dados
(texto, imagens, áudio, vídeo, multimídia, etc.). O conteúdo da Web é analisado para
descobrir padrões e extrair dados úteis como descrições de produtos, postagens de fóruns,
e outros. O objetivo principal da Mineração de Conteúdo Web é auxiliar ou melhorar a
descoberta e filtragem de informação.
Mineração de Estrutura Web (Web Structure Mining): lida com a conectividade de sites e utiliza a estrutura dos hyperlinks (links que existem em uma página Web
e se referem a outra região da mesma página ou a outra página) para descobrir e extrair
conhecimento útil, ou seja, minera o relacionamento entre páginas conectadas. Minerar a
estrutura da Web pode ajudar na categorização de páginas, como descobrir similaridades
de relacionamento entre sites ou descobrir sites importantes relacionados a um determinado tópico. A aplicação mais importante da Mineração de Estrutura é o cálculo da
importância de páginas Web utilizado pelos motores de busca.
Mineração de Uso Web (Web Usage Mining): foca na descoberta de conhecimento dos dados de navegação que os usuários geram ao visitar sites da Web, ou seja,
analisa os cliques resultantes da interação de usuários com a Web (registros armazenados
em Servidores de log), para descobrir os seus padrões de acesso e de comportamento. Padrões comportamentais e perfis de interação são capturados, modelados e analisados para
melhorar os serviços da Web. A organização e a estrutura dos sites podem ser melhoradas,
experiências personalizadas podem ser criadas e recomendações de produtos e serviços
podem ser fornecidas. Enquanto as Minerações de Conteúdo e Estrutura utilizam os dados
primários da Web (as páginas), a Mineração de Uso utiliza os dados secundários (logs de
acesso às páginas).
4.3 Mineração Web Semântica
4.2.2
47
Subtarefas de Mineração
Além de três divisões, a tarefa da Mineração Web ainda é decomposta em quatro
subtarefas [48, 60, 70]:
1. Descoberta de Recursos (Resource Finding): é principalmente o processo de
recuperar os documentos requeridos da Web;
2. Seleção de Informação e Pré-processamento (Information Selection and Preprocessing): significa selecionar e pré-processar informação específica dos documentos
recuperados, ou seja, é o processo em que os diferentes dados originais recuperados
na tarefa anterior são separados e transformados;
3. Generalização (Generalization): é o processo da descoberta automática de padrões
gerais, ou seja, é a tarefa em que as técnicas da Mineração de Dados são aplicadas
de fato;
4. Análise (Analysis): é a realização da validação e/ou interpretação dos padrões
minerados. Os humanos desempenham um papel importante neste processo de
descoberta de informação ou conhecimento.
4.3
Mineração Web Semântica
A Mineração Web Semântica (Semantic Web Mining - SWM) é uma área recente,
que surge da combinação de outras duas, a Mineração Web e a Web Semântica. A
Mineração Web é a aplicação da Mineração de Dados na Web, que é o processo não
trivial de encontrar padrões válidos, previamente desconhecidos, e potencialmente úteis
em dados. A Web Semântica é a extensão da Web atual, onde é dado significado bem
definido à informação, permitindo uma melhor cooperação entre computadores e pessoas.
Os dados na Web Semântica são ligados de uma forma que podem ser descobertos mais
facilmente. Essas duas áreas em rápido desenvolvimento se complementam para resolver
os problemas de ambas.
A ideia da Web Semântica é deixar a maioria das tarefas e decisões para as máquinas. Isso é aplicável pela adição de conhecimento para o conteúdo da Web por meio
de linguagens compreensíveis por máquinas. Assim, devido à existência de informação
estruturada e metadados explícitos na Web Semântica, o acesso às informações é facilitado através de agentes de software inteligentes capazes de interpretar essa informação.
A Mineração Web extrai padrões interessantes, implícitos e potencialmente úteis da Web.
Enquanto a Web Semântica tenta deixar os dados também compreensíveis pelas máquinas, a Mineração Web pode extrair conhecimento útil escondido nesses dados. A Mineração Web Semântica objetiva combinar essas duas áreas para melhorar os resultados da
4.4 Mineração de Regras de Associação
48
Mineração Web pela exploração das estruturas semânticas na Web, e utilizar a Mineração
Web para construir a Web Semântica [48].
Os dados na Web Semântica são definidos e ligados de uma forma que facilita
sua descoberta, automação, integração e reuso entre aplicações. A Web Semântica adiciona estrutura para a Web, enquanto a Mineração Web extrai estruturas implícitas. A área
combinada pode melhorar ambas as áreas [67]. Por exemplo, em vastas quantidades de
dados, a Mineração Web pode descobrir estruturas semânticas para construir semântica
para a Web Semântica. Similarmente, estruturas semânticas podem melhorar a tarefa de
mineração por permitirem aos algoritmos operarem em certos níveis semânticos [10]. A
Web Semântica pode tornar a Mineração da Web muito mais fácil pela disponibilidade de
um fundo de conhecimento, e a Mineração Web pode ajudar no processo de transformação de conteúdo compreensível por humanos em semântica compreensível por máquinas,
a Web Semântica. Assim, essa nova área pode ser definida tanto Mineração (Web Semântica) como (Mineração Web) Semântica [50].
Enquanto a Web Semântica é usada para dar significado aos dados, criando
dados estruturados complexos e heterogêneos, a Mineração de Dados é usada para
extrair padrões interessantes de dados homogêneos e menos complexos. Assim, existe
uma necessidade de aplicar e adaptar as técnicas da Mineração de Dados para extrair
informação e conhecimento de forma efetiva e eficiente dos dados representados pela
Web Semântica. Os algoritmos tradicionais da Mineração de Dados são construídos
para minerar conjuntos de dados homogêneos. Em contradição, a forma normal de
representação de dados semânticos é pela estrutura de uma tripla que consiste de sujeito,
predicado, e objeto, o que causa complexidade nos dados [66]. Na próxima seção é
apresentada uma solução para esse problema.
4.4
Mineração de Regras de Associação
Como visto anteriormente, a EIA utiliza técnicas de PLN para inferir relações
a partir de textos planos, porém não consegue inferir fatos implícitos. Desse modo, a
Mineração de Dados se torna crucial. A saída dos sistemas de EIA são tripas semânticas
(fatos), e essas triplas podem ser expressas utilizando o Resource Description Framework
- RDF [13]. Dados semânticos como o RDF são representados por triplas SPO (Sujeito,
Predicado, Objeto), em que o predicado é uma relação binária tomando o sujeito e o objeto
como argumentos. A representação SPO pode esconder algumas relações importantes e a
Mineração de Regras de Associação pode ser uma abordagem promissora para descobrir
essas relações. Em contraste aos dados semânticos, os algoritmos tradicionais de regras
de associação lidam com conjuntos de dados homogêneos compostos por transações, em
4.4 Mineração de Regras de Associação
49
que cada transação é representada por um subconjunto de itens. O desafio é identificar
transações e itens da natureza desses dados.
Minerar grandes quantidades de dados semânticos é um desafio, visto que sua
natureza é diferente da natureza dos dados tratados pela Mineração de Dados tradicional.
Assim, deve-se usar uma abordagem da Mineração Web Semântica no sentido de minerar
os dados da Web Semântica, mas primeiro é necessário identificar as transações e os itens.
O método de Abedjan e Naumann [2, 3] combina dados RDF em transações para serem
processadas por algoritmos tradicionais de regras de associação, e para isso exploram a
estrutura SPO. Tanto a saída de sistemas de EIA, quanto os dados RDF possuem o formato
“coisa1 é relacionada à coisa2”. Este trabalho adapta a pesquisa dos autores, e aqui devese considerar o Sujeito como a Entidade1, o Predicado como a Relação, e o Objeto como a
Relação2. No resto desta seção é apresentado o método para minerar regras de associação
[2, 3, 35, 61, 62] de triplas semânticas.
A Mineração de Regras de Associação tem sido largamente utilizada na análise
de compras de produtos em grandes supermercados. No entanto, essa técnica da Mineração de Dados pode ser aplicada em qualquer domínio com muitos itens, em que relacionamentos podem ser inferidos da co-ocorrência desses itens. Em outras palavras, essa
técnica é utilizada para encontrar relacionamentos entre itens de dados. Formalmente,
pode ser descrita como segue. Seja I = { i1, i2, ..., im } um conjunto de literais m, chamados itens. Seja D = { t1,t2, ...,tn } um banco de dados de transações n em que cada
transação é um subconjunto de I. Uma regra de associação é a implicação X → Y consistindo do conjunto de itens X,Y ⊂ I com X ∩Y = . O suporte é a razão entre o número de
registros que contém X e Y e o total de registros. Já a confiança é a razão entre o número
de registros com X e Y e o número de registros que contém X. A Mineração de Regras
de Associação visa descobrir regras que possuem suporte e confiança mínimos. A tarefa
básica dessa técnica é encontrar todas as regras de associação com suporte e confiança
maior que o suporte e confiança mínimos especificados pelo usuário. Minerar regras de
associação consiste basicamente de duas fases: (1) computar a frequência de conjuntos
de itens com suporte mínimo, e (2) gerar regras de conjuntos de itens frequentes com
confiança mínima.
De modo geral, a Mineração de Regras de Associação encontra itens que implicam na presença de outros itens na mesma transação. Existem vários algoritmos com
várias modificações e otimizações para minerar regras de associação, dentre as melhores abordagens conhecidas [3] estão o Apriori [6], o FP − Growth [45], e o Eclat [83].
Para os propósitos deste trabalho é utilizado o FP − Growth, que está explicado em detalhes em [45, 46]. Na próxima seção, é apresentada a aplicação das regras de associação
em triplas semânticas utilizando o conceito de configuração apresentado por Abedjan e
Naumann [2, 3] para a descoberta de fatos ocultos.
4.5 Configurações de Mineração
4.5
50
Configurações de Mineração
Configurações de Mineração permitem minerar regras de associação para identificar dependências entre sujeitos, predicados, e objetos em diferentes perspectivas [1]. Sujeitos podem ser conectados através de múltiplos predicados, co-ocorrendo em múltiplas
relações, o que pode ser interessante para análise de padrões. Para aplicar a Mineração de
Regras de Associação em dados semânticos (SPO), é necessário identificar o conjunto de
itens I, e suas transações T . Qualquer parte da tripla semântica (sujeito, predicado, objeto) pode ser considerada como contexto, que é usado para agrupar uma das duas partes
restantes como o alvo da mineração. Assim, uma transação é um conjunto de elementos
alvo associados com um único elemento de contexto que representa a identificação da
transação (T ID). Cada combinação de contexto com alvos é uma configuração. Como
uma tripla possui três partes e uma configuração é formada por duas, são possíveis seis
tipos de configurações diferentes (Tabela 4.1), explicadas a seguir.
Tabela 4.1: Configurações de alvo e contexto [2, 3].
Configuração Contexto
Alvo
1
Sujeito
Predicado
2
Sujeito
Objeto
3
Predicado
Sujeito
4
Predicado
Objeto
5
Objeto
Sujeito
6
Objeto
Predicado
1. Mineração de Predicados no contexto de Sujeitos: enquanto sujeitos representam
entidades, predicados representam o relacionamento dessas entidades. Minerar
predicados no contexto de sujeitos resulta na descoberta das relações do sujeito.
Dado um sujeito, o conjunto de itens são seus diferentes predicados.
2. Mineração de Objetos no contexto de Sujeitos: objetos representam o valor que
descreve uma entidade. Assim, minerar objetos no contexto de sujeitos significa
descobrir padrões entre valores que são associados com outros valores pela coocorrência de muitas entidades, ou seja, objetos que possuem sujeitos em comum.
3. Mineração de Sujeitos no contexto de Predicados: todos os fatos com o mesmo
sujeito representam uma entidade. Sujeitos com muitos predicados em comum
podem ser considerados como sujeitos similares. Desse modo, minerar sujeitos
no contexto de predicados resulta em regras que expressam o agrupamento de
entidades. Pode-se identificar sujeitos classificados de acordo com uma entidade,
como por exemplo, o predicado que identifica professores relaciona pessoas com
esse cargo.
4.6 Conclusões
51
4. Mineração de Objetos no contexto de Predicados: regras no contexto de predicados implicam na descoberta de valores que conectam predicados, como números,
países, ou cidades. Essa regra é bastante parecida com a mineração de sujeitos no
contexto de predicados, o que muda é o objeto no lugar do sujeito.
5. Mineração de Sujeitos no contexto de Objetos: essa configuração visa descobrir
sujeitos que compartilham o mesmo valor de objeto. Minerar sujeitos no contexto de
objetos resulta em regras entre entidades classificadas em um determinado tópico.
Objetos são associados com sujeitos em diferentes tipos de relacionamento, como
por exemplo, muitas pessoas podem compartilhar o objeto Goiânia como local de
nascimento, local de morte, ou cidade natal. Entidades que compartilham o mesmo
objeto são relacionadas ao mesmo tópico.
6. Mineração de Predicados no contexto de Objetos: essa configuração visa descobrir as relações de determinado objeto. Como predicados definem relacionamentos
entre entidades, regras dessa configuração podem ser usadas para descoberta de
sinônimos. Se predicados possuem significado similar, eles também compartilham
objetos similares. Por exemplo, pode existir um fato de que um ator estrelou um
filme, porém pode não existir um fato para esse ator utilizando o predicado atuou.
A princípio, são utilizadas três configurações das regras de associação (itens de
maior relevância para o presente trabalho) para melhorar e enriquecer as informações das
triplas semânticas. A mineração de sujeitos no contexto de predicados poderá identificar
entidades relacionadas, a mineração de sujeitos no contexto de objetos poderá encontrar
triplas relacionadas ao mesmo de tópico, e por último, a mineração de predicados no
contexto de objetos poderá detectar sinônimos. Essas configurações serão utilizadas
e após as regras descobertas, elas podem ser analisadas para encontrar informações
implícitas e incrementar as informações dos fatos (criação de novos fatos).
4.6
Conclusões
A Mineração de Dados é o processo não trivial de identificar padrões potencialmente úteis, válidos e previamente desconhecidos em dados [10]. Essa área é essencial
para extrair padrões de grandes quantidades de informações. O processo para recuperar
informação é composto por reconhecimento de correlações, relacionamentos e similaridades entre os dados. Esses dados são analisados para obtenção de informação útil (padrões).
Em analogia à Mineração tradicional, na Mineração de Dados, os dados são como a terra,
e os padrões são como o ouro. Alguns autores até sugerem que um nome mais adequado
para essa área deveria ser Mineração de Conhecimento, como a Mineração de Ouro.
A Web contém uma enorme quantidade de informação e seu conteúdo tem se
expandido. Como o seu conteúdo e seus usuários continuam crescendo, cada vez mais
4.6 Conclusões
52
aumentam as oportunidades de analisar seus dados e extrair informação útil. Porém,
analisar suas informações desestruturadas é uma tarefa bastante complicada. A Mineração
Web é a aplicação das técnicas da Mineração de Dados no conteúdo, estrutura e uso
da Web para descobrir informação útil [60]. A Mineração Web é dividida em três:
a Mineração de Conteúdo, que extrai ou minera informação ou conhecimento útil do
conteúdo de páginas Web; a Mineração de Estrutura, que descobre conhecimento útil de
links que representam a estrutura de sites e de relacionamentos entre estes; e a Mineração
de Uso, que descobre padrões de acesso e comportamentais dos usuários através de seus
históricos de navegação. A Mineração Web ainda é subdividida em quatro tarefas: a
Descoberta de Recursos, que recupera documentos da Web; a Seleção de Informação e
Pré-processamento, que seleciona e transforma informação específica recuperada da fase
anterior; a Generalização, que é a descoberta automática de padrões gerais; e a Análise,
que é a validação e interpretação dos padrões minerados.
A Mineração Web Semântica é uma área nova em rápido desenvolvimento que
combina a Mineração Web e a Web Semântica, em que ferramentas da Web Semântica
podem ser utilizadas para melhorar a Mineração Web e vice-versa. A Web Semântica
adiciona estrutura para a Web, enquanto a Mineração Web extrai estruturas implícitas. A
ideia dessa nova área é a cooperação entre as áreas integradas, ou seja, os resultados
da Mineração Web podem ser melhorados utilizando estruturas semânticas, e a Web
Semântica pode ser construída a partir da Mineração Web [24]. A Mineração Web
Semântica pode ser utilizada para a descoberta de fatos implícitos em informações na
forma de triplas semânticas no formato sujeito-predicado-objeto. Especificamente, pode
ser utilizada a Mineração de Regras de Associação em conjunto com a Mineração de
Configurações para a descoberta de novos fatos. Os fatos descobertos podem ser utilizados
para enriquecer uma base de dados de triplas semânticas. As Minerações de Configuração
podem relacionar entidades, sugerir tópicos relacionados e identificar sinônimos. Além
disso, outras configurações podem ser utilizadas e combinadas para descobrir outras
coisas [4]. É claro que a interpretação dos padrões resultantes ainda fica a cargo de
especialistas humanos.
As técnicas de Mineração de Dados não são as únicas ferramentas para usar a
informação da Web de forma eficiente [71] (Mineração Web), mas podem ser aplicadas
para uso pleno da informação da Web. Explorar a Mineração Web integrada à Web
Semântica de uma maneira correta, proporcionará oportunidades ilimitadas para extrair
conhecimento a partir dos dados disponíveis na Web. Se a própria Mineração de Dados já
é a melhor estratégia para utilizar a informação plenamente, combinada com a Semântica
pode ser uma ferramenta muito mais poderosa.
CAPÍTULO 5
Implementação do Extrator/Minerador
Depois de apresentar alguns problemas da Web e apontar tecnologias capazes
de melhorar seu cenário em vários tipos de aplicação, neste capítulo, é apresentada a
implementação das alterações do sistema ReVerb para que o mesmo trabalhe com textos
em português. Isto pode contribuir para a construção/expansão da Web Semântica em
português. Na segunda parte do capítulo, é apresentada a implementação do minerador
de dados semânticos, ou seja, mineração da saída do ReVerb para a descoberta de novas
informações.
5.1
Extrator
Dentre todos os trabalhos relacionados, o ReVerb foi escolhido para os propósitos deste trabalho porque possui funcionamento simples e se provou robusto e rápido
o suficiente (baixo custo computacional) para extrair informação na escala da Web. O
sistema é licenciado para uso acadêmico1 , ou seja, pode ser copiado, modificado e distribuído para propósitos não comerciais. Além disso, é escrito na linguagem de programação
Java2 , o que permite sua execução em uma grande variedade de sistemas operacionais. Na
Figura 5.1, pode ser visto o modelo da arquitetura do ReVerb modificado para trabalhar
com textos em português. A arquitetura consiste de várias partes principais e as etapas
posteriores são alimentadas pelas anteriores.
1 ReVerb
2 Oracle
License (http://reverb.cs.washington.edu/LICENSE.txt)
Java Home Page (http://www.oracle.com/technetwork/java/index.html)
5.1 Extrator
54
Entrada
WWW
Conteúdo
WIKIPÉDIA
Conteúdo
Documentos
Conteúdo
ReVerb
Sentence Detector
xto Br
Te
Pré-processador
o
ut
Páginas
Web
Tokenizer
en
Tok s
POS Tagger
tulo
Ró
s
Conversor de Etiquetas
Chunker
Padrão
Restrição Sintática
Algoritmo de Extração
Restrição Léxica
Dicionário
Triplas Semânticas
(Entidade1, Relação, Entidade2)
Saída
Figura 5.1: Arquitetura do ReVerb Modificado.
5.1 Extrator
5.1.1
55
Entrada
O ReVerb recebe sentenças na entrada e retorna triplas no formato (E1 ; R12 ;
E2 ) na saída. Sua nova versão modificada conta com um extrator online para recuperação
de páginas em tempo real, ou seja, o sistema elimina a necessidade de um corpus já préestabelecido. Essa parte da entrada foi construída utilizando uma biblioteca Java de código
aberto, a jsoup3 . Para iniciar a extração da página é necessário indicar o seu endereço. Um
exemplo é ilustrado no fragmento de código a seguir (5.1). O processo de extração começa
depois que a página é carregada.
Código 5.1 Carregamento de um documento a partir
de um URL.
1
2
Document doc = Jsoup.connect(
3
"http://www.portal.inf.ufg.br/mestrado/").get();
4
5
Iterable< String > sents = extractor.extract( doc.html() );
6
O ReVerb modificado também recebe em sua entrada páginas aleatórias da Wikipédia em português. Basta apenas usar o link
http://pt.wikipedia.org/wiki/Especial:Aleat%C3%B3ria
para
recuperar
páginas randômicas em tempo real. Para páginas em inglês usa-se o link
http://en.wikipedia.org/wiki/Special:Random. Além disso, foi mantida a entrada de
arquivos diversos, como documentos de texto, páginas offline e textos puros. Depois da
entrada, é feito o pré-processamento do documento para prepará-lo para o processo de
extração.
5.1.2
Pré-processador
A etapa de pré-processamento consiste em remover todas as marcações e etiquetas HTML da página. Aqui as páginas são convertidas em texto bruto para as extrações,
ou seja, o que sobra são apenas sequências de sentenças. O pré-processador do ReVerb
não foi alterado. Acredita-se que devido ser um processo simples, a maioria dos trabalhos
da EIA encontrados na literatura não abordam esse pré-processamento. Porém, existem
alguns trabalhos voltados apenas para a recuperação de conteúdo da Web [64]. Depois
que sobra apenas texto, o próximo passo é identificar as sentenças.
3 jsoup:
Java HTML Parser (http://jsoup.org/)
5.1 Extrator
5.1.3
56
Sentence Detector
O ReVerb utiliza várias etapas do PLN [33]. Para gerar triplas semânticas, o sistema requer somente processamento sintático superficial e, para isso, utiliza a OpenNLP4
(Processador de Linguagem Natural Aberto). Essa biblioteca dá suporte para diversas tarefas para a construção de serviços avançados de processamento de texto. As tarefas de
processamento de texto em linguagem natural incluem sentence segmentation, tokenization, part-of-speech tagging, chunking e outras [36]. Para propósitos de exemplificação de
cada tarefa, pode-se considerar o seguinte fragmento de texto salvo no arquivo input.txt
como entrada: “Podem as máquinas pensar? Acredito ser muito sem sentido para merecer
discussão.”. Após fazer o download5 da OpenNLP e de suas ferramentas6 que trabalham
com textos em português, cada uma das tarefas podem ser executadas utilizando interface
de linha de comando ou via linguagem de programação. Levando em consideração que a
biblioteca está em execução em linha de comando, pode-se utilizar vários comandos para
realizar as tarefas do PLN.
A Detecção de Sentenças consiste em identificar se um carácter de pontuação
marca o fim de uma sentença. Desse modo, uma sentença é a sequência mais longa
entre dois marcadores de pontuação. Apenas a primeira e a última sentença são exceções.
Resumindo, um Sentence Detector segmenta as frases de um texto. Com a OpenNLP em
execução, basta executar o comando descrito na Tabela 5.1. Depois de detectar os limites
das duas sentenças, cada frase é escrita em linhas separadas no arquivo output-text.txt. A
detecção de sentenças acontece antes do texto ser separado em tokens.
Tabela 5.1: Exemplo de detecção de sentenças.
Comando opennlp SentenceDetector pt-sent.bin < input.txt > output-text.txt.
Podem as máquinas pensar?
Saída
Acredito ser muito sem sentido para merecer discussão.
5.1.4
Tokenizer
Essa etapa (Tokenization) consiste em segmentar uma sequência de caracteres
em tokens (palavras, pontuações, números, etc). Da mesma forma com a OpenNLP em
execução, basta entrar com os comandos como na Tabela 5.2 que o texto abaixo será
gravado no arquivo output-tokenized.txt.
4 OpenNLP
Processador de Textos em Linguagem Natural (https://opennlp.apache.org/)
Download (https://opennlp.apache.org/cgi-bin/download.cgi)
6 Modelos de Ferramentas da OpenNLP (http://opennlp.sourceforge.net/models-1.5/)
5 OpenNLP
5.1 Extrator
57
Tabela 5.2: Exemplo de segmentação de tokens.
Comando opennlp TokenizerME pt-token.bin < output-text.txt > output-tokenized.txt.
Podem as máquinas pensar ?
Saída
Acredito ser muito sem sentido para merecer discussão .
Como pode ser notado do exemplo, cada token é separado individualmente por
um espaço em branco. Essa tarefa é importante, pois o part-of-speech tagger (etiquetador
de partes de discurso) trabalha com textos separados em tokens.
5.1.5
POS Tagger
Este processo (Tagging) consiste em atribuir etiquetas para os tokens de acordo
com seus tipos gramaticais correspondentes, baseado no próprio token e em seu contexto.
Seguindo os exemplos anteriores, para executar essa tarefa, deve-se utilizar o comando da
Tabela 5.3.
Tabela 5.3: Exemplo de rotulação de tokens.
Comando opennlp POSTagger pt-pos-maxent.bin < output-tokenized.txt > outputpostagged.txt.
Podem_v-fin as_art máquinas_n pensar_v-inf ?_punc
Saída
Acredito_v-fin ser_v-inf muito_adv sem_prp sentido_n para_prp
merecer_v-inf discussão_n ._punc
Cada token do exemplo acima agora possui uma etiqueta (tag) que indica seu papel gramatical na sentença (palavra_etiqueta). Como todas as ferramentas apresentadas
foram treinadas utilizando os mesmos dados do Projeto Floresta Sintá(c)tica da Linguateca7 , é natural que os rótulos utilizados sigam o padrão deste projeto. Na tabela 5.4 8 são
apresentados o significado de algumas etiquetas.
Tabela 5.4: Etiquetas e seus significados.
Símbolo
Categoria
v_fin
verbo finito
art
artigo
n
nome, substantivo
v-inf
infinitivo
punc
pontuação
adv
advérbio
prp
preposição
7 Centro
de Recursos Distribuído para o Processamento Computacional da Língua Portuguesa
(http://www.linguateca.pt/floresta/corpus.html)
8 Adaptado de http://www.linguateca.pt/floresta/BibliaFlorestal/anexo1.html
5.1 Extrator
58
Conversor de Etiquetas
O conjunto de etiquetas (tag set) usado pelo modelo em inglês segue um modelo
diferente do português. Devido à essa característica, foi necessário criar um conversor
simples de etiquetas. Para esse propósito foi construída a classe TagConverter.java, que
funciona de modo simples apenas traduzindo as etiquetas. Um exemplo de tradução pode
ser visto no fragmento de código (5.2) a seguir.
Código 5.2 Conversão de tipos de Etiqueta.
1
2
if ( tag.equals( "adj" ) ) // adjetivo.
3
{
return "JJ"; // Adjective
4
5
}
6
A variável tag representa a etiqueta no formato da Linguateca, já o retorno é
a etiqueta no formato Penn Treebank9 . Foi necessário realizar essa conversão porque o
ReVerb trabalha internamente com essas etiquetas. Essa conversão é feita logo após todas
as ferramentas trabalharem os textos. O seguinte trecho de código (5.3) faz a conversão
das etiquetas.
Código 5.3 Conversão de tipos de Etiqueta.
1
2
5.1.6
for ( int i = 0; i < posTags.length; i++ )
3
posTags[ i ] = TagConverter.convert(
4
posTags[ i ], tokens[ i ] );
Chunker
O chunking de texto consiste apenas em segmentar texto em partes de palavras
sintaticamente correspondentes, como grupos nominais e verbais. Como visto, cada uma
dessas tarefas é feita uma após a outra, ou seja, o chunking depende do part-of-speech
tagging, este por sua vez, precisa do tokenizer, que precisa do sentence detection. O
ReVerb incorpora todas essas tarefas. Apenas o chunking não é disponibilizado em
português pela OpenNLP. Devido à falta desse componente é necessário construí-lo a
partir de exemplos. A OpenNLP fornece os meios para tal construção, mas isso não está
claro em sua documentação. Os passos da construção são detalhados a seguir.
9
Penn Treebank (http://www.cis.upenn.edu/ treebank/)
5.1 Extrator
59
Da mesma forma que as outras ferramentas, o chunker foi treinando utilizando
o arquivo Bosque_CF_8.0.ad10 , um corpus composto de 9.368 frases retiradas de dois
corpora, um português brasileiro e outro português europeu, ambos jornalísticos de
domínio genérico. O Bosque não possui grande quantidade de exemplos, mas possui
uma ótima qualidade, pois foi inteiramente revisto por linguistas e assim oferece melhor
precisão de resultados. Este corpus está no formato Avores Deitadas (AD11 ), e desse
modo, é necessário realizar a conversão para o formato nativo da OpenNLP, que é
baseado no CoNLL 200012 . Para realizar a conversão deve-se entrar com o comando a
seguir (5.5).
Tabela 5.5: Conversão de Formatos.
Comando opennlp ChunkerConverter ad –lang pt –data Bosque_CF_8.0.ad.txt –
encoding ISO-8859-1 > bosque-chunk
Depois de executado este procedimento, o arquivo bosque-chunk foi criado e
possui o formato nativo da OpenNLP. Seu conteúdo de treinamento consiste de três
colunas, a primeira coluna contém a palavra, a segunda contém sua etiqueta, e a terceira
possui sua etiqueta de chunk (chunk tag), que contém o tipo do chunk, como B − NP e
I − NP para frases substantivas, B − V P e I − V P para frases verbais e B − PP e I − PP
para preposições. B −CHUNK é usado para a primeira palavra do chunk e I −CHUNK
para as demais palavras13 . Uma frase do arquivo bosque-chunk é mostrada na Tabela 5.6
já no formato dos dados de treinamento do chunker. O conjunto de chunk tags utilizado
segue o modelo Penn Treebank 14 como mostrado na Tabela 5.7.
Tabela 5.6: Exemplo dos dados de treinamento para o Chunker.
Palavra
Etiqueta de POS Etiqueta de Chunk
Amazônia
prop
B-NP
tem
v-fin
B-VP
contaminação
n
B-NP
por
prp
B-PP
petróleo
n
B-NP
Depois da conversão, a próxima etapa consiste do treinamento do chunker. Para
essa finalidade foi utilizado o comando da Tabela (5.8) que usa o bosque-chunk na entrada
e retorna o chunker em português (pt-chunker.bin) na saída.
10 Arquivo
Bosque (http://www.linguateca.pt/floresta/ficheiros/gz/Bosque_CF_8.0.ad.txt.gz)
11 Frases Armazenadas na Estrutura de Árvores (http://www.linguateca.pt/floresta/BibliaFlorestal/completa.html)
12 Conference
on Computational Natural Language Learning - uma conferência sobre PLN
(http://www.clips.uantwerpen.be/conll2000/chunking/)
13 Treinamento de chunker (https://opennlp.apache.org/documentation/1.5.3/manual/opennlp.html)
14 Penn Treebank (http://www.cis.upenn.edu/ treebank/)
5.1 Extrator
60
Tabela 5.7: Significado das etiquetas de chunk.
Etiqueta
Significado
NP
noun phrase (frase substantiva)
VP
verb phrase (frase verbal)
PP
prepositional phrase (frase preposicional)
Tabela 5.8: Treinamento do Chunker.
Comando opennlp ChunkerTrainerME –model pt-chunker.bin –lang pt –data bosquechunk –encoding ISO-8859-1
Depois do chunker treinado é necessário avaliar a sua performance. Ao utilizar o
conjunto de dados em que ele foi treinado os resultados se mostraram muito satisfatórios.
Para isso foi utilizado o comando da Tabela (5.9).
Tabela 5.9: Avaliação do Chunker.
Comando opennlp ChunkerEvaluator –model pt-chunker.bin –misclassified false –
detailedF true –data bosque-chunk –encoding ISO-8859-1
Após treinar o chunker, na Tabela 5.10 são apresentados os resultados de sua performance em uma comparação15 ao chunker em inglês disponibilizado pela OpenNLP.
Tabela 5.10: Comparação de desempenho dos Chunkers.
Chunker Inglês
Chunker Português
Média (Sentenças/Segundo)
161,6
342,0
Total de Sentenças
2013
4213
Tempo de Execução em segundos
12.457
12.318
Precisão (Precision)
0.9244354736974896 0.9943854141511712
Cobertura (Recall)
0.9216837162502096 0.994405425529774
Taxa F (F-Measure)
0.9230575441395671 0.9943954197397946
Os Chunkers são avaliados de acordo com a taxa F (F-Measure), que é uma
combinação das taxas da precisão (precision) e cobertura (recall)16 :
F=
2 ∗ precisao ∗ cobertura
precisao + cobertura
(5-1)
Cada chunker foi avaliado com diferentes textos de acordo com suas linguagens,
e como o chunker em português também demonstrou bons resultados, pode significar que
ele alcançará boa performance em conjunto com o ReVerb. Na Tabela 5.11 é mostrado
um exemplo de execução do chunker. Este é alimentado com a saída do pos tagger para
agrupar os tipos gramaticais.
15 https://opennlp.apache.org/documentation/1.5.3/manual/opennlp.html#tools.corpora.conll.2000
16 CoNLL2000
(http://www.clips.uantwerpen.be/conll2000/chunking/)
5.1 Extrator
61
Tabela 5.11: Exemplo de execução do Chunker.
Comando opennlp ChunkerME pt-chunker.bin < output-postagged.txt > outputchunk.txt
Saída
[VP Podem_v-fin ] [NP as_art máquinas_n ] [VP pensar_v-inf ] ?_punc
[VP Acredito_v-fin ] [VP ser_v-inf ] [ADVP muito_adv ] [PP sem_prp ]
[NP sentido_n ] [PP para_prp ] [VP merecer_v-inf ] [NP discussão_n ]
._punc
Após o chunker treinado, o próximo passo agora é utilizá-lo em conjunto com
as outras ferramentas (SentenceDetector, Tokenizer, POS Tagger e Chunker) no ReVerb.
Primeiro é necessário adicionar as ferramentas nas dependências do projeto. Depois, via
código deve-se configurar novas entradas para que as ferramentas possam ser utilizadas e
o ReVerb seja capaz de extrair informações em português.
5.1.7
Extração, Restrições e Dicionário
O algoritmo de extração funciona como o já apresentado (Seção 3.4.1). Dada
uma frase qualquer, primeiro é feita a extração da relação. Essa primeira parte compreende
em utilizar a restrição sintática, ou seja, encontrar relações que correspondem ao padrão
verbo + preposição + substantivos ou adjetivos ou advérbios. Ainda na extração da relação
existe a restrição léxica, ou seja, as relações encontradas devem ter correspondências em
um dicionário criado previamente. O dicionário do ReVerb é criado através da análise
de muitas páginas usando a restrição sintática. O dicionário possui apenas relações e a
quantidade de vezes que elas aparecem nas páginas. Esse dicionário possui 1.717.539
relações em inglês que foram traduzidas para o português utilizando o Google Tradutor17 .
Devido à grande quantidade de relações, não era viável realizar todas as traduções
manualmente. As traduções eram simples e algumas foram revistas. Algumas poucas
traduções também foram feitas diretamente via código.
5.1.8
Saída
Depois que o dicionário é substituído, o novo ReVerb está pronto para realizar as
extrações em português. Na Tabela 5.12 é mostrado um resumo de todo o processamento
do ReVerb. No final, a saída é uma tripla semântica no modelo já apresentado. Agora a
próxima etapa é a mineração dessas triplas.
17 Google
Tradutor (https://translate.google.com.br/)
5.2 Minerador
62
Tabela 5.12: Exemplo de execução do ReVerb.
Passo
Passo 1
Passo 2
Passo 3
Passo 4
Passo 5
Passo 5.5
Passo 6
Passo 7
5.2
Texto
<html>Maças são ricas em nutrição. Continuação...</html>
Maças são ricas em nutrição. Continuação...
Maças são ricas em nutrição.
Maças são ricas em nutrição .
Maças_prop são_v-fin ricas_adj em_prp nutrição_n ._punc
Maças_NNP são_VBD ricas_JJ em_IN nutrição_NN ._O
Maças_B-NP são_B-VP ricas_B-ADJP em_B-PP nutrição_B-NP .
(Maças, são ricas em, nutrição)
Minerador
Após realizar as modificações no ReVerb, o próximo passo é a construção
do Minerador Semântico. Essa segunda etapa consiste em encontrar informações úteis
escondidas nas informações extraídas. Para isso, é utilizada a Mineração de Regras de
Associação que descobre ocorrências de entidades e relações das triplas. Na Figura 5.2
é apresentado o modelo da arquitetura do minerador de dados semânticos. A arquitetura
baseada em uma série de subtarefas (4.2.2) da Mineração Web é explicada nas subseções
a seguir.
5.2.1
Descoberta de Recursos
A primeira parte do Minerador é composta pela descoberta de recursos, ou seja,
é a entrada dos dados para a mineração. A entrada é formada pelas triplas semânticas
extraídas pelo ReVerb. Assim, a saída de um é a entrada do outro. Depois de descobrir os
recursos é necessário prepará-los.
5.2.2
Seleção de Informação
Essa próxima etapa seleciona a informação que será realmente minerada. Aqui
os dados são pré-processados para o processo de mineração. A preparação dos dados
comporta o agrupamento de triplas semelhantes, ou seja, é verificado se existe semelhança
nas três partes da tripla, se sim, essas triplas são agrupadas. Tudo está pronto para a
montagem das transações após as triplas similares estarem separadas.
5.2 Minerador
63
Triplas Semânticas
(Entidade1, Relação, Entidade2)
Entrada
Trip
la
sS
Pré-processador
emel
ntes
ha
Montador de Transações
Algoritmo de Mineração
Minerador
Minerador
Regras
-------, --------
-------Saída
Novas Triplas Semânticas
(Entidade1, Relação, Entidade2)
Figura 5.2: Arquitetura do Minerador.
5.2 Minerador
5.2.3
64
Montagem das Transações
Este processo não está presente nas subtarefas da Mineração Web. Porém, ele
é necessário uma vez que os dados a serem minerados são semânticos. A montagem
de transações compreende a combinação de duas das três partes das triplas para que
seja possível utilizar um algoritmo tradicional da Mineração de Dados (FP-Growth). O
montador de transações recebe as triplas na entrada e retorna as transações na saída. Essa
montagem é baseada nas Configurações de Mineração (4.5). O exemplo das Tabelas 5.14,
5.15 e 5.16 pode deixar o funcionamento do montador mais claro.
5.2.4
Generalização
Após a extração de informação, as triplas são passadas para o montador de transações, essas transações são utilizadas para realizar generalização, ou seja, a mineração
das regras de associação das triplas. Para a Mineração foi utilizada a SMPF [38], uma
Biblioteca de Mineração de Dados Aberta. A Mineração das Regras de Associação é feita
pelo FP-Growth modificado para trabalhar com palavras (strings). Para efeitos de exemplificação, pode-se considerar as triplas da Tabela 5.13 a seguir.
Tabela 5.13: Amostra de Triplas.
Entidade1
Raul
Raul
Raul
Raul
Renato
Renato
Renato
Alexandre
Alexandre
Alexandre
Relação12
Entidade2
nasceu em
Rio de Janeiro
mora em
São Paulo
morreu em
São Paulo
trabalhou com publicação de livros
nasceu em
Rio de Janeiro
mora em
Salvador
morreu em
São Paulo
é um nativo de
Rio de Janeiro
trabalhou com gravura em madeira
morreu em
Brasília
São utilizadas três configurações de mineração para a descoberta de fatos implícitos. Baseado na tabela anterior (Tabela 5.13), nas próximas Tabelas (5.14, 5.15 e 5.16)
são mostradas as triplas já configuradas (transações prontas).
Minerar Sujeitos no Contexto de Predicados (Conf. 3 - Tabela 5.14) resulta em
regras que expressam entidades relacionadas. Por exemplo, a regra Raul → Renato foi
gerada com 67% de confiança em ambas as direções. Essa regra liga duas entidades
Pessoa, visto que essas pessoas possuem muitos predicados em comum.
Minerar Sujeitos no Contexto de Objetos (Conf. 5 - Tabela 5.15) resulta em
regras entre entidades relacionadas ao mesmo tópico (sujeitos que compartilham o mesmo
objeto). As regras Raul, Alexandre → Renato e Renato, Alexandre → Raul foram geradas
5.2 Minerador
65
Tabela 5.14: (Conf. 3) Sujeitos no Contexto de Predicados.
TID (Contexto)
Transação (Alvo)
nasceu em
Raul, Renato
é um nativo de
Alexandre
trabalhou com
Alexandre, Raul
mora em
Raul, Renato
morreu em
Alexandre, Raul, Renato
com 100% de confiança, o que quer dizer que essas pessoas compartilham os mesmos
valores de objetos, neste caso estão relacionados ao mesmo tópico (Rio de Janeiro).
Tabela 5.15: (Conf. 5) Sujeitos no Contexto de Objetos.
TID (Contexto)
Transação (Alvo)
gravura em madeira
Alexandre
Salvador
Renato
Rio de Janeiro
Alexandre, Raul, Renato
Brasília
Alexandre
publicação de livros
Raul
São Paulo
Raul, Renato
Minerar Predicados no Contexto de Objetos (Conf. 6 - Tabela 5.16) visa descobrir as relações de determinado objeto. Como predicados definem relacionamentos entre
entidades, regras dessa configuração podem ser usadas para detecção de sinônimos. Se
predicados possuem significado similar, eles também compartilham objetos similares. Por
exemplo, a regra é um nativo de → nasceu em foi gerada com 100% de confiança. Assim,
foram descobertos predicados diferentes com o significado similar.
Tabela 5.16: (Conf. 6) Predicados no Contexto de Objetos.
TID (Contexto)
Transação (Alvo)
gravura em madeira
trabalhou com
Salvador
mora em
Rio de Janeiro
nasceu em, é um nativo de
Brasília
morreu em
publicação de livros
trabalhou com
São Paulo
mora em, morreu em
5.2.5
Análise
Como apresentado, após a mineração o sistema retorna o resultado em forma de
regras. Assim, essa etapa compreende o processo de analisar essas regras geradas e validálas. Utilizando a configuração 6 (descoberta de sinônimos), as regras é um nativo de →
nasceu em e morreu em → mora em foram geradas com 100% de confiança das transações
5.3 Aplicação das Triplas Semânticas
66
da Tabela 5.16. Aqui entra a validação feita por um humano. Apenas a primeira regra é
válida, visto que mora em e morreu em não são sinônimos.
5.2.6
Novas Triplas
Resumidamente, tudo começa com as páginas da Web que se deseja extrair
informação. Essas páginas são passadas ao ReVerb para início do processamento dos
textos encontrados nas páginas de entrada. Essas páginas passam por um processo de
limpeza para remoção das etiquetas da linguagem HTML. O que sobra é apenas texto
bruto. No próximo passo, são utilizadas as ferramentas do PLN em português em conjunto
com o algoritmo de extração explicado anteriormente. Depois de todo o processamento
dos textos, o sistema produz várias triplas semânticas. Após a disponibilização das triplas,
elas são organizadas e preparadas para a parte da mineração. Um montador recebe essas
triplas e as transforma em transações prontas para serem recebidas pelo minerador de
dados. O algoritmo FP-Growth [38] minera as regras de associações das transações e
encontra regras que demonstram a co-ocorrência de itens das triplas (entidades e relações).
Depois da descoberta das regras é a vez de um ser humano analisá-las para validação.
Uma vez que as regras são validadas, a saída final pode ser utilizada para a criação de
novas triplas semânticas. Essas triplas descobertas podem ser integradas nas outras triplas
extraídas para serem utilizadas em uma série de aplicações.
5.3
Aplicação das Triplas Semânticas
A extração de informação independente de domínios de textos em português
em combinação com a mineração dessas informações permite tirar o melhor resultado
dessa união, ou seja, a descoberta de várias triplas semânticas reutilizáveis em aplicações
futuras. Tais aplicações (Figura 5.3) incluem a construção ou expansão de ontologias,
marcações semânticas e, ainda repositórios semânticos. As triplas ainda podem ser
utilizadas para a construção de sistemas de perguntas e respostas que trazem resultados
precisos para as consultas dos usuários. Além disso, essas atividades estão alinhadas aos
princípios da construção da Web Semântica em português.
5.3 Aplicação das Triplas Semânticas
67
Triplas Semânticas
(Entidade1, Relação, Entidade2)
?
!
Pergunta-Resposta
Repositórios Semânticos
Ontologias
Marcações Semânticas
Web
Semântica
Figura 5.3: Principais Aplicações das Triplas Semânticas
Para uma exemplificação prática, considera-se um sistema de perguntas e respostas, uma das aplicações mais simples e interessantes que utilizam as triplas semânticas.
Aqui as triplas são indexadas e podem ser buscadas. Da mesma forma como acontece nas
buscas que utilizam palavras-chave, a buscas de sistemas de pergunta e resposta utilizam
as triplas. Um usuário que pesquisa “O que mata as bactérias?”, deve receber rapidamente
uma resposta precisa, não uma lista de páginas que contém as palavras “mata” e “bactérias”. Ao fazer essa mesma pergunta em inglês (What kills bacteria?) ao motor de busca
Google, é retornado uma lista de aproximadamente 4.410.000 links. Para descobrir o que
mata uma bactéria é necessário clicar nesses links e ler as páginas para tentar encontrar
uma resposta que satisfaça a pergunta. Ao utilizar a mesma pergunta em uma ferramenta
de pergunta e resposta18 , são retornados resultados simples e diretos (Ozônio, Álcool,
Prata, Cozinhar, Cloro, entre outros), exatamente o que o usuário necessita saber. Além
disso, as respostas fornecem descrições das respostas (Antibióticos são compostos antibacterianos...). Nas Figuras 5.4 e 5.5 pode-se perceber melhor as diferenças entre os dois
tipos de busca usando a mesma pergunta.
18 http://openie.cs.washington.edu/
5.3 Aplicação das Triplas Semânticas
Figura 5.4: Pesquisa no Google.
68
Figura 5.5: Pesquisa em um sistema de Pergunta-Resposta.
5.3 Aplicação das Triplas Semânticas
69
CAPÍTULO 6
Experimentação e Avaliação dos Resultados
O ReVerb utiliza uma abordagem que mistura relações baseadas em verbo
com algumas restrições. O sistema também usa processamento de linguagem natural e
expressões regulares para dividir uma sentença em Entidade-Relação-Entidade. Utilizar
processamento sintático superficial garante robustez, velocidade e eficiência para operar
na escala da Web. Os resultados da aplicação do ReVerb, depois de modificado para
operar na língua portuguesa, são descritos a seguir.
6.1
Análise dos Resultados
Os experimentos foram conduzidos em um conjunto de dados com pouco mais
de 50 sentenças usados para avaliar a performance dos sistemas. Essas sentenças foram
retiradas de exemplos dos trabalhos relacionados. Apesar do conjunto ser pequeno,
acredita-se ser suficiente para mostrar que a EIA pode ser aplicada também para o
português. Para obter um bom resultado, cada frase foi traduzida do inglês para o
português por um pesquisador. Além disso, essas traduções foram verificadas por outro
pesquisador. Desse modo, foram criados dois corpora de texto com as mesmas frases, e
cada um está em sua linguagem particular. Após o processo de tradução, cada sentença foi
independentemente examinada por dois pesquisadores para identificar as triplas presentes
nas sentenças. No total foram identificadas 69 triplas (Capítulo 8) com o consenso dos
pesquisadores. Essas triplas representam o padrão que se deseja alcançar, ou seja, esse
padrão determina se uma extração está correta ou incorreta. Extrações incoerentes e não
informativas foram consideradas como incorretas.
A avaliação do ReVerb modificado foi baseada na correspondência exata, ou
seja, cada parte da tripla extraída deve ser identica ao padrão criado. O ReVerb original
e o modificado são comparados utilizando os padrões criados, cada um em seu idioma
específico. Para cada sistema é dado um conjunto de sentenças como entrada. Após o
processamento, a saída são várias tuplas relacionais. Cada sistema retorna uma pontuação
de confiança para a extração. De uma maneira mais simples, a cobertura é medida pela
divisão das triplas extraídas corretamente pelo total das triplas extraídas. A precisão é
6.1 Análise dos Resultados
71
medida pela divisão das triplas extraídas corretamente pelas triplas existentes no padrão
criado [65, 72]. As métricas são melhor definidas pelas fórmulas:
Precisao =
Corretas
Corretas + Incorretas
(6-1)
Corretas
(6-2)
Padrao
O ReVerb em português permaneceu quase que o mesmo em inglês, exceto
por alguns fatores específicos de linguagem que podem não ter sido tratados de forma
adequada, como o funcionamento interno do programa que não foi alterado. Apenas as
ferramentas e o dicionário do ReVerb foram alterados. Como cada linguagem possui suas
próprias características isso pode afetar os resultados. Para medir a precisão e a cobertura
foram utilizadas as extrações rotuladas como corretas (padrão) pelos pesquisadores. Na
Tabela 6.1 são mostrados os resultados de precisão, cobertura, e a combinação das duas
(Taxa-F).
Cobertura =
Tabela 6.1: Avaliação do ReVerb: Inglês Vs. Português
Precisão
Cobertura
Taxa-F
ReVerb Original
0,6507936507 0,5942028985 0,621212121
ReVerb Modificado 0,527272727
0,420289855 0,467741935
Vale a pena mencionar que o número de triplas extraídas pelo ReVerb modificado é menor que as obtidas pelo ReVerb original, considerando que o dicionário não
foi inteiramente traduzido manualmente e algumas etiquetas convertidas não tinham correspondência exata. Com os resultados apresentados é possível perceber que o ReVerb
também pode ser traduzido para outras diversas linguagens. Na Figura 6.1 é possível ver
a comparação de cada extração dos sistemas utilizando a métrica de confiança. Essa medida possui valor máximo de 1 e indica a qualidade da tripla extraída baseado em uma
série de fatores (Tabela 6.2). Pode-se notar que os valores de confiança variam bastante,
ou seja, em determinados um sistema se sai melhor que o outro e vice-versa. Mesmo que
os resultados alcançados pelo ReVerb modificado estejam um pouco abaixo do ReVerb
original, fica constatado que o mesmo é adequado para extrair informação em português.
6.1 Análise dos Resultados
72
Tabela 6.2: Valores de Confiança para as triplas. Adaptado [33].
Valor
Fator
1.16
(X; R; Y ) cobre todas as palavras em S
0.50
última preposição em R é para
0.49
última preposição em R é em
0.46
última preposição em R é de
0.43
tamanho de S <= 10 palavras
0.42
R corresponde ao padrão VW ∗ P da Figura 3.1
0.23
10 palavras < tamanho de S <= 20 palavras
0.21
S começa com X
0.16
Y é nome próprio
0.01
X é nome próprio
-0.30 existe uma frase nominal na esquerda de X em S
-0.43
20 palavras < tamanho de S
-0.61
R corresponde a V da da Figura 3.1
-0.65
existe uma preposição na esquerda de X em S
-0.81
existe uma frase nominal na direita de Y em S
ReVerb Original
ReVerb Modificado
1
Confiança
0.8
0.6
0.4
0.2
0
0
10
20 30 40 50
Número de Triplas
60
Figura 6.1: Métricas de Confiança das Extrações.
Para testar a velocidade de execução dos sistemas, eles foram executados em
uma plataforma Windows 8.1 com uma CPU de 2.2GHz quad-core e 8GB de memória
RAM. O tempo de processamento total do ReVerb original foi de 7.704s segundos e do
ReVerb modificado foi de 7.763s segundos. Os sistemas utilizaram menos de 200 MB de
memória RAM em média. Como pode ser notado, ambos os sistemas executaram em um
tempo bastante pequeno.
6.1 Análise dos Resultados
73
De outro lado, a mineração das triplas encontrou alguns resultados interessantes.
Os experimentos foram feitos pela aplicação de valores de confiança de 60% e suporte
de 50% em um corpus com 500 triplas extraídas da Wikipedia em inglês. As validações
das regras geradas ficaram a cargo de humanos. Foram geradas regras ligando reduzir →
cortar com 100% de confiança em ambas as direções. Essa mineração de predicados no
contexto objetos indicou palavras sinônimas. Já a mineração de sujeitos no contexto de
predicados encontrou a regra Johnson → Nikko também com 100% de confiança dos dois
lados. Essa regra identificou duas entidades pessoa. Se o suporte fosse aumentado, seria
possível encontrar entidades representativas das profissões dessas pessoas. Outra regras
foram encontradas, mas elas não expressavam os resultados que se desejava alcançar.
Assim elas foram invalidadas. A mineração de sujeitos no contexto de objetos não
encontrou regras significantes para o conjunto de dados utilizado. Para encontrar uma
quantidade mais significativa de regras é necessário minerar um quantidade maior de
triplas. As novas informações encontradas permitem a criação de outras triplas, e assim,
é possível aumentar a quantidade de informações extraídas.
Os experimentos demonstram que a combinação das técnicas permite aproveitar
o melhor resultado da união das duas. O objetivo alcançado é a extração das triplas a
partir de textos planos em português. O importante é que as informações são detectadas
de texto, transformadas e armazenadas para uso posterior.
CAPÍTULO 7
Considerações Finais
A Web evoluiu rapidamente, desde a Web de documentos, em que usuários
eram consumidores de informações estáticas (Web 1.0), para uma Web mais dinâmica,
conhecida como Web social ou colaborativa (Web 2.0), em que os usuários produzem
e consomem informação simultaneamente. Depois começou a surgir uma Web mais
sofisticada, conhecida como Web Semântica (Web 3.0), onde é dado significado bem
definido à informação para facilitar o acesso à essa informação. O futuro da Web é a Web
Inteligente (4.0), conhecida como Internet das Coisas, uma extensão da Web Semântica,
onde objetos (físicos e lógicos) e serviços interagem em uma ambiente virtual multimídia
[74]. De modo geral, a Web é o meio global onde usuários podem ler e escrever via
computadores conectados pela Internet. Atualmente, a Web está em sua segunda versão
e, ainda são necessários superar alguns desafios para tornar a Web Semântica em larga
escala.
O conteúdo da Web é enorme e sua quantidade de informações tem se expandido. Além disso, seus documentos são heterogêneos, desorganizados, desestruturados
semanticamente e foram elaborados para o consumo das pessoas. Tudo isso dificulta o
processamento dos computadores e consequentemente o uso pleno dessa informação se
torna difícil. A chave para resolver esse problema, como apresentado neste trabalho, pode
ser a disponibilização de triplas semânticas. Trazer estrutura significativa para textos brutos possibilitará que softwares realizem tarefas mais sofisticadas para os usuários, como
por exemplo, encontrar respostas exatas para consultas. Desse modo, o computador pode
“entender” a informação, ou seja, manipulá-la de uma maneira mais útil e eficaz, o que é
um dos objetivos da Web Semântica.
Os primeiros sistemas de recuperação de informação de texto eram manualmente
configurados para cada domínio pequeno e específico. Com o passar do tempo o trabalho
manual diminuiu, mesmo assim, era necessário criar exemplos manualmente para cada
tópico de interesse. Recentemente, foi introduzido um novo paradigma, a EIA, um método
automático de extração de informação de grandes conjuntos de texto. A ideia básica é
simples: a maioria das sentenças contem pistas sintáticas confiáveis do seu significado.
Muitas vezes é bastante simples para o computador localizar verbos em uma sentença,
7.1 Principais Contribuições
75
identificar entidades relacionadas pelo verbo e usar isso para criar fatos [29]. O objetivo
é extrair fatos de texto consistentes de entidades e relacionamentos, para construção
de representações semânticas. A partir desses fatos ainda é possível descobrir fatos
implícitos. Para isso, utiliza-se a Mineração de Dados adaptada para trabalhar com dados
semânticos.
Este trabalho tratou de um meio para o apoio à construção da Web Semântica,
mais especificamente facilitar e encorajar a construção dessa Web para o idioma português. As triplas semânticas geradas pela extração e mineração da Web podem dar suporte
para que os recursos da Web sejam utilizados de forma mais eficaz. Com as triplas disponíveis, pesquisadores podem utilizá-las para seus objetivos específicos. O propósito deste
trabalho foi estender o estado da arte dos sistemas de EIA de processamento sintático superficial para extração de informação de textos em português, para que, este possa servir
como ferramental para outros pesquisadores e entusiastas da Web Semântica. A proposta
era deixar um facilitador para os pesquisadores dessa área e desse idioma e contribuir
para a construção da terceira geração da Web. Através das triplas semânticas pode-se
criar marcações semânticas para páginas, ontologias, sistemas de pergunta e resposta e
bases semânticas.
O presente estudo demonstrou resultados interessantes de contribuição para
a Web Semântica. As triplas disponíveis podem ajudar o computador a entender o
significado por trás da informação, para encontrar melhor o que os usuários procuram.
O primeiro passo deste trabalho foi a modificação do sistema ReVerb para a extração de
informação de textos da Web em português e, a partir dessa informação, foi implementada
a mineração que descobre novas informações importantes, antes ocultas. Todo esse
processo é necessário para disponibilizar triplas semânticas em português como forma
de apoio à construção da Web Semântica neste idioma.
7.1
Principais Contribuições
Visando alcançar o objetivo primário e os secundários, a principal contribuição
desse trabalho é a aplicação da EIA para textos em português. Como mostrado, as
triplas semânticas possuem diversas aplicações, todas atreladas aos objetivos da Web
Semântica. Isso demonstra que o presente trabalho oferece alguns meios para impulsionar
a construção dessa Web.
O trabalho explora a combinação de duas técnicas da Inteligência Computacional. Em primeiro lugar está a aplicação do ReVerb para outra linguagem diferente do
inglês. Além disso, é utilizada a Mineração de Dados em um contexto diferente do habitual. Aqui são utilizados algoritmos tradicionais em conjunto com dados semânticos.
7.2 Limitações e Trabalhos Futuros
76
Os experimentos demonstraram que a EIA de processamento superficial tem
potencial promissor para o idioma português. Enquanto a análise profunda pode durar
várias horas, a análise superficial dura apenas minutos. Além disso, a disponibilidade
de conteúdo para aplicações futuras pode permitir um melhor acesso à informação da
Web. Mesmo que simples, as triplas semânticas permitem aos computadores um melhor
processamento na hora de encontrar respostas para os usuários.
Por último, fica disponível um modelo para a construção de um sistema de EIA
multilíngue, ou seja, um modelo de alterações do ReVerb para que o mesmo trabalhe
com espanhol, dinamarquês, holandês, sueco, entre outros por exemplo. Além disso,
a mineração de dados encontrou novas informações que podem ser utilizadas para a
construção de novas triplas.
7.2
Limitações e Trabalhos Futuros
De acordo com os resultados obtidos, foram identificadas algumas limitações no
trabalho. Pode-se perceber que o ReVerb original conseguiu encontrar mais triplas que o
ReVerb alterado. Tudo isso se deve a uma série de fatores. O primeiro é que o sistema
foi adaptado e não criado especificamente para o português. Em segundo lugar, existem
algumas divergências nas saídas das ferramentas da OpenNLP para cada tipo de idioma.
Como por exemplo irregularidades no etiquetamento de alguns tokens. Em terceiro lugar
fica o dicionário que foi traduzido de forma automática. Traduzir o dicionário de forma
manual poderia melhorar os resultados.
Pode-se, posteriormente, explorar algumas soluções para os problemas encontrados. Primeiramente, pode-se utilizar outras ferramentas de PLN em substituição da
OpenNLP, desde que estas trabalhem com textos em português. Também pode-se realizar um novo treinamento das ferramentas da OpenNLP. Uma questão importante é o
dicionário do ReVerb, que poderia gerar melhor resultados caso tivesse sido criado diretamente do português ao invés de traduzido. Para criar esse dicionário é necessário uma
enorme quantidade de páginas em português.
Para apresentar uma aplicação prática das informações extraídas da Web podese criar um sistema de pergunta e resposta. Esse sistema seria alimentado pelas triplas
encontradas e poderia fazer sugestões de conteúdos relacionados com as informações
descobertas pela mineração. Além disso, essas triplas poderiam ser colocadas em um
banco de dados orientado a grafos. As entidades seriam representadas pelos vértices e as
relações pelas arestas. Desse modo, todas as triplas poderiam estar ligadas formando uma
representação semântica mais rica.
Referências Bibliográficas
[1] A BEDJAN , Z.; G RUETZE , T.; J ENTZSCH , A.; N AUMANN , F. Profiling and mining rdf
data with prolod++. In: ICDE Conference 2014, p. 1198–1201. IEEE, 2014.
[2] A BEDJAN , Z.; N AUMANN , F. Context and target configurations for mining rdf
data. In: Proceedings of the 1st International Workshop on Search and Mining Entityrelationship Data, SMER ’11, p. 23–24, New York, NY, USA, 2011. ACM.
[3] A BEDJAN , Z.; N AUMANN , F. Improving rdf data through association rule mining.
Datenbank-Spektrum, 13(2):111–120, 2013.
[4] A BEDJAN , Z.; N AUMANN , F. Synonym analysis for predicate expansion. In: Cimiano, P.; Corcho, O.; Presutti, V.; Hollink, L.; Rudolph, S., editors, The Semantic Web:
Semantics and Big Data, volume 7882 de Lecture Notes in Computer Science, p.
140–154. Springer Berlin Heidelberg, 2013.
[5] AGHAEI , S.; N EMATBAKHSH , M. A.; FARSANI , H. K. Evolution of the world wide
web: From web 1.0 to web 4.0. International Journal of Web & Semantic Technology,
3(1):1–10, 2012.
[6] AGRAWAL , R.; S RIKANT, R. Fast algorithms for mining association rules in large
databases. In: Proceedings of the 20th International Conference on Very Large Data
Bases, VLDB ’94, p. 487–499, San Francisco, CA, USA, 1994. Morgan Kaufmann
Publishers Inc.
[7] A KBIK , A.; B ROSS , J. Wanderlust: Extracting semantic relations from natural
language text using dependency grammar patterns. In: WWW Workshop, 2009.
[8] A KBIK , A.; L ÖSER , A. Kraken: N-ary facts in open information extraction. In:
Proceedings of the Joint Workshop on Automatic Knowledge Base Construction and
Web-scale Knowledge Extraction, AKBC-WEKEX ’12, p. 52–56, Stroudsburg, PA,
USA, 2012. Association for Computational Linguistics.
[9] A KSAC, A.; O ZTURK , O.; D OGDU, E. A novel semantic web browser for user
centric information retrieval: {PERSON}.
39(15):12001 – 12013, 2012.
Expert Systems with Applications,
Referências Bibliográficas
78
[10] B ABU, K. G.; KOMALI , A.; M YTHRY, V.; R ATNAM , A. S. K. Web mining using
semantic data mining techniques. International Journal of Soft Computing and
Engineering (IJSCE), 2(3):168–171, July 2012.
[11] B AEZA -YATES , R.; R IBEIRO -N ETO, B. Modern Information Retrieval: The Concepts and Technology behind Search (2nd Edition) (ACM Press Books).
Addison-Wesley Professional, 2 edition, Feb. 2011.
[12] B ALKE , W.-T. Introduction to information extraction: Basic notions and current
trends. Datenbank-Spektrum, 12(2):81–88.
[13] B ANKO, M. Open Information Extraction for the Web. PhD thesis, University of
Washington, 2009.
[14] B ANKO, M.; C AFARELLA , M. J.; S ODERLAND, S.; B ROADHEAD, M.; E TZIONI , O.
Open information extraction from the web. IJCAI, p. 2670–2676, 2007.
[15] B ANKO, M.; E TZIONI , O. The tradeoffs between open and traditional relation
extraction. In: Proceedings of ACL-08: HLT, p. 28–36, Columbus, Ohio, June 2008.
Association for Computational Linguistics.
[16] B ERENDT, B.; H OTHO, A.; S TUMME , G.
Towards semantic web mining.
In:
Proceedings of the First International Semantic Web Conference on The Semantic
Web, ISWC ’02, p. 264–278, London, UK, UK, 2002. Springer-Verlag.
[17] B ERNERS -L EE , T.; H ENDLER , J.; L ASSILA , O.
The Semantic Web.
Scientific
American, 284(5):34–43, 2001.
[18] C HITICARIU, L.; L I , Y.; R AGHAVAN , S.; R EISS , F. Enterprise information extraction: recent developments and open challenges. In: Elmagarmid, A. K.; Agrawal,
D., editors, SIGMOD Conference, p. 1257–1258. ACM, 2010.
[19] C HOWDHURY, G. G. Natural language processing. Annual Review of Information
Science and Technology, 37(1):51–89, 2003.
[20] C HRISTENSEN , J.; M AUSAM .; S ODERLAND, S.; E TZIONI , O. Semantic role labeling
for open information extraction. In: IN PROCEEDINGS OF THE FIRST INTERNATIONAL WORKSHOP ON FORMALISMS AND METHODOLOGY FOR LEARNING
BY, 2010.
[21] C OOLEY, R.; M OBASHER , B.; S RIVASTAVA , J. Web mining: Information and pattern
discovery on the world wide web. In: Proceedings of the Ninth IEEE International
Conference on Tools with Artificial Intelligence (ICTAI’97). IEEE Computer Society,
Nov. 1997.
Referências Bibliográficas
79
[22] D EL C ORRO, L.; G EMULLA , R. Clausie: Clause-based open information extraction. In: Proceedings of the 22Nd International Conference on World Wide Web,
WWW ’13, p. 355–366, Republic and Canton of Geneva, Switzerland, 2013. International World Wide Web Conferences Steering Committee.
[23] D ESHPANDE , D. S. A survey on web data mining applications. IJCA Proceedings
on Emerging Trends in Computer Science and Information Technology (ETCSIT2012)
etcsit1001, ETCSIT(3):28–32, April 2012. Published by Foundation of Computer
Science, New York, USA.
[24] D HENAKARAN , S. S.; YASODHA , S. Semantic web mining - a critical review.
(IJCSIT) International Journal of Computer Science and Information Technologies,
2(5):2258–2261, 2011.
[25] D ILL , S.; E IRON , N.; G IBSON , D.; G RUHL , D.; G UHA , R.; J HINGRAN , A.; K ANUNGO,
T.; M C C URLEY, K. S.; R AJAGOPALAN , S.; TOMKINS , A.; TOMLIN , J. A.; Z IEN , J. Y. A
case for automated large-scale semantic annotation. Web Semantics: Science,
Services and Agents on the World Wide Web, 1(1):115 – 132, 2003.
[26] E IKVIL , L. Information extraction from the world wide web: a survey. Technical
Report 945, Norwegian Computing Center, 1999.
[27] E SA , A.; TAIB , S.; T HI , H. N.
Prototype of semantic search engine using
ontology. In: Open Systems (ICOS), 2010 IEEE Conference on, p. 109–114, Dec
2010.
[28] E TZIONI , O. The world-wide web: Quagmire or gold mine? Commun. ACM,
39(11):65–68, Nov. 1996.
[29] E TZIONI , O. Search needs a shake-up. Nature, 476(7358):25–26, Aug. 2011.
[30] E TZIONI , O.; B ANKO, M.; S ODERLAND, S.; W ELD, D. S. Open information extraction from the web. Commun. ACM, 51(12):68–74, Dec. 2008.
[31] E TZIONI , O.; C AFARELLA , M.; D OWNEY, D.; P OPESCU, A.-M.; S HAKED, T.; S ODER LAND,
S.; W ELD, D. S.; YATES , A. Unsupervised named-entity extraction from
the web: An experimental study. Artificial Intelligence, 165(1):91 – 134, 2005.
[32] E TZIONI , O.; FADER , A.; C HRISTENSEN , J. Open Information Extraction: The
Second Generation.
In: International Joint Conference on Artificial Intelligence
(IJCAI), 2011.
[33] FADER , A.; S ODERLAND, S.; E TZIONI , O. Identifying relations for open information extraction. In: EMNLP, p. 1535–1545. ACL, 2011.
Referências Bibliográficas
[34] FAYYAD, U. M.; P IATETSKY-S HAPIRO, G.; S MYTH , P.
80
Advances in knowledge
discovery and data mining. chapter From Data Mining to Knowledge Discovery:
An Overview, p. 1–34. American Association for Artificial Intelligence, Menlo Park,
CA, USA, 1996.
[35] F LEISCHHACKER , D.; VÖLKER , J.; S TUCKENSCHMIDT, H.
Mining rdf data for
property axioms. In: Meersman, R.; Panetto, H.; Dillon, T.; Rinderle-Ma, S.; Dadam,
P.; Zhou, X.; Pearson, S.; Ferscha, A.; Bergamaschi, S.; Cruz, I., editors, On the
Move to Meaningful Internet Systems: OTM 2012, volume 7566 de Lecture Notes in
Computer Science, p. 718–735. Springer Berlin Heidelberg, 2012.
[36] F OUNDATION , T. A. S. Apache opennlp 1.5.3 documentation. http://opennlp.
apache.org/documentation.html, último acesso em Junho de 2014, 2010.
[37] F OUNDATION , T. A. S. Welcome to apache opennlp. https://opennlp.apache.
org/, último acesso em Junho de 2014, 2010.
[38] F OURNIER -V IGER , P.; G OMARIZ , A.; G UENICHE , T.; S OLTANI , A.; W U, C.-W.;
T SENG , V. S. Spmf: A java open-source pattern mining library. Journal of Machine Learning Research, 15:3389–3393, 2014.
[39] F UENTES -L ORENZO, D.; F ERNÁNDEZ , N.; F ISTEUS , J. A.; S ÁNCHEZ , L. Improving
large-scale search engines with semantic annotations. Expert Systems with
Applications, 40(6):2287–2296, 2013.
[40] G AMALLO, P. An Overview of Open Information Extraction (Invited talk). In:
Pereira, M. J. V.; Leal, J. P.; Simões, A., editors, 3rd Symposium on Languages,
Applications and Technologies, volume 38 de OpenAccess Series in Informatics
(OASIcs), p. 13–16, Dagstuhl, Germany, 2014. Schloss Dagstuhl–Leibniz-Zentrum
fuer Informatik.
[41] G AMALLO, P.; G ARCIA , M.; F ERNÁNDEZ -L ANZA , S.
Dependency-based open
information extraction. In: Proceedings of the Joint Workshop on Unsupervised
and Semi-Supervised Learning in NLP, ROBUS-UNSUP ’12, p. 10–18, Stroudsburg,
PA, USA, 2012. Association for Computational Linguistics.
[42] G RISHMAN , R.; S UNDHEIM , B. Message understanding conference-6: A brief
history. In: Proceedings of the 16th Conference on Computational Linguistics Volume 1, COLING ’96, p. 466–471, Stroudsburg, PA, USA, 1996. Association for
Computational Linguistics.
[43] G ROUP, T. S. N. L. P. The stanford parser: A statistical parser. http://nlp.
stanford.edu/software/lex-parser.shtml, último acesso em Junho de 2014.
Referências Bibliográficas
[44] G UNASUNDARI , R.; K ARTHIKEYAN , S.
81
A new approach for web information
extraction. Int.J.Computer Techology & Applications (IJCTA), 3(1):211–215, JANFEB 2012.
[45] H AN , J.; P EI , J.; Y IN , Y. Mining frequent patterns without candidate generation.
SIGMOD Rec., 29(2):1–12, May 2000.
[46] H AN , J.; P EI , J.; Y IN , Y.; M AO, R. Mining frequent patterns without candidate
generation: A frequent-pattern tree approach. Data Min. Knowl. Discov., 8(1):53–
87, Jan. 2004.
[47] H AO, K.; G ONG , Z.; H UO, C.; S HEU, P. C.-Y. Semantic computing and computer
science. Int. J. Semantic Computing, 5(1):95–120, 2011.
[48] H ASSANZADEH , H.; K EYVANPOUR , M. R. Semantic web requirements through
web mining techniques. CoRR, abs/1208.0690, 2012.
[49] H UNT, F.
Facts, records & mysteries: Total number of websites &
size of the internet as of 2013.
http://www.factshunt.com/2014/01/
total-number-of-websites-size-of.html, último acesso em Junho de 2014,
2014.
[50] J, S.; S., R. K. A review on semantic-based web mining and its applications.
International Journal of Engineering and Technology (IJET), 5(1):186–192, Feb-Mar
2013.
[51] K IM , M. H.; C OMPTON , P.; K IM , Y. S. Rdr-based open ie for the web document.
In: Proceedings of the Sixth International Conference on Knowledge Capture, K-CAP
’11, p. 105–112, New York, NY, USA, 2011. ACM.
[52] K IRYAKOV, A.; P OPOV, B.; O GNYANOFF , D.; M ANOV, D.; K IRILOV, A.; G ORANOV,
M. Semantic annotation, indexing, and retrieval. In: International Semantic Web
Conference, p. 484–499, 2003.
[53] K RÄMER , B. J.; M ARGARIA , T. A hindsight on formal methods and prospects of
semantic computing in software engineering. Int. J. Semantic Computing, (1):5–
30.
[54] L AFFERTY, J.; M C C ALLUM , A.; P EREIRA , F. Conditional random fields: Probabilistic models for segmenting and labeling sequence data. In: Proc. 18th International Conf. on Machine Learning, p. 282–289. Morgan Kaufmann, San Francisco,
CA, 2001.
Referências Bibliográficas
82
[55] L UPIANI -RUIZ , E.; G ARCÍA -M ANOTAS , I.; VALENCIA -G ARCÍA , R.; S ÁNCHEZ , F. G.;
N IEVES , D. C.; F ERNÁNDEZ -B REIS , J. T.; C AMÓN -H ERRERO, J. B. Financial news
semantic search engine. Expert Syst. Appl., 38(12):15565–15572, 2011.
[56] M ADHU, G.; G OVARDHAN , A.; R AJINIKANTH , T. V. Intelligent semantic web search
engines: A brief survey. CoRR, abs/1102.0831, 2011.
[57] M AUSAM .; S CHMITZ , M.; S ODERLAND, S.; B ART, R.; E TZIONI , O. Open language
learning for information extraction. In: EMNLP-CoNLL, p. 523–534. ACL, 2012.
[58] M C C ALLUM , A. Efficiently inducing features of conditional random fields. In:
Proceedings of the Nineteenth Conference on Uncertainty in Artificial Intelligence,
UAI’03, p. 403–410, San Francisco, CA, USA, 2003. Morgan Kaufmann Publishers
Inc.
[59] M ERHAV, Y. A weighting scheme for open information extraction. In: HLT-NAACL,
p. 60–65. The Association for Computational Linguistics, 2012.
[60] N AGARJUNA , B. V. R. R.; B ABU, A. R.; M ARKANDEYULU, M.; R ATNAM , A. S. K.
Web mining: Methodologies, algorithms and applications. International Journal
of Soft Computing and Engineering (IJSCE), 2(3):164–167, July 2012.
[61] N EBOT, V.; B ERLANGA , R. Mining association rules from semantic web data.
In: García-Pedrajas, N.; Herrera, F.; Fyfe, C.; Benítez, J.; Ali, M., editors, Trends in
Applied Intelligent Systems, volume 6097 de Lecture Notes in Computer Science,
p. 504–513. Springer Berlin Heidelberg, 2010.
[62] N EBOT, V.; B ERLANGA , R.
Finding association rules in semantic web data.
Knowledge-Based Systems, 25(1):51 – 62, 2012. Special Issue on New Trends in
Data Mining.
[63] N EBOT, V.; L LAVORI , R. B.
Semantics-aware open information extraction in
the biomedical domain. In: Paschke, A.; Burger, A.; 0001, P. R.; Marshall, M. S.;
Splendiani, A., editors, SWAT4LS, p. 84–91. ACM, 2011.
[64] N EGM , N.; E LKAFRAWY, P.; S ALEM , A. B. A survey of web information extraction
tools.
International Journal of Computer Applications, 43(7):19–27, April 2012.
Published by Foundation of Computer Science, New York, USA.
[65] P ISKORSKI , J.; YANGARBER , R. Information extraction: Past, present and future.
In: Poibeau, T.; Saggion, H.; Piskorski, J.; Yangarber, R., editors, Multi-source, Multilingual Information Extraction and Summarization, Theory and Applications of Natural
Language Processing, p. 23–49. Springer Berlin Heidelberg, 2013.
Referências Bibliográficas
83
[66] Q UBOA , Q. K.; S ARAEE , M. A state-of-the-art survey on semantic web mining.
Intelligent Information Management (IIM), 5(1):10–17, January 2013.
[67] R AMULU, V. S.; K UMAR , C. N. S.; R EDDY, K. S. A study of semantic web mining:
Integrating domain knowledge into web mining. International Journal of Soft
Computing and Engineering (IJSCE), 2(3):522–524, July 2012.
[68] R ITTER , A.; C LARK , S.; M AUSAM .; E TZIONI , O.
Named entity recognition in
tweets: An experimental study. In: EMNLP, p. 1524–1534. ACL, 2011.
[69] S AVAGE , N. New search challenges and opportunities. Commun. ACM, 53(1):27–
28, Jan. 2010.
[70] S HARMA , N.; D UBEY, S. K. A hand to hand taxonomical survey on web mining. International Journal of Computer Applications, 60(3):7–14, December 2012.
Published by Foundation of Computer Science, New York, USA.
[71] S INGH , P.; K UMAR , A.; P RASHAST. Studies on research and development in web
mining. International Journal of Computer Applications, 44(9):28–32, April 2012.
Published by Foundation of Computer Science, New York, USA.
[72] S ODERLAND, S.; R OOF, B.; Q IN , B.; X U, S.; M AUSAM .; E TZIONI , O. Adapting open
information extraction to domain-specific relations. AI Magazine, 31(3):93–102,
2010.
[73] S UDEEPTHI , G.; A NURADHA , G.; B ABU, M. S. P. A survey on semantic web search
engine. International Journal of Computer Science Issues, 9(1):241–245, 2012.
[74] T EKLI , J.; R JEILY, A. A.; C HBEIR , R.; T EKLI , G.; H OUNGUE , P.; Y ETONGNON , K.;
A BEBE , M. A. Semantic to intelligent web era: Building blocks, applications,
and current trends.
In: Proceedings of the Fifth International Conference on
Management of Emergent Digital EcoSystems, MEDES ’13, p. 159–168, New York,
NY, USA, 2013. ACM.
[75] T REEBANK .
The penn treebank project.
http://www.cis.upenn.edu/
~treebank/home.html, último acesso em Junho de 2014, 1999.
[76] T SENG , Y.; L EE , L.; L IN , S.; L IAO, B.; L IU, M.; C HEN , H.; E TZIONI , O.; FADER , A.
Chinese open relation extraction for knowledge acquisition. In: Proceedings of
the 14th Conference of the European Chapter of the Association for Computational
Linguistics, EACL 2014, April 26-30, 2014, Gothenburg, Sweden, p. 12–16, 2014.
[77] T URING , A. M. Computing machinery and intelligence. Mind, 59(236):433–460,
1950.
Referências Bibliográficas
84
[78] V ELARDI , P.; D’A NTONIO, F.; C UCCHIARELLI , A. Open domain knowledge extraction: inference on a web scale. In: Camacho, D.; Akerkar, R.; Rodríguez-Moreno,
M. D., editors, WIMS, p. 35. ACM, 2013.
[79] W ILSON , A. D.; B OBICK , A. F. Hidden markov models. chapter Hidden Markov
Models for Modeling and Recognizing Gesture Under Variation, p. 123–160. World
Scientific Publishing Co., Inc., River Edge, NJ, USA, 2002.
[80] W U, F.; W ELD, D. S. Open information extraction using wikipedia. In: Proceedings of the 48th Annual Meeting of the Association for Computational Linguistics,
ACL ’10, p. 118–127, Stroudsburg, PA, USA, 2010. Association for Computational
Linguistics.
[81] X U, G.; Z HANG , Y.; L I , L. Web Mining and Social Networking: Techniques and
Applications. Springer-Verlag New York, Inc., New York, NY, USA, 1st edition, 2010.
[82] YATES , A.; B ANKO, M.; B ROADHEAD, M.; C AFARELLA , M. J.; E TZIONI , O.; S ODER LAND,
S. TextRunner: Open Information Extraction on the Web. In: HLT-NAACL
(Demonstrations), p. 25–26, 2007.
[83] Z AKI , M. J. Scalable algorithms for association mining. IEEE Trans. on Knowl.
and Data Eng., 12(3):372–390, May 2000.
[84] Z HENG , Q.; W U, Z.; C HENG , X.; J IANG , L.; L IU, J. Learning to crawl deep web.
Information Systems, 38(6):801 – 819, 2013.
[85] Z HU, J.; N IE , Z.; L IU, X.; Z HANG , B.; W EN , J.-R. Statsnowball: a statistical
approach to extracting entity relationships. In: WWW ’09: Proceedings of the
18th international conference on World wide web, p. 101–110, New York, NY, USA,
2009. ACM.
CAPÍTULO 8
Apêndice de Sentenças
Esse apêndice contém as sentenças usadas na avaliação dos resultados. Cada
frase segue a seguinte estrutura.
1. Frase em inglês.
(a) Frase em português.
• Tripla retirada da frase em português.
2. Essen is a beautiful city in the Ruhr Area.
(a) Essen é uma bela cidade no Vale do Ruhr.
• (Essen, é uma cidade no, Vale do Ruhr)
3. Krypton is a fictional planet in the DC Comics Universe.
(a) Krypton é um planeta fictício no Universo DC Comics.
• (Krypton, é um planeta fictício no, Universo DC Comics)
4. Dirk is a very good friend of Elmar.
(a) Dirk é um grande amigo do Elmar.
• (Dirk, é um grande amigo do, Elmar)
5. Zeus gave flowers to Hera in Athens.
(a) Zeus deu flores para Hera em Atenas.
• (Zeus, deu flores para, Hera)
• (Zeus, deu flores para Hera em, Atenas)
6. Elvis moved to Memphis in 1948.
(a) Elvis mudou-se para Memphis em 1948.
• (Elvis, mudou-se para, Memphis)
• (Elvis, mudou-se para Memphis em, 1948)
7. Hitachi GST was established in 2003 and is headquartered in San Jose.
(a) Hitachi GST foi criada em 2003 e está sediada em San José.
86
• (Hitachi GST, foi criada em, 2003)
• (Hitachi GST, está sediada em, San José)
8. Spain is a southwestern European country located on the Iberian Peninsula.
(a) A Espanha é um país europeu localizado no sudoeste da Península Ibérica.
• (Espanha, é um país europeu localizado no, sudoeste da Península
Ibérica)
9. Some cities, including Seattle, have increased the number of bike lanes.
(a) Algumas cidades, incluindo Seattle, tem aumentado o número de ciclovias.
• (Seattle, tem aumentado o número de, ciclovias)
10. Steve Jobs, the brilliant and forward thinking CEO of Apple Computer, will give a
speech on Tuesday.
(a) Steve Jobs, o CEO brilhante e visionário da Apple Computer, fará um discurso
na terça-feira.
• (Steve Jobs, fará um discurso na, terça-feira)
11. Lance Armstrong is the Tour de France winner.
(a) Lance Armstrong é o vencedor do Tour de France.
• (Lance Armstrong, é o vencedor do, Tour de France)
12. Microsoft is headquartered in beautiful Redmond, a city located near Seattle.
(a) Microsoft está sediada na bela Redmond, uma cidade situada perto de Seattle.
• (Microsoft, está sediada na, bela Redmond)
13. Google announced Tuesday that it bought YouTube for $1.65 billion.
(a) Google anunciou terça-feira que comprou o YouTube por US$ 1,65 bilhões.
• (Google, comprou o Youtube por, US$ 1,65 bilhões)
14. President Lincoln was killed by John Wilkes Booth.
(a) Presidente Lincoln foi assassinado por John Wilkes Booth.
• (Lincoln, foi assassinado por, John Wilkes Booth)
15. Einstein received the Nobel Prize in 1921.
(a) Einstein recebeu o Prêmio Nobel em 1921.
• (Einstein, recebeu o Prêmio Nobel em, 1921)
16. Tim Berners-Lee is credited with having invented the WWW.
(a) Tim Berners-Lee é creditado por ter inventado a WWW.
• (Tim Berners-Lee, é creditado por ter inventado a, WWW)
87
17. Young scientists from many universities are studying exciting new technologies.
(a) Jovens cientistas de várias universidades estão estudando novas tecnologias
emocionantes.
• (Jovens cientistas, estão estudando, novas tecnologias)
18. Charlie Chaplin was born on April 16, 1889 in London.
(a) Charlie Chaplin nasceu em 16 de abril de 1889, em Londres.
• (Charlie Chaplin, nasceu em, 16 de abril de 1889)
• (Charlie Chaplin, nasceu em 16 de abril de 1889, em Londres)
19. Robert Louis Stevenson is author of Dr. Jekyll.
(a) Robert Louis Stevenson é o autor de Dr. Jekyll.
• (Robert Louis Stevenson, é o autor de, Dr. Jekyll)
20. Franz Kafka, a writer born in Prague, wrote The Metamorphosis.
(a) Franz Kafka, um escritor nascido em Praga, escreveu A Metamorfose.
• (Franz Kafka, nascido em, Praga)
• (Franz Kafka, escreveu, A Metamorfose)
21. McCain fought hard against Obama, but finally lost the election.
(a) McCain lutou muito contra Obama, mas finalmente perdeu a eleição.
• (McCain, lutou contra, Obama)
• (McCain, perdeu, a eleição)
22. Eli Whitney created the cotton gin in 1793.
(a) Eli Whitney criou o descaroçador de algodão em 1793.
• (Eli Whitney, criou o, descaroçador de algodão)
23. Bunsen invented a device called the Spectroscope.
(a) Bunsen inventou um dispositivo chamado o espectroscópio.
• (Bunsen, inventou um dispositivo chamado, o espectroscópio)
24. Larry Page googled his name and launched a new revolution.
(a) Larry Page pesquisou seu nome e lançou uma nova revolução.
• (Larry Page, pesquisou, seu nome)
• (Larry Page, lançou uma, nova revolução)
25. A. Einstein, who was born in Ulm, is vegetarian.
(a) A. Einstein, que nasceu em Ulm, é vegetariano.
• (A. Einstein, nasceu em, Ulm)
88
• (A. Einstein, é, vegetariano)
26. Anna passed the exam with ease.
(a) Anna passou no exame com facilidade.
• (Anna, passou no exame com, facilidade)
27. Albert Einstein remained in Princeton until his death in 1955.
(a) Albert Einstein permaneceu em Princeton, até sua morte em 1955.
• (Albert Einstein, permaneceu em Princeton, até sua morte)
28. Bell, a telecommunication company, which is based in Los Angeles, makes and
distributes electronic, computer and building products.
(a) Bell, uma empresa de telecomunicações, que tem sede em Los Angeles, faz
e distribui eletrônicos, computadores e produtos de construção.
• (Bell, tem sede em, Los Angeles)
29. Messi plays football.
(a) Messi joga futebol.
• (Messi, joga, futebol)
30. He fathered two children, Edna and Donald, and lived in Aberdeen until his death
from tuberculosis in 1942.
(a) Ele foi pai de dois filhos, Edna e Donald, e viveu em Aberdeen até sua morte
por tuberculose em 1942.
• (Ele, foi pai de, dois filhos)
• (Ele, foi pai de, Edna e Donald)
• (Ele, viveu em, Aberdeen)
31. Microsoft acquired Powerset, a start-up company developing a natural-language
search engine, for upwards of US$100 million in 2008.
(a) Microsoft adquiriu Powerset, uma empresa start-up desenvolvendo um mecanismo de pesquisa de linguagem natural, por mais de US$ 100 milhões em
2008.
• (Microsoft, adquiriu, Powerset)
32. In 2010, Apple bought Siri, a start-up with an iPhone app that answered naturallanguage questions about films, restaurants and other local services, for a price
speculated to have been more than $200 million.
(a) Em 2010, a Apple comprou a Siri, uma start-up com um aplicativo para iPhone
que responde às perguntas em linguagem natural sobre filmes, restaurantes e
89
outros serviços locais, por um preço especulado por ter sido mais de US$ 200
milhões.
• (Apple, comprou a, Siri)
33. Paris is the stylish capital of France.
(a) Paris é a capital elegante da França.
• (Paris, é a capital da, França)
34. Hamas claimed responsibility for the Gaza attack.
(a) Hamas reivindicou a responsabilidade pelo ataque a Gaza.
• (Hamas, reivindicou a responsabilidade pelo ataque a, Gaza)
35. Faust made a deal with the devil.
(a) Faust fez um pacto com o diabo.
• (Faust, fez um pacto com o, diabo)
36. Hudson was born in Hampstead, which is a suburb of London.
(a) Hudson nasceu em Hampstead, que é um subúrbio de Londres.
• (Hudson, nasceu em, Hampstead)
• (Hampstead, é um subúrbio de, Londres)
37. In May 2010, the principal opposition parties boycotted the polls after accusations of
vote-rigging.
(a) Em maio de 2010, os principais partidos de oposição boicotaram as eleições
depois de acusações de fraude eleitoral.
• (partidos de oposição, boicotaram as eleições depois das acusações de,
fraude eleitoral)
38. Vigo is the largest city in Galicia and is located in the northwest of Spain.
(a) Vigo é a maior cidade da Galiza e está localizada no noroeste da Espanha.
• (Vigo, é a maior cidade da, Galiza)
• (Vigo, está localizada no noroeste da, Espanha)
39. The soccer player of FC Barcelona, Lionel Messi, won the Fifa World Player of the
Year award.
(a) O jogador de futebol do FC Barcelona, Lionel Messi, venceu o Fifa World
Player of the Year.
• (Lionel Messi, venceu o, Fifa World Player of the Year)
40. The first commercial airline flight was from St. Petersburg to Tampa in 1914.
(a) O primeiro voo comercial foi de São Petersburgo a Tampa em 1914.
90
• (primeiro voo comercial, foi de, São Petersburgo a, Tampa)
41. The relationship between the Taliban and Bin Laden was close.
(a) A relação entre o Talibã e Bin Laden estava encerrada.
• (relação entre o Talibã e Bin Laden, estava, encerrada)
42. FBI examined the relationship between Bin Laden and the Taliban.
(a) FBI examinou a relação entre Bin Laden e Talibã.
• (FBI, examinou a relação entre, Bin Laden e Talibã)
43. The treaty was signed by Portugal in 2003 in Lisbon.
(a) O tratado foi assinado por Portugal em 2003 em Lisboa.
• (tratado, foi assinado por, Portugal)
• (tratado, foi assinado por Portugal em, 2003)
44. The coach of benfica have hold a press conference in Lisbon.
(a) O treinador do Benfica tem uma conferência de imprensa em Lisboa.
• (treinador, tem uma conferência de imprensa em, Lisboa)
45. Microsoft co-founder Bill Gates spoke at Harvard Univesity.
(a) Co-fundador da Microsoft, Bill Gates falou na Universidade de Harvard.
• (Bill Gates, falou na, Universidade de Harvard)
46. Early astronomers believed that the earth is the center of the universe.
(a) Os primeiros astrônomos acreditavam que a Terra é o centro do universo.
• (Terra, é o centro do, universo)
47. If he wins five key states, Romney will be elected President.
(a) Se ele ganhar cinco estados-chave, Romney será eleito presidente.
• (Romney, será eleito, presidente)
48. Mr. Smith gave a talk at the conference in New York.
(a) Sr. Smith deu uma palestra na conferência em Nova York.
• (Sr. Smith, deu uma palestra, em Nova York)
• (Sr. Smith, deu uma palestra na conferência, em Nova York)
49. Beijing is the capital of China.
(a) Pequim é a capital da China.
• (Pequim, é a capital da, China)
50. Apples are rich in nutrition.
(a) Maçãs são ricas em nutrição.
91
• (Maçãs, são ricas em, nutrição)
51. Edison invented the light bulb.
(a) Edison inventou a lâmpada.
• (Edison, inventou a, lâmpada)
52. Mozart was born in Salzburg, but moved to Vienna in 1881
(a) Mozart nasceu em Salzburgo, mas mudou-se para Viena em 1881.
• (Mozart, nasceu em, Salzburgo)
• (Mozart, mudou-se para, Viena)
• (Mozart, mudou-se para Viena em, 1881)
53. Dan was not born in Berkeley.
(a) Dan não nasceu em Berkeley.
• (Dan, não nasceu em, Berkeley)
54. Apollo killed Python.
(a) Apolo matou Python.
• (Apolo, matou, Python)
Download