Gestão e Tratamento de Informação 1º semestre



Documentos relacionados
Gestão e Tratamento de Informação 1º semestre

Gestão e Tratamento de Informação

Gestão e Tratamento de Informação 1º semestre

Gestão e Tratamento de Informação 1º semestre

Gestão e Tratamento de Informação 1º semestre

Um Exemplo de Refatoração. Prof. Alberto Costa Neto DComp/UFS

JSP - ORIENTADO A OBJETOS

Módulo 02 Programação Orientada a Objetos. Última atualização: 07/06/2010

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre

A ) O cliente terá que implementar uma interface remota. . Definir a interface remota com os métodos que poderão ser acedidos remotamente

Algoritmos e Estruturas de Dados I

GERÊNCIA DE DADOS SEMI ESTRUTURADOS - XQUERY. Prof. Angelo Augusto Frozza

Introdução e motivação SGBD XML Nativo Consultas em SGBDs XML Prática. Bancos de dados XML. Conceitos e linguagens de consulta

Unidade Acadêmica: Faculdade de Computação FACOM Disciplina: Programação Orientada a Objetos I Professor: Fabiano Azevedo Dorça Prática 01

O objetivo da aula é realizar upload de arquivos com aplicação web. Será realizado o upload de duas formas:

Estruturas de entrada e saída

Prof. Jhonatan Fernando

Consulta de endereço através do Cep

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação

Ajax não é dependente dos servidores Web, e como tal poderá ser usado com PHP, JSP, ASP e ASP.NET.

Faculdade de Ciências Universidade Agostinho Neto Departamento de Matemática e Engenharia Geográfica Ciências da Computação

A Linguagem Java. Alberto Costa Neto DComp - UFS

REGRAS DE CODIFICAÇÃO PARA O SMARTSHARE

Interpretação e Compilação de Linguagens de Programação Sintaxe e Semântica

UNIDADE III JAVA SERVER PAGES

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões

Web Marketing. Introdução. Números dos sites de busca. A Web é o maior depósito de informações do mundo:

Olimpíadas de Informática

Fundamentos da Plataforma Java EE. Prof. Fellipe Aleixo

Projecto Integrador. Introdução ao REST. Material de suporte às aulas de Proj. Integrador (Nuno Preguiça) Copyright DI FCT/ UNL / 1

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans Introdução à Linguagem de Programação JAVA

Orientação a Objetos com Java

Arquivos de Textos no C - Básico

Engenharia de Software e Sistemas Distribuídos. Enunciado Geral do Projecto

Introdução ao PHP. Prof. Késsia Marchi

Roteiro 1: Dados, variáveis, operadores e precedência

BC0505 Processamento da Informação

15 a Aula Subprogramação /Subalgoritmos Função e Procedimento

Introdução a Computação

insfcanceof new public switch transient while byte continue extends for int null

Bases de dados semi-estruturadas, XML

Java Server Pages. O código HTML pode indicar o método de arranque do servlet gerado por um JSP : doget ou dopost.

Sistemas Empresariais Integrados

Tutorial. Começando a Criar Aplicativos SMS

Sintaxe Básica de Java Parte 1

Guia de Fatores de Qualidade de OO e Java

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

Tipos de Dados Simples

Gestão e Tratamento de Informação 1º semestre

Noções sobre Objetos e Classes

Como o FIT funciona. FIT: Framework for Integrated Tests FIT. Dados de testes. Programa. Fixtures. classes. Resultados de testes

Objetos Distribuídos - Programação Distribuída Orientado a Objetos. Luiz Affonso Guedes

Criando & Consumindo um WebService com ASP.NET 2.0 Publicado em: 25 de Agosto de 2007 Por Herman Ferdinando Arais

Capítulo 4. Packages e interfaces

3 Classes e instanciação de objectos (em Java)

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

Objetivos: Sun recomenda que utilize o nome de domínio da Internet da empresa, para garantir um nome de pacote único

Técnicas de Programação II

O que é o JavaScript?

Acesso a Banco. Conexão em Java. Conexão em Java. Programação Orientada a Objetos Profa. Cristiane e Prof. Daniel

Algoritmia e Programação APROG. Linguagem JAVA. Básico. Nelson Freire (ISEP DEI-APROG 2012/13) 1/31

Analisar os sistemas operacionais apresentados na figura e responder as questões abaixo: Identificar

Web Services em Java. Web Services JAX-WS. NetBeans 5.5. Criação de WS no NetBeans 5.5. Criação de WS no NetBeans 5.5

