SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler offline
Classification de
courriers postaux
avec Elasticsearch
Fabien Baligand
Informatique CDC
Meetup Elastic FR
13 février 2018
Qui suis-je ?
 Fabien BALIGAND
 Contributeur opensource sur Logstash, Elasticsearch & Kibana
 Créateur de 2 plugins Elastic :
 logstash-filter-aggregate
 kibana-enhanced-table
 Expert java & référent Elastic à Informatique CDC
@fbaligand
Elastic Stack @ ICDC
 Log Analytics avec Logstash/Elasticsearch/Kibana
 Moteur de recherche métier
 Moteur de recherche éditorial
 Socle BAM des projets bancaires
 Moteur de chatbot métier (challenge IA)
 Classification de courriers postaux
2014
Now
Classification de courriers postaux
Besoin
 Dématérialisation des courriers postaux et de leur traitement
 Numérisation automatisée des courriers
 Classification automatisée des courriers
 Distribution automatisée et sécurisée des courriers
 Généralisation à tout type de courrier (fax, mail, formulaire web)
Solution
Zoom sur Elastic Stack
 Stockage des courriers en tant que documents Elasticsearch
 Chaîne d’analyse pour retrouver le code postal de l’expéditeur
 Recherche du service destinataire dans le courrier
 Par moteur de règles
 Par apprentissage supervisé
 Statistiques de performance de de la solution avec Kibana
Structure des documents dans Elasticsearch
Courrier Document 1
Page 1
Page N
Document N
Page 1
Page N
Mapping Elasticsearch
Chaîne d’analyse « code postal expéditeur »
 Récupérer les patterns de codes postaux :
"75 000 PARIS"  "75"
"PARIS (75000)"  "75"
"CHAROLLES (SAONE-ET-LOIRE)"  "71"
 Eviter les faux positifs :
"49009 ANGERS" 
"12345 6789" 
 Récupérer uniquement le premier code postal (l’expéditeur)
Chaîne d’analyse « code postal expéditeur »
"rue louis gain 49000 angers"  ""
"75 000 PARIS"  "75000 PARIS"
"PARIS (75000)"  "75000 PARIS"
"CHAROLLES (SAONE-ET-LOIRE)"  "`SAONE-ET-LOIRE` CHAROLLES"
"`SAONE-ET-LOIRE` CHAROLLES"  ["`SAONE-ET-LOIRE`", "CHAROLLES"]
"CHAROLLES"  "charolles"
"côte d’or"  "cote d’or"
"49909"  ""
`saone-et-loire` 71000
["71000 ", "charolles"]  "71000 charolles"
"71000 charolles" 
"71000 charolles"  "71"
["71", "21"]  "71"
Classification par moteur de règles
 Utilisation du mécanisme de percolator d’Elasticsearch
« Donnes-moi un document,
je te dirai à quelle requête il correspond »
 Stockage d’un document-requête par service destinataire
« Indique les mots-clés et les codes postaux
associés au service destinataire »
 Requête à partir d’un courrier et récupération du service destinataire
Exemple de document-requête
Exemple de requête « percolate »
Classification par apprentissage supervisé
 Utilisation du mécanisme de more-like-this d’Elasticsearch
« Donnes-moi un document,
je te dirai à quel document déjà classifié
il ressemble le plus »
 Stockage d’un jeu de courriers de référence déjà classifiés
 Enrichissement continu du jeu de courriers de référence
Exemple de requête « more-like-this »
Performance de la solution
Conclusion
 POC validé  démarrage projet !
 Il faut plus de documents pour le MLT…
 Vers une solution hybride « Percolate + MLT »
Questions

Mais conteúdo relacionado

Semelhante a Classification de courriers postaux avec elasticsearch

Semelhante a Classification de courriers postaux avec elasticsearch (8)

