Extração e Mineração de Informação Independente de Domínios da Web na Língua Portuguesa

Tamanho: px
Começar a partir da página:

Download "Extração e Mineração de Informação Independente de Domínios da Web na Língua Portuguesa"

Transcrição

1 UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA JULIO CESAR BATISTA PIRES Extração e Mineração de Informação Independente de Domínios da Web na Língua Portuguesa Goiânia 2015

2 UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA AUTORIZAÇÃO PARA PUBLICAÇÃO DE DISSERTAÇÃO EM FORMATO ELETRÔ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 5 o da Lei n o 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 Julio Cesar Batista Pires Autor Dr. Cedric Luiz de Carvalho Orientador

3 JULIO CESAR BATISTA PIRES 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

4 JULIO CESAR BATISTA PIRES 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

5 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.

6 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.

7 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.

8 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.

9 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, p. 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.

10 Abstract Pires, Julio C. B.. Mining and Extraction of Domain Independent Information in Portuguese.. Goiânia, p. 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.

11 Sumário Lista de Figuras 11 Lista de Tabelas 12 Lista de Algoritmos 13 Lista de Códigos de Programas 14 1 Introdução Motivação e Justificativas Objetivos Metodologia Organização da Dissertação 23 2 Extração de Informação Extração de Informação Clássica Métricas de Extração O que Pode ser Extraído Trabalho Manual Aprendizado Extração de Informação Aberta Objetivos Chave e Técnicas Tuplas Relacionais Funcionamento Convencional vs. Aberta Considerações 30 3 Trabalhos Relacionados TextRunner Wanderlust WOE ReVerb Algoritmos de Extração 36 Extração de Relação 36 Extração de Argumentos Exemplo de Extração R2A OLLIE KrakeN 39

12 3.8 ClausIE CORE DepOE Discussão 41 4 Mineração das Triplas Mineração de Dados Mineração Web Categorias de Mineração Subtarefas de Mineração Mineração Web Semântica Mineração de Regras de Associação Configurações de Mineração Conclusões 51 5 Implementação do Extrator/Minerador Extrator Entrada Pré-processador Sentence Detector Tokenizer POS Tagger 57 Conversor de Etiquetas Chunker Extração, Restrições e Dicionário Saída Minerador Descoberta de Recursos Seleção de Informação Montagem das Transações Generalização Análise Novas Triplas Aplicação das Triplas Semânticas 66 6 Experimentação e Avaliação dos Resultados Análise dos Resultados 70 7 Considerações Finais Principais Contribuições Limitações e Trabalhos Futuros 76 Referências Bibliográficas 77 8 Apêndice de Sentenças 85

13 Lista de Figuras 5.1 Arquitetura do ReVerb Modificado Arquitetura do Minerador Principais Aplicações das Triplas Semânticas Pesquisa no Google Pesquisa em um sistema de Pergunta-Resposta Métricas de Confiança das Extrações. 72

14 Lista de Tabelas 2.1 Contrastes entre a EI e a EIA [30] Padrão da Restrição Sintática. Adaptado [33] Sistemas da EIA Configurações de alvo e contexto [2, 3] 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 Avaliação do ReVerb: Inglês Vs. Português Valores de Confiança para as triplas. Adaptado [33]. 72

15 Lista de Algoritmos 3.1 ExtratordeRelacionamentos(S) ExtratordeArgumentos(R) 37

16 Lista de Códigos de Programas 5.1 Carregamento de um documento a partir de um URL Conversão de tipos de Etiqueta Conversão de tipos de Etiqueta. 58

17 Introdução CAPÍTULO 1 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áquinas 1 (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 Hiper- Texto - 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 (URIs 2 ), publicação (HTML 3 ) e navegação (HTTP 4 ) de informações na rede de computadores [9]. 1 Nesta dissertação, máquinas e computadores são tratados com o mesmo sentido. 2 Universal 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/)

18 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 Youtube 5 (vídeos), o Blogger 6 (blog), o Facebook 7 (rede social), o Twitter 8 (rede social microblog), a Wikipédia 9 (enciclopédia cooperativa multilíngue) e o Flickr 10 (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 entenderem 11 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.

19 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 Google 12, o Bing 13 e o Yahoo 14 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 Consortium 15. 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/)

20 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

21 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

22 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

23 1.2 Objetivos 21 a DBPedia 16 e o Freebase 17. 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 ge- 16 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/)

24 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 CAPES 18 (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/)

25 1.4 Organização da Dissertação 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. 1.4 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.

26 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.

27 Extração de Informação CAPÍTULO 2 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 natural 1. 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 DARPA 2, 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 natural é a linguagem falada e escrita pelos seres humanos. 2 Defense Advanced Research Projects Agency (www.darpa.mil)

28 2.1 Extração de Informação Clássica 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]: Cobertura = RespostasCorretas Total (2-1) Precisao = RespostasCorretas RespostasProduzidas (2-2) 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 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].

29 2.1 Extração de Informação Clássica 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 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].

30 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 s, 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-

31 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 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] 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 = (e 1, r, e 2 ), em que e 1 e e 2 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 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

32 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] 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

33 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.

34 Trabalhos Relacionados CAPÍTULO 3 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

35 3.2 Wanderlust 33 um classificador 1 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]

36 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].

37 3.4 ReVerb 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

38 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 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 para cada Verbo V em S faça 2 Encontre uma sequência de palavras P. 3 se P satisfaz a restrição sintática então 4 se P satisfaz a restrição léxica então 5 R P 6 se Existem correspondências adjacentes então 7 Junte-as em uma única relação. 8 fim 9 retorna R 10 fim 11 fim 12 fim

39 3.4 ReVerb 37 Extração de Argumentos Algoritmo 3.2: ExtratordeArgumentos(R) Entrada: Relação R. Saída: Tripla X, R, Y. 1 para cada Relação R faça 2 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. 3 se X <> pronome relativo OU advérbio que então 4 se Y <> pronome relativo OU advérbio que então 5 se o par (X; Y ) foi encontrado então 6 retorna (X; R; Y ) 7 fim 8 fim 9 fim 10 fim Para ficar mais claro o funcionamento desse algoritmo, na seção abaixo é mostrado um exemplo de execução 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.

40 3.5 R2A 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 WOE PARSE, mas também perde algumas extrações encontradas pelo ReVerb [57].

41 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).

42 3.8 ClausIE 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

