Temas 3, 4 e 5 Pablo Gamallo Otero gamallo

32
Temas 3, 4 e 5 Pablo Gamallo Otero http://gramatica.usc.es/~gamallo/

Transcript of Temas 3, 4 e 5 Pablo Gamallo Otero gamallo

Page 1: Temas 3, 4 e 5 Pablo Gamallo Otero gamallo

Temas 3, 4 e 5

Pablo Gamallo Oterohttp://gramatica.usc.es/~gamallo/

Page 2: Temas 3, 4 e 5 Pablo Gamallo Otero gamallo

PLANO

1. Noções básicas

2. Introdução a Linux

3.Tokenizadores e concordâncias3.1. contar tokens e formas, ordenar, comparar textos, ...3.2. riqueza lexical dos textos3.3. Key Word In Context (kwic.perl)

4.Etiquetadores (PoS tagging)4.1. Tree-Tagger4.2. FreeLing

5.Analisadores (parsing)5.1. DepPattern

Page 3: Temas 3, 4 e 5 Pablo Gamallo Otero gamallo

Bibliografia

Tony Berber Sardinha (2004), Lingüística de Corpus, Editora Manole, Brasil.

Marco Baroni (2009), “Distributions in text”. In Anke Lüdeling and Merja Kytö (eds.), Corpus linguistics: An international handbook, Berlin: Mouton de Gruyter. http://gramatica.usc.es/~gamallo/aulas/lingcomputacional/biblio/Baroni_distributions.pdf

Pablo Gamallo & Isaac González (2009) "Una gramática de dependencias basada en patrones de etiquetas", Procesamiento del Lenguaje Natural, 43, pp. 315-324.http://www.sepln.org/revistaSEPLN/revista/43/articulos/art34.pdf

Page 4: Temas 3, 4 e 5 Pablo Gamallo Otero gamallo

3. Tokenizadores e concordâncias

Scripts utilizados:

tokenizer.perl compara.perl riqueza.perl kwic.perl

Page 5: Temas 3, 4 e 5 Pablo Gamallo Otero gamallo

Objectivos

Extrair tokens a partir de texto tokenizado para:

- contar frequência de formas- ordenar formas- comparar textos- ...

Page 6: Temas 3, 4 e 5 Pablo Gamallo Otero gamallo

Que fai o tokenizador?

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

Page 7: Temas 3, 4 e 5 Pablo Gamallo Otero gamallo

Resultado do tokenizador

“ A nena tem uma chupeta azul.”

Anenatemumachupetaazul.

Page 8: Temas 3, 4 e 5 Pablo Gamallo Otero gamallo

Como tornar executável o script “tokenizer.perl” ?

chmod +x tokenizer.perl

Atribuimos ao ficheiro “tokenizer.perl” a propriedade:

ser executável

Page 9: Temas 3, 4 e 5 Pablo Gamallo Otero gamallo

Como executar o tokenizador?

cat ../corpus/arquivo_entrada.txt | ./tokenizer.perl

cat ../corpus/arquivo_entrada.txt | ./tokenizer.perl > arquivo_saida.txt

Page 10: Temas 3, 4 e 5 Pablo Gamallo Otero gamallo

Contar formas com o tokenizador

Conta o número de ocorrências das expressões:“Quijote”, “Sancho”, “Dulcinea”, “dijeron”, ...

Comando “grep”: selecciona as linhas do texto que contenham uma sequência de caracteres (ou string) específica

cat ../corpus/ElQuijote.txt | ./tokenizer.perl | grep “Quijote” | wc

Page 11: Temas 3, 4 e 5 Pablo Gamallo Otero gamallo

Contar multi-palavras

Para contar multi-palavras:“Quijote de la Mancha”, “Sancho Panza”, “Dulcinea del Toboso”, ...

é preciso um reconhecedor de entidades:• NomesProprios.perl• NER do FreeLing

Page 12: Temas 3, 4 e 5 Pablo Gamallo Otero gamallo

Ordena formas por frequência

echo “sort | uniq -c | sort -nr” > ordenar.sh

chmod +x ordenar.sh

cat ElQuijote.txt | ./tokenizer.perl | ./ordenar.sh > quijote_ord.txt

Page 13: Temas 3, 4 e 5 Pablo Gamallo Otero gamallo

Compara similitude de textos

cat ElQuijote.txt | ./tokenizer.perl | ./ordenar.sh > quijote_ord.txt

cat LaRegenta.txt | ./tokenizer.perl | ./ordenar.sh > regenta_ord.txt

cat quijote_ord.txt | ./compara.perl regenta_ord.txt 1000

Page 14: Temas 3, 4 e 5 Pablo Gamallo Otero gamallo

Riqueza lexical de textos

A riqueza ou pobreza lexical dum texto pode quantificar-se calculando a frequência média das formas:

Riqueza lexical = número de tokens / número de formas

Page 15: Temas 3, 4 e 5 Pablo Gamallo Otero gamallo

Calcula riqueza lexical de textos

