mahout. machine learning - qconsp · 2016. 8. 26. · exemplo de um recorte de convocação:...

34

Upload: others

Post on 29-Sep-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Mahout. Machine Learning - QConSP · 2016. 8. 26. · Exemplo de um recorte de convocação: “Fulano B Santos OAB: 119354/SP-A" T.R.T. 00027626820125020072 RO 72ª VT de São Paulo
Page 2: Mahout. Machine Learning - QConSP · 2016. 8. 26. · Exemplo de um recorte de convocação: “Fulano B Santos OAB: 119354/SP-A" T.R.T. 00027626820125020072 RO 72ª VT de São Paulo

Machine Learning

Classificação de documentos com Apache Mahout.

Page 3: Mahout. Machine Learning - QConSP · 2016. 8. 26. · Exemplo de um recorte de convocação: “Fulano B Santos OAB: 119354/SP-A" T.R.T. 00027626820125020072 RO 72ª VT de São Paulo

● Contexto

● Objetivo

● Solução

● Resultados

● Prática

Agenda

Page 4: Mahout. Machine Learning - QConSP · 2016. 8. 26. · Exemplo de um recorte de convocação: “Fulano B Santos OAB: 119354/SP-A" T.R.T. 00027626820125020072 RO 72ª VT de São Paulo

Contexto

Page 5: Mahout. Machine Learning - QConSP · 2016. 8. 26. · Exemplo de um recorte de convocação: “Fulano B Santos OAB: 119354/SP-A" T.R.T. 00027626820125020072 RO 72ª VT de São Paulo

Uma assessoria jurídica separa, classifica e encaminha convocações judiciais

aos advogados associados. Seu processo de trabalho, inclui:

● 200+ diários oficiais publicados entre 06h e 11h.

● Recortar as convocações.

● Classificação manual (cerca de 80% - 14M / mês).

Contexto

Page 6: Mahout. Machine Learning - QConSP · 2016. 8. 26. · Exemplo de um recorte de convocação: “Fulano B Santos OAB: 119354/SP-A" T.R.T. 00027626820125020072 RO 72ª VT de São Paulo

Exemplo de um recorte de convocação:

“Fulano Beltrano dos Santos OAB: 119354/SP-A" T.R.T. 00027626820125020072

RO 72ª VT de São Paulo. EDITAL Nº 0006506/2015 - PAUTA DE JULGAMENTO.

Ciclano de Souza Silva X Claro S/A , Xpto Teleservicos S.A.”

Contexto

Page 7: Mahout. Machine Learning - QConSP · 2016. 8. 26. · Exemplo de um recorte de convocação: “Fulano B Santos OAB: 119354/SP-A" T.R.T. 00027626820125020072 RO 72ª VT de São Paulo

Exemplo de um recorte de convocação:

“Fulano B Santos OAB: 119354/SP-A" T.R.T. 00027626820125020072 RO 72ª VT

de São Paulo. EDITAL Nº 0006506/2015 - PAUTA DE JULGAMENTO. Ciclano de

Souza Silva X Claro S/A , Xpto Teleservicos S.A.”

Contexto

Page 8: Mahout. Machine Learning - QConSP · 2016. 8. 26. · Exemplo de um recorte de convocação: “Fulano B Santos OAB: 119354/SP-A" T.R.T. 00027626820125020072 RO 72ª VT de São Paulo

Exemplo de um recorte de convocação:

“Fulano B Santos T.R.T. 00027626820125020072 RO 72ª VT de São Paulo. EDITAL

Nº 0006506/2015 - PAUTA DE JULGAMENTO. Ciclano de Souza Silva OAB:

119354/SP-A" X Claro S/A , Xpto Teleservicos S.A.”

Contexto

Page 9: Mahout. Machine Learning - QConSP · 2016. 8. 26. · Exemplo de um recorte de convocação: “Fulano B Santos OAB: 119354/SP-A" T.R.T. 00027626820125020072 RO 72ª VT de São Paulo

Os principais objetivos deste processo são:

