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

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

María Paula Santalla del Río Pablo Gamallo Otero

Apresentações semelhantes


Apresentação em tema: "María Paula Santalla del Río Pablo Gamallo Otero"— 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

3 Bibliografia TUTORIAIS ON LINE (em espanhol):
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. Tony Berber Sardinha (2004), Lingüística de Corpus, Editora Manole, Brasil. TUTORIAIS ON LINE (em espanhol):

4 PLANO DO CURSO Noções básicas Iniciação à programação em PERL
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 Noções básicas: corpus e extracção
Características dum corpus: Deve estar formado por um conjunto de dados lingüísticos naturais (uso oral ou/e escrito). O conteúdo do corpus deve ser cuidadosamente escolhido segundo certos critérios. O corpus deve ser representativo duma língua ou variedade. O corpus dever ser vasto para ser representativo. O corpus deve ter como finalidade ser objecto de estudo linguístico. Processos computacionais que se podem realizar num corpus: Anotação morfológica, sintática e semântica. Extracção de informação

6 Noções básicas: corpus e extracção
Extracção de informação. Tipos de informação extraída: Frequências de ocorrências de palavras, de tipos, de lemas, ... Modelos estatísticos de desambiguação (tagger): se uma palavra aparece no dicionário como NOUN e VERB e se encontra depois dum DET no corpus, então deve ser etiquetada como NOUN. Semelhança semântica entre palavras: se duas palavras aparecem no corpus nos mesmos contextos sintácticos, então devem ser sinómimos ou estar semanticamente relacionadas. Equivalentes de tradução Métodos de extracção: Métodos supervisados Métodos não supervisados

7 Noções básicas: Extracção de frequências
Contagem de palavras, ocorrências ou itens (tokens): cada palavra conta como uma ocorrência, mesmo que seja repetida. Contagem de palavras, formas ou tipos (types): conta-se o número de palavras diferentes. Contagem de lemas, ou lexemas (lemmas): conta-se o número de temas diferentes (tema = palavra – morf. flexivos). Contagem de Hapax Legomena: conta-se o número de palavras que ocorrem apenas uma vez (isto é frequência 1) no corpus.

8 Noções básicas: Extracção de frequências
Quais são as palavras mais frequentes num corpus representativo dum domínio específico? PALAVRA FREQUÊNCIA the and a to of was it in that Tom PALAVRA FREQUÊNCIA la que en el y a los las del se Comisión Palavras mais frequêntes de “Tom Sawyer” Palavras mais frequêntes de Europarl (Parlamento Europeo)

9 Noções básicas: Extracção de frequências
69970 the 36410 of 28852 and 26149 to 23326 a 21341 in 10594 that 10102 is 9815 was 9542 he 9488 for 8760 it 7290 with 7251 as 6997 his 6742 on 6376 be 5377 at 5306 by 5178 i 5146 this 5131 had 4609 not 4394 are 4381 but 4370 from 4207 or 3942 have 3748 an 3619 they 3561 which 3297 one 3286 you 3284 were 3037 her 3001 all 2859 she 2725 there 2715 would 2670 their 2653 we 2619 him 2473 been 2439 has 2331 when 2252 who 2244 will 2216 more 2202 no 2199 if 2096 out 1985 so 1961 said 1908 what 1895 up 1858 its 1815 about 1791 into 1790 than 1789 them 1772 can 1747 only 1702 other 1635 new 1617 some 1599 time 1599 could 1573 these 1412 two 1400 may 1377 then 1362 do 1361 first 1345 any 1319 my 1314 now 1303 such 1290 like 1252 our 1237 over 1207 man Palavras mais frequêntes do corpus Brown (não específico).

10 Noções básicas: Extracção de frequências
Quantas ocorrências de palavras (tokens ou itens) tem um corpus? ”Tom Sowyer” tem ocurrências de palavras. “El Quijote” tem “Brown” tem 1 milhão. “EuroParl” tem 30 milhões 600 mil Quantas palavras diferentes (tipos ou formas) tem um corpus? ”Tom Sowyer” tem palavras diferentes (8,9 tokens por tipo). “El Quijote tem (9.8 tokens por tipo). (se consideramos os primeiros tokens, extraem-se mais de tipos) “Brown” tem (17 tokens por tipo). “EuroParl” tem (192 tokens por tipo).

