Mahout. Machine Learning - QConSP · 2016. 8. 26. · Exemplo de um recorte de convocação:...

34

Transcript of Mahout. Machine Learning - QConSP · 2016. 8. 26. · Exemplo de um recorte de convocação:...

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