● Minimizar spam (?%) e classificação crítica (< 1%).

● Diferencial de mercado.

Contexto

Page 10: Mahout. Machine Learning - QConSP · 2016. 8. 26. · Exemplo de um recorte de convocação: “Fulano B Santos OAB: 119354/SP-A" T.R.T. 00027626820125020072 RO 72ª VT de São Paulo

O volume de trabalho diário dificulta a evolução do processo:

● “Afoga” o departamento de TI e os analistas.

● Muitos “incêndios”, sobra pouco tempo para atividades gerenciais.

Contexto

Page 11: Mahout. Machine Learning - QConSP · 2016. 8. 26. · Exemplo de um recorte de convocação: “Fulano B Santos OAB: 119354/SP-A" T.R.T. 00027626820125020072 RO 72ª VT de São Paulo

Objetivo

Page 12: Mahout. Machine Learning - QConSP · 2016. 8. 26. · Exemplo de um recorte de convocação: “Fulano B Santos OAB: 119354/SP-A" T.R.T. 00027626820125020072 RO 72ª VT de São Paulo

Melhorar a classificação automatica (~20%) para “desafogar” a TI, os analistas

e a gestão. Premissas, riscos e desafios devem ser considerados:

● [P]: Criar um classificador que complemente o que já existe.

● [R]: Spam e classificação crítica (diferencial de mercado).

● [D]: Ser eficiente sem comprometer o tempo disponível da classificação

automática.

Objetivo

Page 13: Mahout. Machine Learning - QConSP · 2016. 8. 26. · Exemplo de um recorte de convocação: “Fulano B Santos OAB: 119354/SP-A" T.R.T. 00027626820125020072 RO 72ª VT de São Paulo

Objetivo

Classificação Aut. Complementar

Inteligência Artificial

Download dosDiários Oficiais

Classificação Aut.Existente

ClassificaçãoManual

Page 14: Mahout. Machine Learning - QConSP · 2016. 8. 26. · Exemplo de um recorte de convocação: “Fulano B Santos OAB: 119354/SP-A" T.R.T. 00027626820125020072 RO 72ª VT de São Paulo

Solução

Page 15: Mahout. Machine Learning - QConSP · 2016. 8. 26. · Exemplo de um recorte de convocação: “Fulano B Santos OAB: 119354/SP-A" T.R.T. 00027626820125020072 RO 72ª VT de São Paulo

Desenvolver um classificador baseado em inteligência artificial, visto que

regras conhecidas (determinísticas ~20%) já são tratadas. Inicialmente

pensamos em:

● Classificação direta (aprendizado supervisionado).

http://www.infoq.com/br/presentations/machine-learning-em-java-com-apache-mahout

Solução

Page 16: Mahout. Machine Learning - QConSP · 2016. 8. 26. · Exemplo de um recorte de convocação: “Fulano B Santos OAB: 119354/SP-A" T.R.T. 00027626820125020072 RO 72ª VT de São Paulo

Experimentos mostraram que os documentos (convocações judiciais) tinham

baixa ocorrência de:

● Palavras específicas de contexto.

● Sequência estruturada (bigramas e trigramas).

● E ai... Desastre!

● Então...

Solução

Page 17: Mahout. Machine Learning - QConSP · 2016. 8. 26. · Exemplo de um recorte de convocação: “Fulano B Santos OAB: 119354/SP-A" T.R.T. 00027626820125020072 RO 72ª VT de São Paulo

#fiqueiputo

Page 18: Mahout. Machine Learning - QConSP · 2016. 8. 26. · Exemplo de um recorte de convocação: “Fulano B Santos OAB: 119354/SP-A" T.R.T. 00027626820125020072 RO 72ª VT de São Paulo

Suspeita?

Page 19: Mahout. Machine Learning - QConSP · 2016. 8. 26. · Exemplo de um recorte de convocação: “Fulano B Santos OAB: 119354/SP-A" T.R.T. 00027626820125020072 RO 72ª VT de São Paulo

Solução

