SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Propulsez un bot Github
pour le management
d’issues
avec
Neo4j et
du Natural Language
Processing
Meetup Neo4jFR @Prestashop – 19 oct 2016
Christophe Willemsen - @ikwattro
Qui Quoi Où
• Christophe Willemsen (Belgique)
• Consultant Neo4j et Elasticsearch chez GraphAware
( World’s #1 Neo4j Consultancy )
• Java / Python / PHP / FR / EN / NL
• Passionné de BigData, Machine Learning
• Github/Twitter : @ikwattro
Aujourd’hui
• Synchro API events de Github
• Problème de popularité
• Recommendations avec les données Github
• NLP Basics
• Analyse de l’historique de Pull Requests
• Demo avec une Issue
API Events Github
• PullRequestEvent
• IssuesEvent
• ForkEvent
• IssueCommentEvent
• PushEvent
• CommitCommentEvent, CreateEvent, FollowEvent, WatchEvent,
GistEvent, DownloadEvent, DeleteEvent, PublicEvent,…
API Events Github
• 65k events / heure
• 1.9 millions d’utilisateurs actifs / jour
• 1.6 millions de repos modifiés par jour
• 340 000 milliars de lignes de code en 219 langages différents
API Events Github
Popularité !
Popularité !
Un sérieux problème, voir
même un problème sérieux.
Popularité !
Identification de la popularité
sur Github
Popularité !
FOLLOWS / STARS
Problème de popularité
• Métrique trop vaste
• Génère trop de recommendations
• Recommendations irrélévantes
Popularité !
FAMOUS !!!
Quelle métrique ?
Qu’est-ce qui circule dans les
veines de Github ?
CONTRIBUTIONS
Contributions
• Neo4j vous permet d’inférer les relations entre les entités
• Ces relations implicites sont parfois beaucoup plus rélévantes que
les relations explicites comme FOLLOWS / STARS
• Si vous avez du mal avec les relations explicites, essayez
d’inférer les relations
NLP Basics
NLP Basics
• Sous-type de Machine Learning
• Opérations sur du texte, comme :
• Segmentation de phrases
• Part Of Speech Tagging, Parsing, Named Entity Extraction,
Tokenization, Lemmification, Topic Extraction, …
Un bot
Utilise deux heuristiques
• Si une ligne a été modifiée ou supprimée, la dernière personne
ayant modifié cette ligne doit être notifiée
• Si une personne a modifié plusieurs autres lignes dans ce fichier,
elle aimerait être notifiée
Issue Bot
Processus
• On effectue les opérations NLP sur les textes des Pull Requests
afin d’en extraire les tags, on crée également des tags en fonction
de la structure camelCased des noms de fichiers
• On applique un score de fréquence et importance sur ces tags
• On applique un score de fréquence de contribution sur les users
• On crée un nouvelle issue, on effectue les opérations NLP
• Content Based recommendation combiné avec les scores de
fréquence
https://github.com/
graphaware/
issuebot_nlp_meetup
Merci !
Questions?
graphaware.com
@graph_aware
@ikwattro

Weitere ähnliche Inhalte

Ähnlich wie Management des issues Github avec Neo4j et NLP

La recherche sur Internet: devenez un super chercheur
La recherche sur Internet: devenez un super chercheurLa recherche sur Internet: devenez un super chercheur
La recherche sur Internet: devenez un super chercheurElium
 
Recommender systems
Recommender systemsRecommender systems
Recommender systemsrecsysfr
 
Développement et gestion de Logiciel Libre et Ouvert (LLO)
Développement et gestion  de Logiciel Libre et Ouvert (LLO)Développement et gestion  de Logiciel Libre et Ouvert (LLO)
Développement et gestion de Logiciel Libre et Ouvert (LLO)geomsp
 
Contribuer à schema.org - Retour d’expérience : extension ELI pour les lois ...
Contribuer à schema.org - Retour d’expérience : extension ELI pour les lois ...Contribuer à schema.org - Retour d’expérience : extension ELI pour les lois ...
Contribuer à schema.org - Retour d’expérience : extension ELI pour les lois ...pwod
 
Presentation Rex Methodes Agiles
Presentation Rex Methodes AgilesPresentation Rex Methodes Agiles
Presentation Rex Methodes AgilesIppon
 
Les chatbots, l'IA, leurs technologies
Les chatbots, l'IA, leurs technologiesLes chatbots, l'IA, leurs technologies
Les chatbots, l'IA, leurs technologiesLudan Stoecklé
 
Créer un moteur de recherche avec des logiciels libres
Créer un moteur de recherche avec des logiciels libresCréer un moteur de recherche avec des logiciels libres
Créer un moteur de recherche avec des logiciels libresRobert Viseur
 
Telosys tools jug-nantes-2014-v1.2
Telosys tools jug-nantes-2014-v1.2Telosys tools jug-nantes-2014-v1.2
Telosys tools jug-nantes-2014-v1.2Laurent Guérin
 
JUG Nantes - Telosys Tools - Avril 2014
JUG Nantes - Telosys Tools - Avril 2014 JUG Nantes - Telosys Tools - Avril 2014
JUG Nantes - Telosys Tools - Avril 2014 telosys
 
Diginova - Session sur le machine learning avec ML.NET
Diginova - Session sur le machine learning avec ML.NETDiginova - Session sur le machine learning avec ML.NET
Diginova - Session sur le machine learning avec ML.NETJulien Chable
 
DevCon 3 : BOT Framework & Luis
DevCon 3 : BOT Framework & LuisDevCon 3 : BOT Framework & Luis
DevCon 3 : BOT Framework & LuisCellenza
 
GraphTour - Workday: Tracking activity with Neo4j (French version)
GraphTour - Workday: Tracking activity with Neo4j (French version)GraphTour - Workday: Tracking activity with Neo4j (French version)
GraphTour - Workday: Tracking activity with Neo4j (French version)Neo4j
 

Ähnlich wie Management des issues Github avec Neo4j et NLP (20)

GetText / Rails - FR
GetText / Rails - FRGetText / Rails - FR
GetText / Rails - FR
 
GetText / Rails
GetText / RailsGetText / Rails
GetText / Rails
 
La recherche sur Internet: devenez un super chercheur
La recherche sur Internet: devenez un super chercheurLa recherche sur Internet: devenez un super chercheur
La recherche sur Internet: devenez un super chercheur
 
Recommender systems
Recommender systemsRecommender systems
Recommender systems
 
Développement et gestion de Logiciel Libre et Ouvert (LLO)
Développement et gestion  de Logiciel Libre et Ouvert (LLO)Développement et gestion  de Logiciel Libre et Ouvert (LLO)
Développement et gestion de Logiciel Libre et Ouvert (LLO)
 
Bot franceinfo
Bot franceinfoBot franceinfo
Bot franceinfo
 
Tutoriel : "Gestion d’ontologies"
Tutoriel : "Gestion d’ontologies"Tutoriel : "Gestion d’ontologies"
Tutoriel : "Gestion d’ontologies"
 
FOSS - PoitouJUG
FOSS - PoitouJUGFOSS - PoitouJUG
FOSS - PoitouJUG
 
Contribuer à schema.org - Retour d’expérience : extension ELI pour les lois ...
Contribuer à schema.org - Retour d’expérience : extension ELI pour les lois ...Contribuer à schema.org - Retour d’expérience : extension ELI pour les lois ...
Contribuer à schema.org - Retour d’expérience : extension ELI pour les lois ...
 
Presentation Rex Methodes Agiles
Presentation Rex Methodes AgilesPresentation Rex Methodes Agiles
Presentation Rex Methodes Agiles
 
Les chatbots, l'IA, leurs technologies
Les chatbots, l'IA, leurs technologiesLes chatbots, l'IA, leurs technologies
Les chatbots, l'IA, leurs technologies
 
Créer un moteur de recherche avec des logiciels libres
Créer un moteur de recherche avec des logiciels libresCréer un moteur de recherche avec des logiciels libres
Créer un moteur de recherche avec des logiciels libres
 
L'usager numérique : quels outils pour quels usages ?
L'usager numérique : quels outils pour quels usages ?L'usager numérique : quels outils pour quels usages ?
L'usager numérique : quels outils pour quels usages ?
 
Cerberus Testing
Cerberus TestingCerberus Testing
Cerberus Testing
 
Show de boucane pour ELK
Show de boucane pour ELKShow de boucane pour ELK
Show de boucane pour ELK
 
Telosys tools jug-nantes-2014-v1.2
Telosys tools jug-nantes-2014-v1.2Telosys tools jug-nantes-2014-v1.2
Telosys tools jug-nantes-2014-v1.2
 
JUG Nantes - Telosys Tools - Avril 2014
JUG Nantes - Telosys Tools - Avril 2014 JUG Nantes - Telosys Tools - Avril 2014
JUG Nantes - Telosys Tools - Avril 2014
 
Diginova - Session sur le machine learning avec ML.NET
Diginova - Session sur le machine learning avec ML.NETDiginova - Session sur le machine learning avec ML.NET
Diginova - Session sur le machine learning avec ML.NET
 
DevCon 3 : BOT Framework & Luis
DevCon 3 : BOT Framework & LuisDevCon 3 : BOT Framework & Luis
DevCon 3 : BOT Framework & Luis
 
GraphTour - Workday: Tracking activity with Neo4j (French version)
GraphTour - Workday: Tracking activity with Neo4j (French version)GraphTour - Workday: Tracking activity with Neo4j (French version)
GraphTour - Workday: Tracking activity with Neo4j (French version)
 

Mehr von Christophe Willemsen

Knowledge graphs + Chatbots with Neo4j
Knowledge graphs + Chatbots with Neo4jKnowledge graphs + Chatbots with Neo4j
Knowledge graphs + Chatbots with Neo4jChristophe Willemsen
 
Chatbots and Voice Conversational Interfaces with Amazon Alexa, Neo4j and Gra...
Chatbots and Voice Conversational Interfaces with Amazon Alexa, Neo4j and Gra...Chatbots and Voice Conversational Interfaces with Amazon Alexa, Neo4j and Gra...
Chatbots and Voice Conversational Interfaces with Amazon Alexa, Neo4j and Gra...Christophe Willemsen
 
Your own recommendation engine with neo4j and reco4php - DPC16
Your own recommendation engine with neo4j and reco4php - DPC16Your own recommendation engine with neo4j and reco4php - DPC16
Your own recommendation engine with neo4j and reco4php - DPC16Christophe Willemsen
 
Recommendation Engines with Neo4j, Symfony and Reco4PHP
Recommendation Engines with Neo4j, Symfony and Reco4PHPRecommendation Engines with Neo4j, Symfony and Reco4PHP
Recommendation Engines with Neo4j, Symfony and Reco4PHPChristophe Willemsen
 
Moteurs de recommendation avec Neo4j et GraphAwareReco
Moteurs de recommendation avec Neo4j et GraphAwareRecoMoteurs de recommendation avec Neo4j et GraphAwareReco
Moteurs de recommendation avec Neo4j et GraphAwareRecoChristophe Willemsen
 
Recommandations avec Neo4j et le GraphAware Recommendation Engine
Recommandations avec Neo4j et le GraphAware Recommendation EngineRecommandations avec Neo4j et le GraphAware Recommendation Engine
Recommandations avec Neo4j et le GraphAware Recommendation EngineChristophe Willemsen
 
Neo4j au secours de l'Internet of Connected Things
Neo4j au secours de l'Internet of Connected ThingsNeo4j au secours de l'Internet of Connected Things
Neo4j au secours de l'Internet of Connected ThingsChristophe Willemsen
 
Graph Database Prototyping made easy with Graphgen
Graph Database Prototyping made easy with GraphgenGraph Database Prototyping made easy with Graphgen
Graph Database Prototyping made easy with GraphgenChristophe Willemsen
 
Analysing Github events with Neo4j
Analysing Github events with Neo4jAnalysing Github events with Neo4j
Analysing Github events with Neo4jChristophe Willemsen
 

Mehr von Christophe Willemsen (11)

Knowledge graphs + Chatbots with Neo4j
Knowledge graphs + Chatbots with Neo4jKnowledge graphs + Chatbots with Neo4j
Knowledge graphs + Chatbots with Neo4j
 
Chatbots and Voice Conversational Interfaces with Amazon Alexa, Neo4j and Gra...
Chatbots and Voice Conversational Interfaces with Amazon Alexa, Neo4j and Gra...Chatbots and Voice Conversational Interfaces with Amazon Alexa, Neo4j and Gra...
Chatbots and Voice Conversational Interfaces with Amazon Alexa, Neo4j and Gra...
 
Your own recommendation engine with neo4j and reco4php - DPC16
Your own recommendation engine with neo4j and reco4php - DPC16Your own recommendation engine with neo4j and reco4php - DPC16
Your own recommendation engine with neo4j and reco4php - DPC16
 
Recommendation Engines with Neo4j, Symfony and Reco4PHP
Recommendation Engines with Neo4j, Symfony and Reco4PHPRecommendation Engines with Neo4j, Symfony and Reco4PHP
Recommendation Engines with Neo4j, Symfony and Reco4PHP
 
Moteurs de recommendation avec Neo4j et GraphAwareReco
Moteurs de recommendation avec Neo4j et GraphAwareRecoMoteurs de recommendation avec Neo4j et GraphAwareReco
Moteurs de recommendation avec Neo4j et GraphAwareReco
 
Recommandations avec Neo4j et le GraphAware Recommendation Engine
Recommandations avec Neo4j et le GraphAware Recommendation EngineRecommandations avec Neo4j et le GraphAware Recommendation Engine
Recommandations avec Neo4j et le GraphAware Recommendation Engine
 
Neo4j au secours de l'Internet of Connected Things
Neo4j au secours de l'Internet of Connected ThingsNeo4j au secours de l'Internet of Connected Things
Neo4j au secours de l'Internet of Connected Things
 
Graph Database Prototyping made easy with Graphgen
Graph Database Prototyping made easy with GraphgenGraph Database Prototyping made easy with Graphgen
Graph Database Prototyping made easy with Graphgen
 
Analysing Github events with Neo4j
Analysing Github events with Neo4jAnalysing Github events with Neo4j
Analysing Github events with Neo4j
 
Présentation symfony drupal
Présentation symfony drupalPrésentation symfony drupal
Présentation symfony drupal
 
GMDSS - Practice1
GMDSS - Practice1GMDSS - Practice1
GMDSS - Practice1
 

Management des issues Github avec Neo4j et NLP

  • 1. Propulsez un bot Github pour le management d’issues avec Neo4j et du Natural Language Processing Meetup Neo4jFR @Prestashop – 19 oct 2016 Christophe Willemsen - @ikwattro
  • 2. Qui Quoi Où • Christophe Willemsen (Belgique) • Consultant Neo4j et Elasticsearch chez GraphAware ( World’s #1 Neo4j Consultancy ) • Java / Python / PHP / FR / EN / NL • Passionné de BigData, Machine Learning • Github/Twitter : @ikwattro
  • 3.
  • 4. Aujourd’hui • Synchro API events de Github • Problème de popularité • Recommendations avec les données Github • NLP Basics • Analyse de l’historique de Pull Requests • Demo avec une Issue
  • 5. API Events Github • PullRequestEvent • IssuesEvent • ForkEvent • IssueCommentEvent • PushEvent • CommitCommentEvent, CreateEvent, FollowEvent, WatchEvent, GistEvent, DownloadEvent, DeleteEvent, PublicEvent,…
  • 6. API Events Github • 65k events / heure • 1.9 millions d’utilisateurs actifs / jour • 1.6 millions de repos modifiés par jour • 340 000 milliars de lignes de code en 219 langages différents
  • 8.
  • 10. Popularité ! Un sérieux problème, voir même un problème sérieux.
  • 11. Popularité ! Identification de la popularité sur Github
  • 13.
  • 14. Problème de popularité • Métrique trop vaste • Génère trop de recommendations • Recommendations irrélévantes
  • 16. Quelle métrique ? Qu’est-ce qui circule dans les veines de Github ?
  • 18. Contributions • Neo4j vous permet d’inférer les relations entre les entités • Ces relations implicites sont parfois beaucoup plus rélévantes que les relations explicites comme FOLLOWS / STARS • Si vous avez du mal avec les relations explicites, essayez d’inférer les relations
  • 20. NLP Basics • Sous-type de Machine Learning • Opérations sur du texte, comme : • Segmentation de phrases • Part Of Speech Tagging, Parsing, Named Entity Extraction, Tokenization, Lemmification, Topic Extraction, …
  • 22.
  • 23. Utilise deux heuristiques • Si une ligne a été modifiée ou supprimée, la dernière personne ayant modifié cette ligne doit être notifiée • Si une personne a modifié plusieurs autres lignes dans ce fichier, elle aimerait être notifiée
  • 25. Processus • On effectue les opérations NLP sur les textes des Pull Requests afin d’en extraire les tags, on crée également des tags en fonction de la structure camelCased des noms de fichiers • On applique un score de fréquence et importance sur ces tags • On applique un score de fréquence de contribution sur les users • On crée un nouvelle issue, on effectue les opérations NLP • Content Based recommendation combiné avec les scores de fréquence
  • 26.
  • 27.
  • 28.