![Page 1: Python para Processamento de Linguagem Natural](https://reader031.vdocuments.pub/reader031/viewer/2022021516/620a1d8deb7c577d78119eac/html5/thumbnails/1.jpg)
1
Python para Processamento de
Linguagem Natural
Introdução ao Processamento de Linguagem Natural
Roney Lira de Sales SantosRogério Figueredo de Sousa
Prof. Thiago A. S. Pardo
![Page 2: Python para Processamento de Linguagem Natural](https://reader031.vdocuments.pub/reader031/viewer/2022021516/620a1d8deb7c577d78119eac/html5/thumbnails/2.jpg)
2
PLN: Definição
Instruir o computador a lidar com a língua, ou, como se diz informalmente, a “ler e escrever” Interpretação de textos
Tradução automática
Revisão gramatical
Busca de respostas para perguntas
Sumarização
Auxílio a escrita e ao aprendizado de línguas
Etc.
Multidisciplinar Computação
Linguística
![Page 3: Python para Processamento de Linguagem Natural](https://reader031.vdocuments.pub/reader031/viewer/2022021516/620a1d8deb7c577d78119eac/html5/thumbnails/3.jpg)
3
Língua Natural
Língua humana
Em oposição às linguagens artificiais
Matemática, lógica, linguagens de programação
de computadores
![Page 4: Python para Processamento de Linguagem Natural](https://reader031.vdocuments.pub/reader031/viewer/2022021516/620a1d8deb7c577d78119eac/html5/thumbnails/4.jpg)
Questão
Qual a diferença entre “língua” e
“linguagem”?
É Processamento de Linguagem Natural
ou Processamento de Línguas Naturais?
4
![Page 5: Python para Processamento de Linguagem Natural](https://reader031.vdocuments.pub/reader031/viewer/2022021516/620a1d8deb7c577d78119eac/html5/thumbnails/5.jpg)
Linguagem & língua
Linguagem: capacidade humana de comunicação e suas manifestações, de forma verbal ou não
Fala, gestos, música, dança, pintura, um sorriso
Envolve nosso aparato físico e mental/cognição
Língua: código de comunicação utilizado por uma comunidade, com suas regras específicas
Português, Inglês, LIBRAS, etc.
5
![Page 6: Python para Processamento de Linguagem Natural](https://reader031.vdocuments.pub/reader031/viewer/2022021516/620a1d8deb7c577d78119eac/html5/thumbnails/6.jpg)
6
PLN
Processamento de Língua Natural
Linguística Computacional
Processamento de Linguagem Natural
Engenharia das Línguas Naturais
No Brasil, tradicionalmente visto como subárea da Inteligência
Artificial & Computação
Habilidade linguística é um tipo de inteligência
![Page 7: Python para Processamento de Linguagem Natural](https://reader031.vdocuments.pub/reader031/viewer/2022021516/620a1d8deb7c577d78119eac/html5/thumbnails/7.jpg)
7
PLN: um pouco de história
Nascimento na 2ª guerra mundial
Tradução automática
Possíveis nomes
Computational Linguistics
Mechanolinguistics
Automatic Language Data Processing
Natural Language Processing
![Page 8: Python para Processamento de Linguagem Natural](https://reader031.vdocuments.pub/reader031/viewer/2022021516/620a1d8deb7c577d78119eac/html5/thumbnails/8.jpg)
8
PLN: um pouco de história
Globalização, internet, tecnologia da
informação, Google
Mais recentemente, web 2.0/3.0, redes sociais,
smartphones, big data e ciência de dados, deep
learning
![Page 9: Python para Processamento de Linguagem Natural](https://reader031.vdocuments.pub/reader031/viewer/2022021516/620a1d8deb7c577d78119eac/html5/thumbnails/9.jpg)
9
PLN
Auxílio às tarefas humanas
(Ainda) Não substitui o humano
Não é possível “automatizar” toda a língua, apenas
aspectos dela
O computador (ainda) é uma máquina estúpida!
VS.
![Page 10: Python para Processamento de Linguagem Natural](https://reader031.vdocuments.pub/reader031/viewer/2022021516/620a1d8deb7c577d78119eac/html5/thumbnails/10.jpg)
10
PLN
“Conversar” com uma máquina não é tão
difícil
Fazer a máquina “entender” é difícil, talvez
impossível
Futuro distante
Muitas pesquisas
Programas especializados
Recursos linguísticos e linguístico-computacionais
![Page 11: Python para Processamento de Linguagem Natural](https://reader031.vdocuments.pub/reader031/viewer/2022021516/620a1d8deb7c577d78119eac/html5/thumbnails/11.jpg)
PLN
Será que é preciso ser tão fantástico para
ser útil?
Exemplos de programas simples que são úteis?
11
![Page 12: Python para Processamento de Linguagem Natural](https://reader031.vdocuments.pub/reader031/viewer/2022021516/620a1d8deb7c577d78119eac/html5/thumbnails/12.jpg)
PLN
Será que é preciso ser tão fantástico para
ser útil?
Sugestão de possíveis sinônimos
Revisão ortográfica e gramatical
Outros?
Simples? Ou mais claros e facilmente automatizáveis?
12
![Page 13: Python para Processamento de Linguagem Natural](https://reader031.vdocuments.pub/reader031/viewer/2022021516/620a1d8deb7c577d78119eac/html5/thumbnails/13.jpg)
O que é necessário para
aprender uma língua?
Conhecer as palavras e como elas são formadas
Saber o significado das palavras
Como compor frases
Como referenciar entidades do mundo
Como conectar frases
Protocolos de comunicação na língua/cultura
Etc.
E como ensinar isso às máquinas?
13
![Page 14: Python para Processamento de Linguagem Natural](https://reader031.vdocuments.pub/reader031/viewer/2022021516/620a1d8deb7c577d78119eac/html5/thumbnails/14.jpg)
14
PLN: Níveis de Conhecimento
Vários níveis de conhecimento
Tradicionalmente distinguidos em PLN, apesar
dos limites entre eles serem nebulosos na
maioria dos casos
Pragmática / Discurso
Semântica
Sintaxe
Morfologia
Abstração &
Complexidade
Fonética / Fonologia
![Page 15: Python para Processamento de Linguagem Natural](https://reader031.vdocuments.pub/reader031/viewer/2022021516/620a1d8deb7c577d78119eac/html5/thumbnails/15.jpg)
15
PLN: Níveis de Conhecimento
Vários níveis de conhecimento
Tradicionalmente distinguidos em PLN, apesar
dos limites entre eles serem nebulosos na
maioria dos casos
Pragmática / Discurso
Semântica
Sintaxe
Morfologia
Abstração &
Complexidade
Fonética / Fonologia
![Page 16: Python para Processamento de Linguagem Natural](https://reader031.vdocuments.pub/reader031/viewer/2022021516/620a1d8deb7c577d78119eac/html5/thumbnails/16.jpg)
16
Pragmática / Discurso
Semântica
Sintaxe
Morfologia
Fonética / Fonologia
Palavra: construção, componentes de formação
Morfema, raiz, afixo (prefixo, sufixo, etc.), vogal temática,
desinência
Stemming
Lematização
PLN: Níveis de Conhecimento
![Page 17: Python para Processamento de Linguagem Natural](https://reader031.vdocuments.pub/reader031/viewer/2022021516/620a1d8deb7c577d78119eac/html5/thumbnails/17.jpg)
17
Pragmática / Discurso
Semântica
Sintaxe
Morfologia
Fonética / Fonologia
Interação entre morfologia e sintaxe: classes
gramaticais ou etiquetas morfossintáticas
Substantivo/nome, verbo, adjetivo, advérbio, pronome,
preposição, conjunção, interjeição, etc.
PLN: Níveis de Conhecimento
![Page 18: Python para Processamento de Linguagem Natural](https://reader031.vdocuments.pub/reader031/viewer/2022021516/620a1d8deb7c577d78119eac/html5/thumbnails/18.jpg)
18
PLN
Ele queria jogar
tênis com Janete,
mas também queria
jantar com Suzana.
Sua indecisão o
deixou louco.
Pragmática / Discurso
Semântica
Sintaxe
Morfologia
Fonética / Fonologia
Ele/PRS#ms3
queria/QUERER/V#ii-3s
jogar/JOGAR/V#inf-nInf
tênis/?,TÊNI/PPA#??
com/PREP
Janete/PNM
,*//PNT
mas/CJ
também/ADV
queria/QUERER/V#ii-3s
jantar/JANTAR/CN#ms
com/PREP
Suzana/PNM
.*//PNT
Sua/PNM
indecisão/INDECISÃO/CN#fs
o/DA#ms
deixou/DEIXAR/V#ppi-3s
louco/LOUCO/ADJ#ms
./PNT
![Page 19: Python para Processamento de Linguagem Natural](https://reader031.vdocuments.pub/reader031/viewer/2022021516/620a1d8deb7c577d78119eac/html5/thumbnails/19.jpg)
19
Pragmática / Discurso
Semântica
Sintaxe
Morfologia
Fonética / Fonologia
Como as sentenças são formadas, como as
palavras podem se combinar
Função: sujeito, predicado, objetos, predicativos, etc.
Estruturação/constituição: sintagma nominal, sintagma
verbal, etc.
PLN: Níveis de Conhecimento
![Page 20: Python para Processamento de Linguagem Natural](https://reader031.vdocuments.pub/reader031/viewer/2022021516/620a1d8deb7c577d78119eac/html5/thumbnails/20.jpg)
20
Ele queria jogar tênis com Janete, mas também queria jantar com
Suzana. Sua indecisão o deixou louco.
Pragmática / Discurso
Semântica
Sintaxe
Morfologia
Fonética / Fonologia
nsubj xcomp obj
obl
case
conj
PLN: Níveis de Conhecimento
![Page 21: Python para Processamento de Linguagem Natural](https://reader031.vdocuments.pub/reader031/viewer/2022021516/620a1d8deb7c577d78119eac/html5/thumbnails/21.jpg)
21
Ele queria jogar tênis com Janete, mas também queria jantar com
Suzana. Sua indecisão o deixou louco.
Pragmática / Discurso
Semântica
Sintaxe
Morfologia
Fonética / Fonologia
conj
cc
advmod xcomp
obl
case
PLN: Níveis de Conhecimento
![Page 22: Python para Processamento de Linguagem Natural](https://reader031.vdocuments.pub/reader031/viewer/2022021516/620a1d8deb7c577d78119eac/html5/thumbnails/22.jpg)
22
Ele queria jogar tênis com Janete, mas também queria jantar com
Suzana. Sua indecisão o deixou louco.
Pragmática / Discurso
Semântica
Sintaxe
Morfologia
Fonética / Fonologia
det
nsubj
obj xcomp
PLN: Níveis de Conhecimento
![Page 23: Python para Processamento de Linguagem Natural](https://reader031.vdocuments.pub/reader031/viewer/2022021516/620a1d8deb7c577d78119eac/html5/thumbnails/23.jpg)
23
Pragmática / Discurso
Semântica
Sintaxe
Morfologia
Fonética / Fonologia
Significado
Palavras, expressões, orações, sentenças, textos
Metáforas, expressões idiomáticas, polissemia
Qual a diferença entre polissemia e homonímia?
Banco (assento vs. instituição financeira) é polissêmico, mas
manga (camisa vs. fruta) não é
PLN: Níveis de Conhecimento
![Page 24: Python para Processamento de Linguagem Natural](https://reader031.vdocuments.pub/reader031/viewer/2022021516/620a1d8deb7c577d78119eac/html5/thumbnails/24.jpg)
24
Ele queria jogar tênis com Janete, mas também queria
jantar com Suzana. Sua indecisão o deixou louco.
Pragmática / Discurso
Semântica
Sintaxe
Morfologia
Fonética / Fonologia
“Ele”, “Janete” e “Suzana” = humanos.
Jogar tênis = praticar o esporte tênis ≠ arremessar o calçado.
...
PLN: Níveis de Conhecimento
![Page 25: Python para Processamento de Linguagem Natural](https://reader031.vdocuments.pub/reader031/viewer/2022021516/620a1d8deb7c577d78119eac/html5/thumbnails/25.jpg)
25
Pragmática / Discurso
Semântica
Sintaxe
Morfologia
Fonética / Fonologia
Pragmática
Língua em uso, interação, contexto
Fatores como força, educação, hierarquia, crença,
cooperação, atitude
Discurso
Aquilo que está além da sentença
PLN: Níveis de Conhecimento
![Page 26: Python para Processamento de Linguagem Natural](https://reader031.vdocuments.pub/reader031/viewer/2022021516/620a1d8deb7c577d78119eac/html5/thumbnails/26.jpg)
26
PLN
Considerações para uso por um computador
Os níveis de conhecimento precisam ser representados (formalizados) e manipulados automaticamente
Interação entre os níveis Morfologia e sintaxe
Sintaxe e semântica
Semântica e discurso
![Page 27: Python para Processamento de Linguagem Natural](https://reader031.vdocuments.pub/reader031/viewer/2022021516/620a1d8deb7c577d78119eac/html5/thumbnails/27.jpg)
27
PLN
Considerações para uso por um computador
Os níveis de conhecimento precisam ser representados (formalizados) e manipulados automaticamente
Interação entre níveis mais distantes Morfologia e semântica (goleiro e porteiro vs. padeiro)
Morfologia e pragmática (são carlense vs. são carlino, laranjada e limonada vs. cajuada)
Sintaxe e discurso (subordinadas)
![Page 28: Python para Processamento de Linguagem Natural](https://reader031.vdocuments.pub/reader031/viewer/2022021516/620a1d8deb7c577d78119eac/html5/thumbnails/28.jpg)
PLN e humanos
Humanos lidam naturalmente com
Ambiguidade
Irregularidade
Vagueza
Variedade
Etc.
... máquinas (ainda) não!
28
![Page 29: Python para Processamento de Linguagem Natural](https://reader031.vdocuments.pub/reader031/viewer/2022021516/620a1d8deb7c577d78119eac/html5/thumbnails/29.jpg)
29
PLN: Fases do Trabalho
Trabalho em PLN
Fase
linguística
Fase
representacional
Fase
implementacional
![Page 30: Python para Processamento de Linguagem Natural](https://reader031.vdocuments.pub/reader031/viewer/2022021516/620a1d8deb7c577d78119eac/html5/thumbnails/30.jpg)
30
Trabalho em PLN
Fase
linguística
Fase
representacional
Fase
implementacional
Resumos de artigos
de jornais
Formalização das
regras para resumir
Desenvolvimento do
sumarizador automático
Tradução espanhol-
português
Regras de tradução,
dicionários bilíngues
Desenvolvimento do
tradutor automático
PLN: Fases do Trabalho
![Page 31: Python para Processamento de Linguagem Natural](https://reader031.vdocuments.pub/reader031/viewer/2022021516/620a1d8deb7c577d78119eac/html5/thumbnails/31.jpg)
31
Trabalho em PLN
Aspectos da língua que são possíveis capturar e
automatizar
Fase
linguística
Fase
representacional
Fase
implementacional
Teorias e dados
linguísticos
Formalismos/esquemas
de representação
Métodos e modelos
computacionais
PLN: Fases do Trabalho
![Page 32: Python para Processamento de Linguagem Natural](https://reader031.vdocuments.pub/reader031/viewer/2022021516/620a1d8deb7c577d78119eac/html5/thumbnails/32.jpg)
PLN
Classificação
Recursos
Ferramentas
Aplicações
32
![Page 33: Python para Processamento de Linguagem Natural](https://reader031.vdocuments.pub/reader031/viewer/2022021516/620a1d8deb7c577d78119eac/html5/thumbnails/33.jpg)
33
Recursos
Córpus Anotação: humana e/ou automática
XML, XCES, TEI, etc.
Paralelo, comparável, alinhado, etc.
Dicionários monolíngues e bilíngues Machine readable vs. machine tractable
Léxicos Vários paradigmas
![Page 34: Python para Processamento de Linguagem Natural](https://reader031.vdocuments.pub/reader031/viewer/2022021516/620a1d8deb7c577d78119eac/html5/thumbnails/34.jpg)
34
Ferramentas
Segmentadores textuais: palavras (tokenizador), sentenças, parágrafos, tópicos
Stemmers, lematizadores, nominalizadores
Etiquetadores morfossintáticos (taggers)
Analisadores sintáticos shallow (chunkers) e deep (parsers)
Analisadores semânticos e discursivos
Alinhadores textuais: lexicais, sentenciais, etc.
Concordanceadores, word counting, ...
Classificadores de polaridade
Etc.
![Page 35: Python para Processamento de Linguagem Natural](https://reader031.vdocuments.pub/reader031/viewer/2022021516/620a1d8deb7c577d78119eac/html5/thumbnails/35.jpg)
35
Aplicações
Tradutores automáticos
Revisores ortográficos e gramaticais
Ferramentas de auxílio à escrita
Sumarizadores automáticos
Simplificadores textuais
Minerador de opinião
Etc.
![Page 36: Python para Processamento de Linguagem Natural](https://reader031.vdocuments.pub/reader031/viewer/2022021516/620a1d8deb7c577d78119eac/html5/thumbnails/36.jpg)
36
Recursos, ferramentas e aplicações
Atenção
Classificação difusa, às vezes
Dependente do uso Sumarizador como passo intermediário para
recuperação da informação ferramenta
Dicionário eletrônico para consulta aplicação
![Page 37: Python para Processamento de Linguagem Natural](https://reader031.vdocuments.pub/reader031/viewer/2022021516/620a1d8deb7c577d78119eac/html5/thumbnails/37.jpg)
PLN e áreas correlatas
Limites cada vez mais suaves entre PLN e outras áreas
Recuperação de informação
Banco de dados
Interação humano-computador
Mineração de textos
Linguística de córpus
37
![Page 38: Python para Processamento de Linguagem Natural](https://reader031.vdocuments.pub/reader031/viewer/2022021516/620a1d8deb7c577d78119eac/html5/thumbnails/38.jpg)
38
PLN - resumão
Vários níveis de conhecimento
Formalização e interação entre os níveis
Etapas do trabalho em PLN
Classificação
![Page 39: Python para Processamento de Linguagem Natural](https://reader031.vdocuments.pub/reader031/viewer/2022021516/620a1d8deb7c577d78119eac/html5/thumbnails/39.jpg)
39
PLN - resumão
Vários níveis de conhecimento
Formalização e interação entre os níveis
Etapas do trabalho em PLN
Classificação