cat ElQuijote.txt | ./tokenizer.perl |head -100000 | ./riqueza.perl

cat LaRegenta.txt | ./tokenizer.perl | head -100000 | ./riqueza.perl

(para comparar dous textos, convém utilizar a mesma quantidade de palavras, por exemplo 100.000)

Page 16: Temas 3, 4 e 5 Pablo Gamallo Otero gamallo

Concordâncias

./kwic.perl "Quijote" DonQuijote.txt

./kwic.perl "Quijote" DonQuijote.txt |grep "don\s*Quijote"

./kwic.perl "Dulcinea" DonQuijote.txt |grep "Dulcinea\s*del Toboso"

Page 17: Temas 3, 4 e 5 Pablo Gamallo Otero gamallo

4. Etiquetadores

Tree-Tagger FreeLing

Page 18: Temas 3, 4 e 5 Pablo Gamallo Otero gamallo

Objectivos

Extrair lemas e etiquetas a partir de texto lematizado e etiquetado para:

- contar frequência de lemas e/ou etiquetas- ordenar por lemas ou etiquetas

Page 19: Temas 3, 4 e 5 Pablo Gamallo Otero gamallo

Uso do etiquetador Tree-Tagger

cat ElQuijote.txt | tree-tagger-spanish(o ficheiro de entrada tem que estar em Latin ISO)

cat ElQuijote.txt | tree-tagger-spanish > quijote.tree

Page 20: Temas 3, 4 e 5 Pablo Gamallo Otero gamallo

Uso do etiquetador FreeLing

cat ElQuijote.txt | freeling-es(o ficheiro de entrada tem que estar em Latin)

cat ElQuijote.txt | freeling-es > quijote.free

Page 21: Temas 3, 4 e 5 Pablo Gamallo Otero gamallo

Saída do etiquetador Freeling

“La niña bonita tiene un chupete azul.”

la el DA0FS0niña niña NCFS000bonita bonito AQ0FS0tiene tener VMIP3S0un uno DI0MS0chupete chupete NCMS000azul azul AQ0CS0

Page 22: Temas 3, 4 e 5 Pablo Gamallo Otero gamallo

Contar lemas com FreeLing

Conta o número de ocorrências das expressões:“comer”, “castellano” (adjectivo), “castellano” (nome) ...

cat quijote.free | grep “comer” | wc

cat quijote.free | grep “castellano” | grep “NC” | wc

Page 23: Temas 3, 4 e 5 Pablo Gamallo Otero gamallo

Contar multi-palavras com FreeLing

Conta o número de ocorrências de:“Quijote de la Mancha”, “Sancho Panza” ...

cat quijote.free | grep “Quijote_de_la_Mancha” | wc -l

cat quijote.free | grep “Sancho_Panza” | wc -l

Page 24: Temas 3, 4 e 5 Pablo Gamallo Otero gamallo

Ordenar por etiquetas ou lemas

cat quijote.free | gawk '{print $3}' | ordenar.sh

cat quijote.free | gawk '{print $2}' | ordenar.sh

Page 25: Temas 3, 4 e 5 Pablo Gamallo Otero gamallo

5. Analisadores robustos

DepPattern (analisador de dependências e formalismo gramatical)

Page 26: Temas 3, 4 e 5 Pablo Gamallo Otero gamallo

Objectivos

Identificar lemas etiquetados a partir de texto analisado em dependências para:

- contar frequência de lemas em contextos sintácticos

Page 27: Temas 3, 4 e 5 Pablo Gamallo Otero gamallo

Uso do analisador DepPattern

./dp -a freeling es DonQuijote.txt parsers/parserDefault-es.perl > quijote.parsed

Page 28: Temas 3, 4 e 5 Pablo Gamallo Otero gamallo

Saída de DepPattern

“La niña morena come pescado.”

(SpecL;niña_NOUN_1;el_DT_0)

(AdjnR;niña_NOUN_1;morena_ADJ_2)

(SubjL;comer_VERB_3;niña_NOUN_1)

(SubjL;comer_VERB_3;pescado_NOUN_4)

Page 29: Temas 3, 4 e 5 Pablo Gamallo Otero gamallo

Notação das dependências

(dependência;núcleo;modificador)

Page 30: Temas 3, 4 e 5 Pablo Gamallo Otero gamallo

Escreve uma gramática com DepPattern

##Minha_Gramatica

SpecL: DT NOUN%

AdjnR: NOUN ADJ%

DobjR: VERB [ADV]* NOUN%

SubjL: NOUN [ADV]* VERB%

Page 31: Temas 3, 4 e 5 Pablo Gamallo Otero gamallo

Compilar e usar a gramática

./dp -a freeling es DonQuijote.txt analisador.perl MinhaGramatica.dp > quijote.parsed

Page 32: Temas 3, 4 e 5 Pablo Gamallo Otero gamallo

Contar dependências com DepPattern

cat quijote.parsed | ./HeadOf.perl “poema” “Dobj”

cat quijote.parsed | ./DepOf.perl “poema” “Adjn”