sistemas de processamento de linguagem natural na prática · mulheres cantando por homens que...

92
Sistemas de Processamento de Linguagem Natural na Prática Lições aprendidas na busca por insights em dados não estruturados William Colen Head de IA @ Stilingue (www.stilingue.com.br) Member @ Apache SF (www.apache.org) PMC/Commiter @ Apache OpenNLP (opennlp.apache.org) [email protected] @wcolen slideshare: wcolen https://github.com/wcolen/qconsp2018-opennlp-flink-example

Upload: doanxuyen

Post on 01-Dec-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Sistemas de Processamento de Linguagem Natural na Prática

Lições aprendidas na busca por insights em dados não estruturados

William ColenHead de IA @ Stilingue (www.stilingue.com.br)

Member @ Apache SF (www.apache.org)PMC/Commiter @ Apache OpenNLP (opennlp.apache.org)

[email protected]

@wcolenslideshare: wcolen

https://github.com/wcolen/qconsp2018-opennlp-flink-example

Page 2: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

1Motivação NLP Como fazer em

Português

2 3Indo um pouco mais profundo

4Analisandoa Internet

5

Page 3: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

1Motivação NLP Como fazer em

Português

2 3Indo um pouco mais profundo

4Analisandoa Internet

5

Page 4: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Mas o que é Natural Language Processing?

Page 5: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Línguas Naturais

Page 6: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Línguas Naturais

Aquelas que evoluem naturalmente por humanos devido ao uso e repetição sem planejamento ou

premeditação.

Page 7: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Línguas Estruturadas

Aquelas construídas ou formais, como as utilizadas para programar um computador, ou a linguagem

matemática.

Page 8: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Boa parte do conhecimento humano está em documentos difíceis de serem interpretados por computadores

Page 9: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Boa parte do conhecimento humano está em documentos difíceis de serem interpretados por computadores

Page 10: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Boa parte do conhecimento humano está em documentos difíceis de serem interpretados por computadores

Informação de alto valore mais atualizada

Mas… com muito ruído, semântica oculta e busca ineficiente

Page 11: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Boa parte do conhecimento humano está em documentos difíceis de serem interpretados por computadores

Informação de alto valor e mais atualizada

Mas… com muito ruído, semântica oculta e busca ineficiente

Processamento de Linguagem Natural

Page 12: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

O QUE?QUEM?

ONDE?

QUANDO?

Page 13: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

FALARAM SOBRE CERVEJA NO FERIADO DO DIA DO TRABALHADOR?

O QUE?

Page 14: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Ranking/Evolução - Publicações cerveja durante o feriado prolongado Dia do Trabalhador

Page 15: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Cerveja x Tema - Publicações cerveja durante o feriado prolongado Dia do Trabalhador

Page 16: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Sentimento - Publicações cerveja durante o feriado prolongado Dia do Trabalhador

Page 17: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Termos Correlacionados - Publicações cerveja durante o feriado prolongado Dia do Trabalhador

Page 18: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Sunburst Termos - Publicações cerveja durante o feriado prolongado Dia do Trabalhador

Page 19: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

#comoEuConsigo

Page 20: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Resolvendo um problema simples de cada vez

Page 21: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

1Motivação NLP Como fazer em

Português

2 3Indo um pouco mais profundo

4Analisandoa Internet

5

Page 22: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Desafio: ambiguidade

O sr. Mendonça chegou.

Quem casa quer casa.

Eu preparei o pato dela.

Page 23: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

|O|sr.|Paulo|chegou|.|||Vamos|?||

|O|sr.|Paulo|chegou|.| ART ABR N VERB PU

|O sr. Paulo |chegou Sintagma Nominal Sintagma Verbal

O sr. Paulo está chegando . | Sujeito | Predicado

O sr. Paulo chegou . | Vamos ?||SentenceDetector

Tokenizer

POS Tagger

Chunker

Shallow Parser

O sr. Paulo chegou . Vamos ?||

Page 24: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

PipelineLanguageDetector

SentenceDetector Tokenizer POS Tagger Chunker

Lemmatizer

Name Finder

Sentiment

Entity Linker

Index

Page 25: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

PipelineLanguageDetector

SentenceDetector Tokenizer POS Tagger Chunker

Lemmatizer

Name Finder

Sentiment

Entity Linker

Index

SegmentaçãoSeleção Anotação Anotação++

Page 26: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Desafios em trabalhar com português