Aula 1 Tipo Abstrato de Dados

MC102 Algoritmos e programação de computadores Aula 3: Variáveis

UNIVERSIDADE FEDERAL DO PARANÁ

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

INSTITUTO SUPERIOR TÉCNICO Gestão e Tratamento de Informação

Computação II Orientação a Objetos

Informática I. Aula 6. Aula 6-12/09/2007 1

Web Services. Autor: Rômulo Rosa Furtado

Projeto de Software Orientado a Objeto

Projecto Integrador. Introdução ao REST. Material de suporte às aulas de Proj. Integrador (Nuno Preguiça) Copyright DI FCT/ UNL / 1

Manual do Desenvolvedor Criptografia de Arquivos do WebTA

INTRODUÇÃO 12. DOCUMENTAÇÃO INTRODUÇÃO INTRODUÇÃO

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação

PROGRAMA DE DISCIPLINA

Fundamentos de Programação. Turma CI-240-EST. Josiney de Souza.

Engenharia de Software

Desenvolvimento para Android Prá3ca 3. Prof. Markus Endler

Trabalho Prático Nº4 Porta Série

INF 1005 Programação I

Computação Orientada aos Serviços. WF (parte 1) Semestre de Inverno 12/13

Programação. Folha Prática 3. Lab. 3. Departamento de Informática Universidade da Beira Interior Portugal Copyright 2010 All rights reserved.

DEFINIÇÃO DE MÉTODOS

A Introdução à Programação Orientada a Objetos. Programação e Sistemas de Informação

Meta Programming. Nelson Ferraz

TUTORIAL JAVA AS - HTTP CLIENT COMPOSITION ENVIROMENT 7.1

Linguagem de Programação I. Orientação a Objetos em Java

Programação Orientada por Objetos

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

UNIVERSIDADE FEDERAL DO PARANÁ

Ferramentas Web, Web 2.0 e Software Livre em EVT

Engenharia de Software e Sistemas Distribuídos. Enunciado Geral do Projecto

Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans.

Mostraremos neste artigo um exemplo de como realizar o cadastro de uma Issue em um projeto existente no portal Java.net.

Introdução à orientação a objetos. João Tito Almeida Vianna 25/05/2013

Transcrição:

DepartamentodeEngenhariaInformática 2010/2011 GestãoeTratamentodeInformação1ºsemestre Laboratório6 Exercícios Nesta aula de laboratório iremos resolver exercícios relacionados com extracção de informaçãoeprocessamentodedocumentostextuais. Tenha em atenção que o software usado nas aulas de laboratório oferece, como complementoàsfunçõesdabibliotecaxpath2.0,funçõesdeextensãorelacionadascomo processamentodeelementostextuais.estasfunçõesforamdesenvolvidascomrecursoao LingPipe, uma biblioteca de funções Java para processamento de texto. Para mais informaçõessobreolingpipedeveráserconsultadoositehttp://alias i.com/lingpipe/. Entreasfunçõesdeextensãodisponíveisencontram seasseguintes: Funçãogti:textdoc(),queaceitacomoparâmetroumURIparaumdocumentoe retornaacadeiadecaracterescorrespondenteaoseuconteúdotextual. Funçãogti:lang(),queaceitacomoparâmetroumacadeiadecaractereseclassifica amesmadeacordocomalíngua,devolvendoocódigodeduasletrascorrespondente. Funçãogti:regexchunk(),queaceitacomoparâmetrosumacadeiadecaracteres e uma expressão regular, retornando todas as entidades mencionadas na cadeia de caracteresquecorrespondemàexpressãoregularfornecida. Função gti:dictionarychunk(), que aceita como parâmetros uma cadeia de caractereseumdicionário(i.e.,umalistadesequênciasdecadeiasdecaracterescomas entidades que se pretendem extrair), retornando todas as entidades mencionadas na cadeiadecaracteresqueseencontramlistadasnodicionário. Funçãogti:mlchunk(),queaceitacomoparâmetrosumacadeiadecaractereseum documento XML com os exemplos de treino. Esta função utiliza um algoritmo de aprendizagemautomáticabaseadoemmodelosdemarkov(hmms)parareconheceras entidadesmencionadasnacadeiadecaracteres,combasenosexemplosfornecidos. Função gti:classify(), que aceita como parâmetros uma lista de cadeias de caracteres correspondendo aos documentos a classificar, uma lista de cadeias de caracteres correspondendo aos documentos pré classificados a usar como dados de treino,eumalistadecadeiasdecaracterescorrespondendoàsclassesdecadaumdos documentos de treino. Esta função utiliza o algoritmo de aprendizagem automática NaiveBayesparaconstruirummodelodeclassificaçãocombasenosdadosdetreino. A Figura 1 exemplifica a utilização destas funções, mostrando como se podem extrair entidades(e.g.,endereçosdeemailounomespróprios)queseencontremmencionadas numacadeiadecaracteres,usandodicionárioseexpressõesregulares. IST/DEI Pág.1de5

