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

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

Usando Perl para a extracção automática de informação a partir de corpus bruto / cru Tema 4A Pablo Gamallo Otero

Apresentações semelhantes


Apresentação em tema: "Usando Perl para a extracção automática de informação a partir de corpus bruto / cru Tema 4A Pablo Gamallo Otero"— Transcrição da apresentação:

1 Usando Perl para a extracção automática de informação a partir de corpus bruto / cru Tema 4A Pablo Gamallo Otero http://gramatica.usc.es/~gamallo/

2 Objectivos ler o texto dum ficheiro linha a linha. processar o texto lido: ­ tokenizer: quebrar o texto em palavras ou carácteres (letras). ­ contagem de frequências: ocurrências de letras, palavras, formas, pares de palavras, etc. escrever num ficheiro os resultados.

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

4 Resultado do tokenizer “ A nena tem uma chupeta azul.” A nena tem uma chupeta azul.

5 Estrutura do separador de caracteres Lê linha a linha o texto de entrada. Escreve noutro ficheiro (ou na consola) os caracteres do texto de entrada. Cada carácter aparece numa linha.

6 Resultado do separador de caracteres “ A nena.” Anena.Anena.

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

8 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

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

10 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++; }

11 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 “”

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

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

14 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

15 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

16 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 "Usando Perl para a extracção automática de informação a partir de corpus bruto / cru Tema 4A Pablo Gamallo Otero"

Apresentações semelhantes


Anúncios Google