Tutorial em Processamento de Linguagem Natural

30
Processamento de Linguagem Natural Primeiro Encontro em Computa¸c˜ ao Semˆ antica - Tutoriais Danilo S. Carvalho Hugo C. C. Carneiro Danilo S. Carvalho Hugo C. C. Carneiro Processamento de Linguagem Natural

Transcript of Tutorial em Processamento de Linguagem Natural

Page 1: Tutorial em Processamento de Linguagem Natural

Processamento de Linguagem NaturalPrimeiro Encontro em Computacao Semantica - Tutoriais

Danilo S. CarvalhoHugo C. C. Carneiro

Danilo S. Carvalho Hugo C. C. Carneiro

Processamento de Linguagem Natural

Page 2: Tutorial em Processamento de Linguagem Natural

O que e

Ramo de estudo resultante da uniao de esforcos entre aCiencia da Computacao, Ciencia da Informacao e Linguıstica.

Compreende a analise, manipulacao e geracao da linguagemhumana atraves de computador.

Danilo S. Carvalho Hugo C. C. Carneiro

Processamento de Linguagem Natural

Page 3: Tutorial em Processamento de Linguagem Natural

Nıveis da analise: A informacao desejada

A informacao contida no texto pode ser analisada de mais deum ponto de vista.

Do que fala?Quem fala?Como fala?

Podemos descobrir o assunto de um texto olhando apenaspara uma sentenca?

Podemos descobrir o autor de um texto observando todas assuas palavras?

Danilo S. Carvalho Hugo C. C. Carneiro

Processamento de Linguagem Natural

Page 4: Tutorial em Processamento de Linguagem Natural

Nıveis da analise: Discurso X palavra

A sequencia de sentencas ou de documentos inteiros pode sertao importante quanto as sequencias de palavras que osformam.

Da palavra ao discurso, ha informacao util a ser obtida.

Entretanto, as tecnicas tendem a ser diferentes para cadanıvel.

Danilo S. Carvalho Hugo C. C. Carneiro

Processamento de Linguagem Natural

Page 5: Tutorial em Processamento de Linguagem Natural

Nıveis da analise: Unidade de significado

E aquilo ao qual podemos atribuir um significado. Exemplos:

A opiniao de uma carta sobre a polıtica economica atual(discurso).Uso de voz passiva para amenizar um fato contundente(sentenca).Nome (palavra).

A escolha da unidade de significado depende da informacaodesejada.

Danilo S. Carvalho Hugo C. C. Carneiro

Processamento de Linguagem Natural

Page 6: Tutorial em Processamento de Linguagem Natural

Aplicacoes do Processamento de Linguagem Natural

Correcao de texto (ortografia, gramatica)

Danilo S. Carvalho Hugo C. C. Carneiro

Processamento de Linguagem Natural

Page 7: Tutorial em Processamento de Linguagem Natural

Aplicacoes do Processamento de Linguagem Natural

Classificacao de textos

Danilo S. Carvalho Hugo C. C. Carneiro

Processamento de Linguagem Natural

Page 8: Tutorial em Processamento de Linguagem Natural

Aplicacoes do Processamento de Linguagem Natural

Extracao de informacoes

Danilo S. Carvalho Hugo C. C. Carneiro

Processamento de Linguagem Natural

Page 9: Tutorial em Processamento de Linguagem Natural

Aplicacoes do Processamento de Linguagem Natural

Outros

Danilo S. Carvalho Hugo C. C. Carneiro

Processamento de Linguagem Natural

Page 10: Tutorial em Processamento de Linguagem Natural

Modelos para a linguagem

Representacao da lıngua humana para o computador deve aomesmo tempo manter a expressividade e flexibilidade, masproporcionando a consistencia matematica necessaria paraaplicacao de algoritmos diversos.

Essa e uma tarefa difıcil, para a qual existem muitas respostaspossıveis, mas nenhuma definitiva.

Modelos computacionais para a lıngua podem ser classificadosem dois tipos principais:

EstatısticosNao estatısticos

Danilo S. Carvalho Hugo C. C. Carneiro

Processamento de Linguagem Natural