GestãoeTratamentodeInformação declare namespace gti = "java:gti"; let $text := 'O Manuel, casado com a Maria, tem o endereço manuel@mail.pt' let $lang := gti:lang($text) let $dict := ('Manuel','Maria' ) let $rexp := '[^ ]+@[^ ]+' for $i in ( gti:regexchunk($text,$rexp), gti:dictionarychunk($text,$dict) ) return <entidade lang="{$lang}">{$i}</entidade> Figura1 Exemplodautilizaçãodefunçõesdeextensãorelacionadascomextracçãodeinformação. Exercício1 ApresenteumprogramaXQueryquefaçaoreconhecimentodetodososnomesdefilmes que se encontram mencionados na página Web com URL http://www1.unihamburg.de/clpic/tematicos/cinema/panorama.html. Oreconhecimentodeveráserfeitocombasenumdicionário.Paraconstruirodicionário, deverá extrair todos os filmes que se encontram listados da página Web com URL http://pt.wikipedia.org/wiki/anexo:lista_de_filmes_portugueses. Exercício2 No URL http://gibson.tagus.ist.utl.pt/~bmartins/train locais.xml encontra se um documento XML contendo frases de textos noticiosos onde os nomes de locais mencionadosnotextoseencontramexplicitamenteanotados. Em contrapartida, no URL http://gibson.tagus.ist.utl.pt/~bmartins/teste locais raw.xml, encontra seumdocumentoxmlcontendotextosnoticiososondenãoexistemanotações paraoslocaismencionados. 2.1 Escreva um programa XQuery que, através do uso da função de extensão java:gti.mlchunk(), permita extrair do documento teste locais raw.xml todos os nomesdelocaisqueseencontrammencionadosnostextos.comodadosdetreino,utilize o documento train locais.xml, o qual contem um conjunto de frases com os nomes de locaisanotados. 2.2 Escreva um programa XQuery que, através do uso da função de extensão java:gti.dictionarychunk(), permita extrair do documento teste locaisraw.xml, todos os nomes de locais que se encontram mencionados no texto. Como dicionário para a extracção, utilize os nomes de locais que se encontram anotados no textododocumentoteste locais raw.xml. IST/DEI Pág.2de5

GestãoeTratamentodeInformação Exercício3 A página Web da Wikipedia na língua Inglesa que se encontra disponível no URL http://en.wikipedia.org/wiki/list_of_painters_by_name apresenta uma lista com os nomesdospintoresmaisinfluentesaolongodahistória. 3.1 Escreva uma XQuery para extrair da página Web indicada acima os nomes de pintoresquenelasãomencionados. 3.2 EscrevaumaXQueryque,usandocomodicionárioosresultadosdaalíneaanterior, permita extrair do documento sobre o movimento Fauvismo, que se encontra no URL http://www.ibiblio.org/wm/paint/tl/20th/fauvism.html, todos os nomes de pintores que seencontrammencionadosnotexto. Exercício4 No URL https://dspace.ist.utl.pt/bitstream/2295/374583/1/7sectors.zip encontra se uma colecçãodeficheiroshtmlrepresentativadedocumentossobreprodutoseorganizações deseteáreasdeactividadediferentes(i.e.,materiais,energia,finanças,saúde,tecnologia, transportes e utilitários diversos). A colecção encontra se ainda subdividida em dois grupos,denominadososgruposdetesteedetreino. 4.1 EscrevaumaXQueryque,utilizandoosdocumentosdacolecçãodetreino,aprenda um modelo classificação capaz de atribuir documentos HTML previamente não classificadosaumadasseteclassesconsideradas(i.e.,asáreasdeactividade). 4.2 Escreva uma XQuery que, utilizando o modelo de classificação da pergunta 4.1, atribua uma classe a cada um dos documentos do conjunto de teste. Deverá produzir comoresultadoumdocumentoxmlcomoformatoilustradonafigura2. <docs> <doc> <titulo>national-oilwell Downloads</titulo> <ficheiro>7sectors-test/energy/1.html</ficheiro> <classe>energy</classe> </doc> </docs> Figura2 DocumentoXMLcominformaçãosobredocumentosHTMLeáreasdeactividade. 4.3 Escreva uma XQuery que permita estimar a precisão e a cobertura (i.e., medir PrecisioneRecall)domodelodeclassificaçãodesenvolvidonapergunta4.1. IST/DEI Pág.3de5

