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

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

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 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? PALAVRAFREQUÊNCIA the3332 and2972 a1775 to1725 of1440 was1161 it1027 in906 that877 Tom679 Palavras mais frequêntes de Tom Sawyer PALAVRAFREQUÊNCIA la que en el y a los las del se Comisión Palavras mais frequêntes de Europarl (Parlamento Europeo)

9 Noções básicas: Extracção de frequências the of and to a in that 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 268,1100% % TOTAL ,25% ,00% en diante ,80% ,02% a ,01% ,28% a ,38% ,83% a ,87,81% ,61% a ,42,11% ,49% a 99 3,80,48% ,11% a 9 1,00,15% ,65% frequência média % ocurrências Ocurrências% formas FormasBanda de ocurrências Corpus Banco do Português:

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. WFRFxR the he two name comes WFRFxR 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. 2. 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. 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. Janela (Window): distância máxima entre o nódulo e a primeira palavra à esquerda (ou a ùltima à direita) dentro duma concordância.

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...) lê um conjunto de caracteres introduzidos através do terminal (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.

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... listas tabelas (hashes) Descritores Input/Output: STDIN, STDOUT, arquivos de entrada, arq. de saída...

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 = ) { 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 = 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ção2... } 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 { 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 : Escreve num ficheiro (ou no terminal) 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.

31 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

32 Listas e = (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 "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