Page 11: Tutorial em Processamento de Linguagem Natural

Modelos estatısticos

n-gramas: Cada sequencia de n termos possui umaprobabilidade de ocorrer. Logo pode-se prever o proximotermo de uma sequencia conhecendo os anteriores.

Posicionais: Cada termo (ou sequencia) possui umaprobabilidade de ocorrer dado sua posicao relativa aos outrostermos.

Danilo S. Carvalho Hugo C. C. Carneiro

Processamento de Linguagem Natural

Page 12: Tutorial em Processamento de Linguagem Natural

Modelos nao estatısticos

Simbolico: Cada termo (ousequencia) e associado a um sımbolo,cujas interacoes sao definidas porregras.

Vetorial: Cada termo, sequencia oudocumento e associado a umacoordenada de um espacomultidimensional. Por exemplo, umdocumento pode ser representado porum vetor, onde as coordenadas saopreenchidas com as frequenciasrelativas de ocorrencia dos termos.

Danilo S. Carvalho Hugo C. C. Carneiro

Processamento de Linguagem Natural

Page 13: Tutorial em Processamento de Linguagem Natural

Recursos

Listas de palavras

Stopwords

Palavras muito comuns

Pouca relevancia

e, mas, como, nao, tudo, cada, pode, deve, e, ha, um, a, o

Mais stopwords dependendo do contexto

computador, maquina, codigo

Danilo S. Carvalho Hugo C. C. Carneiro

Processamento de Linguagem Natural

Page 14: Tutorial em Processamento de Linguagem Natural

Recursos

Dicionarios

Conjunto de palavras e suas definicoes

Danilo S. Carvalho Hugo C. C. Carneiro

Processamento de Linguagem Natural

Page 15: Tutorial em Processamento de Linguagem Natural

Recursos

IndicesReferencias para simplificacao na busca por conteudos

Sumarios, ındices remissivos, palavras-chave

Danilo S. Carvalho Hugo C. C. Carneiro

Processamento de Linguagem Natural

Page 16: Tutorial em Processamento de Linguagem Natural

RecursosTesauros

Listagem de palavras agrupadas de acordo com similaridadesinonimos, antonimos

Danilo S. Carvalho Hugo C. C. Carneiro

Processamento de Linguagem Natural

Page 17: Tutorial em Processamento de Linguagem Natural

Recursos

Wordnet

Banco de dados lexicos

Termos agrupados em synsets

hipernımia (gato → felino)hiponımia (felino → leao)coordenacao (gato ↔ leao)meronımia (casa → porta)holonımia (porta → casa)troponımia (dialogar → falar)implicacao (roncar → dormir)particıpios (cansado → cansar)

Danilo S. Carvalho Hugo C. C. Carneiro

Processamento de Linguagem Natural

Page 18: Tutorial em Processamento de Linguagem Natural

Recursos

CorporaConjuntos grandes e estruturados de textos

anotados / nao anotados

textuais / orais

corpora paralelos

Danilo S. Carvalho Hugo C. C. Carneiro

Processamento de Linguagem Natural

Page 19: Tutorial em Processamento de Linguagem Natural

RecursosTreebanks

Corpora com anotacoes sintaticas e/ou semanticasMais conhecido/utilizado → Penn Treebank

Danilo S. Carvalho Hugo C. C. Carneiro

Processamento de Linguagem Natural

Page 20: Tutorial em Processamento de Linguagem Natural

TokenizacaoDeteccao de termos

Palavras com muitos termosDonaudampfschifffahrtsgesellschaftskapitanDonau dampf schiff fahrts gesellschafts kapitan

Termos que possuem pontuacao em sua composicaosiglas, quantias etc

Scriptio continua

Foto por Vincent Ramos, sob licenca da GNU Free Documentation License.

Danilo S. Carvalho Hugo C. C. Carneiro

Processamento de Linguagem Natural

Page 21: Tutorial em Processamento de Linguagem Natural

Stemming

Qual radical de uma palavra?

Como extrair sua informacao relevante?

menino / meninacantar / canta / cantofelizmente / felicidade / felizinconstitucionalissimamente / constitucional / constituicao