SSL 2011 : Présentation de 2 bases noSQL
SSL 2011 : Présentation de 2 bases noSQLSSL 2011 : Présentation de 2 bases noSQL
SSL 2011 : Présentation de 2 bases noSQL
 
I don't always write reactive application but when I do, it run on raspberry pi
I don't always write reactive application but when I do, it run on raspberry piI don't always write reactive application but when I do, it run on raspberry pi
I don't always write reactive application but when I do, it run on raspberry pi
 
Geneva jug Lucene Solr
Geneva jug Lucene Solr Geneva jug Lucene Solr
Geneva jug Lucene Solr
 
Smart Data as a Service
Smart Data as a ServiceSmart Data as a Service
Smart Data as a Service
 
ElasticSearch : Architecture et Développement
ElasticSearch : Architecture et DéveloppementElasticSearch : Architecture et Développement
ElasticSearch : Architecture et Développement
 
24HOP French 2017 - Azure Data Lake, le Big Data 2.0
24HOP French 2017 - Azure Data Lake, le Big Data 2.024HOP French 2017 - Azure Data Lake, le Big Data 2.0
24HOP French 2017 - Azure Data Lake, le Big Data 2.0
 
JABES 2018 - Démo : Découvrir la plateforme ISTEX et ses services
JABES 2018 - Démo : Découvrir la plateforme ISTEX et ses servicesJABES 2018 - Démo : Découvrir la plateforme ISTEX et ses services
JABES 2018 - Démo : Découvrir la plateforme ISTEX et ses services
 
Show de boucane pour ELK
Show de boucane pour ELKShow de boucane pour ELK
Show de boucane pour ELK
 

Mais de Fabien Baligand

RestFul Evented Javascript avec sammyjs et jquery
RestFul Evented Javascript avec sammyjs et jqueryRestFul Evented Javascript avec sammyjs et jquery
RestFul Evented Javascript avec sammyjs et jquery
Fabien Baligand
 

Mais de Fabien Baligand (11)

Logstash Editor: The vscode extension to boost your productivity!
Logstash Editor: The vscode extension to boost your productivity!Logstash Editor: The vscode extension to boost your productivity!
Logstash Editor: The vscode extension to boost your productivity!
 
POSS19 - Publier du code Open Source dans une banque : Mission impossible ?
POSS19 - Publier du code Open Source dans une banque : Mission impossible ?POSS19 - Publier du code Open Source dans une banque : Mission impossible ?
POSS19 - Publier du code Open Source dans une banque : Mission impossible ?
 
Plugin logstash-filter-aggregate (meetup Elastic FR)
Plugin logstash-filter-aggregate (meetup Elastic FR)Plugin logstash-filter-aggregate (meetup Elastic FR)
Plugin logstash-filter-aggregate (meetup Elastic FR)
 
Google+ To RSS As A Service
Google+ To RSS As A ServiceGoogle+ To RSS As A Service
Google+ To RSS As A Service
 
Environnements, Sources de propriétés et Profils avec Spring 3.1
Environnements, Sources de propriétés et Profils avec Spring 3.1Environnements, Sources de propriétés et Profils avec Spring 3.1
Environnements, Sources de propriétés et Profils avec Spring 3.1
 
Présentation de gplus to-twitter
Présentation de gplus to-twitterPrésentation de gplus to-twitter
Présentation de gplus to-twitter
 
Présentation de jQuery UI
Présentation de jQuery UIPrésentation de jQuery UI
Présentation de jQuery UI
 
Présentation de alfresco - l'outil de GED open-source java
Présentation de alfresco - l'outil de GED open-source javaPrésentation de alfresco - l'outil de GED open-source java
Présentation de alfresco - l'outil de GED open-source java
 
Comment répondre aux besoins de log en production avec log4j
Comment répondre aux besoins de log en production avec log4jComment répondre aux besoins de log en production avec log4j
Comment répondre aux besoins de log en production avec log4j
 