Escassos recursos linguísticos

Dicionários, corpus, ferramentas e modelos

Page 27: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Desafios em trabalhar com portuguêsEscassos recursos linguísticos

Dicionários, corpus, ferramentas e modelos

Page 28: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

1Motivação NLP Como fazer em

Português

2 3Indo um pouco mais profundo

4Analisandoa Internet

5

Page 29: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Desafios em trabalhar com portuguêsEscassos recursos linguísticos

Dicionários, corpus, ferramentas e modelos

Page 30: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Dicionários

LéxicosOrtográficos Semânticos

Page 31: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Dicionários

Ortográficos

Hunspell pt-BR (corretor ortográfico do LibreOffice)

esse comercial da #brama, em são paulo c/ mulheres cantando por homens q bebe +

conscientemente e ótm :P

Esse comercial da Brahma em São Paulo com mulheres cantando por homens que bebem mais

conscientemente e ótimo.

Page 32: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Dicionários

LéxicosOrtográficos Semânticos

Page 33: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Dicionários

Léxicos

JSpell.Br (CoGrOO USP/SP)

Podem ajudar em anotadores, comoPOS Tagging e Lematização

https://github.com/cogroo/jspell.br

Page 34: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Dicionários

LéxicosOrtográficos Semânticos

Page 35: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Dicionários

Semânticos

Podem ajudar em termos, entidades e conceitos

Entidades na Stilingue

Page 36: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Semânticos

Page 37: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Analise de sentimento

Semânticos

Page 38: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

PipelineLanguageDetector

SentenceDetector Tokenizer POS Tagger Chunker

Lemmatizer

Name Finder

Sentiment

Entity Linker

Index

Page 39: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Desafios em trabalhar com portuguêsEscassos Recursos linguísticos

Dicionários, corpus, ferramentas e modelos

Page 40: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Corpus

DocumentoNão Anotado Tokens

Page 41: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Corpus

Não Anotado

Wikipedia

• Servem como exemplos de uso da língua

• Criação simples: crawler de notícias, coletar tweets

• Corpus livre e aberto: Wikipedia Dumps https://dumps.wikimedia.org

Page 42: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Corpus

DocumentoNão Anotado Tokens

Page 43: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Corpus

Documentopos eu curti pos eu bebo todas e adoroooo neg ressaca braba com essa cerva de milho neg mano essa cerva ta quente

Outros exemplos- Pares <Língua> <Documento> - Pares <Cancêr Sim|Não> <Laudo médico> …

Page 44: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline
Page 45: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Corpus

DocumentoNão Anotado Tokens

Page 46: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Corpus

Tokens

Floresta (Linguateca)Summit (PUC-RS)

0 A o art F=S _ _ _ _ 1 equipe _ n F=S 0 _ _ _ 2 de de prp _ _ _ _ _ 3 Peter_Savolainen _ prop M=S 0 (PER) (5) _ 4 , _ , _ _ _ _ _ 5 de de prp _ _ _ _ _ 6 o o art M=S _ _ _ _ 7 Instituto_Real_de_Tecnologia _ prop M=S 0 (ORG) (5) _ 8 , _ , _ _ _ _ _ 9 de de prp _ _ _ _ _ 10 Estocolmo Estocolmo prop M=S 0 (PLC) _ _ 11 , _ , _ _ _ _ _ 12 Suécia Suécia prop F=S 0 (PLC) _ _ 13 , _ , _ _ _ _ _ 14 constatou constatar v-fin PS=3S=IND _ _ _ _ 15 que que conj-s _ _ _ _ _ 16 a o art F=S _ _ _ _ 17 diversidade diversidade, diverso n F=S 0 _ _ _ 18 genética genético adj F=S _ _ _ _ 19 era ser v-fin IMPF=3S=IND _ _ _ _ 20 maior maior adj F=S _ _ _ _ 21 entre entre prp _ _ _ _ _ 22 os o art M=P _ _ _ _ 23 cães cão n M=P 0 _ _ _ 24 de de prp _ _ _ _ _ 25 o o art M=S _ _ _ _ 26 leste leste n M=S 0 _ _ _ 27 asiático asiático adj M=S _ _ _ _ 28 . . . _ _ _ _ _

Summit (PUC-RS)

Page 47: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline
Page 48: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

PipelineLanguageDetector

SentenceDetector Tokenizer POS Tagger Chunker

Lemmatizer