Page 20: Mahout. Machine Learning - QConSP · 2016. 8. 26. · Exemplo de um recorte de convocação: “Fulano B Santos OAB: 119354/SP-A" T.R.T. 00027626820125020072 RO 72ª VT de São Paulo

Encontrar uma redução que maximize as diferenças entre os dados, para isso

tentamos:

● Redução de PCA [:(

● Quebrar as convocações em sentenças (separação mais estruturada), para

facilitar a classificação de termos e grupos de substantivos / grupos

verbais. Ex:

Solução

Page 21: Mahout. Machine Learning - QConSP · 2016. 8. 26. · Exemplo de um recorte de convocação: “Fulano B Santos OAB: 119354/SP-A" T.R.T. 00027626820125020072 RO 72ª VT de São Paulo

FULANO CICLANO DA SILVA São Paulo 44ª Vara do Trabalho 00006175520145020044

(00617201404402002). BELTRANO DA SILVA, Empresa Brasileira de Cosmeticos LTDA Intimação.

Comparecer na secretaria em 5 dias a fim de retirar alvara.

Sentenças:

1. FULANO CICLANO DA SILVA São Paulo 44ª Vara do Trabalho 00006175520145020044

(00617201404402002).

2. BELTRANO DA SILVA, Empresa Brasileira de Cosmeticos LTDA Intimação.

3. Comparecer na secretaria em 5 dias a fim de retirar alvara.

Solução

Page 22: Mahout. Machine Learning - QConSP · 2016. 8. 26. · Exemplo de um recorte de convocação: “Fulano B Santos OAB: 119354/SP-A" T.R.T. 00027626820125020072 RO 72ª VT de São Paulo

FULANO CICLANO DA SILVA São Paulo 44ª Vara do Trabalho 00006175520145020044

(00617201404402002). BELTRANO DA SILVA, Empresa Brasileira de Cosmeticos LTDA Intimação.

Comparecer na secretaria em 5 dias a fim de retirar alvara.

Sentenças:

1. FULANO CICLANO DA SILVA São Paulo 44ª Vara do Trabalho 00006175520145020044

(00617201404402002).

2. BELTRANO DA SILVA, Empresa Brasileira de Cosmeticos LTDA Intimação.

3. Comparecer na secretaria em 5 dias a fim de retirar alvara.

Solução

Page 23: Mahout. Machine Learning - QConSP · 2016. 8. 26. · Exemplo de um recorte de convocação: “Fulano B Santos OAB: 119354/SP-A" T.R.T. 00027626820125020072 RO 72ª VT de São Paulo

FULANO CICLANO DA SILVA São Paulo 44ª Vara do Trabalho 00006175520145020044

(00617201404402002). BELTRANO DA SILVA, Empresa Brasileira de Cosmeticos LTDA Intimação.

Comparecer na secretaria em 5 dias a fim de retirar alvara.

Sentenças:

1. FULANO CICLANO DA SILVA São Paulo 44ª Vara do Trabalho 00006175520145020044

(00617201404402002).

2. BELTRANO DA SILVA, Empresa Brasileira de Cosmeticos LTDA Intimação.

3. Comparecer na secretaria em 5 dias a fim de retirar alvara.

Solução

Page 24: Mahout. Machine Learning - QConSP · 2016. 8. 26. · Exemplo de um recorte de convocação: “Fulano B Santos OAB: 119354/SP-A" T.R.T. 00027626820125020072 RO 72ª VT de São Paulo

Pré-processar os textos, permitiu caracterizar convocações interessantes e

convocações a serem descartadas. Isso envolveu:

● Detectção de sentenças.

● Classificação de termos.

● Chunking (dividir texto em palavras sintaticamente correlacionadas, tais

como: grupos de substantivos e grupos verbais).

Solução

Page 25: Mahout. Machine Learning - QConSP · 2016. 8. 26. · Exemplo de um recorte de convocação: “Fulano B Santos OAB: 119354/SP-A" T.R.T. 00027626820125020072 RO 72ª VT de São Paulo

Preparação das amostras:

● Apache Open NLP○ Separação de sentenças

○ Classificação de termos

○ Chunking

● Scripts próprios○ Disparo e coleta do processamento.

Solução

Page 26: Mahout. Machine Learning - QConSP · 2016. 8. 26. · Exemplo de um recorte de convocação: “Fulano B Santos OAB: 119354/SP-A" T.R.T. 00027626820125020072 RO 72ª VT de São Paulo

Classificação de intimações:

● Apache Mahout○ Sequencialização das amostras

○ Vetorização dos dados de treino e teste (bag of words)

○ Treinamento

○ Classificação

● Scripts próprios○ Disparo das rotinas de processamento.

Solução

Page 27: Mahout. Machine Learning - QConSP · 2016. 8. 26. · Exemplo de um recorte de convocação: “Fulano B Santos OAB: 119354/SP-A" T.R.T. 00027626820125020072 RO 72ª VT de São Paulo

Resultados

APROVADOS DESCARTADOS ACERTOS

APROVADOS 64.934 667 98.98%

DESCARTADOS 40.300 192.388 82.68%

DESCARTES ERRADOS 0.22%

APROVAÇÕES ERRADAS 13.51%

Page 28: Mahout. Machine Learning - QConSP · 2016. 8. 26. · Exemplo de um recorte de convocação: “Fulano B Santos OAB: 119354/SP-A" T.R.T. 00027626820125020072 RO 72ª VT de São Paulo

● Os resultados se mostraram estáveis (pouca variação) em produção

(medição em paralelo com processo existente).

● Analisar manualmente as aprovações resulta em 64.7% menos trabalho.○ Minimizar o número de spam

○ Risco: Assume 0.22% de notificações não recebidas.

● Analisar manualmente as reprovações resulta em 35.3% menos trabalho.○ Minimizar o número de notificações não recebidas.

○ Assume que 13.51% dos associados receberão spam.

Resultados

Page 29: Mahout. Machine Learning - QConSP · 2016. 8. 26. · Exemplo de um recorte de convocação: “Fulano B Santos OAB: 119354/SP-A" T.R.T. 00027626820125020072 RO 72ª VT de São Paulo

Prática

Page 30: Mahout. Machine Learning - QConSP · 2016. 8. 26. · Exemplo de um recorte de convocação: “Fulano B Santos OAB: 119354/SP-A" T.R.T. 00027626820125020072 RO 72ª VT de São Paulo

● Bag of words○ Sequencialização

○ Vetorização

● Treinamento

● Teste

Prática

Page 31: Mahout. Machine Learning - QConSP · 2016. 8. 26. · Exemplo de um recorte de convocação: “Fulano B Santos OAB: 119354/SP-A" T.R.T. 00027626820125020072 RO 72ª VT de São Paulo

Porquê Naive Bayes?

Prática

Page 32: Mahout. Machine Learning - QConSP · 2016. 8. 26. · Exemplo de um recorte de convocação: “Fulano B Santos OAB: 119354/SP-A" T.R.T. 00027626820125020072 RO 72ª VT de São Paulo

Porquê treinar o modelo via linha de comando?

● Facilidade e agilidade de manutenção.

● Tratar o treinamento como parte da infraestrutura○ Subir máquina em núvem

○ Carregar imagem Docker

○ Executar script

○ Descarregar modelo treinado

○ Encerrar máquina

Prática

Page 33: Mahout. Machine Learning - QConSP · 2016. 8. 26. · Exemplo de um recorte de convocação: “Fulano B Santos OAB: 119354/SP-A" T.R.T. 00027626820125020072 RO 72ª VT de São Paulo

Classificação de novos dados:

...

model = NaiveBayesModel.load("/root/files/model")

label = model.predict(“newFilePath”)

...

Prática

Page 34: Mahout. Machine Learning - QConSP · 2016. 8. 26. · Exemplo de um recorte de convocação: “Fulano B Santos OAB: 119354/SP-A" T.R.T. 00027626820125020072 RO 72ª VT de São Paulo

Obrigado