A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Corpus lingüísticos: proceso de elaboración e extracción automática de información María Paula Santalla del Río Pablo Gamallo Otero Elaboración do material.

Apresentações semelhantes


Apresentação em tema: "Corpus lingüísticos: proceso de elaboración e extracción automática de información María Paula Santalla del Río Pablo Gamallo Otero Elaboración do material."— Transcrição da apresentação:

1 Corpus lingüísticos: proceso de elaboración e extracción automática de información María Paula Santalla del Río Pablo Gamallo Otero Elaboración do material informático (CD LIVE): Susana Sotelo Docío

2 Extracção automática de informação a partir de corpus Pablo Gamallo Otero http://gramatica.usc.es/~gamallo/

3 Bibliografia Levi Lúcio, Vasco Amaral (2001), Programação em PERL, FCA-Editora de Informática. Hammond, Michael (2003), Programming for linguistics: Perl for language researchers, Blackwell Publishing. Tanguy, Ludovic (2007), Perl pour les linguistes, Hermès - Lavoisier. http://perl.linguistes.free.fr/. Tony Berber Sardinha (2004), Lingüística de Corpus, Editora Manole, Brasil. M. Baroni (To appear), “Distributions in text”. In Anke Lüdeling and Merja Kytö (eds.), Corpus linguistics: An international handbook, Berlin: Mouton de Gruyter. pode-se descarregar em: http://gramatica.usc.es/~gamallo/aulas/lingcomputacional/biblio/Baroni_distributions.pdf TUTORIAIS ON LINE (em espanhol): http://www.geocities.com/SiliconValley/Station/8266/perl/index.html http://kataix.umag.cl/~mmarin/topinf/perl.html

4 PLANO DO CURSO  Noções básicas  corpus e extracção  extracção de frequências de palavras (tokens e formas)‏  lei de zipf  concordâncias  Iniciação à programação em PERL  ler o texto dum ficheiro  processar o texto lido  escrever os resultados do processamento

5 Vamos programar um pouco A linguagem PERL PERL = Practical Extraction and Report Language. Primeira versão em 1987, Larry Wall.

6 Objectivos ler o texto dum ficheiro (ou da consola) linha a linha. processar o texto lido: ­ tokenizer (quebrar o texto em palavras). ­ contagem de frequências: ocorrências de palavras, de formas, de lemas, etc. escrever num ficheiro (ou da consola) os resultados.

7 Estrutura do Programa “nome.perl” O script escreve na consola: “Cómo te chamas?” O script lê o nome escrito polo usuário O script escreve na consola o nome que foi lido.

8 Como tornar executável o script “nome.perl” ? chmod +x nome.perl Atribuimos ao ficheiro “nome.perl” a propriedade: ser executável

9 Estrutura do Programa “nome.perl” print escreve texto (na consola, num ficheiro...)‏ lê um conjunto de caracteres introduzidos através da consola (por exemplo, através do teclado). $x= lê um conjunto de caracteres introzidos através do teminal e os coloca na variável $x. chop $x corta o carácter de nova linha (\n) que se encontra no valor de $x.

10 Que é um programa (ou script)? Um programa é um conjunto de instruções (print, assignação, leitura,...)‏ As instruções simples sempre acabam com o símbolo ‘;’ (ponto e vírgula)‏ Quando executamos o programa, as instruções são executadas sequencialmente.

11 Tipos de entidades dum programa escalares: números, cadeias de caracteres instruções: simples: print, =, chop... complexas: if, while... listas tabelas (hashes)‏ Descritores Input/Output: STDIN, STDOUT, arquivos de entrada, arq. de saída...

12 Tipos de variáveis escalares: $var listas: @var tabelas: %var

13 Estrutura do tokenizer Lê linha a linha o texto de entrada. Escreve noutro ficheiro (ou na consola) as palavras do texto de entrada. Cada palavra aparece numa linha.

14 Como executar o tokenizer? cat arquivo_entrada.txt |./tokenizer.perl cat arquivo_entrada.txt |./tokenizer.perl > arquivo_saída.txt

15 Instruções do tokenizer while ($linha = ) { instrução1; instrução2;... } Lê uma a uma as linhas do ficheiro, e cada linha é colocada na variável $linha. Após a leitura de uma linha, executa-se o bloco de instruções (entre chaves). Isto é repetido até chegar á última linha do ficheiro

16 Instruções do tokenizer @pals = split (“ ”, $linha); Divide-se a cadeia $linha cada vez que aparece um espaço em branco. As sucessivas divisões são colocadas na lista @pals. foreach $pal (@pals) { instrução1; instrução2... } Uma vez tomado um elemento da lista @pals e colocado na variável $pal, executam-se as instruções do bloco. Isto é repetido com todos os elementos da lista.

17 Instruções iterativas foreach $var @lista { bloco } O bloco de instruções será executado um número de vezes correspondente ao número de elementos na lista, sendo que para cada iteração uma variável conterá o valor do elemento da lista. while (expressão) { bloco } O bloco será executado até que a expressão se torne falsa: while ($cont < 5) { print “$cont \n”; $cont++; }

18 a instrução IF if (expressão) { bloco do if } else { bloco do else } Se a expressão é verdade, executam-se as instruções contidas no bloco do if. Caso contrário, executa-se o bloco de instruções do else. Expressões falsas: 1 > 2 ; 0 ; “”, 1-1 Expressões verdadeiras: 1 < 2 ; os números excepto o 0; as strings excepto “”

19 Pattern-Matching if ($line =~ m/Maria/) { print $line; } Se a subcadeia “Maria” se encontra dentro da cadeia $line, então afichamos a cadeia $line. $line =~ s/\,/ \,/; Se aparece o caracter “,” na cadeia $line, então substituimos esse caracter pelos dois caracteres “,” (i.e. introduzimos um espaço antes da vírgula).

20 Estrutura de “contagem.perl” Lê linha a linha o ficheiro tokenizado : Escreve num ficheiro (ou na consola) os resultados das contagens. Realiza as contagens: - conta as ocurrências de cada token (palavras e marcas), - conta o número total de ocorrências de palavras, - conta as ocurrências da cadeia “relac”, - conta o número total de formas de palavras.

21 Instruções de contagem.perl while ($token = ) { $contar{$token}++; } Lê-se linha a linha o arquivo e construe-se uma tabela: %contar. Cada elemento duma tabela é uma estrutura “chave -> valor”. Cada chave da tabela é um token. O valor para cada chave é o número de vezes que o token é lido: $contar{“livro”} = 2 $contar{“Maria”} = 3 $contar{“,”} = 8

22 Listas e Tabelas @notas = (“pedro”, 5, “maria”, 8)‏ $notas[0] = “pedro” $notas[1] = 5 $notas[2] = “maria” $notas[3] = 8 %notas = (“pedro” => 5, “maria” => 8)‏ $notas{“pedro”} = 5 $notas{“maria”} = 8

23 Instruções de contagem.perl foreach $tokenDiff (keys %contar) { $contarTokensDiff++; print "$tokenDiff\t$contar{$tokenDiff}\n" } Iteração: Percorremos a lista de chaves (keys) do hash %contar. Cada elemento é colocado na variável $tokenDiff. Bloco de Instrucções: - contamos os tokens diferentes (formas de palavras) - escrevemos o token (chave de %contar) e a frequência do token (valor de %contar)‏


Carregar ppt "Corpus lingüísticos: proceso de elaboración e extracción automática de información María Paula Santalla del Río Pablo Gamallo Otero Elaboración do material."

Apresentações semelhantes


Anúncios Google