SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
Text Mining
Classificando textos com o Elastic Search
4º Meetup do Elastic São Paulo User Group - 04/05/2016
Jozias Rolim
jozias.rolim@icolabora.com.br
Analista desenvolvedor sênior - iColabora
Mestrando em Sistemas de Informação - PPgSi - EACH|USP
Membro mais bonito do Elastic São Paulo User Group
Sumário
O problema
Estrategia convencional
Aplicando o Elastic Search como estratégia para solução do
problema
Comparação com estratégias convencionais
Dificuldades e possíveis soluções 3
O Problema
4
Classificar automaticamente reclamações da Anatel
Clientes realizam reclamações sobre os seus serviços na Anatel
O operador classifica a reclamação
As reclamações devem ser classificadas para que possam ser encaminhadas
para os setores responsáveis da empresa.
Classificação está relacionada com indicadores de qualidade - Anatel
A árvore de reclamação é imensa
O operador classifica de forma equivocada
Classificar demanda tempo - Aumento da produtividade do operador 5
Estrategia convencional
6
7
Aplicando o Elastic Search como
estratégia para solução do problema
8
Definindo analyzer
"analyzer": {
"analyzer_classificador": {
"type": "custom",
"tokenizer": "lowercase",
"filter": [
"token_type",
"custom_stop_words",
"asciifolding",
"brazilian_stop",
"stem_minimal_pt",
],
"char_filter": [ "html_strip" ]
}
},
"filter": {
"index_filter": {
"type": "common_grams",
"common_words": "_brazilian_"
},
"search_filter": {
"type": "common_grams",
"common_words": "_brazilian_",
"query_mode": true
},
"stem_minimal_pt": {
"type": "stemmer",
"language": "brazilian"
},
"brazilian_stop": {
"type": "stop",
"stopwords": "_brazilian_"
},
"custom_stop_words": {
"type": "stop",
"stopwords": [...]
},
"token_type": {
"type": "word_delimiter",
"catenate_words": true,
"catenate_all": true,
"split_on_case_change": true,
"split_on_numerics": true
}
}
}
9
Mapeando uso do analyzer no indice, _mapping
{
"indice": {
"properties": {
"campo_texto": {
"type": "string",
"fields": {
"raw": {
"type": "string",
"index": "not_analyzed"
},
"classificacao": {
"type": "string",
"index_options": "freqs",
"analyzer": "classificacao_email"
}
}
}
, "classe": {
"type": "string",
"index": "not_analyzed"
}
}
}
}
10
Realizando a consulta dos textos mais similares
_search?analyzer=analyzer_classificador
{
"query": {
"common" :{
"campo_texto.classificacao":{
"query": "Texto de reclamação informado",
"cutoff_frequency": 0.001
}
}
},
"size": 1,
“ A consulta retorna apenas
o documento mais similar,
melhores resultados podem
ser obtidos, retornando mais
documentos e comparando
as classes deles.”
11
Dificuldades e possíveis soluções
12
Dificuldades e possíveis soluções
Base de dados com classificações erradas - Filtrar os dados que possuem
classificação errada para a base
Neologismo - Utilizar synonyms
Palavras com escrita errada - Ignorar palavras não presentes no dicionário
Palavras abreviadas - Ignorar ou utilizar synonyms
Quantidade de sinônimos elevada - Mapear a maior quantidade de
sinônimos possível
13
Comparação com estratégias
convencionais
14
Estratégia convêncional x ElasticsearchTaxadeacerto-Acurácia
Tempo de desenvolvimento
Estratégia convêncional
Elasticsearch
15
Agora é com vocês!
16
Text Mining
Classificando textos com o elasticsearch
4º Meetup do Elastic São Paulo User Group - 04/05/2016

Contenu connexe

Similaire à [Case Machine Learning- iColabora]Text mining - Classificando textos com Elastic Search

Uma introdução à mineração de informações
Uma introdução à mineração de informaçõesUma introdução à mineração de informações
Uma introdução à mineração de informaçõesFabrício Barth
 
20230804_266_ClubServicenow_Catalog.pdf
20230804_266_ClubServicenow_Catalog.pdf20230804_266_ClubServicenow_Catalog.pdf
20230804_266_ClubServicenow_Catalog.pdfTiago Macul
 
TDC2016POA | Trilha PHP - Desenvolvendo um buscador com PHP e Elasticsearch
TDC2016POA | Trilha PHP - Desenvolvendo um buscador com PHP e ElasticsearchTDC2016POA | Trilha PHP - Desenvolvendo um buscador com PHP e Elasticsearch
TDC2016POA | Trilha PHP - Desenvolvendo um buscador com PHP e Elasticsearchtdc-globalcode
 
Oficina: construção de modelos descritivos e preditivos utilizando R
Oficina: construção de modelos descritivos e preditivos utilizando ROficina: construção de modelos descritivos e preditivos utilizando R
Oficina: construção de modelos descritivos e preditivos utilizando RFabrício Barth
 
Desenvolvendo um buscador com PHP e Elasticsearch - Fernando Silva - Tchelinu...
Desenvolvendo um buscador com PHP e Elasticsearch - Fernando Silva - Tchelinu...Desenvolvendo um buscador com PHP e Elasticsearch - Fernando Silva - Tchelinu...
Desenvolvendo um buscador com PHP e Elasticsearch - Fernando Silva - Tchelinu...Tchelinux
 
01/12 Introducao Workshop Atlas.ti 8
01/12 Introducao Workshop Atlas.ti 801/12 Introducao Workshop Atlas.ti 8
01/12 Introducao Workshop Atlas.ti 8Cícera Malheiro
 
Classificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesClassificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesElaine Cecília Gatto
 
Case Recommender: Fazendo recomendação em Python
Case Recommender: Fazendo recomendação em PythonCase Recommender: Fazendo recomendação em Python
Case Recommender: Fazendo recomendação em PythonArthur Fortes
 
Capítulo 16 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 16 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 16 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 16 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Os Fantasmas !
 
Quais as habilidades técnicas todo PM precisa saber - Petrus Gomes | Closecare
Quais as habilidades técnicas todo PM precisa saber - Petrus Gomes | Closecare  Quais as habilidades técnicas todo PM precisa saber - Petrus Gomes | Closecare
Quais as habilidades técnicas todo PM precisa saber - Petrus Gomes | Closecare Product Camp Brasil
 
Desenvolvimento de um Sistema de Recomendação de Artigos Científicos e Avalia...
Desenvolvimento de um Sistema de Recomendação de Artigos Científicos e Avalia...Desenvolvimento de um Sistema de Recomendação de Artigos Científicos e Avalia...
Desenvolvimento de um Sistema de Recomendação de Artigos Científicos e Avalia...Christiano Avila
 
Data Science Qmeeting 2018
Data Science Qmeeting 2018Data Science Qmeeting 2018
Data Science Qmeeting 2018Roberto Oliveira
 
Data Mining (mineração de dados)
Data Mining (mineração de dados)Data Mining (mineração de dados)
Data Mining (mineração de dados)Jéssica Góis Scala
 
requisitos de software.pptx
requisitos de software.pptxrequisitos de software.pptx
requisitos de software.pptxAlanCunha14
 
Sistemas de Recomendação - O que são? Como funcionam? Do que se alimentam?
Sistemas de Recomendação - O que são? Como funcionam? Do que se alimentam?Sistemas de Recomendação - O que são? Como funcionam? Do que se alimentam?
Sistemas de Recomendação - O que são? Como funcionam? Do que se alimentam?Marlesson Santana
 

Similaire à [Case Machine Learning- iColabora]Text mining - Classificando textos com Elastic Search (20)

Uma introdução à mineração de informações
Uma introdução à mineração de informaçõesUma introdução à mineração de informações
Uma introdução à mineração de informações
 
20230804_266_ClubServicenow_Catalog.pdf
20230804_266_ClubServicenow_Catalog.pdf20230804_266_ClubServicenow_Catalog.pdf
20230804_266_ClubServicenow_Catalog.pdf
 
TDC2016POA | Trilha PHP - Desenvolvendo um buscador com PHP e Elasticsearch
TDC2016POA | Trilha PHP - Desenvolvendo um buscador com PHP e ElasticsearchTDC2016POA | Trilha PHP - Desenvolvendo um buscador com PHP e Elasticsearch
TDC2016POA | Trilha PHP - Desenvolvendo um buscador com PHP e Elasticsearch
 
Painel 03 03 - lucas freire - Filtros econômicos e combate a cartéis em lic...
Painel 03   03 - lucas freire - Filtros econômicos e combate a cartéis em lic...Painel 03   03 - lucas freire - Filtros econômicos e combate a cartéis em lic...
Painel 03 03 - lucas freire - Filtros econômicos e combate a cartéis em lic...
 
Oficina: construção de modelos descritivos e preditivos utilizando R
Oficina: construção de modelos descritivos e preditivos utilizando ROficina: construção de modelos descritivos e preditivos utilizando R
Oficina: construção de modelos descritivos e preditivos utilizando R
 
Desenvolvendo um buscador com PHP e Elasticsearch - Fernando Silva - Tchelinu...
Desenvolvendo um buscador com PHP e Elasticsearch - Fernando Silva - Tchelinu...Desenvolvendo um buscador com PHP e Elasticsearch - Fernando Silva - Tchelinu...
Desenvolvendo um buscador com PHP e Elasticsearch - Fernando Silva - Tchelinu...
 
01/12 Introducao Workshop Atlas.ti 8
01/12 Introducao Workshop Atlas.ti 801/12 Introducao Workshop Atlas.ti 8
01/12 Introducao Workshop Atlas.ti 8
 
Web Data Mining com R
Web Data Mining com RWeb Data Mining com R
Web Data Mining com R
 
DataTechDay4 - Carlos Oeiras
DataTechDay4 - Carlos OeirasDataTechDay4 - Carlos Oeiras
DataTechDay4 - Carlos Oeiras
 
Classificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesClassificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de Correlações
 
Case Recommender: Fazendo recomendação em Python
Case Recommender: Fazendo recomendação em PythonCase Recommender: Fazendo recomendação em Python
Case Recommender: Fazendo recomendação em Python
 
Capítulo 16 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 16 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 16 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 16 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
 
Sistemas de Recomendação
Sistemas de Recomendação Sistemas de Recomendação
Sistemas de Recomendação
 
Quais as habilidades técnicas todo PM precisa saber - Petrus Gomes | Closecare
Quais as habilidades técnicas todo PM precisa saber - Petrus Gomes | Closecare  Quais as habilidades técnicas todo PM precisa saber - Petrus Gomes | Closecare
Quais as habilidades técnicas todo PM precisa saber - Petrus Gomes | Closecare
 
Desenvolvimento de um Sistema de Recomendação de Artigos Científicos e Avalia...
Desenvolvimento de um Sistema de Recomendação de Artigos Científicos e Avalia...Desenvolvimento de um Sistema de Recomendação de Artigos Científicos e Avalia...
Desenvolvimento de um Sistema de Recomendação de Artigos Científicos e Avalia...
 
Data Science Qmeeting 2018
Data Science Qmeeting 2018Data Science Qmeeting 2018
Data Science Qmeeting 2018
 
Data Mining (mineração de dados)
Data Mining (mineração de dados)Data Mining (mineração de dados)
Data Mining (mineração de dados)
 
requisitos de software.pptx
requisitos de software.pptxrequisitos de software.pptx
requisitos de software.pptx
 
Sistemas de Recomendação - O que são? Como funcionam? Do que se alimentam?
Sistemas de Recomendação - O que são? Como funcionam? Do que se alimentam?Sistemas de Recomendação - O que são? Como funcionam? Do que se alimentam?
Sistemas de Recomendação - O que são? Como funcionam? Do que se alimentam?
 
Portal Periódicos CAPES - Apresentação
Portal Periódicos CAPES - ApresentaçãoPortal Periódicos CAPES - Apresentação
Portal Periódicos CAPES - Apresentação
 

[Case Machine Learning- iColabora]Text mining - Classificando textos com Elastic Search

  • 1. Text Mining Classificando textos com o Elastic Search 4º Meetup do Elastic São Paulo User Group - 04/05/2016
  • 2. Jozias Rolim jozias.rolim@icolabora.com.br Analista desenvolvedor sênior - iColabora Mestrando em Sistemas de Informação - PPgSi - EACH|USP Membro mais bonito do Elastic São Paulo User Group
  • 3. Sumário O problema Estrategia convencional Aplicando o Elastic Search como estratégia para solução do problema Comparação com estratégias convencionais Dificuldades e possíveis soluções 3
  • 5. Classificar automaticamente reclamações da Anatel Clientes realizam reclamações sobre os seus serviços na Anatel O operador classifica a reclamação As reclamações devem ser classificadas para que possam ser encaminhadas para os setores responsáveis da empresa. Classificação está relacionada com indicadores de qualidade - Anatel A árvore de reclamação é imensa O operador classifica de forma equivocada Classificar demanda tempo - Aumento da produtividade do operador 5
  • 7. 7
  • 8. Aplicando o Elastic Search como estratégia para solução do problema 8
  • 9. Definindo analyzer "analyzer": { "analyzer_classificador": { "type": "custom", "tokenizer": "lowercase", "filter": [ "token_type", "custom_stop_words", "asciifolding", "brazilian_stop", "stem_minimal_pt", ], "char_filter": [ "html_strip" ] } }, "filter": { "index_filter": { "type": "common_grams", "common_words": "_brazilian_" }, "search_filter": { "type": "common_grams", "common_words": "_brazilian_", "query_mode": true }, "stem_minimal_pt": { "type": "stemmer", "language": "brazilian" }, "brazilian_stop": { "type": "stop", "stopwords": "_brazilian_" }, "custom_stop_words": { "type": "stop", "stopwords": [...] }, "token_type": { "type": "word_delimiter", "catenate_words": true, "catenate_all": true, "split_on_case_change": true, "split_on_numerics": true } } } 9
  • 10. Mapeando uso do analyzer no indice, _mapping { "indice": { "properties": { "campo_texto": { "type": "string", "fields": { "raw": { "type": "string", "index": "not_analyzed" }, "classificacao": { "type": "string", "index_options": "freqs", "analyzer": "classificacao_email" } } } , "classe": { "type": "string", "index": "not_analyzed" } } } } 10
  • 11. Realizando a consulta dos textos mais similares _search?analyzer=analyzer_classificador { "query": { "common" :{ "campo_texto.classificacao":{ "query": "Texto de reclamação informado", "cutoff_frequency": 0.001 } } }, "size": 1, “ A consulta retorna apenas o documento mais similar, melhores resultados podem ser obtidos, retornando mais documentos e comparando as classes deles.” 11
  • 12. Dificuldades e possíveis soluções 12
  • 13. Dificuldades e possíveis soluções Base de dados com classificações erradas - Filtrar os dados que possuem classificação errada para a base Neologismo - Utilizar synonyms Palavras com escrita errada - Ignorar palavras não presentes no dicionário Palavras abreviadas - Ignorar ou utilizar synonyms Quantidade de sinônimos elevada - Mapear a maior quantidade de sinônimos possível 13
  • 15. Estratégia convêncional x ElasticsearchTaxadeacerto-Acurácia Tempo de desenvolvimento Estratégia convêncional Elasticsearch 15
  • 16. Agora é com vocês! 16
  • 17. Text Mining Classificando textos com o elasticsearch 4º Meetup do Elastic São Paulo User Group - 04/05/2016