Um stemming mal feito pode prejudicar a extracao deinformacoes relevantes

idade / ir / i ?

Danilo S. Carvalho Hugo C. C. Carneiro

Processamento de Linguagem Natural

Page 22: Tutorial em Processamento de Linguagem Natural

POS-tagging

Classificacao gramaticalAs palavras mais comuns podem ter diversas classes

a, o, se, que, como

Classificacao depende do contexto

Como devo proceder?Ele e alto como um poste.Como arroz todo dia.

Palavras novas surgem o tempo todo

linguagem tecnica, jargoes, neologismos, gıriasclasses abertas (substantivos, adjetivos, adverbios e verbos)classes fechadas (preposicoes, conjuncoes, pronomes etc)

Danilo S. Carvalho Hugo C. C. Carneiro

Processamento de Linguagem Natural

Page 23: Tutorial em Processamento de Linguagem Natural

Segmentacao de sentencas

Deteccao de limites entre sentencasPonto (.) e uso de letras maiusculas ajudam a descobrir olimite de uma sentenca, contudo:

Sentencas com termos que possuem pontuacao: Fechei umacordo com o Sr. Silva.Sentencas aninhadas: ”Nos encontramos amanha.”, disseramao se despedir.Textos mal pontuados

Danilo S. Carvalho Hugo C. C. Carneiro

Processamento de Linguagem Natural

Page 24: Tutorial em Processamento de Linguagem Natural

Analise sintatica

Superficial (Chunking)

Identificacao de constituintes

Sintagmas

NominaisVerbaisPreposicionais...

Danilo S. Carvalho Hugo C. C. Carneiro

Processamento de Linguagem Natural

Page 25: Tutorial em Processamento de Linguagem Natural

Analise sintatica

Profunda

Identificacao de toda derivacao sintatica ate o nıvel de classesgramaticais

Determinacao de nucleos e adjuntos dos sintagmas

Danilo S. Carvalho Hugo C. C. Carneiro

Processamento de Linguagem Natural

Page 26: Tutorial em Processamento de Linguagem Natural

Entidades nomeadas

Nomes, datas, quantias etc

Entidades nomeadas podem ser compostas por muitos termos

Pao de AcucarRepublica Federativa do Brasil

Pode conter pontuacao

1,99%23:59:00D. Pedro I

Pode conter numerais e letras ao mesmo tempo

C3POW3C

Algumas entidades nomeadas, a primeira vista, podem parecernao concordar com os termos adjacentes

As mil e uma noites e um livro muito conhecido.

Danilo S. Carvalho Hugo C. C. Carneiro

Processamento de Linguagem Natural

Page 27: Tutorial em Processamento de Linguagem Natural

Resolucao de co-referencias

Anaforas

Joao cuida muito bem de seu cao. Este, por sua vez, tambemo adora.

A baba cuida do bebe doente. Ela esta muito preocupada,pois ele nao para de chorar.

Danilo S. Carvalho Hugo C. C. Carneiro

Processamento de Linguagem Natural

Page 28: Tutorial em Processamento de Linguagem Natural

Significado: Modelos Semanticos

Sao os modelos linguısticos usados quando a informacaodesejada e o significado dos termos do texto.

Sequencias, sımbolos, regras, posicoes ou vetores destinam-sea elucidar o sentido do texto em vez da estrutura.

Podem conter um aspecto adicional: relacoes semanticas.

Danilo S. Carvalho Hugo C. C. Carneiro

Processamento de Linguagem Natural

Page 29: Tutorial em Processamento de Linguagem Natural

Significado: Relacoes semanticas

Expressam as interacoes existentes entre o significado de duasou mais palavras os expressoes.

Permitem aproximar textos estruturalmente diferentes, masproximos em significado.

Exemplo:

Danilo S. Carvalho Hugo C. C. Carneiro

Processamento de Linguagem Natural

Page 30: Tutorial em Processamento de Linguagem Natural

Processamento de Linguagem NaturalPrimeiro Encontro em Computacao Semantica - Tutoriais

Danilo S. CarvalhoHugo C. C. Carneiro

Danilo S. Carvalho Hugo C. C. Carneiro

Processamento de Linguagem Natural