43 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) 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 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 WOE POS [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 WOE PARSE [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

44 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 WOE POS 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 (WOE PARSE, 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 WOE POS Binárias Superficial Inglês WOE PARSE 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,

45 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 (1 a categoria) executam melhor do que classificadores que geram seus dados de treinamento automaticamente (2 a 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.

46 Mineração das Triplas CAPÍTULO 4 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-

47 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

48 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 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).

49 4.3 Mineração Web Semântica 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

50 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

51 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.

52 4.5 Configurações de Mineração 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.

53 4.6 Conclusões 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

54 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.

55 Implementação do Extrator/Minerador CAPÍTULO 5 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êmico 1, ou seja, pode ser copiado, modificado e distribuído para propósitos não comerciais. Além disso, é escrito na linguagem de programação Java 2, 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 License (http://reverb.cs.washington.edu/license.txt) 2 Oracle Java Home Page (http://www.oracle.com/technetwork/java/index.html)

56 5.1 Extrator 54 Entrada WWW Páginas Web WIKIPÉDIA Documentos Conteúdo Conteúdo Conteúdo ReVerb Pré-processador Sentence Detector Texto Bruto Tokenizer POS Tagger Tokens Conversor de Etiquetas Chunker Rótulos Restrição Sintática Algoritmo de Extração Restrição Léxica Dicionário Padrão Triplas Semânticas (Entidade1, Relação, Entidade2) Figura 5.1: Arquitetura do ReVerb Modificado. Saída

57 5.1 Extrator Entrada O ReVerb recebe sentenças na entrada e retorna triplas no formato (E 1 ; R 12 ; E 2 ) 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 jsoup 3. 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 para recuperar páginas randômicas em tempo real. Para páginas em inglês usa-se o link 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 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/)

58 5.1 Extrator 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 OpenNLP 4 (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 download 5 da OpenNLP e de suas ferramentas 6 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. Comando Saída Tabela 5.1: Exemplo de detecção de sentenças. opennlp SentenceDetector pt-sent.bin < input.txt > output-text.txt. Podem as máquinas pensar? Acredito ser muito sem sentido para merecer discussão 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/) 5 OpenNLP Download (https://opennlp.apache.org/cgi-bin/download.cgi) 6 Modelos de Ferramentas da OpenNLP (http://opennlp.sourceforge.net/models-1.5/)

59 5.1 Extrator 57 Comando Saída Tabela 5.2: Exemplo de segmentação de tokens. opennlp TokenizerME pt-token.bin < output-text.txt > output-tokenized.txt. Podem as máquinas pensar? 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 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. Comando Saída Tabela 5.3: Exemplo de rotulação de tokens. opennlp POSTagger pt-pos-maxent.bin < output-tokenized.txt > outputpostagged.txt. Podem_v-fin as_art máquinas_n pensar_v-inf?_punc 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 Linguateca 7, é natural que os rótulos utilizados sigam o padrão deste projeto. Na tabela 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

60 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 { 4 return "JJ"; // Adjective 5 } 6 A variável tag representa a etiqueta no formato da Linguateca, já o retorno é a etiqueta no formato Penn Treebank 9. 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 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/)

61 5.1 Extrator 59 Da mesma forma que as outras ferramentas, o chunker foi treinando utilizando o arquivo Bosque_CF_8.0.ad 10, um corpus composto de 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 (AD 11 ), e desse modo, é necessário realizar a conversão para o formato nativo da OpenNLP, que é baseado no CoNLL 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 > 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 palavras 13. 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/)

62 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) Comando Tabela 5.8: Treinamento do Chunker. opennlp ChunkerTrainerME model pt-chunker.bin lang pt data bosquechunk encoding ISO 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 Após treinar o chunker, na Tabela 5.10 são apresentados os resultados de sua performance em uma comparação 15 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 Tempo de Execução em segundos Precisão (Precision) Cobertura (Recall) Taxa F (F-Measure) 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 CoNLL2000 (http://www.clips.uantwerpen.be/conll2000/chunking/)

63 5.1 Extrator 61 Comando Saída Tabela 5.11: Exemplo de execução do Chunker. opennlp ChunkerME pt-chunker.bin < output-postagged.txt > outputchunk.txt [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 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 relações em inglês que foram traduzidas para o português utilizando o Google Tradutor 17. 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 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/)

64 5.2 Minerador 62 Tabela 5.12: Exemplo de execução do ReVerb. Passo Texto Passo 1 <html>maças são ricas em nutrição. Continuação...</html> Passo 2 Maças são ricas em nutrição. Continuação... Passo 3 Maças são ricas em nutrição. Passo 4 Maças são ricas em nutrição. Passo 5 Maças_prop são_v-fin ricas_adj em_prp nutrição_n._punc Passo 5.5 Maças_NNP são_vbd ricas_jj em_in nutrição_nn._o Passo 6 Maças_B-NP são_b-vp ricas_b-adjp em_b-pp nutrição_b-np. Passo 7 (Maças, são ricas em, nutrição) 5.2 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 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 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.

65 5.2 Minerador 63 Triplas Semânticas (Entidade1, Relação, Entidade2) Entrada Pré-processador Montador de Transações Triplas Semelhantes Minerador Algoritmo de Mineração Regras , Saída Novas Triplas Semânticas (Entidade1, Relação, Entidade2) Figura 5.2: Arquitetura do Minerador.

66 5.2 Minerador 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 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. Entidade 1 Relação 12 Entidade 2 Raul nasceu em Rio de Janeiro Raul mora em São Paulo Raul morreu em São Paulo Raul trabalhou com publicação de livros Renato nasceu em Rio de Janeiro Renato mora em Salvador Renato morreu em São Paulo Alexandre é um nativo de Rio de Janeiro Alexandre trabalhou com gravura em madeira Alexandre 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

67 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 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

68 5.3 Aplicação das Triplas Semânticas 66 da Tabela 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 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.

69 5.3 Aplicação das Triplas Semânticas 67 Triplas Semânticas (Entidade1, Relação, Entidade2)?! Repositórios Semânticos Pergunta-Resposta Marcações Semânticas Ontologias 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 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 resposta 18, 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

70 5.3 Aplicação das Triplas Semânticas 68 Figura 5.4: Pesquisa no Google.

PROJETO DE REDES www.projetoderedes.com.br

PROJETO DE REDES www.projetoderedes.com.br PROJETO DE REDES www.projetoderedes.com.br Centro Universitário de Volta Redonda - UniFOA Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro

Leia mais

Organizaçãoe Recuperação de Informação GSI521. Prof. Rodrigo Sanches Miani FACOM/UFU

Organizaçãoe Recuperação de Informação GSI521. Prof. Rodrigo Sanches Miani FACOM/UFU Organizaçãoe Recuperação de Informação GSI521 Prof. Rodrigo Sanches Miani FACOM/UFU Introdução Organização e Recuperação de Informação(GSI521) Tópicos Recuperação de informação (RI); Breve histórico; O

Leia mais

3 Ferramentas de busca

3 Ferramentas de busca 3 Ferramentas de busca A Internet se transformou em um vasto repositório de informações. Podemos encontrar sites sobre qualquer assunto, de futebol a religião. O difícil, porém é conseguir encontrar a

Leia mais

Nathalie Portugal Vargas

Nathalie Portugal Vargas Nathalie Portugal Vargas 1 Introdução Trabalhos Relacionados Recuperação da Informação com redes ART1 Mineração de Dados com Redes SOM RNA na extração da Informação Filtragem de Informação com Redes Hopfield

Leia mais

O que é a ciência de dados (data science). Discussão do conceito. Luís Borges Gouveia Universidade Fernando Pessoa Versão 1.

O que é a ciência de dados (data science). Discussão do conceito. Luís Borges Gouveia Universidade Fernando Pessoa Versão 1. O que é a ciência de dados (data science). Discussão do conceito Luís Borges Gouveia Universidade Fernando Pessoa Versão 1.3, Outubro, 2015 Nota prévia Esta apresentação tem por objetivo, proporcionar

Leia mais

Além da correção ortográfica nos editores de textos livres

Além da correção ortográfica nos editores de textos livres Além da correção ortográfica nos editores de textos livres William D. Colen M. Silva (colen@users.sourceforge.net) Eng. Computação pela Escola Politécnica da USP (2006) Mestrando Ciência da Computação

Leia mais

A Estrutura da Web. Redes Sociais e Econômicas. Prof. André Vignatti

A Estrutura da Web. Redes Sociais e Econômicas. Prof. André Vignatti A Estrutura da Web Redes Sociais e Econômicas Prof. André Vignatti A Estrutura da Web Até agora: redes onde unidades eram pessoas ou entidades sociais, como empresas e organizações Agora (Cap 13, 14 e

Leia mais

RECONHECIMENTO DE PADRÕES RECONHECIMENTO DE VOZ

RECONHECIMENTO DE PADRÕES RECONHECIMENTO DE VOZ RECONHECIMENTO DE PADRÕES RECONHECIMENTO DE VOZ O ESQUEMA DE CLASSIFICAÇÃO É GERALMENTE BASEADO NA DISPONIBILIDADE DE UM CONJUNTO DE PADRÕES QUE FORAM ANTERIORMENTE CLASSIFICADOS, O "CONJUNTO DE TREINAMENTO";

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 13 Web Services Web Services

Leia mais

Uso de Padrões Web. maio/2009

Uso de Padrões Web. maio/2009 Uso de Padrões Web maio/2009 Internet e Web, passado, presente e futuro 2 Internet e Web, passado, presente e futuro 3 A Evolução da Web Pré Web Passado web 1.0 Presente web 2.0 Futuro web 3.0 4 A Evolução

Leia mais

Autoria Web Apresentação e Visão Geral sobre a Web

Autoria Web Apresentação e Visão Geral sobre a Web Apresentação e Visão Geral sobre a Web Apresentação Thiago Miranda Email: mirandathiago@gmail.com Site: www.thiagomiranda.net Objetivos da Disciplina Conhecer os limites de atuação profissional em Web

Leia mais

Web Design Aula 01: Conceitos Básicos

Web Design Aula 01: Conceitos Básicos Web Design Aula 01: Conceitos Básicos Professora: Priscilla Suene priscilla.silverio@ifrn.edu.br Motivação Motivação Motivação Motivação Roteiro Introdução Papéis e Responsabilidades Construindo um site

Leia mais

DWEB. Design para Web. Fundamentos Web I. Curso Superior de Tecnologia em Design Gráfico

DWEB. Design para Web. Fundamentos Web I. Curso Superior de Tecnologia em Design Gráfico DWEB Design para Web Curso Superior de Tecnologia em Design Gráfico Fundamentos Web I E não vos conformeis com este século, mas transformai-vos pela renovação da vossa mente, para que experimenteis qual

Leia mais

PARANÁ GOVERNO DO ESTADO

PARANÁ GOVERNO DO ESTADO PARANÁ GOVERNO DO ESTADO COLÉGIO ESTADUAL DE PARANAVAÍ ENSINO FUNDAMENTAL, MÉDIO, NORMAL E PROFISSIONAL CURSO TÉCNICO EM INFORMÁTICA DISCIPLINA: INTERNET E PROGRAMAÇÃO WEB 1º MÓDULO SUBSEQUENTE MECANISMOS

Leia mais

3 Metodologia de Previsão de Padrões de Falha

3 Metodologia de Previsão de Padrões de Falha 3 Metodologia de Previsão de Padrões de Falha Antes da ocorrência de uma falha em um equipamento, ele entra em um regime de operação diferente do regime nominal, como descrito em [8-11]. Para detectar

Leia mais

RECUPERAÇÃO DE DOCUMENTOS TEXTO USANDO MODELOS PROBABILISTICOS ESTENDIDOS

RECUPERAÇÃO DE DOCUMENTOS TEXTO USANDO MODELOS PROBABILISTICOS ESTENDIDOS ISBN 978-85-61091-05-7 Encontro Internacional de Produção Científica Cesumar 27 a 30 de outubro de 2009 RECUPERAÇÃO DE DOCUMENTOS TEXTO USANDO MODELOS PROBABILISTICOS ESTENDIDOS Marcello Erick Bonfim 1

Leia mais

Engenharia de Software-2003

Engenharia de Software-2003 Engenharia de Software-2003 Mestrado em Ciência da Computação Departamento de Informática - UEM Profa. Dra. Elisa H. M. Huzita eng. de software-2003 Elisa Huzita Produto de Software Conceitos Software

Leia mais

Criação e publicação de um dataset de dados interligados das edições passadas do Simpósio Brasileiro de Banco de Dados

Criação e publicação de um dataset de dados interligados das edições passadas do Simpósio Brasileiro de Banco de Dados U NIVERSIDADE FEDERAL DE PERNAMBUCO GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA 2 0 1 2. 2 Criação e publicação de um dataset de dados interligados das edições passadas do Simpósio Brasileiro

Leia mais

Universidade Federal de Mato Grosso

Universidade Federal de Mato Grosso Universidade Federal de Mato Grosso Programação III Curso de Ciência da Computação Prof. Thiago P. da Silva thiagosilva@ufmt.br Material basedado em [Kurose&Ross 2009] e [Gonçalves, 2007] Agenda Internet

Leia mais

Recuperação de Imagens na Web Baseada em Informações Textuais

Recuperação de Imagens na Web Baseada em Informações Textuais Recuperação de Imagens na Web Baseada em Informações Textuais André Ribeiro da Silva Mário Celso Candian Lobato Universidade Federal de Minas Gerais Departamento de Ciência da Computação {arsilva,mlobato}@dcc.ufmg.br

Leia mais

Integração de Dados na Web. Ana Carolina Salgado Bernadette Lóscio

Integração de Dados na Web. Ana Carolina Salgado Bernadette Lóscio Integração de Dados na Web Ana Carolina Salgado Bernadette Lóscio Conteúdo Introdução Integração de Informações Consultando a Web Introdução Motivação Web e BD Arquitetura na Web Introdução Evolução da

Leia mais

SISTEMAS DE INFORMAÇÕES GERENCIAIS. Aula 09

SISTEMAS DE INFORMAÇÕES GERENCIAIS. Aula 09 FACULDADE CAMÕES PORTARIA 4.059 PROGRAMA DE ADAPTAÇÃO DE DISCIPLINAS AO AMBIENTE ON-LINE SISTEMAS DE INFORMAÇÃO GERENCIAL DOCENTE: ANTONIO SIEMSEN MUNHOZ, MSC. ÚLTIMA ATUALIZAÇÃO: FEVEREIRO DE 2007. Internet,

Leia mais

Novas Mídias e Relações Sociais.

Novas Mídias e Relações Sociais. Novas Mídias e Relações Sociais. Eduardo Foster 1 1 Caiena Soluções em Gestão do Conhecimento, Av. 34-578, CEP 13504-110 Rio Claro, Brasil foster@caiena.net Resumo. A comunicação é uma disciplina que acompanha

Leia mais

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados: MC536 Introdução Sumário Conceitos preliminares Funcionalidades Características principais Usuários Vantagens do uso de BDs Tendências mais recentes em SGBDs Algumas desvantagens Modelos de dados Classificação

Leia mais

CONCEITOS BÁSICOS DE INTERNET. Disciplina: INFORMÁTICA 1º Semestre Prof. AFONSO MADEIRA

CONCEITOS BÁSICOS DE INTERNET. Disciplina: INFORMÁTICA 1º Semestre Prof. AFONSO MADEIRA CONCEITOS BÁSICOS DE INTERNET Disciplina: INFORMÁTICA 1º Semestre Prof. AFONSO MADEIRA conceito inicial Amplo sistema de comunicação Conecta muitas redes de computadores Apresenta-se de várias formas Provê

Leia mais

1 Introdução 1.1. Segurança em Redes de Computadores

1 Introdução 1.1. Segurança em Redes de Computadores 1 Introdução 1.1. Segurança em Redes de Computadores A crescente dependência das empresas e organizações modernas a sistemas computacionais interligados em redes e a Internet tornou a proteção adequada

Leia mais

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Aula 2 Computação em Nuvem Desafios e Oportunidades A Computação em Nuvem

Leia mais

WWW - World Wide Web

WWW - World Wide Web WWW World Wide Web WWW Cap. 9.1 WWW - World Wide Web Idéia básica do WWW: Estratégia de acesso a uma teia (WEB) de documentos referenciados (linked) em computadores na Internet (ou Rede TCP/IP privada)

Leia mais

Visão computacional no reconhecimento de formas e objetos

Visão computacional no reconhecimento de formas e objetos Visão computacional no reconhecimento de formas e objetos Paula Rayane Mota Costa Pereira*, Josemar Rodrigues de Souza**, Resumo * Bolsista de Iniciação Científica da Faculdade de Tecnologia SENAI CIMATEC,

Leia mais

XIV SEMINÁRIO NACIONAL DE DISTRIBUIÇÃO DE ENERGIA ELÉTRICA INFORMATIZAÇÃO DAS NORMAS E PROCEDIMENTOS DE MEDIÇÃO VIA INTRANET E INTERNET

XIV SEMINÁRIO NACIONAL DE DISTRIBUIÇÃO DE ENERGIA ELÉTRICA INFORMATIZAÇÃO DAS NORMAS E PROCEDIMENTOS DE MEDIÇÃO VIA INTRANET E INTERNET XIV SEMINÁRIO NACIONAL DE DISTRIBUIÇÃO DE ENERGIA ELÉTRICA INFORMATIZAÇÃO DAS NORMAS E PROCEDIMENTOS DE MEDIÇÃO VIA INTRANET E INTERNET Autores: OROMAR CÓRDOVA GILBERTO ALVES LOBATO COPEL Companhia Paranaense

Leia mais

EMENTAS DAS DISCIPLINAS

EMENTAS DAS DISCIPLINAS EMENTAS DAS DISCIPLINAS CST SISTEMAS DE INFORMAÇÃO DISCIPLINA: Algoritmo e Programação I A disciplina aborda o estudo de algoritmos, envolvendo os conceitos fundamentais: variáveis, tipos de dados, constantes,

Leia mais

Programação WEB Introdução

Programação WEB Introdução Programação WEB Introdução Rafael Vieira Coelho IFRS Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Sul Campus Farroupilha rafael.coelho@farroupilha.ifrs.edu.br Roteiro 1) Conceitos

Leia mais

Introdução ao Desenvolvimento e Design de Websites

Introdução ao Desenvolvimento e Design de Websites Introdução ao Desenvolvimento e Design de Websites Prof.: Salustiano Rodrigues de Oliveira Email: saluorodrigues@gmail.com Site: www.profsalu.wordpress.com Introdução ao Desenvolvimento e Design de Websites

Leia mais

Interpretador AIML alimentado com tags HTML5

Interpretador AIML alimentado com tags HTML5 2º Congresso de Pesquisa Científica : Inovação, Ética e Sustentabilidade Interpretador AIML alimentado com tags HTML5 Rafael Luiz de Macedo (Ciência da Computação - UNIVEM - Marília/SP) Email: rafaelldemacedo@gmail.com

Leia mais

O que é software? Software e Engenharia de Software. O que é software? Tipos de Sistemas de Software. A Evolução do Software

O que é software? Software e Engenharia de Software. O que é software? Tipos de Sistemas de Software. A Evolução do Software O que é software? Software e Engenharia de Software Programas de computador Entidade abstrata. Ferramentas (mecanismos) pelas quais: exploramos os recursos do hardware. executamos determinadas tarefas

Leia mais

Organização e Recuperação da Informação

Organização e Recuperação da Informação GSI024 Organização e Recuperação da Informação Introdução Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/ori UFU/FACOM - 2011/1 Arquivo 1a Introdução Porque RI? Problemas da solução

Leia mais

História e Evolução da Web. Aécio Costa

História e Evolução da Web. Aécio Costa Aécio Costa A História da Web O que estamos estudando? Período em anos que a tecnologia demorou para atingir 50 milhões de usuários 3 As dez tecnologias mais promissoras 4 A evolução da Web Web 1.0- Passado

Leia mais

Introdução a Computação. A Primeira Geração. A Segunda Geração. Geração dos Computadores. Geração dos Computadores. Geração de Computadores

Introdução a Computação. A Primeira Geração. A Segunda Geração. Geração dos Computadores. Geração dos Computadores. Geração de Computadores Introdução a Computação Geração de Computadores 1ª Geração: 1950 Circuitos eletrônicos a Válvulas Operações Internas em Milissegundos Programados em Linguagem de Máquina 1 2 A Primeira Geração O UNIVAC

Leia mais

// Questões para estudo

// Questões para estudo // Questões para estudo 2 // Ferramentas Básicas de Internet e Web 2.0 1. Sobre a internet, marque a opção correta: A) A internet poder ser definida como uma rede mundial, composta por mihões e milhões

Leia mais

1 http://www.google.com

1 http://www.google.com 1 Introdução A computação em grade se caracteriza pelo uso de recursos computacionais distribuídos em várias redes. Os diversos nós contribuem com capacidade de processamento, armazenamento de dados ou

Leia mais

UNIVERSIDADE FEDERAL DE SANTA CATARINA GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA DATA MINING EM VÍDEOS

UNIVERSIDADE FEDERAL DE SANTA CATARINA GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA DATA MINING EM VÍDEOS UNIVERSIDADE FEDERAL DE SANTA CATARINA GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA DATA MINING EM VÍDEOS VINICIUS DA SILVEIRA SEGALIN FLORIANÓPOLIS OUTUBRO/2013 Sumário

Leia mais

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3 DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3 Eduardo Laguna Rubai, Tiago Piperno Bonetti Universidade Paranaense (Unipar) Paranavaí PR- Brasil eduardorubay@gmail.com, bonetti@unipar.br Resumo.

Leia mais

Núcleo de Pós Graduação Pitágoras

Núcleo de Pós Graduação Pitágoras Núcleo de Pós Graduação Pitágoras Professor: Fernando Zaidan Disciplina: Arquitetura da Informática e Automação MBA Gestão em Tecnologia 1 da Informaçao 2 Figura: Tela do IBM Mainframe Fonte: Arquivo próprio

Leia mais

Guia de Consulta Rápida HTTP. Décio Jr. Novatec Editora. www.novateceditora.com.br

Guia de Consulta Rápida HTTP. Décio Jr. Novatec Editora. www.novateceditora.com.br Guia de Consulta Rápida HTTP Décio Jr. Novatec Editora www.novateceditora.com.br Guia de Consulta Rápida HTTP de Décio Jr. Copyright 2001 da Novatec Editora Ltda. Todos os direitos reservados. É proibida

Leia mais

EMENTAS DAS DISCIPLINAS

EMENTAS DAS DISCIPLINAS EMENTAS DAS DISCIPLINAS CURSO SUPERIOR DE TECNOLOGIA EM SISTEMAS PARA INTERNET Introdução à Computação A disciplina apresenta a área da Computação como um todo, desde a história e a evolução dos computadores

Leia mais

TECNOLOGIA WEB Aula 1 Evolução da Internet Profa. Rosemary Melo

TECNOLOGIA WEB Aula 1 Evolução da Internet Profa. Rosemary Melo TECNOLOGIA WEB Aula 1 Evolução da Internet Profa. Rosemary Melo Tópicos abordados Surgimento da internet Expansão x Popularização da internet A World Wide Web e a Internet Funcionamento e personagens da

Leia mais

Laboratório de Mídias Sociais

Laboratório de Mídias Sociais Laboratório de Mídias Sociais Aula 02 Análise Textual de Mídias Sociais parte I Prof. Dalton Martins dmartins@gmail.com Gestão da Informação Universidade Federal de Goiás O que é Análise Textual? Análise

Leia mais

Desenvolvimento de Aplicações Web

Desenvolvimento de Aplicações Web Desenvolvimento de Aplicações Web André Tavares da Silva andre.silva@udesc.br Método de Avaliação Serão realizadas duas provas teóricas e dois trabalhos práticos. MF = 0,1*E + 0,2*P 1 + 0,2*T 1 + 0,2*P

Leia mais

Prof. Msc. Paulo Muniz de Ávila

Prof. Msc. Paulo Muniz de Ávila Prof. Msc. Paulo Muniz de Ávila O que é Data Mining? Mineração de dados (descoberta de conhecimento em bases de dados): Extração de informação interessante (não-trivial, implícita, previamente desconhecida

Leia mais

Fone: (19) 3234-4864 E-mail: editora@komedi.com.br Site: www.komedi.com.br HTM3.0. Tutorial HTML. versão 4.01

Fone: (19) 3234-4864 E-mail: editora@komedi.com.br Site: www.komedi.com.br HTM3.0. Tutorial HTML. versão 4.01 Fone: (19) 3234-4864 E-mail: editora@komedi.com.br Site: www.komedi.com.br HTM3.0 Tutorial HTML versão 4.01 K O M Σ D I Copyright by Editora Komedi, 2007 Dados para Catalogação Rimoli, Monica Alvarez Chaves,

Leia mais

PLATAFORMA URBANMOB Aplicativo para captura de trajetórias urbanas de objetos móveis

PLATAFORMA URBANMOB Aplicativo para captura de trajetórias urbanas de objetos móveis PLATAFORMA URBANMOB Aplicativo para captura de trajetórias urbanas de objetos móveis Gabriel Galvão da Gama 1 ; Reginaldo Rubens da Silva 2 ; Angelo Augusto Frozza 3 RESUMO Este artigo descreve um projeto

Leia mais

PRnet/2013. Linguagem de Programação Web

PRnet/2013. Linguagem de Programação Web Linguagem de Programação Web Linguagem de Programação Web Prnet/2013 Linguagem de Programação Web» Programas navegadores» Tipos de URL» Protocolos: HTTP, TCP/IP» Hipertextos (páginas WEB)» HTML, XHTML»

Leia mais

Banco de Dados Multimídia

Banco de Dados Multimídia Banco de Dados Multimídia Nomes: Ariane Bazilio Cristiano de Deus Marcos Henrique Sidinei Souza Professor Mauricio Anderson Perecim Conteúdo Banco de Dados Multimídia... 3 Conceitos... 3 Descrição... 3

Leia mais

Grupo de Banco de Dados da UFSC

Grupo de Banco de Dados da UFSC Grupo de Banco de Dados da UFSC (GBD / UFSC) Oportunidades de Pesquisa e TCCs 2010 / 2 Objetivo GBD/UFSC Pesquisa e desenvolvimento de soluções para problemas de gerenciamento de dados LISA Laboratório

Leia mais

APOSTILA BÁSICA INFORMÁTICA: 1. PROCESSADOR DE TEXTOS 1.1 Conhecendo o aplicativo Word 2007 2.EDITOR DE PLANILHAS

APOSTILA BÁSICA INFORMÁTICA: 1. PROCESSADOR DE TEXTOS 1.1 Conhecendo o aplicativo Word 2007 2.EDITOR DE PLANILHAS APOSTILA BÁSICA INFORMÁTICA: 1. PROCESSADOR DE TEXTOS 1.1 Conhecendo o aplicativo Word 2007 2.EDITOR DE PLANILHAS 3.INTERNET 3.1. Internet: recursos e pesquisas 3.2. Conhecendo a Web 3.3. O que é um navegador?

Leia mais

Princípios de Tecnologia e Sistemas de Informação (PTSI) Eduardo Ribeiro Felipe erfelipe@yahoo.com.br

Princípios de Tecnologia e Sistemas de Informação (PTSI) Eduardo Ribeiro Felipe erfelipe@yahoo.com.br Princípios de Tecnologia e Sistemas de Informação (PTSI) Eduardo Ribeiro Felipe erfelipe@yahoo.com.br Hardware Processo Informação Codificação Armazenamento Decodificação Informação Modelo computacional

Leia mais

FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO

FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO @ribeirord FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO Rafael D. Ribeiro, M.Sc,PMP. rafaeldiasribeiro@gmail.com http://www.rafaeldiasribeiro.com.br Lembrando... Aula 4 1 Lembrando... Aula 4 Sistemas de apoio

Leia mais

Estratégias de Pesquisa

Estratégias de Pesquisa Estratégias de Pesquisa Ricardo de Almeida Falbo Metodologia de Pesquisa Departamento de Informática Universidade Federal do Espírito Santo Agenda Survey Design e Criação Estudo de Caso Pesquisa Ação Experimento

Leia mais

Um Método Probabilístico para o Preenchimento Automático de Formulários Web a partir de Textos Ricos em Dados

Um Método Probabilístico para o Preenchimento Automático de Formulários Web a partir de Textos Ricos em Dados Um Método Probabilístico para o Preenchimento Automático de Formulários Web a partir de Textos Ricos em Dados Guilherme Alves Toda 1, Altigran Soares da Silva (Orientador) 1 1 Departamento de Ciência da

Leia mais

Introdução à Tecnologia Web. Tipos de Sites. Profª MSc. Elizabete Munzlinger www.elizabete.com.br

Introdução à Tecnologia Web. Tipos de Sites. Profª MSc. Elizabete Munzlinger www.elizabete.com.br IntroduçãoàTecnologiaWeb TiposdeSites ProfªMSc.ElizabeteMunzlinger www.elizabete.com.br ProfªMSc.ElizabeteMunzlinger www.elizabete.com.br TiposdeSites Índice 1 Sites... 2 2 Tipos de Sites... 2 a) Site

Leia mais

Boas Práticas em Sistemas Web muito além do HTML...

Boas Práticas em Sistemas Web muito além do HTML... Boas Práticas em Sistemas Web muito além do HTML... Adriano C. Machado Pereira (adrianoc@dcc.ufmg.br) De que Web estamos falando? De que Web estamos falando? A Web foi concebida para ser uma biblioteca

Leia mais

Sistemas Cooperativos. Professor Alan Alves Oliveira

Sistemas Cooperativos. Professor Alan Alves Oliveira Sistemas Cooperativos Professor Alan Alves Oliveira 1. Sistemas de Informação e Sistemas Cooperativos 2 Sistemas de Informação 3 Sistemas de Informação Sistemas ampamente utilizados em organizações para

Leia mais

Sistemas de Informação James A. O Brien Editora Saraiva Capítulo 5

Sistemas de Informação James A. O Brien Editora Saraiva Capítulo 5 Para entender bancos de dados, é útil ter em mente que os elementos de dados que os compõem são divididos em níveis hierárquicos. Esses elementos de dados lógicos constituem os conceitos de dados básicos

Leia mais

Aplicativos para Internet Aula 01

Aplicativos para Internet Aula 01 Aplicativos para Internet Aula 01 Arquitetura cliente/servidor Introdução ao HTML, CSS e JavaScript Prof. Erika Miranda Universidade de Mogi das Cruzes Uso da Internet http://www.ibope.com.br/pt-br/noticias/paginas/world-wide-web-ou-www-completa-22-anos-nesta-terca-feira.aspx

Leia mais

Projeto de Sites da Web

Projeto de Sites da Web Introdução Projeto de Sites da Web Mário Meireles Teixeira UFMA DEINF Hipertexto É um documento composto por um conjunto de nós contendo texto, imagens, sons e ações, a interligados entre si e formando

Leia mais

CAPÍTULO 2 ARQUITETURAS CLIENTE-SERVIDOR PARA DISSEMINAÇÃO DE DADOS GEOGRÁFICOS: UMA REVISÃO

CAPÍTULO 2 ARQUITETURAS CLIENTE-SERVIDOR PARA DISSEMINAÇÃO DE DADOS GEOGRÁFICOS: UMA REVISÃO CAPÍTULO 2 ARQUITETURAS CLIENTE-SERVIDOR PARA DISSEMINAÇÃO DE DADOS GEOGRÁFICOS: UMA REVISÃO Existem várias maneiras com as quais dados geográficos podem ser distribuídos pela Internet, todas fundamentadas

Leia mais

USCS. Universidade Municipal de São Caetano do Sul. Pró-Reitoria de Pesquisa e Pós-Graduação Programa de Mestrado em Comunicação

USCS. Universidade Municipal de São Caetano do Sul. Pró-Reitoria de Pesquisa e Pós-Graduação Programa de Mestrado em Comunicação USCS Universidade Municipal de São Caetano do Sul Pró-Reitoria de Pesquisa e Pós-Graduação Programa de Mestrado em Comunicação Sub-Projeto de Pesquisa Evolução na Comunicação: estudos em sites da Internet

Leia mais

Pós-Graduação em Engenharia Elétrica Inteligência Artificial

Pós-Graduação em Engenharia Elétrica Inteligência Artificial Pós-Graduação em Engenharia Elétrica Inteligência Artificial João Marques Salomão Rodrigo Varejão Andreão Inteligência Artificial Definição (Fonte: AAAI ): "the scientific understanding of the mechanisms

Leia mais

Implementar servidores de Web/FTP e DFS. Disciplina: Serviços de Redes Microsoft Professor: Fernando Santorsula fernando.santorsula@esamc.

Implementar servidores de Web/FTP e DFS. Disciplina: Serviços de Redes Microsoft Professor: Fernando Santorsula fernando.santorsula@esamc. Implementar servidores de Web/FTP e DFS Disciplina: Serviços de Redes Microsoft Professor: Fernando Santorsula fernando.santorsula@esamc.br Conteúdo programático Introdução ao protocolo HTTP Serviço web

Leia mais

PESQUISA DE INFORMAÇÕES TÉCNICAS E CIENTÍFICAS NA INTERNET. OLIVEIRA, Simone Lucas Gonçalves de

PESQUISA DE INFORMAÇÕES TÉCNICAS E CIENTÍFICAS NA INTERNET. OLIVEIRA, Simone Lucas Gonçalves de PESQUISA DE INFORMAÇÕES TÉCNICAS E CIENTÍFICAS NA INTERNET OLIVEIRA, Simone Lucas Gonçalves de SUMÁRIO ÍNDICE DE ILUSTRAÇÕES... 3 1. INTRODUÇÃO... 4 2. CONCEITOS SOBRE A INTERNET... 4 3. ESTRATÉGIAS DE

Leia mais

Metas de um Sistema Distribuído

Metas de um Sistema Distribuído Metas de um Sistema Distribuído Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do

Leia mais

Mineração de Opinião / Análise de Sentimentos

Mineração de Opinião / Análise de Sentimentos Mineração de Opinião / Análise de Sentimentos Carlos Augusto S. Rodrigues Leonardo Lino Vieira Leonardo Malagoli Níkolas Timmermann Introdução É evidente o crescimento da quantidade de informação disponível

Leia mais

ONTOLOGIA DE DOMÍNIO PARA ANÁLISE DE BLOGS

ONTOLOGIA DE DOMÍNIO PARA ANÁLISE DE BLOGS Centro Universitário Feevale ONTOLOGIA DE DOMÍNIO PARA ANÁLISE DE BLOGS Fernando Mertins Prof. Orientador: Rodrigo Rafael Villarreal Goulart Dezembro de 2007 Roteiro da Apresentação Introdução Objetivos

Leia mais

Definição de Padrões. Padrões Arquiteturais. Padrões Arquiteturais. Arquiteturas de Referência. Da arquitetura a implementação. Elementos de um Padrão

Definição de Padrões. Padrões Arquiteturais. Padrões Arquiteturais. Arquiteturas de Referência. Da arquitetura a implementação. Elementos de um Padrão DCC / ICEx / UFMG Definição de Padrões Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Um padrão é uma descrição do problema e a essência da sua solução Documenta boas soluções para problemas recorrentes

Leia mais

Descoberta de Domínio Conceitual de Páginas Web

Descoberta de Domínio Conceitual de Páginas Web paper:25 Descoberta de Domínio Conceitual de Páginas Web Aluno: Gleidson Antônio Cardoso da Silva gleidson.silva@posgrad.ufsc.br Orientadora: Carina Friedrich Dorneles dorneles@inf.ufsc.br Nível: Mestrado

Leia mais

CAPITULO 4 A ARQUITETURA LÓGICA PARA O AMBIENTE

CAPITULO 4 A ARQUITETURA LÓGICA PARA O AMBIENTE CAPITULO 4 A ARQUITETURA LÓGICA PARA O AMBIENTE A proposta para o ambiente apresentada neste trabalho é baseada no conjunto de requisitos levantados no capítulo anterior. Este levantamento, sugere uma

Leia mais

Aula 1: Introdução à Disciplina Fonte: Plano de Aula Oficial da Disciplina

Aula 1: Introdução à Disciplina Fonte: Plano de Aula Oficial da Disciplina Programação para Internet Rica 1 Aula 1: Introdução à Disciplina Fonte: Plano de Aula Oficial da Disciplina Objetivo: Identificar os princípios que se destacam como características da Web 2.0. INTRODUÇÃO

Leia mais

Engenharia de Software

Engenharia de Software CENTRO UNIVERSITÁRIO NOVE DE JULHO Profº. Edson T. França edson.franca@uninove.br Software Sistemas Conjunto de elementos, entre os quais haja alguma relação Disposição das partes ou dos elementos de um

Leia mais

SERVIÇO PÚBLICO FEDERAL UNIVERSIDADE FEDERAL DE PERNAMBUCO CENTRO DE INFORMÁTICA DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO

SERVIÇO PÚBLICO FEDERAL UNIVERSIDADE FEDERAL DE PERNAMBUCO CENTRO DE INFORMÁTICA DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO SERVIÇO PÚBLICO FEDERAL UNIVERSIDADE FEDERAL DE PERNAMBUCO CENTRO DE INFORMÁTICA DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO CONCURSO PÚBLICO PARA DOCENTES DO MAGISTÉRIO SUPERIOR Edital nº 1, de 1 de março de

Leia mais

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 6 - ALGORÍTIMOS PARALELOS MPI - Parallel Virtual Machine e PVM - Parallel Virtual Machine 1. INTRODUÇÃO Inicialmente é necessário conceber alguns conceitos para entendimento dos algoritmos paralelos:

Leia mais

Um estudo sobre o uso de agentes de internet em buscas (Junho 2010)

Um estudo sobre o uso de agentes de internet em buscas (Junho 2010) IA009 INTRODUÇÃO À TEORIA DE AGENTES 1 Um estudo sobre o uso de agentes de internet em buscas (Junho 2010) Alexandre Fatayer Canova, RA 107214, UNICAMP Agentes de internet são parte integrante da web na

Leia mais

4 Conversor EDTV Raw. 4.1 Arquitetura

4 Conversor EDTV Raw. 4.1 Arquitetura 4 Conversor EDTV Raw O conversor EDTV Raw é o programa que lê um documento escrito no perfil NCL EDTV e gera um documento Raw equivalente, i.e. que define a mesma apresentação. Este capítulo, apresenta

Leia mais

Tecnologia para Sistemas Inteligentes Apontamentos para as aulas sobre. Introdução à Representação e Processamento de Ontologias: Framework O3f

Tecnologia para Sistemas Inteligentes Apontamentos para as aulas sobre. Introdução à Representação e Processamento de Ontologias: Framework O3f Tecnologia para Sistemas Inteligentes Apontamentos para as aulas sobre Introdução à Representação e Processamento de Ontologias: Framework O3f Luís Miguel Botelho Departamento de Ciências e Tecnologias

Leia mais

ENCARTE. www.educarede.org.br. Internet na escola. Caderno do capacitador

ENCARTE. www.educarede.org.br. Internet na escola. Caderno do capacitador DVD Vídeo-Aula Internet na escola ENCARTE www.educarede.org.br Internet na escola Caderno do capacitador Internet na escola 3 Pesquisar Acessar o conhecimento é condição para compreendermos a sociedade

Leia mais

Modelagem e Simulação

Modelagem e Simulação AULA 11 EPR-201 Modelagem e Simulação Modelagem Processo de construção de um modelo; Capacitar o pesquisador para prever o efeito de mudanças no sistema; Deve ser próximo da realidade; Não deve ser complexo.

Leia mais

O que são sistemas supervisórios?

O que são sistemas supervisórios? O que são sistemas supervisórios? Ana Paula Gonçalves da Silva, Marcelo Salvador ana-paula@elipse.com.br, marcelo@elipse.com.br RT 025.04 Criado: 10/09/2004 Atualizado: 20/12/2005 Palavras-chave: sistemas

Leia mais

MÓDULO MULTIMÉDIA PROFESSOR: RICARDO RODRIGUES. MAIL: rprodrigues@escs.ipl.pt esganarel@gmail.com. URL: http://esganarel.home.sapo.

MÓDULO MULTIMÉDIA PROFESSOR: RICARDO RODRIGUES. MAIL: rprodrigues@escs.ipl.pt esganarel@gmail.com. URL: http://esganarel.home.sapo. MÓDULO MULTIMÉDIA PROFESSOR: RICARDO RODRIGUES MAIL: rprodrigues@escs.ipl.pt esganarel@gmail.com URL: http://esganarel.home.sapo.pt GABINETE: 1G1 - A HORA DE ATENDIMENTO: SEG. E QUA. DAS 11H / 12H30 (MARCAÇÃO

Leia mais

INTERNET CONCEITOS. Internet é a "grande rede mundial de computadores"

INTERNET CONCEITOS. Internet é a grande rede mundial de computadores INTERNET CONCEITOS O que é Internet Estamos acostumados a ouvir que Internet é a "grande rede mundial de computadores" Entretanto, essa definição não é muito simplista. Na realidade, Ela é uma coleção

Leia mais

milenaresende@fimes.edu.br

milenaresende@fimes.edu.br Fundação Integrada Municipal de Ensino Superior Sistemas de Informação A Internet, Intranets e Extranets milenaresende@fimes.edu.br Uso e funcionamento da Internet Os dados da pesquisa de TIC reforçam

Leia mais

EMENTAS DO CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

EMENTAS DO CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS EMENTAS DO CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS INTRODUÇÃO À COMPUTAÇÃO 60 h 1º Evolução histórica dos computadores. Aspectos de hardware: conceitos básicos de CPU, memórias,

Leia mais

Ementário das Disciplinas

Ementário das Disciplinas Ementário das Disciplinas As ementas das disciplinas estão agrupadas em semestres para uma melhor visualização da organização da matriz curricular. As referências bibliográficas serão especificadas no

Leia mais

INTERNET -- NAVEGAÇÃO

INTERNET -- NAVEGAÇÃO Página 1 INTRODUÇÃO Parte 1 O que é a Internet? A Internet é uma rede mundial de computadores, englobando redes menores distribuídas por vários países, estados e cidades. Ao contrário do que muitos pensam,

Leia mais

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia. 1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade

Leia mais

Introdução 17. 1 Introdução

Introdução 17. 1 Introdução Introdução 17 1 Introdução O volume de informações que gerenciamos tem crescido a cada dia. Realizamos milhões de pesquisas na Web, postamos mensagens em blogs, enviamos mensagens de correio eletrônico,

Leia mais

Classes Funcionais 21

Classes Funcionais 21 Classes Funcionais 21 3 Classes Funcionais Em todo trabalho de classificação funcional é necessário determinar quais serão as classes funcionais utilizadas. Esta divisão não se propõe a ser extensiva,

Leia mais

Linguagens Formais e Autômatos

Linguagens Formais e Autômatos Linguagens Formais e Autômatos SLIDE 1 Professor Júlio Cesar da Silva juliocesar@eloquium.com.br site: http://eloquium.com.br/ twitter: @profjuliocsilva facebook: https://www.facebook.com/paginaeloquium

Leia mais

Planejamento Estratégico de TI. Prof.: Fernando Ascani

Planejamento Estratégico de TI. Prof.: Fernando Ascani Planejamento Estratégico de TI Prof.: Fernando Ascani Data Warehouse - Conceitos Hoje em dia uma organização precisa utilizar toda informação disponível para criar e manter vantagem competitiva. Sai na

Leia mais

Introdução à Informática

Introdução à Informática Introdução à Informática Aula 23 http://www.ic.uff.br/~bianca/introinfo/ Aula 23-07/12/2007 1 Histórico da Internet Início dos anos 60 Um professor do MIT (J.C.R. Licklider) propõe a idéia de uma Rede

Leia mais

SISTEMAS INTELIGENTES DE APOIO À DECISÃO

SISTEMAS INTELIGENTES DE APOIO À DECISÃO SISTEMAS INTELIGENTES DE APOIO À DECISÃO As organizações estão ampliando significativamente suas tentativas para auxiliar a inteligência e a produtividade de seus trabalhadores do conhecimento com ferramentas

Leia mais

2 Conceitos Gerais de Classificação de Documentos na Web

2 Conceitos Gerais de Classificação de Documentos na Web Conceitos Gerais de Classificação de Documentos na Web 13 2 Conceitos Gerais de Classificação de Documentos na Web 2.1. Páginas, Sites e Outras Terminologias É importante distinguir uma página de um site.

Leia mais