Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Propulsez un bot Github
pour le management
d’issues
avec
Neo4j et
du Natural Language
Processing
Meetup Neo4jFR @Prestasho...
Qui Quoi Où
• Christophe Willemsen (Belgique)
• Consultant Neo4j et Elasticsearch chez GraphAware
( World’s #1 Neo4j Consu...
Aujourd’hui
• Synchro API events de Github
• Problème de popularité
• Recommendations avec les données Github
• NLP Basics...
API Events Github
• PullRequestEvent
• IssuesEvent
• ForkEvent
• IssueCommentEvent
• PushEvent
• CommitCommentEvent, Creat...
API Events Github
• 65k events / heure
• 1.9 millions d’utilisateurs actifs / jour
• 1.6 millions de repos modifiés par jo...
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 beauco...
NLP Basics
NLP Basics
• Sous-type de Machine Learning
• Opérations sur du texte, comme :
• Segmentation de phrases
• Part Of Speech T...
Un bot
Utilise deux heuristiques
• Si une ligne a été modifiée ou supprimée, la dernière personne
ayant modifié cette ligne doit ...
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...
https://github.com/
graphaware/
issuebot_nlp_meetup
Merci !
Questions?
graphaware.com
@graph_aware
@ikwattro
Management des issues Github avec Neo4j et NLP
Management des issues Github avec Neo4j et NLP
Management des issues Github avec Neo4j et NLP
Management des issues Github avec Neo4j et NLP
Management des issues Github avec Neo4j et NLP
Management des issues Github avec Neo4j et NLP
Management des issues Github avec Neo4j et NLP
Upcoming SlideShare
Loading in …5
×

Management des issues Github avec Neo4j et NLP

221 views

Published on

Recommendation des personnes les plus aptes à réagir aux issues github en fonction de l'historique des pull requests passés avec GraphAware NLP

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Management des issues Github avec Neo4j et NLP

  1. 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. 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. 3. 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
  4. 4. API Events Github • PullRequestEvent • IssuesEvent • ForkEvent • IssueCommentEvent • PushEvent • CommitCommentEvent, CreateEvent, FollowEvent, WatchEvent, GistEvent, DownloadEvent, DeleteEvent, PublicEvent,…
  5. 5. 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
  6. 6. API Events Github
  7. 7. Popularité !
  8. 8. Popularité ! Un sérieux problème, voir même un problème sérieux.
  9. 9. Popularité ! Identification de la popularité sur Github
  10. 10. Popularité ! FOLLOWS / STARS
  11. 11. Problème de popularité • Métrique trop vaste • Génère trop de recommendations • Recommendations irrélévantes
  12. 12. Popularité ! FAMOUS !!!
  13. 13. Quelle métrique ? Qu’est-ce qui circule dans les veines de Github ?
  14. 14. CONTRIBUTIONS
  15. 15. 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
  16. 16. NLP Basics
  17. 17. 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, …
  18. 18. Un bot
  19. 19. 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
  20. 20. Issue Bot
  21. 21. 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
  22. 22. https://github.com/ graphaware/ issuebot_nlp_meetup
  23. 23. Merci ! Questions? graphaware.com @graph_aware @ikwattro

×