Name Finder

Sentiment

Entity Linker

Index

Page 49: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Desafios em trabalhar com portuguêsEscassos Recursos linguísticos

Dicionários, corpus, ferramentas e modelos

Page 50: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Ferramentas

Machine Learning + DL Deep Learning

Page 51: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Ferramentas

Machine Learning + DL NLTK (Python)

spaCy (Python)

Apache OpenNLP (Java)Stanford Core NLP (Java)

CoGrOO (Java)

Centradas em Machine Learning.Podem usar DL para partes específicas.

Ex.: OpenNLP pode usar Word Embeddings como features

Page 52: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Ferramentas

Machine Learning + DL

CoGrOO https://github.com/cogroo/cogroo4/wiki/API-CoGrOO-4

Page 53: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Ferramentas

Machine Learning + DL Deep Learning

Page 54: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Ferramentas

Deep Learning

Tensor FlowApache MXNetEclipse DL4J

PyTorch

Page 55: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Ferramentas

Deep Learning

Tensor FlowApache MXNetEclipse DL4J

PyTorch

Page 56: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Desafios em trabalhar com portuguêsEscassos Recursos linguísticos

Dicionários, corpus, ferramentas e modelos

Page 57: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Modelos

Prateleira Tailor Made

Page 58: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Modelos