RestFul Evented Javascript avec sammyjs et jquery
RestFul Evented Javascript avec sammyjs et jqueryRestFul Evented Javascript avec sammyjs et jquery
RestFul Evented Javascript avec sammyjs et jquery
 
Atmosphere Framework
Atmosphere FrameworkAtmosphere Framework
Atmosphere Framework
 

Classification de courriers postaux avec elasticsearch

  • 1. Classification de courriers postaux avec Elasticsearch Fabien Baligand Informatique CDC Meetup Elastic FR 13 février 2018
  • 2. Qui suis-je ?  Fabien BALIGAND  Contributeur opensource sur Logstash, Elasticsearch & Kibana  Créateur de 2 plugins Elastic :  logstash-filter-aggregate  kibana-enhanced-table  Expert java & référent Elastic à Informatique CDC @fbaligand
  • 3. Elastic Stack @ ICDC  Log Analytics avec Logstash/Elasticsearch/Kibana  Moteur de recherche métier  Moteur de recherche éditorial  Socle BAM des projets bancaires  Moteur de chatbot métier (challenge IA)  Classification de courriers postaux 2014 Now
  • 5. Besoin  Dématérialisation des courriers postaux et de leur traitement  Numérisation automatisée des courriers  Classification automatisée des courriers  Distribution automatisée et sécurisée des courriers  Généralisation à tout type de courrier (fax, mail, formulaire web)
  • 7. Zoom sur Elastic Stack  Stockage des courriers en tant que documents Elasticsearch  Chaîne d’analyse pour retrouver le code postal de l’expéditeur  Recherche du service destinataire dans le courrier  Par moteur de règles  Par apprentissage supervisé  Statistiques de performance de de la solution avec Kibana
  • 8. Structure des documents dans Elasticsearch Courrier Document 1 Page 1 Page N Document N Page 1 Page N
  • 10. Chaîne d’analyse « code postal expéditeur »  Récupérer les patterns de codes postaux : "75 000 PARIS"  "75" "PARIS (75000)"  "75" "CHAROLLES (SAONE-ET-LOIRE)"  "71"  Eviter les faux positifs : "49009 ANGERS"  "12345 6789"   Récupérer uniquement le premier code postal (l’expéditeur)
  • 11. Chaîne d’analyse « code postal expéditeur » "rue louis gain 49000 angers"  "" "75 000 PARIS"  "75000 PARIS" "PARIS (75000)"  "75000 PARIS" "CHAROLLES (SAONE-ET-LOIRE)"  "`SAONE-ET-LOIRE` CHAROLLES" "`SAONE-ET-LOIRE` CHAROLLES"  ["`SAONE-ET-LOIRE`", "CHAROLLES"] "CHAROLLES"  "charolles" "côte d’or"  "cote d’or" "49909"  "" `saone-et-loire` 71000 ["71000 ", "charolles"]  "71000 charolles" "71000 charolles"  "71000 charolles"  "71" ["71", "21"]  "71"
  • 12. Classification par moteur de règles  Utilisation du mécanisme de percolator d’Elasticsearch « Donnes-moi un document, je te dirai à quelle requête il correspond »  Stockage d’un document-requête par service destinataire « Indique les mots-clés et les codes postaux associés au service destinataire »  Requête à partir d’un courrier et récupération du service destinataire
  • 14. Exemple de requête « percolate »
  • 15. Classification par apprentissage supervisé  Utilisation du mécanisme de more-like-this d’Elasticsearch « Donnes-moi un document, je te dirai à quel document déjà classifié il ressemble le plus »  Stockage d’un jeu de courriers de référence déjà classifiés  Enrichissement continu du jeu de courriers de référence
  • 16. Exemple de requête « more-like-this »
  • 17. Performance de la solution
  • 18. Conclusion  POC validé  démarrage projet !  Il faut plus de documents pour le MLT…  Vers une solution hybride « Percolate + MLT »