GestãoeTratamentodeInformação Exercício5 A função de extensão java:gti.dictionarychunk(), descrita nas aulas de laboratório e construída com base nas funcionalidades disponibilizadas pela API do LingPipe,correspondeaométodoJavacujocódigoseapresentanaFigura3. public static String[] dictionarychunk(string text, String ent) throws Exception { MapDictionary<String> dictionary = new MapDictionary<String>(); for (int i=0; i<ent.length; i++) dictionary.addentry(new DictionaryEntry<String>(ent[i], chunk,1.0)); ExactDictionaryChunker dictionarychunkertt = new ExactDictionaryChunker(dictionary, IndoEuropeanTokenizerFactory.INSTANCE, true, true); Chunking chunking = dictionarychunkertt.chunk(text); List<String> results = new ArrayList<String>(); for (Chunk chunk : chunking.chunkset()) { int start = chunk.start(); int end = chunk.end(); String type = chunk.type(); double score = chunk.score(); String txt = text.substring(start,end); results.add(txt); } return results.toarray(new String[0]); } Figura3 MétodoJavacorrespondenteàfunçãojava:gti.dictionarychunk(). Crieumanovafunçãodeextensão,denominadaapproxdictionarychunk(),queemlugarde fazer o emparelhamento directo com todas as entidades mencionadas no dicionário, permitareconhecertodasasentidadesmencionadasquetenhamumadistânciadeedição inferiora 2 emrelaçãoàsentidadesmencionadasnodicionário.ocódigojavadafunção deveráserapresentadocomoresoluçãodesteexercício. Sugestão:Deveconsultaradocumentação(i.e.,ostutoriaiseadocumentaçãoJavadoc)da API LingPipe, que se encontra disponível através do site http://alias i.com/lingpipe/. Em particular, deverá ser analisada em detalhe a documentação disponível para a classe com.aliasi.chunk.approxdictionarychunker. Exercício6 Problemateórico Considereasduasárvoresapresentadasdeseguida: A A B C G B C H D E F G D E F IST/DEI Pág.4de5

GestãoeTratamentodeInformação 6.1 UsandooalgoritmoSimpleTreeMatching,introduzidonasaulasteóricas,calculea similaridadeentreasárvores.deveráapresentartodosospassosenvolvidosnocálculo. 6.2 Indiqueumpossívelalinhamentodosnósdasárvores. Exercício7 Problemateórico Considere o seguinte Hidden Markov Model, M=(A,B,p), desenhado para identificar ocorrênciasdenomesdelocaissobredocumentosdetexto. A Probabilidadedetransiçãoentreestados Prefixo Local Sufixo Outras Prefixo 0,1 0,75 0 0,15 Local 0,05 0,35 0,30 0,30 Sufixo 0 0,02 0,44 0,54 Outras 0,25 0,10 0,22 0,43 B Probabilidade,paracadaestado,degeraçãodesímbolos(i.e.,palavras) Prefixo Local Sufixo Outras A 0,10 0 0,10 0,10 Azeitão 0 0,40 0,02 0,01 De 0,20 0 0,10 0,02 Em 0,40 0,01 0,10 0,04 Maria 0 0,20 0,01 0,03 Nasceu 0,10 0,02 0,10 0,20 Perto 0,10 0 0,10 0,07 Setúbal 0 0,35 0,01 0,03 <outras> 0,01 0,02 0,16 0,45 <pontuação> 0,09 0 0,30 0,05 P Probabilidadeinicialdosestados Prefixo Local Sufixo Outras 0,35 0,30 0,05 0,30 7.1 Desenheumarepresentaçãográficadamáquinadeestadoscorrespondente. 7.2 Calculeasequênciadeestadosmaisprováveldetergeradoafrase: AMarianasceu emazeitão,pertodesetúbal..apresenteoscálculosefectuadosemcadapasso. 7.3 Sugiraumamodificaçãoaomodeloquepudessemelhoraroseudesempenho. IST/DEI Pág.5de5