• CoGrOO (https://github.com/cogroo/cogroo4/wiki/API-CoGrOO-4)

• Apache OpenNLP (http://opennlp.apache.org/models.html)

• NLTK (http://www.nltk.org/howto/portuguese_en.html)

Prateleira

Sentence Detector | Tokenizer | Named Entity | POS Tagger | Chunking | ParserSentiment | Linking | Word Embeddings

Bons como baseline e para componentes secundários.

Page 59: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Modelos

Prateleira Tailor Made

Page 60: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Modelos

Tailor MadeTreinar um modelo sob medida adequado para o contexto de aplicação utilizando um corpus criado sob medida.

Bons quando para contextos específicos e quando precisamos de maior eficácia.

Page 61: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Desafios em trabalhar com portuguêsEscassos Recursos linguísticos

Dicionários, corpus, ferramentas e modelos

Page 62: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Como criar modelos customizados para máxima eficácia?

Page 63: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

1Motivação NLP Como fazer em

Português

2 3Indo um pouco mais profundo

4Analisandoa Internet

5

Page 64: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Como criar modelos customizados para máxima eficácia?

Ciclo de desenvolvimento

Page 65: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Vamos criar um modelo de entidades nomeadas em notícias

Ciclo de desenvolvimento

Page 66: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Criar um modelo Baseline

Corpus Baseline

AvaliaçãoHomologação

Engenharia de Features

Anotar mais dados

Criar um novo modelo

Ciclo de desenvolvimento

Page 67: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

• Corpus Amazônia: http://www.linguateca.pt/floresta/ficheiros/gz/amazonia.ad.gz

• Apache OpenNLP: https://www.apache.org/dyn/closer.cgi/opennlp/opennlp-1.8.4/apache-opennlp-1.8.4-bin.tar.gz

Criar um modelo Baseline

Corpus Baseline

AvaliaçãoHomologação

Engenharia de Features

Anotar mais dados

Criar um modelo

Page 68: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

A1 STA:cu =CJT:fcl ==ADVL:adv("depois" <left>) depois ==ACC-PASS:pron-pers("se" <coll> <left> M 3P ACC) se ==P:v-fin("encontrar" <se-passive> <nosubj> <cjt-head> <fmc> <mv> PR 3P IND VFIN) encontram ==PIV:pp ===H:prp("com" <right>) com ===P<:np ====>N:art("o" <artd> DET F S) a ====H:n("dissidência" <np-def> <ac> <am> F S) dissidência ====N<:pp =====H:prp("de" <sam-> <np-close>) de =====P<:np ======>N:art("o" <artd> <-sam> DET M S) o ======H:n("grupo" <np-def> <HH> M S) grupo ======, ======APP:np =======>N:art("o" <artd> DET M P) os =======H:prop("Bacamarteiros_de_Pinga_Fogo" <org> <np-close> M P) Bacamarteiros_de_Pinga_Fogo =, =CO:conj-c("e" <co-fin> <co-fmc>) e =CJT:x ==SUBJ:np ===>N:art("o" <artd> DET F S) a ===H:n("festa" <np-def> <occ> <left> F S) festa ==P:v-fin("continuar" <cjt-sta> <fmc> <mv> PR 3S IND VFIN) continua ==ADVL:pp ===H:prp("por" <right>) por ===P<:n("muito_tempo" <np-idf> <dur> M S) muito_tempo .

Criar um modelo Baseline

Corpus Baseline

AvaliaçãoHomologação

Engenharia de Features

Anotar mais dados

Criar um modelo

Page 69: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

$ bin/opennlp TokenNameFinderCrossValidator.ad -lang pt -encoding ISO-8859-1 / -data amazonia.ad -reportOutputFile detailed_report.txt / -misclassified true > misclassified.txt

detailed_report.txt misclassified.txt

Criar um modelo Baseline

Corpus Baseline

AvaliaçãoHomologação

Engenharia de Features

Anotar mais dados

Criar um modelo

Page 70: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

detailed_report.txt

Criar um modelo Baseline

Corpus Baseline

AvaliaçãoHomologação

Engenharia de Features

Anotar mais dados

Criar um modelo

Evaluated 275769 samples with 328431 entities; found: 317170 entities; correct: 264015. TOTAL: precision: 83.24%; recall: 80.39%; F1: 81.79%. time: precision: 93.89%; recall: 91.63%; F1: 92.75%. [target: 18338; tp: 16804; fp: 1093] numeric: precision: 90.65%; recall: 89.64%; F1: 90.14%. [target: 15173; tp: 13601; fp: 1403] event: precision: 93.13%; recall: 86.28%; F1: 89.57%. [target: 50094; tp: 43219; fp: 3189] place: precision: 87.99%; recall: 80.35%; F1: 83.99%. [target: 52123; tp: 41879; fp: 5718] person: precision: 79.31%; recall: 81.17%; F1: 80.23%. [target: 85314; tp: 69250; fp: 18069] organization: precision: 78.32%; recall: 78.67%; F1: 78.50%. [target: 69654; tp: 54798; fp: 15167] thing: precision: 78.86%; recall: 68.91%; F1: 73.55%. [target: 9915; tp: 6832; fp: 1832] abstract: precision: 73.97%; recall: 66.85%; F1: 70.23%. [target: 11262; tp: 7529; fp: 2650] artprod: precision: 71.46%; recall: 61.02%; F1: 65.83%. [target: 16558; tp: 10103; fp: 4034]

Page 71: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Criar um modelo Baseline

Corpus Baseline

AvaliaçãoHomologação

Engenharia de Features

Anotar mais dados

Criar um modelo

Confusion Matrix a b c d e f g h i j k l m n o p q r s | <-- classified as <4780195> 409 420 7676 1137 505 1787 132 835 3339 2770 3481 4405 1030 1044 261 418 142 523 | a = other 232 <4123> 26 192 5 74 4 4 . 748 23 422 31 94 14 30 1 . 2 | b = abstract-cont 790 26 <7861> 113 125 22 41 4 6 174 988 104 710 29 144 11 108 . 6 | c = abstract-start 3176 282 69 <13548> 37 164 74 8 19 1348 273 1509 177 507 61 107 18 30 127 | d = artprod-cont 1992 38 258 160 <10927> 21 65 6 20 84 939 73 1447 19 362 7 124 3 13 | e = artprod-start 695 47 15 266 7 <7986> 85 8 . 712 64 508 53 172 35 12 2 4 8 | f = event-cont 4364 15 58 137 98 122 <43825> 10 41 68 539 68 536 34 140 3 24 . 12 | g = event-start 296 . 8 26 2 . 1 <8493> 25 5 4 29 12 15 11 4 2 77 3 | h = numeric-cont 1075 . . 39 18 2 9 12 <13809> 9 7 22 15 10 19 2 12 . 113 | i = numeric-start 1387 512 136 1417 11 358 21 9 4 <37838> 364 2935 184 1694 124 205 17 18 18 | j = organization-cont 2738 64 571 509 559 125 206 21 15 963 <57223> 507 3778 218 1739 21 368 2 27 | k = organization-start 2270 375 30 1413 18 256 39 60 4 2741 187 <51957> 643 1080 133 222 20 21 44 | l = person-cont 4645 84 407 695 776 119 101 9 62 643 2820 1682 <71628> 294 942 57 313 3 34 | m = person-start 770 132 27 659 6 125 20 5 10 3145 147 2240 173 <22709> 91 177 12 7 9 | n = place-cont 1829 35 167 355 285 84 69 1 13 416 2816 345 2678 211 <42553> 42 177 2 45 | o = place-start 232 33 7 146 2 9 6 18 1 498 24 408 19 108 10 <2272> 3 1 1 | p = thing-cont 758 7 93 74 109 5 34 16 26 56 714 71 744 24 134 7 <7034> 4 5 | q = thing-start 185 2 . 13 . 21 2 28 . 36 3 45 3 8 3 9 . <5798> 16 | r = time-cont 823 2 26 111 15 18 19 5 114 38 60 64 83 9 38 4 11 7 <16891>| s = time-start

detailed_report.txt

Page 72: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

misclassified.txt

Criar um modelo Baseline

Corpus Baseline

AvaliaçãoHomologação

Engenharia de Features

Anotar mais dados

Criar um modelo

Expected: { " <START:artprod> Luz Quartiada <END> " é pura <START:abstract> prosa <END> poética que prende o leitor do começo ao <START:event> fim <END> quando descreve personagens como " <START:person> Clarice <END> " e seus anseios de mulher de um mundo escondido e ameaçado pelo progresso :} Predicted: { " <START:abstract> Luz Quartiada <END> " é pura prosa poética que prende o leitor do começo ao <START:event> fim <END> quando descreve personagens como " <START:artprod> Clarice <END> " e seus anseios de mulher de um mundo escondido e ameaçado pelo progresso :} False positives: { [Luz Quartiada, Clarice] } False negatives: { [Luz Quartiada, prosa, Clarice] }

Page 73: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Criar um modelo Baseline

Corpus Baseline

AvaliaçãoHomologação

Engenharia de Features

Anotar mais dados

Criar um modelo

<generators> <cache> <generators> <window prevLength = "2" nextLength = "2"> <tokenclass/> </window> <window prevLength = "2" nextLength = "2"> <token/> </window> <definition/> <prevmap/> <bigram/> <sentence begin="true" end="false"/> </generators> </cache> </generators>

Default feature generator

Page 74: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Criar um modelo Baseline

Corpus Baseline

AvaliaçãoHomologação

Engenharia de Features

Anotar mais dados

Criar um modelo

Default feature generator

Page 75: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Criar um modelo Baseline

Corpus Baseline

AvaliaçãoHomologação

Engenharia de Features

Anotar mais dados

Criar um modelo

<generators> <cache> <generators> <window prevLength = "3" nextLength = "3"> <tokenclass/> </window> <window prevLength = "3" nextLength = "3"> <token/> </window> <definition/> <prevmap/> <bigram/> <sentence begin="true" end="false"/> </generators> </cache> </generators>

Feature generator: v01

Page 76: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Criar um modelo Baseline

Corpus Baseline

AvaliaçãoHomologação

Engenharia de Features

Anotar mais dados

Criar um modelo

Feature generator: v01 x v2Evaluated 275769 samples with 328431 entities; found: 317170 entities; correct: 264015. TOTAL: precision: 83.24%; recall: 80.39%; F1: 81.79%. time: precision: 93.89%; recall: 91.63%; F1: 92.75%. [target: 18338; tp: 16804; fp: 1093] numeric: precision: 90.65%; recall: 89.64%; F1: 90.14%. [target: 15173; tp: 13601; fp: 1403] event: precision: 93.13%; recall: 86.28%; F1: 89.57%. [target: 50094; tp: 43219; fp: 3189] place: precision: 87.99%; recall: 80.35%; F1: 83.99%. [target: 52123; tp: 41879; fp: 5718] person: precision: 79.31%; recall: 81.17%; F1: 80.23%. [target: 85314; tp: 69250; fp: 18069] organization: precision: 78.32%; recall: 78.67%; F1: 78.50%. [target: 69654; tp: 54798; fp: 15167] thing: precision: 78.86%; recall: 68.91%; F1: 73.55%. [target: 9915; tp: 6832; fp: 1832] abstract: precision: 73.97%; recall: 66.85%; F1: 70.23%. [target: 11262; tp: 7529; fp: 2650] artprod: precision: 71.46%; recall: 61.02%; F1: 65.83%. [target: 16558; tp: 10103; fp: 4034]

Evaluated 275769 samples with 328431 entities; found: 318807 entities; correct: 265517. TOTAL: precision: 83.28%; recall: 80.84%; F1: 82.05%. time: precision: 93.90%; recall: 92.16%; F1: 93.02%. [target: 18338; tp: 16900; fp: 1098] numeric: precision: 90.30%; recall: 89.68%; F1: 89.99%. [target: 15173; tp: 13607; fp: 1461] event: precision: 93.17%; recall: 86.15%; F1: 89.53%. [target: 50094; tp: 43158; fp: 3162] place: precision: 87.60%; recall: 81.33%; F1: 84.35%. [target: 52123; tp: 42392; fp: 6000] person: precision: 79.87%; recall: 81.05%; F1: 80.46%. [target: 85314; tp: 69146; fp: 17424] organization: precision: 77.89%; recall: 79.36%; F1: 78.62%. [target: 69654; tp: 55274; fp: 15689] thing: precision: 81.48%; recall: 67.49%; F1: 73.83%. [target: 9915; tp: 6692; fp: 1521] abstract: precision: 75.70%; recall: 65.60%; F1: 70.29%. [target: 11262; tp: 7388; fp: 2371] artprod: precision: 70.60%; recall: 66.19%; F1: 68.32%. [target: 16558; tp: 10960; fp: 4564]

Page 77: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Criar um modelo Baseline

Corpus Baseline

AvaliaçãoHomologação

Engenharia de Features

Anotar mais dados

Criar um modelo

<generators> <cache> <generators> <window prevLength = "3" nextLength = "3"> <tokenclass/> </window> <window prevLength = "3" nextLength = "3"> <token/> </window> <window prevLength = "3" nextLength = "3"> <brownclustertokenclass dict = “brownCluster.txt"/> </window> <window prevLength = "3" nextLength = "3"> <tokenpos model = "en-pos-perceptron.bin"/> </window> <definition/> <prevmap/> <bigram/> <sentence begin="true" end="false"/> </generators> </cache> </generators>

Feature generator: v02

Page 78: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Criar um modelo Baseline

Corpus Baseline

AvaliaçãoHomologação

Engenharia de Features

Anotar mais dados

Criar um modelo

Feature generator: v2 x v3Evaluated 275769 samples with 328431 entities; found: 318807 entities; correct: 265517. TOTAL: precision: 83.28%; recall: 80.84%; F1: 82.05%. time: precision: 93.90%; recall: 92.16%; F1: 93.02%. [target: 18338; tp: 16900; fp: 1098] numeric: precision: 90.30%; recall: 89.68%; F1: 89.99%. [target: 15173; tp: 13607; fp: 1461] event: precision: 93.17%; recall: 86.15%; F1: 89.53%. [target: 50094; tp: 43158; fp: 3162] place: precision: 87.60%; recall: 81.33%; F1: 84.35%. [target: 52123; tp: 42392; fp: 6000] person: precision: 79.87%; recall: 81.05%; F1: 80.46%. [target: 85314; tp: 69146; fp: 17424] organization: precision: 77.89%; recall: 79.36%; F1: 78.62%. [target: 69654; tp: 55274; fp: 15689] thing: precision: 81.48%; recall: 67.49%; F1: 73.83%. [target: 9915; tp: 6692; fp: 1521] abstract: precision: 75.70%; recall: 65.60%; F1: 70.29%. [target: 11262; tp: 7388; fp: 2371] artprod: precision: 70.60%; recall: 66.19%; F1: 68.32%. [target: 16558; tp: 10960; fp: 4564]

Evaluated 275769 samples with 328431 entities; found: 319684 entities; correct: 265738. TOTAL: precision: 83.13%; recall: 80.91%; F1: 82.00%. time: precision: 93.99%; recall: 92.23%; F1: 93.10%. [target: 18338; tp: 16914; fp: 1082] numeric: precision: 91.39%; recall: 89.71%; F1: 90.54%. [target: 15173; tp: 13611; fp: 1283] event: precision: 93.18%; recall: 85.64%; F1: 89.25%. [target: 50094; tp: 42903; fp: 3141] place: precision: 87.28%; recall: 81.42%; F1: 84.25%. [target: 52123; tp: 42437; fp: 6183] person: precision: 79.93%; recall: 82.02%; F1: 80.96%. [target: 85314; tp: 69978; fp: 17571] organization: precision: 77.56%; recall: 79.26%; F1: 78.40%. [target: 69654; tp: 55206; fp: 15973] thing: precision: 81.63%; recall: 66.17%; F1: 73.09%. [target: 9915; tp: 6561; fp: 1476] abstract: precision: 73.10%; recall: 65.11%; F1: 68.87%. [target: 11262; tp: 7333; fp: 2699] artprod: precision: 70.40%; recall: 65.20%; F1: 67.70%. [target: 16558; tp: 10795; fp: 4538]

Page 79: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Criar um modelo Baseline

Corpus Baseline

AvaliaçãoHomologação

Engenharia de Features

Anotar mais dados

Criar um modelo

Page 80: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Criar um modelo Baseline

Corpus Baseline

AvaliaçãoHomologação

Engenharia de Features

Anotar mais dados

Criar um modelo

$ bin/opennlp TokenNameFinderTrainer.ad -lang pt -encoding ISO-8859-1 / -data amazonia.ad -model qcon.bin

Treinar um modelo para homologação

Page 81: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Criar um modelo Baseline

Corpus Baseline

AvaliaçãoHomologação

Engenharia de Features

Anotar mais dados

Criar um modelo

$ bin/opennlp TokenizerMEEvaluator.ad -lang pt -encoding ISO-8859-1 / -data homologacao.ad -model qcon.bin -detokenizer portuguese.xml / -misclassified true

Com o modelo treinado, avaliar em dados reais anotados (corpus ouro)

Page 82: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

#comoJuntaTudo ou…

como processar a Internet??

Page 83: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

1Motivação NLP Como fazer em

Português

2 3Indo um pouco mais profundo

4Analisandoa Internet

5

Page 84: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

PipelineLanguageDetector

SentenceDetector Tokenizer POS Tagger Chunker

Lemmatizer

Name Finder

Sentiment

Entity Linker

Index

SegmentaçãoSeleção Anotação Anotação++

Page 85: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

SentenceDetector Tokenizer POS Tagger Name Finder

Index

LanguageDetector

Datasource

NLP em Streaming

Page 86: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

NLP em Streaming

https://github.com/wcolen/qconsp2018-opennlp-flink-example

final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();// Perform language detection SplitStream<Annotation> articleStream = rawStream .map(new LanguageDetectorFunction()) .split(new LanguageSelector(nlpLanguages));

// English NLP pipeline articleStream.select("eng") .map(new SentenceDetectorFunction(engSentenceModel)) .map(new TokenizerFunction(engTokenizerModel)) .map(new POSTaggerFunction(engPosModel)) .map(new ChunkerFunction(engChunkModel)) .map(new NameFinderFunction(engNerPersonModel)) .addSink(new ElasticsearchSink<>(config, transportAddresses, new ESSinkFunction()));

// Portuguese NLP pipeline articleStream.select("por") .map(new SentenceDetectorFunction(porSentenceModel)) .map(new TokenizerFunction(porTokenizerModel)) .map(new POSTaggerFunction(porPosModel)) .map(new ChunkerFunction(porChunkModel)) .map(new NameFinderFunction(porNerPersonModel)) .addSink(new ElasticsearchSink<>(config, transportAddresses, new ESSinkFunction()));

Page 87: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline
Page 88: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline
Page 89: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline
Page 90: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Agradecimentos equipe Apache OpenNLP

Suneel Marthi@suneelmarthi

Jörn Kottmann @joernkottmann

Tommaso Teofili@tteofili

Peter Thygesenin:thygesen

@pthyge

William Colen@wcolen

Rodrigo Agerri@ragerri

Daniel Russin:daniel-russ-9541aa15

Koji Sekiguchi@kojisays

Jeff Zemerickin:jeffzemerick

Bruno Kinoshita @kinow

Page 91: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Agradecimentos

Equipe de IA da Stilinguehttp://www.stilingue.com.br @Stilingue_API#contratandoMentesCuriosas e parcerias!!

Page 92: Sistemas de Processamento de Linguagem Natural na Prática · mulheres cantando por homens que bebem mais conscientemente e ótimo. ... 22 os o art M=P _ _ _ _ ... Bons como baseline

Sistemas de Processamento de Linguagem Natural na Prática

William ColenHead de IA @ Stilingue (www.stilingue.com.br)

Member @ Apache SF (www.apache.org)PMC/Commiter @ Apache OpenNLP (opennlp.apache.org)

[email protected]

@wcolen

slideshare: wcolen https://github.com/wcolen/qconsp2018-opennlp-flink-example

Obrigado!Perguntas?