SlideShare uma empresa Scribd logo
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

Mais conteúdo relacionado

Destaque

Assumptions
AssumptionsAssumptions
Assumptions
VSETLVM
 
Nazim Hikmet Presentation New One
Nazim Hikmet Presentation New OneNazim Hikmet Presentation New One
Nazim Hikmet Presentation New One
mehmet kemal
 
Atelier Lean Canvas O. Lafontan
Atelier Lean Canvas O. LafontanAtelier Lean Canvas O. Lafontan
Atelier Lean Canvas O. Lafontan
EspritAgile
 
Apache Hadoop 1.1
Apache Hadoop 1.1Apache Hadoop 1.1
Apache Hadoop 1.1Sperasoft
 
Building search app with ElasticSearch
Building search app with ElasticSearchBuilding search app with ElasticSearch
Building search app with ElasticSearch
Lukas Vlcek
 
OseeGenius - Semantic search engine and discovery platform
OseeGenius - Semantic search engine and discovery platformOseeGenius - Semantic search engine and discovery platform
OseeGenius - Semantic search engine and discovery platform@CULT Srl
 
MoSQL: An Elastic Storage Engine for MySQL
MoSQL: An Elastic Storage Engine for MySQLMoSQL: An Elastic Storage Engine for MySQL
MoSQL: An Elastic Storage Engine for MySQLAlex Tomic
 
JBug_React_and_Flux_2015
JBug_React_and_Flux_2015JBug_React_and_Flux_2015
JBug_React_and_Flux_2015Lukas Vlcek
 
Elasticsearch & "PeopleSearch"
Elasticsearch & "PeopleSearch"Elasticsearch & "PeopleSearch"
Elasticsearch & "PeopleSearch"
George Stathis
 
Social Miner: Webinar people marketing em 30 min
Social Miner: Webinar people marketing em 30 minSocial Miner: Webinar people marketing em 30 min
Social Miner: Webinar people marketing em 30 min
Social Miner
 
Oxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic SearchOxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic Search
Oxalide
 
Elasticsearch first-steps
Elasticsearch first-stepsElasticsearch first-steps
Elasticsearch first-steps
Matteo Moci
 
Introduction to Elasticsearch
Introduction to ElasticsearchIntroduction to Elasticsearch
Introduction to Elasticsearch
Sperasoft
 
Amministratori Di Sistema: Adeguamento al Garante Privacy - Log Management e ...
Amministratori Di Sistema: Adeguamento al Garante Privacy - Log Management e ...Amministratori Di Sistema: Adeguamento al Garante Privacy - Log Management e ...
Amministratori Di Sistema: Adeguamento al Garante Privacy - Log Management e ...Simone Onofri
 
Oak / Solr integration
Oak / Solr integrationOak / Solr integration
Oak / Solr integration
Tommaso Teofili
 
Elastic search
Elastic searchElastic search
Elastic search
Rahul Agarwal
 

Destaque (17)

Assumptions
AssumptionsAssumptions
Assumptions
 
Nazim Hikmet Presentation New One
Nazim Hikmet Presentation New OneNazim Hikmet Presentation New One
Nazim Hikmet Presentation New One
 
Atelier Lean Canvas O. Lafontan
Atelier Lean Canvas O. LafontanAtelier Lean Canvas O. Lafontan
Atelier Lean Canvas O. Lafontan
 
Apache Hadoop 1.1
Apache Hadoop 1.1Apache Hadoop 1.1
Apache Hadoop 1.1
 
Building search app with ElasticSearch
Building search app with ElasticSearchBuilding search app with ElasticSearch
Building search app with ElasticSearch
 
OseeGenius - Semantic search engine and discovery platform
OseeGenius - Semantic search engine and discovery platformOseeGenius - Semantic search engine and discovery platform
OseeGenius - Semantic search engine and discovery platform
 
MoSQL: An Elastic Storage Engine for MySQL
MoSQL: An Elastic Storage Engine for MySQLMoSQL: An Elastic Storage Engine for MySQL
MoSQL: An Elastic Storage Engine for MySQL
 
JBug_React_and_Flux_2015
JBug_React_and_Flux_2015JBug_React_and_Flux_2015
JBug_React_and_Flux_2015
 
Elasticsearch & "PeopleSearch"
Elasticsearch & "PeopleSearch"Elasticsearch & "PeopleSearch"
Elasticsearch & "PeopleSearch"
 
Elasticsearch
ElasticsearchElasticsearch
Elasticsearch
 
Social Miner: Webinar people marketing em 30 min
Social Miner: Webinar people marketing em 30 minSocial Miner: Webinar people marketing em 30 min
Social Miner: Webinar people marketing em 30 min
 
Oxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic SearchOxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic Search
 
Elasticsearch first-steps
Elasticsearch first-stepsElasticsearch first-steps
Elasticsearch first-steps
 
Introduction to Elasticsearch
Introduction to ElasticsearchIntroduction to Elasticsearch
Introduction to Elasticsearch
 
