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)