Temas 3, 4 e 5 Pablo Gamallo Otero gamallo
Transcript of Temas 3, 4 e 5 Pablo Gamallo Otero gamallo
![Page 1: Temas 3, 4 e 5 Pablo Gamallo Otero gamallo](https://reader034.fdocument.pub/reader034/viewer/2022051314/552fc17d497959413d8f15e0/html5/thumbnails/1.jpg)
Temas 3, 4 e 5
Pablo Gamallo Oterohttp://gramatica.usc.es/~gamallo/
![Page 2: Temas 3, 4 e 5 Pablo Gamallo Otero gamallo](https://reader034.fdocument.pub/reader034/viewer/2022051314/552fc17d497959413d8f15e0/html5/thumbnails/2.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051314/552fc17d497959413d8f15e0/html5/thumbnails/3.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051314/552fc17d497959413d8f15e0/html5/thumbnails/4.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051314/552fc17d497959413d8f15e0/html5/thumbnails/5.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051314/552fc17d497959413d8f15e0/html5/thumbnails/6.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051314/552fc17d497959413d8f15e0/html5/thumbnails/7.jpg)
Resultado do tokenizador
“ A nena tem uma chupeta azul.”
Anenatemumachupetaazul.
![Page 8: Temas 3, 4 e 5 Pablo Gamallo Otero gamallo](https://reader034.fdocument.pub/reader034/viewer/2022051314/552fc17d497959413d8f15e0/html5/thumbnails/8.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051314/552fc17d497959413d8f15e0/html5/thumbnails/9.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051314/552fc17d497959413d8f15e0/html5/thumbnails/10.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051314/552fc17d497959413d8f15e0/html5/thumbnails/11.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051314/552fc17d497959413d8f15e0/html5/thumbnails/12.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051314/552fc17d497959413d8f15e0/html5/thumbnails/13.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051314/552fc17d497959413d8f15e0/html5/thumbnails/14.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051314/552fc17d497959413d8f15e0/html5/thumbnails/15.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051314/552fc17d497959413d8f15e0/html5/thumbnails/16.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051314/552fc17d497959413d8f15e0/html5/thumbnails/17.jpg)
4. Etiquetadores
Tree-Tagger FreeLing
![Page 18: Temas 3, 4 e 5 Pablo Gamallo Otero gamallo](https://reader034.fdocument.pub/reader034/viewer/2022051314/552fc17d497959413d8f15e0/html5/thumbnails/18.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051314/552fc17d497959413d8f15e0/html5/thumbnails/19.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051314/552fc17d497959413d8f15e0/html5/thumbnails/20.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051314/552fc17d497959413d8f15e0/html5/thumbnails/21.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051314/552fc17d497959413d8f15e0/html5/thumbnails/22.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051314/552fc17d497959413d8f15e0/html5/thumbnails/23.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051314/552fc17d497959413d8f15e0/html5/thumbnails/24.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051314/552fc17d497959413d8f15e0/html5/thumbnails/25.jpg)
5. Analisadores robustos
DepPattern (analisador de dependências e formalismo gramatical)
![Page 26: Temas 3, 4 e 5 Pablo Gamallo Otero gamallo](https://reader034.fdocument.pub/reader034/viewer/2022051314/552fc17d497959413d8f15e0/html5/thumbnails/26.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051314/552fc17d497959413d8f15e0/html5/thumbnails/27.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051314/552fc17d497959413d8f15e0/html5/thumbnails/28.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051314/552fc17d497959413d8f15e0/html5/thumbnails/29.jpg)
Notação das dependências
(dependência;núcleo;modificador)
![Page 30: Temas 3, 4 e 5 Pablo Gamallo Otero gamallo](https://reader034.fdocument.pub/reader034/viewer/2022051314/552fc17d497959413d8f15e0/html5/thumbnails/30.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051314/552fc17d497959413d8f15e0/html5/thumbnails/31.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051314/552fc17d497959413d8f15e0/html5/thumbnails/32.jpg)
Contar dependências com DepPattern
cat quijote.parsed | ./HeadOf.perl “poema” “Dobj”
cat quijote.parsed | ./DepOf.perl “poema” “Adjn”