11 Noções básicas: Extracção de frequências
Corpus Banco do Português: 268,1 100% TOTAL 28,25% 0,00% 16 en diante 14,80% 0,02% 78 a 24.756 26,01% 0,28% 1.323 a 2.930 20,38% 1,83% 8.586 1.000 a 9.999 316,8 7,81% 6,61% 31.065 100 a 999 32,4 2,11% 17,49% 82.174 10 a 99 3,8 0,48% 34,11% 2 a 9 1,0 0,15% 39,65% 1 frequência média % ocurrências Ocurrências % formas Formas Banda de ocurrências

12 Noções básicas: Lei de Zipf
K = RxF Existe uma relação constante, K, entre a frequência duma palavra, F, e a sua posição ou ranking, R. Se uma palavra está no ranking R e tem frequência F, a palavra que se encontra no ranking 2R tende a ter uma frequência F/2 Hai poucas palavras mui frequêntes e muitas pouco frequêntes. W F R FxR the he two name comes W F R FxR group friends family brushed Applausive

13 Noções básicas: Concordâncias
A concordância é uma listagem das ocorrências duma forma específica, dispostas de tal modo que a palavra de busca (aquela que se quere investigar) aparece centralizada e acompanhada do seu contexto original, isto é, das palavras que ocorrem junto com ela no corpus. 13 | acordo em nada prejudica os direitos, no Reino da Dinamarca, dos nacionais dinamarqueses que res 14 | e algumas destas zonas na Bélgica, na Itália e no Reino Unido estão situadas em regiões que têm já 15 | e Tournai. Itália: província de Nápoles. Reino Unido: região de Strathclyde, counties de Clevela 16 | veis; Considerando que algumas destas zonas no Reino Unido estão situadas em regiões que têm já um elev 17 | específica diz respeito às seguintes zonas de Reino Unido: região de Strathclyde, condados de C 18 | grama especial», a apresentar à Comissão pelo Reino Unido O programa especial terá por fina 19 | izado a pedido dos governos da Irlanda e do Reino Unido, assim como da Comissão, recomendou que a r 20 | entre a Comunidade Económica Europeia e o Reino da Noruega na sequência da adesão da República Hel

14 Noções básicas: Concordâncias
Palavra de busca (search word) ou Nódulo: palavra (ou grupo de palavras) da qual o usuário tem interesse em obter uma concordância. Janela (Window): distância máxima entre o nódulo e a primeira palavra à esquerda (ou a ùltima à direita) dentro duma concordância. Palavras de contexto (context words): palavras que estão próximas do nódulo durante a busca (dentro da mesma janela). São opcionais, ou seja, é possível fazer uma concordância sem especificá-las.

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

16 Objectivos ler o texto dum ficheiro (ou do terminal) linha a linha.
processar o texto lido: ­ tokenizer (quebrar o texto em palavras). ­ contagem de frequências: ocurrências de palavras, de formas, de lemas, etc. escrever num ficheiro (ou no terminal) os resultados.

17 Estrutura do Programa “nome.perl”
O script escreve no terminal: “Cómo te chamas?” O script lê o nome escrito pelo usuário O script escreve no terminal o nome que foi lido.

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

19 Estrutura do Programa “nome.perl”
print escreve texto (no terminal, num ficheiro...) <STDIN> lê um conjunto de caracteres introduzidos através do terminal (por exemplo, através do teclado). $x=<STDIN> 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.

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

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

22 Tipos de variáveis escalares: $var tabelas: %var

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

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

25 Instruções do tokenizer
while ($linha = <STDIN>) { 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

26 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 foreach $pal { instrução1; instrução } Uma vez tomado um elemento da e colocado na variável $pal, executam-se as instruções do bloco. Isto é repetido com todos os elementos da lista.

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

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

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

30 Estrutura de “contagem.perl”
Lê linha a linha o ficheiro tokenizado : 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. Escreve num ficheiro (ou no terminal) os resultados das contagens.

31 Instruções de contagem.perl
while ($token = <STDIN>) { $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

32 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

33 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 "María Paula Santalla del Río Pablo Gamallo Otero"

Apresentações semelhantes


Anúncios Google