Amministratori Di Sistema: Adeguamento al Garante Privacy - Log Management e ...
Amministratori Di Sistema: Adeguamento al Garante Privacy - Log Management e ...Amministratori Di Sistema: Adeguamento al Garante Privacy - Log Management e ...
Amministratori Di Sistema: Adeguamento al Garante Privacy - Log Management e ...
 
Oak / Solr integration
Oak / Solr integrationOak / Solr integration
Oak / Solr integration
 
Elastic search
Elastic searchElastic search
Elastic search
 

Semelhante a [Case machine learning- iColabora]Text Mining - classificando textos com Elastic Search

SAAS - Search as a Service 2017
SAAS - Search as a Service 2017SAAS - Search as a Service 2017
SAAS - Search as a Service 2017
Leandro Pereira Pinto
 
How to use Elasticsearch Analyzers by EmergiNet
How to use  Elasticsearch Analyzers by EmergiNetHow to use  Elasticsearch Analyzers by EmergiNet
How to use Elasticsearch Analyzers by EmergiNet
EmergiNet
 
Elasticsearch
ElasticsearchElasticsearch
Elasticsearch
Ricardo Peres
 
Meetup MUG-RS KingHost
Meetup MUG-RS KingHostMeetup MUG-RS KingHost
Meetup MUG-RS KingHost
Christiano Anderson
 
O que é Analytics?
O que é Analytics?O que é Analytics?
O que é Analytics?
Bruno Michel
 
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.pdf
Tiago 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 Elasticsearch
tdc-globalcode
 
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...
Tribunal de Contas da União - TCU (Oficial)
 
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
Fabrí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 8
Cícera Malheiro
 
Web Data Mining com R
Web Data Mining com RWeb Data Mining com R
Web Data Mining com R
Fabrício Barth
 
DataTechDay4 - Carlos Oeiras
DataTechDay4 - Carlos OeirasDataTechDay4 - Carlos Oeiras
DataTechDay4 - Carlos Oeiras
Carlos Augusto 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
Elaine 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 Python
Arthur 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 !
 
Sistemas de Recomendação
Sistemas de Recomendação Sistemas de Recomendação
Sistemas de Recomendação
Renato Shirakashi
 
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
 

Semelhante a [Case machine learning- iColabora]Text Mining - classificando textos com Elastic Search (20)

SAAS - Search as a Service 2017
SAAS - Search as a Service 2017SAAS - Search as a Service 2017
SAAS - Search as a Service 2017
 
How to use Elasticsearch Analyzers by EmergiNet
How to use  Elasticsearch Analyzers by EmergiNetHow to use  Elasticsearch Analyzers by EmergiNet
How to use Elasticsearch Analyzers by EmergiNet
 
Elasticsearch
ElasticsearchElasticsearch
Elasticsearch
 
Meetup MUG-RS KingHost
Meetup MUG-RS KingHostMeetup MUG-RS KingHost
Meetup MUG-RS KingHost
 
O que é Analytics?
O que é Analytics?O que é Analytics?
O que é Analytics?
 
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...
 

Mais de Jozias Rolim

Renda presumida
Renda presumidaRenda presumida
Renda presumida
Jozias Rolim
 
A escolha de um milhão de dólares
A escolha de um milhão de dólaresA escolha de um milhão de dólares
A escolha de um milhão de dólares
Jozias Rolim
 
Onde e como investir para alcançar o sucesso
Onde e como investir para alcançar o sucessoOnde e como investir para alcançar o sucesso
Onde e como investir para alcançar o sucesso
Jozias Rolim
 
Apresentação expotec
Apresentação expotecApresentação expotec
Apresentação expotec
Jozias Rolim
 
Por que preciso aprender algoritmo genético?
Por que preciso aprender algoritmo genético?Por que preciso aprender algoritmo genético?
Por que preciso aprender algoritmo genético?
Jozias Rolim
 
[Case Machine Learning- iColabora]Text mining - Classificando textos com Elas...
[Case Machine Learning- iColabora]Text mining - Classificando textos com Elas...[Case Machine Learning- iColabora]Text mining - Classificando textos com Elas...
[Case Machine Learning- iColabora]Text mining - Classificando textos com Elas...
Jozias Rolim
 

Mais de Jozias Rolim (6)

Renda presumida
Renda presumidaRenda presumida
Renda presumida
 
A escolha de um milhão de dólares
A escolha de um milhão de dólaresA escolha de um milhão de dólares
A escolha de um milhão de dólares
 
Onde e como investir para alcançar o sucesso
Onde e como investir para alcançar o sucessoOnde e como investir para alcançar o sucesso
Onde e como investir para alcançar o sucesso
 
Apresentação expotec
Apresentação expotecApresentação expotec
Apresentação expotec
 
Por que preciso aprender algoritmo genético?
Por que preciso aprender algoritmo genético?Por que preciso aprender algoritmo genético?
Por que preciso aprender algoritmo genético?
 
[Case Machine Learning- iColabora]Text mining - Classificando textos com Elas...
[Case Machine Learning- iColabora]Text mining - Classificando textos com Elas...[Case Machine Learning- iColabora]Text mining - Classificando textos com Elas...
[Case Machine Learning- iColabora]Text mining - Classificando textos com Elas...
 

[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