![Page 1: Management des issues Github avec Neo4j et NLP](https://reader035.vdocuments.pub/reader035/viewer/2022062523/58ee4b121a28ab737b8b46e5/html5/thumbnails/1.jpg)
Propulsez un bot Github pour le management
d’issues avec
Neo4j et du Natural Language
ProcessingMeetup Neo4jFR @Prestashop – 19 oct 2016
Christophe Willemsen - @ikwattro
![Page 2: Management des issues Github avec Neo4j et NLP](https://reader035.vdocuments.pub/reader035/viewer/2022062523/58ee4b121a28ab737b8b46e5/html5/thumbnails/2.jpg)
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
![Page 3: Management des issues Github avec Neo4j et NLP](https://reader035.vdocuments.pub/reader035/viewer/2022062523/58ee4b121a28ab737b8b46e5/html5/thumbnails/3.jpg)
![Page 4: Management des issues Github avec Neo4j et NLP](https://reader035.vdocuments.pub/reader035/viewer/2022062523/58ee4b121a28ab737b8b46e5/html5/thumbnails/4.jpg)
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
![Page 5: Management des issues Github avec Neo4j et NLP](https://reader035.vdocuments.pub/reader035/viewer/2022062523/58ee4b121a28ab737b8b46e5/html5/thumbnails/5.jpg)
API Events Github• PullRequestEvent
• IssuesEvent
• ForkEvent
• IssueCommentEvent
• PushEvent
• CommitCommentEvent, CreateEvent, FollowEvent, WatchEvent,
GistEvent, DownloadEvent, DeleteEvent, PublicEvent,…
![Page 6: Management des issues Github avec Neo4j et NLP](https://reader035.vdocuments.pub/reader035/viewer/2022062523/58ee4b121a28ab737b8b46e5/html5/thumbnails/6.jpg)
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
![Page 7: Management des issues Github avec Neo4j et NLP](https://reader035.vdocuments.pub/reader035/viewer/2022062523/58ee4b121a28ab737b8b46e5/html5/thumbnails/7.jpg)
API Events Github
![Page 8: Management des issues Github avec Neo4j et NLP](https://reader035.vdocuments.pub/reader035/viewer/2022062523/58ee4b121a28ab737b8b46e5/html5/thumbnails/8.jpg)
![Page 9: Management des issues Github avec Neo4j et NLP](https://reader035.vdocuments.pub/reader035/viewer/2022062523/58ee4b121a28ab737b8b46e5/html5/thumbnails/9.jpg)
Popularité !
![Page 10: Management des issues Github avec Neo4j et NLP](https://reader035.vdocuments.pub/reader035/viewer/2022062523/58ee4b121a28ab737b8b46e5/html5/thumbnails/10.jpg)
Popularité !
Un sérieux problème, voir même un problème sérieux.
![Page 11: Management des issues Github avec Neo4j et NLP](https://reader035.vdocuments.pub/reader035/viewer/2022062523/58ee4b121a28ab737b8b46e5/html5/thumbnails/11.jpg)
Popularité !
Identification de la popularité sur Github
![Page 12: Management des issues Github avec Neo4j et NLP](https://reader035.vdocuments.pub/reader035/viewer/2022062523/58ee4b121a28ab737b8b46e5/html5/thumbnails/12.jpg)
Popularité !
FOLLOWS / STARS
![Page 13: Management des issues Github avec Neo4j et NLP](https://reader035.vdocuments.pub/reader035/viewer/2022062523/58ee4b121a28ab737b8b46e5/html5/thumbnails/13.jpg)
![Page 14: Management des issues Github avec Neo4j et NLP](https://reader035.vdocuments.pub/reader035/viewer/2022062523/58ee4b121a28ab737b8b46e5/html5/thumbnails/14.jpg)
Problème de popularité• Métrique trop vaste
• Génère trop de recommendations
• Recommendations irrélévantes
![Page 15: Management des issues Github avec Neo4j et NLP](https://reader035.vdocuments.pub/reader035/viewer/2022062523/58ee4b121a28ab737b8b46e5/html5/thumbnails/15.jpg)
Popularité !
FAMOUS !!!
![Page 16: Management des issues Github avec Neo4j et NLP](https://reader035.vdocuments.pub/reader035/viewer/2022062523/58ee4b121a28ab737b8b46e5/html5/thumbnails/16.jpg)
Quelle métrique ?
Qu’est-ce qui circule dans les veines de Github ?
![Page 17: Management des issues Github avec Neo4j et NLP](https://reader035.vdocuments.pub/reader035/viewer/2022062523/58ee4b121a28ab737b8b46e5/html5/thumbnails/17.jpg)
CONTRIBUTIONS
![Page 18: Management des issues Github avec Neo4j et NLP](https://reader035.vdocuments.pub/reader035/viewer/2022062523/58ee4b121a28ab737b8b46e5/html5/thumbnails/18.jpg)
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
![Page 19: Management des issues Github avec Neo4j et NLP](https://reader035.vdocuments.pub/reader035/viewer/2022062523/58ee4b121a28ab737b8b46e5/html5/thumbnails/19.jpg)
NLP Basics
![Page 20: Management des issues Github avec Neo4j et NLP](https://reader035.vdocuments.pub/reader035/viewer/2022062523/58ee4b121a28ab737b8b46e5/html5/thumbnails/20.jpg)
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, …
![Page 21: Management des issues Github avec Neo4j et NLP](https://reader035.vdocuments.pub/reader035/viewer/2022062523/58ee4b121a28ab737b8b46e5/html5/thumbnails/21.jpg)
Un bot
![Page 22: Management des issues Github avec Neo4j et NLP](https://reader035.vdocuments.pub/reader035/viewer/2022062523/58ee4b121a28ab737b8b46e5/html5/thumbnails/22.jpg)
![Page 23: Management des issues Github avec Neo4j et NLP](https://reader035.vdocuments.pub/reader035/viewer/2022062523/58ee4b121a28ab737b8b46e5/html5/thumbnails/23.jpg)
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
![Page 24: Management des issues Github avec Neo4j et NLP](https://reader035.vdocuments.pub/reader035/viewer/2022062523/58ee4b121a28ab737b8b46e5/html5/thumbnails/24.jpg)
Issue Bot
![Page 25: Management des issues Github avec Neo4j et NLP](https://reader035.vdocuments.pub/reader035/viewer/2022062523/58ee4b121a28ab737b8b46e5/html5/thumbnails/25.jpg)
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
![Page 26: Management des issues Github avec Neo4j et NLP](https://reader035.vdocuments.pub/reader035/viewer/2022062523/58ee4b121a28ab737b8b46e5/html5/thumbnails/26.jpg)
![Page 27: Management des issues Github avec Neo4j et NLP](https://reader035.vdocuments.pub/reader035/viewer/2022062523/58ee4b121a28ab737b8b46e5/html5/thumbnails/27.jpg)
![Page 28: Management des issues Github avec Neo4j et NLP](https://reader035.vdocuments.pub/reader035/viewer/2022062523/58ee4b121a28ab737b8b46e5/html5/thumbnails/28.jpg)
![Page 29: Management des issues Github avec Neo4j et NLP](https://reader035.vdocuments.pub/reader035/viewer/2022062523/58ee4b121a28ab737b8b46e5/html5/thumbnails/29.jpg)
https://github.com/graphaware/
issuebot_nlp_meetup
![Page 30: Management des issues Github avec Neo4j et NLP](https://reader035.vdocuments.pub/reader035/viewer/2022062523/58ee4b121a28ab737b8b46e5/html5/thumbnails/30.jpg)
Merci !
Questions?
graphaware.com
@graph_aware
@ikwattro