https://air.imag.fr/api.php?action=feedcontributions&user=Elsa.Navarro&feedformat=atomair - User contributions [en]2024-03-28T16:36:44ZUser contributionsMediaWiki 1.35.13https://air.imag.fr/index.php?title=Conception_de_l%27interface_-_Recommandation_intelligente_de_films&diff=34774Conception de l'interface - Recommandation intelligente de films2017-03-15T13:42:23Z<p>Elsa.Navarro: /* Charte graphique */</p>
<hr />
<div>Voici la fiche de conception de l'interface du projet 'Recommandation intelligente de films'.<br />
<br />
[[Suggestion_intelligente_de_films_basée_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin<br />
* Hattinguais Julian<br />
* Navarro Elsa<br />
* Dunand Quentin<br />
<br />
=Développement de la maquette du produit=<br />
<br />
==Différentes vues réalisées==<br />
<br />
===Améliorer les prédictions===<br />
<br />
Cette vue permet à l'utilisateur de rechercher un film en particulier ou de parcourir les pages afin de trouver des films à annoter. En cliquant sur le pouces vers le haut, l'utilisateur indique qu'il aime le film et en cliquant sur le pouce vers le bas, qu'il ne l'aime pas.<br />
<br />
[[Image:Conception-VueAmeliorerPrediction.png|900px|center]]<br />
<br />
===Films annotés===<br />
<br />
Cette vue permet à l'utilisateur de visionner le récapitulatif des films qu'il a déjà annoté. Il peut affiner le résultat en sélectionnant au choix tous les films annotés, uniquement les films qu'il à annoté positivement ou alors uniquement ceux qu'il à annoté négativement.<br />
<br />
[[Image:Conception-VueFilmsAnnotes.png|900px|center]]<br />
<br />
===Recommandations===<br />
<br />
Cette vue permet à l'utilisateur de charger une liste de films recommandés selon ses goûts. La taille des images de films met en évidence les films ayant la plus grande probabilité de plaire à l'utilisateur, c'est à dire ceux ayant un haut score lors de la prédiction (une alternative à ce système est de simplement indiquer le pourcentage de chance que l'utilisateur aime le film proposé, sans modifier la taille des images). Des estampilles en haut à droite des images de films peuvent être présent et indiquent soit un coup de cœur de la communauté Twitter (icône cœur), soit un film populaire sur Twitter, c'est à dire un film dont on parle beaucoup sur Twitter mais pas forcément en bien (icône Twitter).<br />
<br />
[[Image:Conception-VueRecommandations.png|900px|center]]<br />
<br />
===Statistiques===<br />
<br />
Cette vue permet à l'utilisateur d'accéder aux statistiques sur ses films annotés. Par exemple, il pourra avoir le détail des genres qu'il aime ou n'aime pas, la durée moyenne des films aimés ou non aimés, etc.<br />
<br />
[[Image:Conception-VueStatistiques.png|900px|center]]<br />
<br />
==Charte graphique==<br />
<br />
La charte graphique à été sélectionnée via le site [https://www.materialpalette.com/teal/amber'''Material Palette'''], en utilisant comme couleur principale la couleur Material Design ''teal'' et comme couleur secondaire la couleur ''amber''.<br />
<br />
[[Image:CharteGraphique.png|800px|center]]<br />
<br />
==Logo==<br />
<br />
Le logo de l'application à été crée par Elsa Navarro, via le logiciel Gimp, en respectant la charte graphique présélectionnée et en essayant de respecter les [https://material.io/guidelines/style/icons.html'''guidelines'''] Material Design .<br />
<br />
[[Image:LogoDeepMovies.png|400px|center]]</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=SRS_-_Recommandation_intelligente_de_films&diff=34771SRS - Recommandation intelligente de films2017-03-15T13:22:16Z<p>Elsa.Navarro: /* Appendices */</p>
<hr />
<div>Voici la fiche SRS du projet Recommandation intelligente de films.<br />
<br />
[[Suggestion_intelligente_de_films_basée_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin<br />
* Hattinguais Julian<br />
* Navarro Elsa<br />
* Dunand Quentin<br />
<br />
=Introduction =<br />
Qui n'a pas rêvé d'avoir une liste de suggestion de films correspondant à ses goûts cinématographiques ? Grâce à un système de réseaux neuronaux et d'une base de données conséquente de films, le système proposera une liste de suggestions de films personnalisée pour l'utilisateur. Le modèle créé sur une base de données statique pourra alors être affiné en temps réel grâce aux nouvelles opinions exprimées par l’utilisateur et tenir compte de la popularité et avis récemment exprimés dans le flux Twitter.<br />
<br />
==But du document ==<br />
Le but de ce document SRS est de fournir une vue d'ensemble détaillée de notre système logiciel, ses paramètres et buts. Ce document décrit le public cible du projet et son interface utilisateur, ainsi que les spécifications du logiciel. Ce document est destiné tant aux utilisateurs qu'aux développeurs du logiciel.<br />
<br />
==Objectif du projet ==<br />
Beaucoup d'algorithmes ont été conçus dans le but de recommander des films en fonction des goûts utilisateurs. Beaucoup d'entre eux sont basés sur des systèmes présupposant que les utilisateurs appréciant un même film, apprécient les mêmes films. La suggestion est ainsi réalisée en fonction des goûts d'autres utilisateurs et non pas en fonction des goûts propres de l'utilisateur.<br />
Avec l’essor de l'intelligence artificielle et des réseaux neuronaux, de nouveaux outils émergent afin de mieux modéliser les comportements et les goûts humains. Le but de ce projet est d'utiliser l'apprentissage machine afin d'améliorer les systèmes de recommandation cinématographiques, en les personnalisant totalement en fonction des goûts de l'utilisateur.<br />
<br />
== Définitions, acronymes et abréviations ==<br />
* Deep Learning : ensemble de méthodes d'apprentissage automatiques visant à modéliser avec un haut niveau d’abstraction un ensemble de données.<br />
* Git : logiciel de gestion de versions décentralisé<br />
<br />
== Références ==<br />
* http://air.imag.fr/index.php/SRS<br />
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx<br />
* http://en.wikipedia.org/wiki/Software_requirements_specification<br />
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]<br />
<br />
==Portée du produit ==<br />
Le produit est destiné aux utilisateurs désireux d'obtenir automatiquement des recommandations de films en fonction de leurs goûts. L'application sera plus efficace pour des cinéphiles annotant un grand nombre de films, puisque les modèles d'apprentissage sont plus précis lorsque nous possédons un grands nombres de données d'apprentissage. Toutefois, notre produit à la prétention de pouvoir être utilisé par un internaute lambda, sans condition de connaissances cinématographiques.<br />
<br />
=Description générale=<br />
<br />
==Le but du produit==<br />
Le produit doit permettre à l'utilisateur d'obtenir des recommandations intelligentes de films en fonction des films qu'il a appréciés et de ceux qu'il n'a pas appréciés. Cette recommandation doit tenir compte de la proximité des films les uns par rapport aux autres en terme de genre, synopsie, acteurs, réalisateurs, etc. Mais doit également tenir compte de la popularité des films et des tendances actuelles grâce à l'analyse en temps réel des flux Twitter.<br />
<br />
== Structure de l'application ==<br />
Le schéma de la structure de l'application est disponible [[Conception - Recommandation intelligente de films| '''ici''']].<br />
<br />
==Caractéristiques et contraintes utilisateurs==<br />
* Les utilisateurs doivent posséder une certaine culture cinématographique pour constituer une base d'apprentissage, en fonction des films qu'ils ont préalablement visionnés et de leur avis sur ceux-ci. <br />
* Aucune expertise informatique n'est requise, bien que des notions d'informatiques soient nécessaires, afin que l'utilisateur puisse s'inscrire et naviguer sur le site internet. <br />
* Une connexion internet est également nécessaire pour utiliser le produit.<br />
<br />
==Contraintes générales du système==<br />
<br />
* Le nombre de données d'entrainement est très variable selon les utilisateurs<br />
* Utilisation de la technologie TensorFlow (Keras)<br />
* Limitation du nombre de requête par l'API TDMBSimple, à 40 par seconde<br />
<br />
==Dépendances==<br />
* API de la base de donnée de film TMDB : https://developers.themoviedb.org/3/people<br />
* API REST 1.1 : https://dev.twitter.com/rest/public<br />
* API STREAMING : https://dev.twitter.com/streaming/overview<br />
<br />
=Exigences fonctionelles=<br />
<br />
==Conception de l'interface du système==<br />
Le dossier de conception de l'interface est disponible [[Conception de l'interface - Recommandation intelligente de films|'''ici''']]<br />
<br />
== Fonctionnalités ==<br />
<br />
La liste des fonctionnalités est disponible [https://docs.google.com/spreadsheets/d/1LSg5gTqY8aYSFziu34ActGsZ0cR5aUQ3xD48CJBQM3s/edit?usp=sharing '''ici''']<br />
<br />
=Exigences de performance=<br />
<br />
* '''Facilité de prise en main :''' Le logiciel doit être facile à prendre en main pour un utilisateur non expert et agréable à utiliser pour un utilisateur expert.<br />
* '''Temps de réponse :''' Le produit doit avoir un temps de réponses réduit et quasiment constant ou alors avertir l'utilisateur en cas de délais de traitement. Ces délais de traitement doivent être réduit au maximum pour tenir sur le time-out d'attente de réponse à une réquête client.<br />
* '''Sécurité et robustesse / Gestion des erreurs :''' Le logiciel est capable d'éviter ou de faire face aux événements indésirables, sans intervention humaine. Le système doit fonctionner continuellement malgré les erreurs, du moment qu'elles ne remettent pas en cause son bon fonctionnement. Une erreur grave doit cependant provoquer l'arrêt du service, pour ne pas compromettre l'intégrité du système.<br />
* '''Précision :''' Le modèle de prédiction doit être assez fiable pour prédire correctement un nombre conséquent de films (précision supérieure à 70%).<br />
<br />
=Evolutions potentielles du produit=<br />
<br />
* '''Multi serveurs :''' Pour être pleinement fonctionnel, le produit devra être déployé sur plusieurs serveurs pour résister à la charge. <br />
* '''Basculement sur le nouveau modèle :''' Une fois le nombre d'utilisateur suffisant, nous pourrons basculer complètement l'apprentissage sur notre modèle "factorisation machine". Ceci permettra d'avoir un unique modèle pour l'ensemble des utilisateurs que nous ne ré-entrainerons qu'une seule fois par jours. L'intérêt est de réduire le nombre de modèles enregistrés sur le serveur de fichiers ainsi que leur mises à jours, permettant ainsi de mieux résister à l'augmentation de la charge utilisateur. L'autre intérêt majeure est que cela augmentera notre précision de prédiction.<br />
* '''Amélioration du nouveau modèle :''' Une fois le modèle mis en place et le nombre de données suffisant, nous pourrons améliorer sa précision en prenant en compte des données utilisateurs ainsi que des données sur les films afin d'affiner notre classification et donc nos prédictions.<br />
* '''Distribution de l'apprentissage :''' Avec le nouveau modèle, l'apprentissage machine va devenir très long car le nombre de données d'entrainement va augmenter exponentiellement avec le nombre d'utilisateurs. La distribution de l'algorithme d'apprentissage prendra donc tout son sens pour maintenir un temps de réponse convenable.<br />
* '''Remplacer l'API TMDB :''' Pour supporter la charge nous devons nous abstraire de la limitation de requêtes imposée par TMDB. La méthode la plus simple consisterait à charger le contenu de TMDB sur un de nos serveur et à le mettre à jours tous les jours.<br />
<br />
=Appendices=<br />
<br />
==Bibliographie==<br />
<br />
=== Articles ===<br />
<br />
===== Systèmes de recommandation=====<br />
* [http://benanne.github.io/2014/08/05/spotify-cnns.html#contentbased'''Recommending music on Spotify with deep learning''']<br />
* [https://static.googleusercontent.com/media/research.google.com/fr//pubs/archive/45530.pdf'''Deep Neural Networks for YouTube Recommendations''']<br />
* [https://www.atala.org/IMG/pdf/1-Poirier-TAL51-3.pdf'''De la classification d’opinions à la recommandation''']<br />
* [http://blog.richardweiss.org/2016/09/25/movie-embeddings.html'''Recommending movies with deep learning''']<br />
* [https://tel.archives-ouvertes.fr/tel-01009570/document'''Factorisation matricielle''']<br />
<br />
===== Articles sur l'analyse de sentiments=====<br />
* [http://imu.universite-lyon.fr/wp-content/uploads/2015/07/me%CC%81moire-Ahmed-REMADNA.pdf'''Classification des posts sur des réseaux sociaux''']<br />
* [http://www.volodenkov.com/post/keras-lstm-sentiment-p1/'''Sentiment analysis with RNN in Keras''']<br />
* [http://www.wildml.com/2015/12/implementing-a-cnn-for-text-classification-in-tensorflow/'''Implementing a CNN for Text Classification in TensorFlow''']<br />
<br />
=== Documentations ===<br />
<br />
===== Keras =====<br />
* [http://machinelearningmastery.com/introduction-python-deep-learning-library-keras/'''Introduction to Python Deep Learning with Keras''']<br />
* [http://machinelearningmastery.com/tutorial-first-neural-network-python-keras/'''Develop Your First Neural Network in Python With Keras Step-By-Step''']<br />
<br />
===== API TMDB =====<br />
* [https://developers.themoviedb.org/3/people'''The movie data base for developers''']<br />
<br />
===== Django & AngularJS =====<br />
* [https://thinkster.io/django-angularjs-tutorial#rendering-post-objects'''Django angularJS tutorial''']<br />
* [https://material.angularjs.org/latest/'''Angular Material''']<br />
<br />
===== DOC2VEC =====<br />
* [https://rare-technologies.com/doc2vec-tutorial/'''Doc2vec tutorial''']<br />
* [http://linanqiu.github.io/2015/10/07/word2vec-sentiment/'''Sentiment Analysis Using Doc2Vec''']<br />
<br />
===== Api python - Flask =====<br />
* [http://flask.pocoo.org/docs/0.12/quickstart/#accessing-request-data'''Flask quickstart''']<br />
<br />
===== Grid'5000 =====<br />
* [https://www.grid5000.fr/mediawiki/index.php/Grid5000:Get_an_account'''Grid'5000 account''']<br />
<br />
=== Codes sources ===<br />
* [https://github.com/ririw/ririw.github.io/blob/master/assets/Recommending%20movies.ipynb'''Recommending movies''']<br />
* [https://github.com/nisarg64/Sentiment-Analysis-Word2Vec'''Sentiment-Analysis-Word2Vec''']<br />
<br />
=== Material Design ===<br />
<br />
* [https://www.materialpalette.com/teal/amber'''Choix de la charte graphique''']<br />
* [https://material.io/guidelines/'''Guidelines''']</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=SRS_-_Recommandation_intelligente_de_films&diff=34770SRS - Recommandation intelligente de films2017-03-15T13:20:55Z<p>Elsa.Navarro: /* Appendices */</p>
<hr />
<div>Voici la fiche SRS du projet Recommandation intelligente de films.<br />
<br />
[[Suggestion_intelligente_de_films_basée_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin<br />
* Hattinguais Julian<br />
* Navarro Elsa<br />
* Dunand Quentin<br />
<br />
=Introduction =<br />
Qui n'a pas rêvé d'avoir une liste de suggestion de films correspondant à ses goûts cinématographiques ? Grâce à un système de réseaux neuronaux et d'une base de données conséquente de films, le système proposera une liste de suggestions de films personnalisée pour l'utilisateur. Le modèle créé sur une base de données statique pourra alors être affiné en temps réel grâce aux nouvelles opinions exprimées par l’utilisateur et tenir compte de la popularité et avis récemment exprimés dans le flux Twitter.<br />
<br />
==But du document ==<br />
Le but de ce document SRS est de fournir une vue d'ensemble détaillée de notre système logiciel, ses paramètres et buts. Ce document décrit le public cible du projet et son interface utilisateur, ainsi que les spécifications du logiciel. Ce document est destiné tant aux utilisateurs qu'aux développeurs du logiciel.<br />
<br />
==Objectif du projet ==<br />
Beaucoup d'algorithmes ont été conçus dans le but de recommander des films en fonction des goûts utilisateurs. Beaucoup d'entre eux sont basés sur des systèmes présupposant que les utilisateurs appréciant un même film, apprécient les mêmes films. La suggestion est ainsi réalisée en fonction des goûts d'autres utilisateurs et non pas en fonction des goûts propres de l'utilisateur.<br />
Avec l’essor de l'intelligence artificielle et des réseaux neuronaux, de nouveaux outils émergent afin de mieux modéliser les comportements et les goûts humains. Le but de ce projet est d'utiliser l'apprentissage machine afin d'améliorer les systèmes de recommandation cinématographiques, en les personnalisant totalement en fonction des goûts de l'utilisateur.<br />
<br />
== Définitions, acronymes et abréviations ==<br />
* Deep Learning : ensemble de méthodes d'apprentissage automatiques visant à modéliser avec un haut niveau d’abstraction un ensemble de données.<br />
* Git : logiciel de gestion de versions décentralisé<br />
<br />
== Références ==<br />
* http://air.imag.fr/index.php/SRS<br />
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx<br />
* http://en.wikipedia.org/wiki/Software_requirements_specification<br />
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]<br />
<br />
==Portée du produit ==<br />
Le produit est destiné aux utilisateurs désireux d'obtenir automatiquement des recommandations de films en fonction de leurs goûts. L'application sera plus efficace pour des cinéphiles annotant un grand nombre de films, puisque les modèles d'apprentissage sont plus précis lorsque nous possédons un grands nombres de données d'apprentissage. Toutefois, notre produit à la prétention de pouvoir être utilisé par un internaute lambda, sans condition de connaissances cinématographiques.<br />
<br />
=Description générale=<br />
<br />
==Le but du produit==<br />
Le produit doit permettre à l'utilisateur d'obtenir des recommandations intelligentes de films en fonction des films qu'il a appréciés et de ceux qu'il n'a pas appréciés. Cette recommandation doit tenir compte de la proximité des films les uns par rapport aux autres en terme de genre, synopsie, acteurs, réalisateurs, etc. Mais doit également tenir compte de la popularité des films et des tendances actuelles grâce à l'analyse en temps réel des flux Twitter.<br />
<br />
== Structure de l'application ==<br />
Le schéma de la structure de l'application est disponible [[Conception - Recommandation intelligente de films| '''ici''']].<br />
<br />
==Caractéristiques et contraintes utilisateurs==<br />
* Les utilisateurs doivent posséder une certaine culture cinématographique pour constituer une base d'apprentissage, en fonction des films qu'ils ont préalablement visionnés et de leur avis sur ceux-ci. <br />
* Aucune expertise informatique n'est requise, bien que des notions d'informatiques soient nécessaires, afin que l'utilisateur puisse s'inscrire et naviguer sur le site internet. <br />
* Une connexion internet est également nécessaire pour utiliser le produit.<br />
<br />
==Contraintes générales du système==<br />
<br />
* Le nombre de données d'entrainement est très variable selon les utilisateurs<br />
* Utilisation de la technologie TensorFlow (Keras)<br />
* Limitation du nombre de requête par l'API TDMBSimple, à 40 par seconde<br />
<br />
==Dépendances==<br />
* API de la base de donnée de film TMDB : https://developers.themoviedb.org/3/people<br />
* API REST 1.1 : https://dev.twitter.com/rest/public<br />
* API STREAMING : https://dev.twitter.com/streaming/overview<br />
<br />
=Exigences fonctionelles=<br />
<br />
==Conception de l'interface du système==<br />
Le dossier de conception de l'interface est disponible [[Conception de l'interface - Recommandation intelligente de films|'''ici''']]<br />
<br />
== Fonctionnalités ==<br />
<br />
La liste des fonctionnalités est disponible [https://docs.google.com/spreadsheets/d/1LSg5gTqY8aYSFziu34ActGsZ0cR5aUQ3xD48CJBQM3s/edit?usp=sharing '''ici''']<br />
<br />
=Exigences de performance=<br />
<br />
* '''Facilité de prise en main :''' Le logiciel doit être facile à prendre en main pour un utilisateur non expert et agréable à utiliser pour un utilisateur expert.<br />
* '''Temps de réponse :''' Le produit doit avoir un temps de réponses réduit et quasiment constant ou alors avertir l'utilisateur en cas de délais de traitement. Ces délais de traitement doivent être réduit au maximum pour tenir sur le time-out d'attente de réponse à une réquête client.<br />
* '''Sécurité et robustesse / Gestion des erreurs :''' Le logiciel est capable d'éviter ou de faire face aux événements indésirables, sans intervention humaine. Le système doit fonctionner continuellement malgré les erreurs, du moment qu'elles ne remettent pas en cause son bon fonctionnement. Une erreur grave doit cependant provoquer l'arrêt du service, pour ne pas compromettre l'intégrité du système.<br />
* '''Précision :''' Le modèle de prédiction doit être assez fiable pour prédire correctement un nombre conséquent de films (précision supérieure à 70%).<br />
<br />
=Evolutions potentielles du produit=<br />
<br />
* '''Multi serveurs :''' Pour être pleinement fonctionnel, le produit devra être déployé sur plusieurs serveurs pour résister à la charge. <br />
* '''Basculement sur le nouveau modèle :''' Une fois le nombre d'utilisateur suffisant, nous pourrons basculer complètement l'apprentissage sur notre modèle "factorisation machine". Ceci permettra d'avoir un unique modèle pour l'ensemble des utilisateurs que nous ne ré-entrainerons qu'une seule fois par jours. L'intérêt est de réduire le nombre de modèles enregistrés sur le serveur de fichiers ainsi que leur mises à jours, permettant ainsi de mieux résister à l'augmentation de la charge utilisateur. L'autre intérêt majeure est que cela augmentera notre précision de prédiction.<br />
* '''Amélioration du nouveau modèle :''' Une fois le modèle mis en place et le nombre de données suffisant, nous pourrons améliorer sa précision en prenant en compte des données utilisateurs ainsi que des données sur les films afin d'affiner notre classification et donc nos prédictions.<br />
* '''Distribution de l'apprentissage :''' Avec le nouveau modèle, l'apprentissage machine va devenir très long car le nombre de données d'entrainement va augmenter exponentiellement avec le nombre d'utilisateurs. La distribution de l'algorithme d'apprentissage prendra donc tout son sens pour maintenir un temps de réponse convenable.<br />
* '''Remplacer l'API TMDB :''' Pour supporter la charge nous devons nous abstraire de la limitation de requêtes imposée par TMDB. La méthode la plus simple consisterait à charger le contenu de TMDB sur un de nos serveur et à le mettre à jours tous les jours.<br />
<br />
=Appendices=<br />
<br />
==Bibliographie==<br />
<br />
=== Articles ===<br />
<br />
===== Systèmes de recommandation=====<br />
* [http://benanne.github.io/2014/08/05/spotify-cnns.html#contentbased'''Recommending music on Spotify with deep learning''']<br />
* [https://static.googleusercontent.com/media/research.google.com/fr//pubs/archive/45530.pdf'''Deep Neural Networks for YouTube Recommendations''']<br />
* [https://www.atala.org/IMG/pdf/1-Poirier-TAL51-3.pdf'''De la classification d’opinions à la recommandation''']<br />
* [http://blog.richardweiss.org/2016/09/25/movie-embeddings.html'''Recommending movies with deep learning''']<br />
* [https://tel.archives-ouvertes.fr/tel-01009570/document'''Factorisation matricielle''']<br />
<br />
===== Articles sur l'analyse de sentiments=====<br />
* [http://imu.universite-lyon.fr/wp-content/uploads/2015/07/me%CC%81moire-Ahmed-REMADNA.pdf'''Classification des posts sur des réseaux sociaux''']<br />
* [http://www.volodenkov.com/post/keras-lstm-sentiment-p1/'''Sentiment analysis with RNN in Keras''']<br />
* [http://www.wildml.com/2015/12/implementing-a-cnn-for-text-classification-in-tensorflow/'''Implementing a CNN for Text Classification in TensorFlow''']<br />
<br />
=== Documentations ===<br />
<br />
===== Keras =====<br />
* [http://machinelearningmastery.com/introduction-python-deep-learning-library-keras/'''Introduction to Python Deep Learning with Keras''']<br />
* [http://machinelearningmastery.com/tutorial-first-neural-network-python-keras/'''Develop Your First Neural Network in Python With Keras Step-By-Step''']<br />
<br />
===== API TMDB =====<br />
* [https://developers.themoviedb.org/3/people'''The movie data base for developers''']<br />
<br />
===== Django & AngularJS =====<br />
* [https://thinkster.io/django-angularjs-tutorial#rendering-post-objects'''Django angularJS tutorial''']<br />
* [https://material.angularjs.org/latest/'''Angular Material''']<br />
<br />
===== DOC2VEC =====<br />
* [https://rare-technologies.com/doc2vec-tutorial/'''Doc2vec tutorial''']<br />
* [http://linanqiu.github.io/2015/10/07/word2vec-sentiment/'''Sentiment Analysis Using Doc2Vec''']<br />
<br />
===== Api python - Flask =====<br />
* [http://flask.pocoo.org/docs/0.12/quickstart/#accessing-request-data'''Flask quickstart''']<br />
<br />
===== Grid'5000 =====<br />
* [https://www.grid5000.fr/mediawiki/index.php/Grid5000:Get_an_account'''Grid'5000 account''']<br />
<br />
=== Codes sources ===<br />
* [https://github.com/ririw/ririw.github.io/blob/master/assets/Recommending%20movies.ipynb'''Recommending movies''']<br />
* [https://github.com/nisarg64/Sentiment-Analysis-Word2Vec'''Sentiment-Analysis-Word2Vec''']<br />
<br />
<br />
=== Material Design ===<br />
<br />
* [https://www.materialpalette.com/teal/amber'''Choix de la charte graphique''']<br />
* [https://material.io/guidelines/'''Guidelines''']</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=Conception_de_l%27interface_-_Recommandation_intelligente_de_films&diff=34766Conception de l'interface - Recommandation intelligente de films2017-03-15T13:10:43Z<p>Elsa.Navarro: </p>
<hr />
<div>Voici la fiche de conception de l'interface du projet 'Recommandation intelligente de films'.<br />
<br />
[[Suggestion_intelligente_de_films_basée_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin<br />
* Hattinguais Julian<br />
* Navarro Elsa<br />
* Dunand Quentin<br />
<br />
=Développement de la maquette du produit=<br />
<br />
==Différentes vues réalisées==<br />
<br />
===Améliorer les prédictions===<br />
<br />
Cette vue permet à l'utilisateur de rechercher un film en particulier ou de parcourir les pages afin de trouver des films à annoter. En cliquant sur le pouces vers le haut, l'utilisateur indique qu'il aime le film et en cliquant sur le pouce vers le bas, qu'il ne l'aime pas.<br />
<br />
[[Image:Conception-VueAmeliorerPrediction.png|900px|center]]<br />
<br />
===Films annotés===<br />
<br />
Cette vue permet à l'utilisateur de visionner le récapitulatif des films qu'il a déjà annoté. Il peut affiner le résultat en sélectionnant au choix tous les films annotés, uniquement les films qu'il à annoté positivement ou alors uniquement ceux qu'il à annoté négativement.<br />
<br />
[[Image:Conception-VueFilmsAnnotes.png|900px|center]]<br />
<br />
===Recommandations===<br />
<br />
Cette vue permet à l'utilisateur de charger une liste de films recommandés selon ses goûts. La taille des images de films met en évidence les films ayant la plus grande probabilité de plaire à l'utilisateur, c'est à dire ceux ayant un haut score lors de la prédiction (une alternative à ce système est de simplement indiquer le pourcentage de chance que l'utilisateur aime le film proposé, sans modifier la taille des images). Des estampilles en haut à droite des images de films peuvent être présent et indiquent soit un coup de cœur de la communauté Twitter (icône cœur), soit un film populaire sur Twitter, c'est à dire un film dont on parle beaucoup sur Twitter mais pas forcément en bien (icône Twitter).<br />
<br />
[[Image:Conception-VueRecommandations.png|900px|center]]<br />
<br />
===Statistiques===<br />
<br />
Cette vue permet à l'utilisateur d'accéder aux statistiques sur ses films annotés. Par exemple, il pourra avoir le détail des genres qu'il aime ou n'aime pas, la durée moyenne des films aimés ou non aimés, etc.<br />
<br />
[[Image:Conception-VueStatistiques.png|900px|center]]<br />
<br />
==Charte graphique==<br />
<br />
La charte graphique à été sélectionnée via le site [https://www.materialpalette.com/teal/amber'''Material Design'''], en utilisant comme couleur principale la couleur Material Design ''teal'' et comme couleur secondaire la couleur ''amber''.<br />
<br />
[[Image:CharteGraphique.png|800px|center]]<br />
<br />
==Logo==<br />
<br />
Le logo de l'application à été crée par Elsa Navarro, via le logiciel Gimp, en respectant la charte graphique présélectionnée et en essayant de respecter les [https://material.io/guidelines/style/icons.html'''guidelines'''] Material Design .<br />
<br />
[[Image:LogoDeepMovies.png|400px|center]]</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=Conception_de_l%27interface_-_Recommandation_intelligente_de_films&diff=34765Conception de l'interface - Recommandation intelligente de films2017-03-15T13:09:05Z<p>Elsa.Navarro: </p>
<hr />
<div>Voici la fiche de conception de l'interface du projet 'Recommandation intelligente de films'.<br />
<br />
[[Suggestion_intelligente_de_films_basée_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin<br />
* Hattinguais Julian<br />
* Navarro Elsa<br />
* Dunand Quentin<br />
<br />
=Développement de la maquette du produit=<br />
<br />
<br />
==Différentes vues réalisées==<br />
<br />
===Améliorer les prédictions===<br />
<br />
Cette vue permet à l'utilisateur de rechercher un film en particulier ou de parcourir les pages afin de trouver des films à annoter. En cliquant sur le pouces vers le haut, l'utilisateur indique qu'il aime le film et en cliquant sur le pouce vers le bas, qu'il ne l'aime pas.<br />
<br />
[[Image:Conception-VueAmeliorerPrediction.png|900px|center]]<br />
<br />
===Films annotés===<br />
<br />
Cette vue permet à l'utilisateur de visionner le récapitulatif des films qu'il a déjà annoté. Il peut affiner le résultat en sélectionnant au choix tous les films annotés, uniquement les films qu'il à annoté positivement ou alors uniquement ceux qu'il à annoté négativement.<br />
<br />
[[Image:Conception-VueFilmsAnnotes.png|900px|center]]<br />
<br />
===Recommandations===<br />
<br />
Cette vue permet à l'utilisateur de charger une liste de films recommandés selon ses goûts. La taille des images de films met en évidence les films ayant la plus grande probabilité de plaire à l'utilisateur, c'est à dire ceux ayant un haut score lors de la prédiction (une alternative à ce système est de simplement indiquer le pourcentage de chance que l'utilisateur aime le film proposé, sans modifier la taille des images). Des estampilles en haut à droite des images de films peuvent être présent et indiquent soit un coup de cœur de la communauté Twitter (icône cœur), soit un film populaire sur Twitter, c'est à dire un film dont on parle beaucoup sur Twitter mais pas forcément en bien (icône Twitter).<br />
<br />
[[Image:Conception-VueRecommandations.png|900px|center]]<br />
<br />
===Statistiques===<br />
<br />
Cette vue permet à l'utilisateur d'accéder aux statistiques sur ses films annotés. Par exemple, il pourra avoir le détail des genres qu'il aime ou n'aime pas, la durée moyenne des films aimés ou non aimés, etc.<br />
<br />
[[Image:Conception-VueStatistiques.png|900px|center]]<br />
<br />
==Charte graphique==<br />
<br />
La charte graphique à été sélectionnée via le site [https://www.materialpalette.com/teal/amber'''Material Design'''], en utilisant comme couleur principale la couleur Material Design ''teal'' et comme couleur secondaire la couleur ''amber''.<br />
<br />
[[Image:CharteGraphique.png|800px|center]]<br />
<br />
<br />
==Logo==<br />
<br />
Le logo de l'application à été crée par Elsa Navarro, via le logiciel Gimp, en respectant la charte graphique présélectionnée et en essayant de respecter les [https://material.io/guidelines/style/icons.html'''guidelines'''] Material Design .<br />
<br />
[[Image:LogoDeepMovies.png|400px|center]]</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=Fiche_de_suivi_-_Recommandation_intelligente_de_films&diff=34303Fiche de suivi - Recommandation intelligente de films2017-03-08T15:57:11Z<p>Elsa.Navarro: /* Mardi */</p>
<hr />
<div>Voici la Fiche de suivi du projet de fin d'études DeepMovies 2016-2017<br />
<br />
[[Suggestion_intelligente_de_films_basée_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin (Responsable innovation)<br />
* Hattinguais Julian (Responsable qualité)<br />
* Navarro Elsa (Responsable communication, Médiatrice)<br />
* Dunand Quentin (Responsable des deadlines,Responsable du front-end)<br />
<br />
= Avancée du projet =<br />
Le scrumboard utilisé pour le projet est visible dans l'onglet Projet de l'organisation DeepLearningMovies que nous avons créé sur Github. Chaque tâche est réalisée par un ou plusieurs membre(s) de l'équipe et testée par un autre membre de l'équipe.<br />
<br />
== Sprint 0 ==<br />
<br />
===Sprint dédié aux travaux préparatoires du projet===<br />
* Debriefing autour du projet<br />
* Renseignements sur les technologies et principaux défis techniques<br />
* Maquette de tests sur la faisabilité du projet (recherche de solutions pour les principaux problèmes techniques afin de guider nos choix technologiques et choix de fonctionnalités) <br />
* Choix technologiques<br />
* Préparation des environnements<br />
* Établissement de la liste des exigences fonctionnelles et non fonctionnelles<br />
<br />
<br />
[[File:Sprint0-Semaine1.jpg|1400px|middle]]<br />
<br />
=== Semaine 1 : 23/01 - 29/01 ===<br />
* Mise en place du wiki (Edwin)<br />
* Recherche sur les technologies et les problèmes techniques (Tous)<br />
* Prise RDV avec Massih-Reza Amini pour renseignements (Coralie)<br />
* Mise en place d'un agenda pour le suivi du projet (Coralie)<br />
* Comment lier l'API au front-end ? AngularJS ou Polymer ? ... (Quentin)<br />
<br />
* Mise en place de l'architecture (Tous) avant de faire un prototype comme prévu.<br />
* Installation, compréhension et manipulation de Keras (Tous)<br />
* Recherche mise en place API-REST Python pour le back-end (Julian)<br />
* Mise en place du front-end - première requêtes - choix Angular pour communiquer avec une API-REST (Quentin)<br />
* Traitement de données simple en se basant juste sur le vote des utilisateurs de TMDb sur les films (Edwin, Coralie, Elsa)<br />
* Mise en place d'un prototype capable de récolter grâce à l'API de TMDB les informations de films ciblés. Puis construction d'un modèle de Deep Learning capable de prédire si une personne va aimer un film ou non en fonction de sa note. (Edwin, Coralie)<br />
* Recherche de la transformation de texte en valeurs numériques (String to Float) et plus généralement du prétraitement des données (Elsa, Coralie, Quentin) : découvertes de Word2Vec et de [http://nlp.stanford.edu/projects/glove/ GloVe].<br />
<br />
<br />
* Rendez-vous avec Massih-Reza Amini pour éclaircir le sujet, notamment au sujet du pré-traitement du texte. (Tous)<br />
* Premiers scripts Python pour le prétraitement des données : import depuis un script JSON (Julian) et transformation sous forme de vecteur moyen pour un film donné (Elsa), recherche d'une méthode plus approfondie pour traiter le Résumé (Coralie).<br />
* Réflexion sur les choix des différents layers de traitement des données et sur l'étape d'embedding des données (premier traitement) (Edwin).<br />
* Mise en place d'un système de notation fonctionnel qui permet d'enregistrer les données à partir du front (Quentin).<br />
<br />
== Sprint 1 ==<br />
<br />
===Tâches du Sprint1===<br />
* T1. Établissement des vues principales côté client (recherche et annotation de films)<br />
* T2. Mise en place du processus de pré-traitement des données (titre, mots clés, résumé, note, artiste, producteur)<br />
* T3. Mise en place du réseau neuronal (réseau neuronal simple)<br />
* T4. Mise en place de la structure de test du réseau neuronal (former les corpus de données, cross validation, test de précision)<br />
* T5. Mise en place de l'environnement système (Docker)<br />
<br />
=== Semaine 2 : 30/01 - 05/02 ===<br />
<br />
[[File:Sprint1-Semaine2.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Préparation du premier sprint :<br />
** Mise au point sur le travail réalisé la semaine passée et sur le travail à réaliser durant le sprint<br />
** Établissement d'une liste de fonctionnalités, avec une estimation de l'importance et du temps de réalisation de chaque tâche<br />
** Sélection des fonctionnalités à réaliser au cours du Sprint, remplissage du Scrumboard<br />
* Mise au point sur l'arborescence du git / architecture du projet<br />
* Installation d'une version GPU pour Keras et Tensor-Flow sur les machines équipées d'un bon GPU<br />
<br />
====Mardi====<br />
<br />
* Réunion avec Didier Donsez : <br />
** Technologies : storm, spark, flint (temps réel) pour Twitter<br />
** Distribution : préparer un déploiement sur GRID5000, contacter Olivier Richard et préparer un container Docker<br />
** Utiliser Github pour héberger le site web<br />
<br />
* T1. -> Vues "recherche de films", "annotation de film" et "consultation des films annotés" (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** prétraitement des mots via Glove (Elsa, Edwin, Julian)<br />
** récupération des données (Julian)<br />
** mise en place de l'embedding (Edwin)<br />
** mise en place d'une librairie pour le pré-traitement des données envoyées aux classifieur (Julian)<br />
** Import des modules (Julian)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Chargement des images de films côté client (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" + Ajout "genre" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** extraction des données JSON via l'API (Elsa)<br />
** prétraitement des genres (Julian)<br />
** prétraitement général (mise en forme de la matrice de données) (Edwin)<br />
** revue de code (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur sous Keras - Elephas ? (Coralie)<br />
<br />
====Jeudi====<br />
<br />
* Cours de MPI - travail sur la communication au sein d'un groupe<br />
* T1. -> Pagination et chargement d'images (Quentin)<br />
* T3. -> Création d'une première version du classifieur (Elsa, Edwin)<br />
* T4. -> Validation croisée pour pouvoir tester le classifieur correctement (Edwin & Elsa)<br />
* T5. -> Installation version GPU sur PC (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur Keras - Elephas (Coralie)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Déploiement sur github.io (Quentin)<br />
* T3. -> Insertion de Doc2Vec dans le classifieur (Julian)<br />
* T3. -> Revue du classifieur pour obtenir une meilleure précision (Elsa & Edwin)<br />
* T4. -> Mise en place d'un système de test du classifieur automatisé avec k validations croisées pour les films enregistrés dans un fichier JSON (Elsa)<br />
* T4. -> Annotation de films pour constituer la base d'apprentissage/test (Tous)<br />
* T5. -> Auto-formation sur Docker (Coralie, Edwin)<br />
<br />
=== Semaine 3 : 06/02 - 12/02 ===<br />
<br />
[[File:Sprint1-Semaine3.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Cours de MPI - gestion de projet<br />
* T1. -> Ajout d'un boite de dialogue permettant de visualiser les infos d'un film (Quentin)<br />
* T2. -> Fix de bugs dans preprocessing (Julian)<br />
* T4. -> Recherche sur la mise en place de tests avec Python (Elsa)<br />
* T5. -> Mise en place de l'image Docker avec Python, Keras et Tensorflow en partant d'un Ubuntu 14 (Edwin)<br />
* T5. -> Mise en place de l'image Docker avec Spark en partant d'un Ubuntu 14 (Coralie)<br />
<br />
====Mardi====<br />
<br />
* Rendez-vous avec Mr. Amini<br />
* T1. -> Amélioration de la boîte de dialogue pour les infos (Quentin)<br />
* T2. -> Preprocessing des acteurs et des realisateurs et ajout des fonction de test associées (Julian)<br />
* T2. -> Test le modèle D2V sur un analyseur de sentiment de tweets, beaucoup plus objectif que les gouts utilisateurs vis à vis des films (Coralie).<br />
* T2. -> Mise en place de modules de test unitaires dans MovieProject/tests/unit et suppression de fichiers inutiles dans MovieProject/tests (Elsa)<br />
* T4. -> Ajout de nouveaux fichiers de tests (json) et évaluation du classifieur de façon générique sur les fichiers json dans MovieProject/resources/evaluation (Elsa)<br />
* T4. -> Evaluation du classifieur avec la méthode Doc2Vec (Elsa)<br />
* T5. -> Finalisation de l'image Docker avec Python, Keras et Tensorflow (Edwin)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Début de la mise en place des différents modèles d'apprentissage en vue de leur comparaison : <br />
** Réseau neuronal avec Keras (Elsa)<br />
** Perceptron (Coralie)<br />
** Modification du prétraitement afin de pouvoir récupérer les matrices de chacune des variables caractérisant un film (Julian)<br />
* T5. -> Ajout de Spark à l'image Docker (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* T1. -> Poursuite de la création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Poursuite des tests de performance :<br />
** Test de l'influence de chaque variable des films sur le modèle du perceptron, afin de ne sélectionner que les variables pertinentes (Coralie)<br />
** Test du réseau neuronal (Elsa)<br />
** Mise en place d'un SVM pour concurrencer les performances des deux autres modèles (Julian)<br />
* T5. -> Test de l'image Docker (Edwin)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Visualisation des statistiques + explications sur la page d'accueil (Quentin)<br />
* T4. -> Finalisation perceptron + intégration dans evaluation (Coralie)<br />
* T4. -> Finalisation SVM + intégration dans evaluation (Julian)<br />
* T4. -> Mise en place du module evaluation et intégration des modifications de classifieur & preprocessing (Elsa)<br />
* T5. -> Documentation sur Spark (Edwin & Coralie)<br />
<br />
===État du scrumboard en fin du Sprint1===<br />
<br />
[[File:Sprint1-end-Scrumboard.png|1080px|middle]]<br />
<br />
== Sprint 2 ==<br />
<br />
===Tâches du Sprint2===<br />
<br />
*T1.2. Amélioration du front-end (mise en cache, etc.)<br />
*T2.2. Ajout de descripteurs (durée, budget, année de production, compagnie de production, appartenance à une sage) en vue d'améliorer notre modèle d'apprentissage.<br />
*T3.2 Amélioration du réseau neuronal (comparaison avec Perceptron simple, SVM, RN Convolutif)<br />
*T4. Mise en place de la suggestion de films (vue côté front-end et logique côté back-end)<br />
*T5. Distribution de l'apprentissage sur plusieurs machines (Docker - Spark - Mesos - Elephas) & Parallélisation requêtes<br />
*T6 Communication front/back, établissement des routes et mise en place du système d'authentification<br />
*T7. Analyse de sentiment sur les flux Twitter<br />
*T8. Mise en place de la base de données<br />
<br />
=== Semaine 4 : 13/02 - 19/02 ===<br />
<br />
[[File:Sprint2-Semaine4.png|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Réunion de fin de sprint1 et de début de sprint0 : discussion autour des avancées, difficultés, retards & établissement fonctionnalités à implémenter au cours du sprint2<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T2.2. -> Revue de la structure du code (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
<br />
====Mardi====<br />
<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T3.2 -> Amélioration du classifieur (Elsa/Quentin)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
*T5. -> Parallélisation des requêtes à l'API TMDB (Julian)<br />
<br />
====Mercredi====<br />
<br />
*T1.2 -> Finalisation du cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T1.2 -> Finalisation des statistiques cinématographique utilisateurs (Quentin)<br />
*T2.2. -> Ajout du descripteurs "budget" avec normalisation (Edwin)<br />
*T3.2 -> Mise en place de la fonction de comparaison des combinaisons de descripteurs de films pour faciliter le travail des DUT (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal LSTM (Coralie)<br />
*T4. -> Changement de la méthode de prédiction de film (Elsa)<br />
*T6. -> Communication front-back test (Elsa/Quentin)<br />
* SRS (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* Rendez-vous avec les DUT : aide sur l'installation du projet, clone du projet Github. <br />
* Préparation de la présentation (Elsa & Edwin)<br />
* Préparation démo (Quentin & Elsa)<br />
* Mise à jour Wiki, SRS, Scrumboard (Elsa & Edwin)<br />
* Aide des DUT (Edwin & Julian)<br />
* T3.2 -> Evaluation du modèle et comparaison avec SVM et Perceptron de manière graphique (extraire les données et construire des graphes - csv ou matplotlib) (Sébastien & Marceau)<br />
* T7. -> Prétraitement des Tweet(Coralie)<br />
* T5. -> Avancement sur le distribué (Julian)<br />
* T1.2 -> Page de login du front, fix problème de CSS sur les graphes (Quentin)<br />
* T3.2 -> Amélioration du classifieur, tests en changeant les layers, le batch-size, etc. (Quentin)<br />
<br />
====Vendredi====<br />
* Préparation du travail qu'Edwin pourra réaliser durant la semaine de vacances (Edwin travaillera en décalé avec le reste du groupe)<br />
* Début de la mise en place de la base de données (Edwin)<br />
<br />
=== Semaine 5 : 20/02 - 26/02 (Edwin) ===<br />
(Edwin a travaillé la semaine précédente, en décalé avec le reste du groupe)<br />
====Lundi====<br />
*T8. -> Installation des outils liés à la gestion de la base de données MySQL et début de la conception de l'API de communication avec cette base. (Edwin)<br />
====Mardi====<br />
*T8. -> Finalisation de l'API, début des tests et des corrections de bug. (Edwin)<br />
====Mercredi====<br />
*T8. -> Ajout de nouvelles fonctionnalités SQL à l'API et tests de l'API. Création d'un readme et d'un fichier d'exemple complet pour l'utilisation de l'API de MySQL. (Edwin)<br />
*T8. -> Amélioration de l'image Docker, correction de bugs de paths et de librairies manquantes. (Edwin)<br />
====Jeudi====<br />
*T8. -> Review générale du travail lié à la base de données. (Edwin)<br />
*T8. -> Mise en place de MySQL pour Docker. (Edwin)<br />
*Mise à jour du Scrumboard et du wiki-air. (Edwin)<br />
<br />
====Vendredi====<br />
*T8. -> Amélioration du Docker pour tenter de régler des problèmes de ports liés à MySQL (non terminé). (Edwin) <br />
*T8. -> Tests unitaires de fonctionnement de serveurs apaches. (Edwin)<br />
<br />
=== Semaine 5 : 27/02 - 28/02 ===<br />
<br />
[[File:Sprint2-Semaine5.png|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* T1.2 -> Mise en place de la page de recommendations (Quentin)<br />
* Merge du classifieur sur la branche develop, avec la prédiction (Elsa)<br />
* T8. -> Revue de la BD et sécurisation (Julian) puis merge sur develop<br />
* T7. -> Finalisation de l'analyse de sentiments (Coralie) pour merge sur develop<br />
* T3.2 -> Recherche sur une construction différente des matrices (basée sur la factorisation de matrices, cf Prix Netflix) (Quentin & Elsa)<br />
<br />
====Mardi====<br />
* Harmonisation des données merge sur le git (Sentiment analysis, evaluation du classifieur et prediction) (Elsa)<br />
* T6. -> Recherche et premiers tests pour l'authentification (Quentin pour le front et Julian pour le back)<br />
* T8. & T5. -> Creation d'une instance de BD Amazon RDS dans un VPC (Coralie)<br />
* T1.2 -> Finalisation page de recommendations (Quentin)<br />
* Insertion en BD des films annotés par les users (Julian)<br />
<br />
====Mercredi====<br />
* Réunion avec Massih-Reza Amini pour parler d'un nouveau modèle de machine learning (Cf Quentin & Elsa lundi)<br />
* T4. -> Amélioration de la prédiction (Elsa)<br />
* T5. -> Essais déploiement du back sur une instance Amazon EC2 (Coralie)<br />
* T6. -> Mise en place de l'authentification simple (login) (Quentin & Julian)<br />
<br />
====Jeudi====<br />
* T4. -> Amélioration de la prédiction et module de test pour la prédiction (Elsa)<br />
* T5. -> Essais déploiement du back sur une instance Amazon EC2 (Coralie)<br />
* T1.2 -> Création des vues d'inscription (sign up) et début vue des paramètres (Quentin)<br />
* T6. -> Sécurisation des appels à l'API par Token (Julian)<br />
<br />
====Vendredi====<br />
* Nettoyage de develop + mise en place de nouveaux tests et état des lieux des tests et de la doc à faire (Elsa)<br />
* T5. -> Essais déploiement du back sur une instance Amazon EC2 (Coralie)<br />
* T6. -> Finalisation de l'inscription et test des premiers appels de récupération des films annotés d'un user (Quentin & Julian)<br />
<br />
===État du scrumboard en fin du Sprint2===<br />
<br />
[[File:Sprint2-end-Scrumboard.png|1080px|middle]]<br />
<br />
== Sprint 3 ==<br />
<br />
===Tâches du Sprint3===<br />
<br />
*T1.1 Lier le back et le front, mettre en place les routes (suggestion, annotation) - Authentification faite<br />
*T1.2 Revoir et enrichir les vues du front<br />
*T2. Déployer l'API sur un serveur Amazon (SQL dans Docker, environnement d'exécution avec Docker)<br />
*T3. Enrichir l'ensemble de tests et la documentation<br />
*T4. Mettre en place le nouveau modèle pour avoir une autre base de comparaison<br />
<br />
=== Semaine 6 : 27/02 - 05/03 ===<br />
<br />
[[File:Sprint3-Semaine6.png|1400px|middle]]<br />
<br />
====Lundi====<br />
* Conclusion sur le sprint précédent<br />
* Discussion au sujet du nouveau Sprint<br />
* T2. -> Problème de mise en place de Docker sur les machines Amazon : discussion de l'équipe pour essayer de trouver une solution (Swap)<br />
<br />
====Mardi====<br />
* T1.1 -> Ajout des routes pour gérer les ajouts/suppressions en base de données (Julian)<br />
* T1.1 -> Ajout de la logique côté front pour gérer les ajouts/suppressions en base de données (Quentin)<br />
* T1.1 -> Tests de la communication front - back(api) - base de données (Coralie, Julian, Quentin)<br />
* T2 -> Finalisation du déploiement de l'API sur un serveur Amazon + tests (Coralie)<br />
* T3 -> Tests unitaires sur apiTMDB (Elsa) et sur sql (Edwin)<br />
* T1.2 -> Charte graphique (Elsa)<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
=== Semaine 7 : 06/03 - 12/03 ===<br />
<br />
[[File:Sprint3-Semaine7.png|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
* Soutenance de fin de projet avec Didier Donsez et Massih-Reza Amini</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=Fiche_de_suivi_-_Recommandation_intelligente_de_films&diff=34302Fiche de suivi - Recommandation intelligente de films2017-03-08T15:56:40Z<p>Elsa.Navarro: /* Tâches du Sprint3 */</p>
<hr />
<div>Voici la Fiche de suivi du projet de fin d'études DeepMovies 2016-2017<br />
<br />
[[Suggestion_intelligente_de_films_basée_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin (Responsable innovation)<br />
* Hattinguais Julian (Responsable qualité)<br />
* Navarro Elsa (Responsable communication, Médiatrice)<br />
* Dunand Quentin (Responsable des deadlines,Responsable du front-end)<br />
<br />
= Avancée du projet =<br />
Le scrumboard utilisé pour le projet est visible dans l'onglet Projet de l'organisation DeepLearningMovies que nous avons créé sur Github. Chaque tâche est réalisée par un ou plusieurs membre(s) de l'équipe et testée par un autre membre de l'équipe.<br />
<br />
== Sprint 0 ==<br />
<br />
===Sprint dédié aux travaux préparatoires du projet===<br />
* Debriefing autour du projet<br />
* Renseignements sur les technologies et principaux défis techniques<br />
* Maquette de tests sur la faisabilité du projet (recherche de solutions pour les principaux problèmes techniques afin de guider nos choix technologiques et choix de fonctionnalités) <br />
* Choix technologiques<br />
* Préparation des environnements<br />
* Établissement de la liste des exigences fonctionnelles et non fonctionnelles<br />
<br />
<br />
[[File:Sprint0-Semaine1.jpg|1400px|middle]]<br />
<br />
=== Semaine 1 : 23/01 - 29/01 ===<br />
* Mise en place du wiki (Edwin)<br />
* Recherche sur les technologies et les problèmes techniques (Tous)<br />
* Prise RDV avec Massih-Reza Amini pour renseignements (Coralie)<br />
* Mise en place d'un agenda pour le suivi du projet (Coralie)<br />
* Comment lier l'API au front-end ? AngularJS ou Polymer ? ... (Quentin)<br />
<br />
* Mise en place de l'architecture (Tous) avant de faire un prototype comme prévu.<br />
* Installation, compréhension et manipulation de Keras (Tous)<br />
* Recherche mise en place API-REST Python pour le back-end (Julian)<br />
* Mise en place du front-end - première requêtes - choix Angular pour communiquer avec une API-REST (Quentin)<br />
* Traitement de données simple en se basant juste sur le vote des utilisateurs de TMDb sur les films (Edwin, Coralie, Elsa)<br />
* Mise en place d'un prototype capable de récolter grâce à l'API de TMDB les informations de films ciblés. Puis construction d'un modèle de Deep Learning capable de prédire si une personne va aimer un film ou non en fonction de sa note. (Edwin, Coralie)<br />
* Recherche de la transformation de texte en valeurs numériques (String to Float) et plus généralement du prétraitement des données (Elsa, Coralie, Quentin) : découvertes de Word2Vec et de [http://nlp.stanford.edu/projects/glove/ GloVe].<br />
<br />
<br />
* Rendez-vous avec Massih-Reza Amini pour éclaircir le sujet, notamment au sujet du pré-traitement du texte. (Tous)<br />
* Premiers scripts Python pour le prétraitement des données : import depuis un script JSON (Julian) et transformation sous forme de vecteur moyen pour un film donné (Elsa), recherche d'une méthode plus approfondie pour traiter le Résumé (Coralie).<br />
* Réflexion sur les choix des différents layers de traitement des données et sur l'étape d'embedding des données (premier traitement) (Edwin).<br />
* Mise en place d'un système de notation fonctionnel qui permet d'enregistrer les données à partir du front (Quentin).<br />
<br />
== Sprint 1 ==<br />
<br />
===Tâches du Sprint1===<br />
* T1. Établissement des vues principales côté client (recherche et annotation de films)<br />
* T2. Mise en place du processus de pré-traitement des données (titre, mots clés, résumé, note, artiste, producteur)<br />
* T3. Mise en place du réseau neuronal (réseau neuronal simple)<br />
* T4. Mise en place de la structure de test du réseau neuronal (former les corpus de données, cross validation, test de précision)<br />
* T5. Mise en place de l'environnement système (Docker)<br />
<br />
=== Semaine 2 : 30/01 - 05/02 ===<br />
<br />
[[File:Sprint1-Semaine2.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Préparation du premier sprint :<br />
** Mise au point sur le travail réalisé la semaine passée et sur le travail à réaliser durant le sprint<br />
** Établissement d'une liste de fonctionnalités, avec une estimation de l'importance et du temps de réalisation de chaque tâche<br />
** Sélection des fonctionnalités à réaliser au cours du Sprint, remplissage du Scrumboard<br />
* Mise au point sur l'arborescence du git / architecture du projet<br />
* Installation d'une version GPU pour Keras et Tensor-Flow sur les machines équipées d'un bon GPU<br />
<br />
====Mardi====<br />
<br />
* Réunion avec Didier Donsez : <br />
** Technologies : storm, spark, flint (temps réel) pour Twitter<br />
** Distribution : préparer un déploiement sur GRID5000, contacter Olivier Richard et préparer un container Docker<br />
** Utiliser Github pour héberger le site web<br />
<br />
* T1. -> Vues "recherche de films", "annotation de film" et "consultation des films annotés" (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** prétraitement des mots via Glove (Elsa, Edwin, Julian)<br />
** récupération des données (Julian)<br />
** mise en place de l'embedding (Edwin)<br />
** mise en place d'une librairie pour le pré-traitement des données envoyées aux classifieur (Julian)<br />
** Import des modules (Julian)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Chargement des images de films côté client (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" + Ajout "genre" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** extraction des données JSON via l'API (Elsa)<br />
** prétraitement des genres (Julian)<br />
** prétraitement général (mise en forme de la matrice de données) (Edwin)<br />
** revue de code (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur sous Keras - Elephas ? (Coralie)<br />
<br />
====Jeudi====<br />
<br />
* Cours de MPI - travail sur la communication au sein d'un groupe<br />
* T1. -> Pagination et chargement d'images (Quentin)<br />
* T3. -> Création d'une première version du classifieur (Elsa, Edwin)<br />
* T4. -> Validation croisée pour pouvoir tester le classifieur correctement (Edwin & Elsa)<br />
* T5. -> Installation version GPU sur PC (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur Keras - Elephas (Coralie)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Déploiement sur github.io (Quentin)<br />
* T3. -> Insertion de Doc2Vec dans le classifieur (Julian)<br />
* T3. -> Revue du classifieur pour obtenir une meilleure précision (Elsa & Edwin)<br />
* T4. -> Mise en place d'un système de test du classifieur automatisé avec k validations croisées pour les films enregistrés dans un fichier JSON (Elsa)<br />
* T4. -> Annotation de films pour constituer la base d'apprentissage/test (Tous)<br />
* T5. -> Auto-formation sur Docker (Coralie, Edwin)<br />
<br />
=== Semaine 3 : 06/02 - 12/02 ===<br />
<br />
[[File:Sprint1-Semaine3.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Cours de MPI - gestion de projet<br />
* T1. -> Ajout d'un boite de dialogue permettant de visualiser les infos d'un film (Quentin)<br />
* T2. -> Fix de bugs dans preprocessing (Julian)<br />
* T4. -> Recherche sur la mise en place de tests avec Python (Elsa)<br />
* T5. -> Mise en place de l'image Docker avec Python, Keras et Tensorflow en partant d'un Ubuntu 14 (Edwin)<br />
* T5. -> Mise en place de l'image Docker avec Spark en partant d'un Ubuntu 14 (Coralie)<br />
<br />
====Mardi====<br />
<br />
* Rendez-vous avec Mr. Amini<br />
* T1. -> Amélioration de la boîte de dialogue pour les infos (Quentin)<br />
* T2. -> Preprocessing des acteurs et des realisateurs et ajout des fonction de test associées (Julian)<br />
* T2. -> Test le modèle D2V sur un analyseur de sentiment de tweets, beaucoup plus objectif que les gouts utilisateurs vis à vis des films (Coralie).<br />
* T2. -> Mise en place de modules de test unitaires dans MovieProject/tests/unit et suppression de fichiers inutiles dans MovieProject/tests (Elsa)<br />
* T4. -> Ajout de nouveaux fichiers de tests (json) et évaluation du classifieur de façon générique sur les fichiers json dans MovieProject/resources/evaluation (Elsa)<br />
* T4. -> Evaluation du classifieur avec la méthode Doc2Vec (Elsa)<br />
* T5. -> Finalisation de l'image Docker avec Python, Keras et Tensorflow (Edwin)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Début de la mise en place des différents modèles d'apprentissage en vue de leur comparaison : <br />
** Réseau neuronal avec Keras (Elsa)<br />
** Perceptron (Coralie)<br />
** Modification du prétraitement afin de pouvoir récupérer les matrices de chacune des variables caractérisant un film (Julian)<br />
* T5. -> Ajout de Spark à l'image Docker (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* T1. -> Poursuite de la création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Poursuite des tests de performance :<br />
** Test de l'influence de chaque variable des films sur le modèle du perceptron, afin de ne sélectionner que les variables pertinentes (Coralie)<br />
** Test du réseau neuronal (Elsa)<br />
** Mise en place d'un SVM pour concurrencer les performances des deux autres modèles (Julian)<br />
* T5. -> Test de l'image Docker (Edwin)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Visualisation des statistiques + explications sur la page d'accueil (Quentin)<br />
* T4. -> Finalisation perceptron + intégration dans evaluation (Coralie)<br />
* T4. -> Finalisation SVM + intégration dans evaluation (Julian)<br />
* T4. -> Mise en place du module evaluation et intégration des modifications de classifieur & preprocessing (Elsa)<br />
* T5. -> Documentation sur Spark (Edwin & Coralie)<br />
<br />
===État du scrumboard en fin du Sprint1===<br />
<br />
[[File:Sprint1-end-Scrumboard.png|1080px|middle]]<br />
<br />
== Sprint 2 ==<br />
<br />
===Tâches du Sprint2===<br />
<br />
*T1.2. Amélioration du front-end (mise en cache, etc.)<br />
*T2.2. Ajout de descripteurs (durée, budget, année de production, compagnie de production, appartenance à une sage) en vue d'améliorer notre modèle d'apprentissage.<br />
*T3.2 Amélioration du réseau neuronal (comparaison avec Perceptron simple, SVM, RN Convolutif)<br />
*T4. Mise en place de la suggestion de films (vue côté front-end et logique côté back-end)<br />
*T5. Distribution de l'apprentissage sur plusieurs machines (Docker - Spark - Mesos - Elephas) & Parallélisation requêtes<br />
*T6 Communication front/back, établissement des routes et mise en place du système d'authentification<br />
*T7. Analyse de sentiment sur les flux Twitter<br />
*T8. Mise en place de la base de données<br />
<br />
=== Semaine 4 : 13/02 - 19/02 ===<br />
<br />
[[File:Sprint2-Semaine4.png|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Réunion de fin de sprint1 et de début de sprint0 : discussion autour des avancées, difficultés, retards & établissement fonctionnalités à implémenter au cours du sprint2<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T2.2. -> Revue de la structure du code (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
<br />
====Mardi====<br />
<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T3.2 -> Amélioration du classifieur (Elsa/Quentin)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
*T5. -> Parallélisation des requêtes à l'API TMDB (Julian)<br />
<br />
====Mercredi====<br />
<br />
*T1.2 -> Finalisation du cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T1.2 -> Finalisation des statistiques cinématographique utilisateurs (Quentin)<br />
*T2.2. -> Ajout du descripteurs "budget" avec normalisation (Edwin)<br />
*T3.2 -> Mise en place de la fonction de comparaison des combinaisons de descripteurs de films pour faciliter le travail des DUT (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal LSTM (Coralie)<br />
*T4. -> Changement de la méthode de prédiction de film (Elsa)<br />
*T6. -> Communication front-back test (Elsa/Quentin)<br />
* SRS (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* Rendez-vous avec les DUT : aide sur l'installation du projet, clone du projet Github. <br />
* Préparation de la présentation (Elsa & Edwin)<br />
* Préparation démo (Quentin & Elsa)<br />
* Mise à jour Wiki, SRS, Scrumboard (Elsa & Edwin)<br />
* Aide des DUT (Edwin & Julian)<br />
* T3.2 -> Evaluation du modèle et comparaison avec SVM et Perceptron de manière graphique (extraire les données et construire des graphes - csv ou matplotlib) (Sébastien & Marceau)<br />
* T7. -> Prétraitement des Tweet(Coralie)<br />
* T5. -> Avancement sur le distribué (Julian)<br />
* T1.2 -> Page de login du front, fix problème de CSS sur les graphes (Quentin)<br />
* T3.2 -> Amélioration du classifieur, tests en changeant les layers, le batch-size, etc. (Quentin)<br />
<br />
====Vendredi====<br />
* Préparation du travail qu'Edwin pourra réaliser durant la semaine de vacances (Edwin travaillera en décalé avec le reste du groupe)<br />
* Début de la mise en place de la base de données (Edwin)<br />
<br />
=== Semaine 5 : 20/02 - 26/02 (Edwin) ===<br />
(Edwin a travaillé la semaine précédente, en décalé avec le reste du groupe)<br />
====Lundi====<br />
*T8. -> Installation des outils liés à la gestion de la base de données MySQL et début de la conception de l'API de communication avec cette base. (Edwin)<br />
====Mardi====<br />
*T8. -> Finalisation de l'API, début des tests et des corrections de bug. (Edwin)<br />
====Mercredi====<br />
*T8. -> Ajout de nouvelles fonctionnalités SQL à l'API et tests de l'API. Création d'un readme et d'un fichier d'exemple complet pour l'utilisation de l'API de MySQL. (Edwin)<br />
*T8. -> Amélioration de l'image Docker, correction de bugs de paths et de librairies manquantes. (Edwin)<br />
====Jeudi====<br />
*T8. -> Review générale du travail lié à la base de données. (Edwin)<br />
*T8. -> Mise en place de MySQL pour Docker. (Edwin)<br />
*Mise à jour du Scrumboard et du wiki-air. (Edwin)<br />
<br />
====Vendredi====<br />
*T8. -> Amélioration du Docker pour tenter de régler des problèmes de ports liés à MySQL (non terminé). (Edwin) <br />
*T8. -> Tests unitaires de fonctionnement de serveurs apaches. (Edwin)<br />
<br />
=== Semaine 5 : 27/02 - 28/02 ===<br />
<br />
[[File:Sprint2-Semaine5.png|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* T1.2 -> Mise en place de la page de recommendations (Quentin)<br />
* Merge du classifieur sur la branche develop, avec la prédiction (Elsa)<br />
* T8. -> Revue de la BD et sécurisation (Julian) puis merge sur develop<br />
* T7. -> Finalisation de l'analyse de sentiments (Coralie) pour merge sur develop<br />
* T3.2 -> Recherche sur une construction différente des matrices (basée sur la factorisation de matrices, cf Prix Netflix) (Quentin & Elsa)<br />
<br />
====Mardi====<br />
* Harmonisation des données merge sur le git (Sentiment analysis, evaluation du classifieur et prediction) (Elsa)<br />
* T6. -> Recherche et premiers tests pour l'authentification (Quentin pour le front et Julian pour le back)<br />
* T8. & T5. -> Creation d'une instance de BD Amazon RDS dans un VPC (Coralie)<br />
* T1.2 -> Finalisation page de recommendations (Quentin)<br />
* Insertion en BD des films annotés par les users (Julian)<br />
<br />
====Mercredi====<br />
* Réunion avec Massih-Reza Amini pour parler d'un nouveau modèle de machine learning (Cf Quentin & Elsa lundi)<br />
* T4. -> Amélioration de la prédiction (Elsa)<br />
* T5. -> Essais déploiement du back sur une instance Amazon EC2 (Coralie)<br />
* T6. -> Mise en place de l'authentification simple (login) (Quentin & Julian)<br />
<br />
====Jeudi====<br />
* T4. -> Amélioration de la prédiction et module de test pour la prédiction (Elsa)<br />
* T5. -> Essais déploiement du back sur une instance Amazon EC2 (Coralie)<br />
* T1.2 -> Création des vues d'inscription (sign up) et début vue des paramètres (Quentin)<br />
* T6. -> Sécurisation des appels à l'API par Token (Julian)<br />
<br />
====Vendredi====<br />
* Nettoyage de develop + mise en place de nouveaux tests et état des lieux des tests et de la doc à faire (Elsa)<br />
* T5. -> Essais déploiement du back sur une instance Amazon EC2 (Coralie)<br />
* T6. -> Finalisation de l'inscription et test des premiers appels de récupération des films annotés d'un user (Quentin & Julian)<br />
<br />
===État du scrumboard en fin du Sprint2===<br />
<br />
[[File:Sprint2-end-Scrumboard.png|1080px|middle]]<br />
<br />
== Sprint 3 ==<br />
<br />
===Tâches du Sprint3===<br />
<br />
*T1.1 Lier le back et le front, mettre en place les routes (suggestion, annotation) - Authentification faite<br />
*T1.2 Revoir et enrichir les vues du front<br />
*T2. Déployer l'API sur un serveur Amazon (SQL dans Docker, environnement d'exécution avec Docker)<br />
*T3. Enrichir l'ensemble de tests et la documentation<br />
*T4. Mettre en place le nouveau modèle pour avoir une autre base de comparaison<br />
<br />
=== Semaine 6 : 27/02 - 05/03 ===<br />
<br />
[[File:Sprint3-Semaine6.png|1400px|middle]]<br />
<br />
====Lundi====<br />
* Conclusion sur le sprint précédent<br />
* Discussion au sujet du nouveau Sprint<br />
* T2. -> Problème de mise en place de Docker sur les machines Amazon : discussion de l'équipe pour essayer de trouver une solution (Swap)<br />
<br />
====Mardi====<br />
* T1.1 -> Ajout des routes pour gérer les ajouts/suppressions en base de données (Julian)<br />
* T1.1 -> Ajout de la logique côté front pour gérer les ajouts/suppressions en base de données (Quentin)<br />
* T1.1 -> Tests de la communication front - back(api) - base de données (Coralie, Julian, Quentin)<br />
* T2 -> Finalisation du déploiement de l'API sur un serveur Amazon + tests (Coralie)<br />
* T3 -> Tests unitaires sur apiTMDB (Elsa) et sur sql (Edwin)<br />
* Charte graphique (Elsa)<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
=== Semaine 7 : 06/03 - 12/03 ===<br />
<br />
[[File:Sprint3-Semaine7.png|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
* Soutenance de fin de projet avec Didier Donsez et Massih-Reza Amini</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=File:Sprint2-end-Scrumboard.png&diff=34171File:Sprint2-end-Scrumboard.png2017-03-06T09:27:08Z<p>Elsa.Navarro: </p>
<hr />
<div></div>Elsa.Navarrohttps://air.imag.fr/index.php?title=Fiche_de_suivi_-_Recommandation_intelligente_de_films&diff=34166Fiche de suivi - Recommandation intelligente de films2017-03-06T09:12:09Z<p>Elsa.Navarro: /* Semaine 7 : 06/03 - 12/03 */</p>
<hr />
<div>Voici la Fiche de suivi du projet de fin d'études DeepMovies 2016-2017<br />
<br />
[[Suggestion_intelligente_de_films_basée_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin (Responsable innovation)<br />
* Hattinguais Julian (Responsable qualité)<br />
* Navarro Elsa (Responsable communication, Médiatrice)<br />
* Dunand Quentin (Responsable des deadlines,Responsable du front-end)<br />
<br />
= Avancée du projet =<br />
Le scrumboard utilisé pour le projet est visible dans l'onglet Projet de l'organisation DeepLearningMovies que nous avons créé sur Github. Chaque tâche est réalisée par un ou plusieurs membre(s) de l'équipe et testée par un autre membre de l'équipe.<br />
<br />
== Sprint 0 ==<br />
<br />
===Sprint dédié aux travaux préparatoires du projet===<br />
* Debriefing autour du projet<br />
* Renseignements sur les technologies et principaux défis techniques<br />
* Maquette de tests sur la faisabilité du projet (recherche de solutions pour les principaux problèmes techniques afin de guider nos choix technologiques et choix de fonctionnalités) <br />
* Choix technologiques<br />
* Préparation des environnements<br />
* Établissement de la liste des exigences fonctionnelles et non fonctionnelles<br />
<br />
<br />
[[File:Sprint0-Semaine1.jpg|1400px|middle]]<br />
<br />
=== Semaine 1 : 23/01 - 29/01 ===<br />
* Mise en place du wiki (Edwin)<br />
* Recherche sur les technologies et les problèmes techniques (Tous)<br />
* Prise RDV avec Massih-Reza Amini pour renseignements (Coralie)<br />
* Mise en place d'un agenda pour le suivi du projet (Coralie)<br />
* Comment lier l'API au front-end ? AngularJS ou Polymer ? ... (Quentin)<br />
<br />
* Mise en place de l'architecture (Tous) avant de faire un prototype comme prévu.<br />
* Installation, compréhension et manipulation de Keras (Tous)<br />
* Recherche mise en place API-REST Python pour le back-end (Julian)<br />
* Mise en place du front-end - première requêtes - choix Angular pour communiquer avec une API-REST (Quentin)<br />
* Traitement de données simple en se basant juste sur le vote des utilisateurs de TMDb sur les films (Edwin, Coralie, Elsa)<br />
* Mise en place d'un prototype capable de récolter grâce à l'API de TMDB les informations de films ciblés. Puis construction d'un modèle de Deep Learning capable de prédire si une personne va aimer un film ou non en fonction de sa note. (Edwin, Coralie)<br />
* Recherche de la transformation de texte en valeurs numériques (String to Float) et plus généralement du prétraitement des données (Elsa, Coralie, Quentin) : découvertes de Word2Vec et de [http://nlp.stanford.edu/projects/glove/ GloVe].<br />
<br />
<br />
* Rendez-vous avec Massih-Reza Amini pour éclaircir le sujet, notamment au sujet du pré-traitement du texte. (Tous)<br />
* Premiers scripts Python pour le prétraitement des données : import depuis un script JSON (Julian) et transformation sous forme de vecteur moyen pour un film donné (Elsa), recherche d'une méthode plus approfondie pour traiter le Résumé (Coralie).<br />
* Réflexion sur les choix des différents layers de traitement des données et sur l'étape d'embedding des données (premier traitement) (Edwin).<br />
* Mise en place d'un système de notation fonctionnel qui permet d'enregistrer les données à partir du front (Quentin).<br />
<br />
== Sprint 1 ==<br />
<br />
===Tâches du Sprint1===<br />
* T1. Établissement des vues principales côté client (recherche et annotation de films)<br />
* T2. Mise en place du processus de pré-traitement des données (titre, mots clés, résumé, note, artiste, producteur)<br />
* T3. Mise en place du réseau neuronal (réseau neuronal simple)<br />
* T4. Mise en place de la structure de test du réseau neuronal (former les corpus de données, cross validation, test de précision)<br />
* T5. Mise en place de l'environnement système (Docker)<br />
<br />
=== Semaine 2 : 30/01 - 05/02 ===<br />
<br />
[[File:Sprint1-Semaine2.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Préparation du premier sprint :<br />
** Mise au point sur le travail réalisé la semaine passée et sur le travail à réaliser durant le sprint<br />
** Établissement d'une liste de fonctionnalités, avec une estimation de l'importance et du temps de réalisation de chaque tâche<br />
** Sélection des fonctionnalités à réaliser au cours du Sprint, remplissage du Scrumboard<br />
* Mise au point sur l'arborescence du git / architecture du projet<br />
* Installation d'une version GPU pour Keras et Tensor-Flow sur les machines équipées d'un bon GPU<br />
<br />
====Mardi====<br />
<br />
* Réunion avec Didier Donsez : <br />
** Technologies : storm, spark, flint (temps réel) pour Twitter<br />
** Distribution : préparer un déploiement sur GRID5000, contacter Olivier Richard et préparer un container Docker<br />
** Utiliser Github pour héberger le site web<br />
<br />
* T1. -> Vues "recherche de films", "annotation de film" et "consultation des films annotés" (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** prétraitement des mots via Glove (Elsa, Edwin, Julian)<br />
** récupération des données (Julian)<br />
** mise en place de l'embedding (Edwin)<br />
** mise en place d'une librairie pour le pré-traitement des données envoyées aux classifieur (Julian)<br />
** Import des modules (Julian)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Chargement des images de films côté client (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" + Ajout "genre" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** extraction des données JSON via l'API (Elsa)<br />
** prétraitement des genres (Julian)<br />
** prétraitement général (mise en forme de la matrice de données) (Edwin)<br />
** revue de code (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur sous Keras - Elephas ? (Coralie)<br />
<br />
====Jeudi====<br />
<br />
* Cours de MPI - travail sur la communication au sein d'un groupe<br />
* T1. -> Pagination et chargement d'images (Quentin)<br />
* T3. -> Création d'une première version du classifieur (Elsa, Edwin)<br />
* T4. -> Validation croisée pour pouvoir tester le classifieur correctement (Edwin & Elsa)<br />
* T5. -> Installation version GPU sur PC (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur Keras - Elephas (Coralie)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Déploiement sur github.io (Quentin)<br />
* T3. -> Insertion de Doc2Vec dans le classifieur (Julian)<br />
* T3. -> Revue du classifieur pour obtenir une meilleure précision (Elsa & Edwin)<br />
* T4. -> Mise en place d'un système de test du classifieur automatisé avec k validations croisées pour les films enregistrés dans un fichier JSON (Elsa)<br />
* T4. -> Annotation de films pour constituer la base d'apprentissage/test (Tous)<br />
* T5. -> Auto-formation sur Docker (Coralie, Edwin)<br />
<br />
=== Semaine 3 : 06/02 - 12/02 ===<br />
<br />
[[File:Sprint1-Semaine3.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Cours de MPI - gestion de projet<br />
* T1. -> Ajout d'un boite de dialogue permettant de visualiser les infos d'un film (Quentin)<br />
* T2. -> Fix de bugs dans preprocessing (Julian)<br />
* T4. -> Recherche sur la mise en place de tests avec Python (Elsa)<br />
* T5. -> Mise en place de l'image Docker avec Python, Keras et Tensorflow en partant d'un Ubuntu 14 (Edwin)<br />
* T5. -> Mise en place de l'image Docker avec Spark en partant d'un Ubuntu 14 (Coralie)<br />
<br />
====Mardi====<br />
<br />
* Rendez-vous avec Mr. Amini<br />
* T1. -> Amélioration de la boîte de dialogue pour les infos (Quentin)<br />
* T2. -> Preprocessing des acteurs et des realisateurs et ajout des fonction de test associées (Julian)<br />
* T2. -> Test le modèle D2V sur un analyseur de sentiment de tweets, beaucoup plus objectif que les gouts utilisateurs vis à vis des films (Coralie).<br />
* T2. -> Mise en place de modules de test unitaires dans MovieProject/tests/unit et suppression de fichiers inutiles dans MovieProject/tests (Elsa)<br />
* T4. -> Ajout de nouveaux fichiers de tests (json) et évaluation du classifieur de façon générique sur les fichiers json dans MovieProject/resources/evaluation (Elsa)<br />
* T4. -> Evaluation du classifieur avec la méthode Doc2Vec (Elsa)<br />
* T5. -> Finalisation de l'image Docker avec Python, Keras et Tensorflow (Edwin)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Début de la mise en place des différents modèles d'apprentissage en vue de leur comparaison : <br />
** Réseau neuronal avec Keras (Elsa)<br />
** Perceptron (Coralie)<br />
** Modification du prétraitement afin de pouvoir récupérer les matrices de chacune des variables caractérisant un film (Julian)<br />
* T5. -> Ajout de Spark à l'image Docker (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* T1. -> Poursuite de la création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Poursuite des tests de performance :<br />
** Test de l'influence de chaque variable des films sur le modèle du perceptron, afin de ne sélectionner que les variables pertinentes (Coralie)<br />
** Test du réseau neuronal (Elsa)<br />
** Mise en place d'un SVM pour concurrencer les performances des deux autres modèles (Julian)<br />
* T5. -> Test de l'image Docker (Edwin)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Visualisation des statistiques + explications sur la page d'accueil (Quentin)<br />
* T4. -> Finalisation perceptron + intégration dans evaluation (Coralie)<br />
* T4. -> Finalisation SVM + intégration dans evaluation (Julian)<br />
* T4. -> Mise en place du module evaluation et intégration des modifications de classifieur & preprocessing (Elsa)<br />
* T5. -> Documentation sur Spark (Edwin & Coralie)<br />
<br />
===État du scrumboard en fin du Sprint1===<br />
<br />
[[File:Sprint1-end-Scrumboard.png|1080px|middle]]<br />
<br />
== Sprint 2 ==<br />
<br />
===Tâches du Sprint2===<br />
<br />
*T1.2. Amélioration du front-end (mise en cache, etc.)<br />
*T2.2. Ajout de descripteurs (durée, budget, année de production, compagnie de production, appartenance à une sage) en vue d'améliorer notre modèle d'apprentissage.<br />
*T3.2 Amélioration du réseau neuronal (comparaison avec Perceptron simple, SVM, RN Convolutif)<br />
*T4. Mise en place de la suggestion de films (vue côté front-end et logique côté back-end)<br />
*T5. Distribution de l'apprentissage sur plusieurs machines (Docker - Spark - Mesos - Elephas) & Parallélisation requêtes<br />
*T6 Communication front/back, établissement des routes et mise en place du système d'authentification<br />
*T7. Analyse de sentiment sur les flux Twitter<br />
*T8. Mise en place de la base de données<br />
<br />
=== Semaine 4 : 13/02 - 19/02 ===<br />
<br />
====Lundi====<br />
<br />
* Réunion de fin de sprint1 et de début de sprint0 : discussion autour des avancées, difficultés, retards & établissement fonctionnalités à implémenter au cours du sprint2<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T2.2. -> Revue de la structure du code (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
<br />
====Mardi====<br />
<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T3.2 -> Amélioration du classifieur (Elsa/Quentin)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
*T5. -> Parallélisation des requêtes à l'API TMDB (Julian)<br />
<br />
====Mercredi====<br />
<br />
*T1.2 -> Finalisation du cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T1.2 -> Finalisation des statistiques cinématographique utilisateurs (Quentin)<br />
*T2.2. -> Ajout du descripteurs "budget" avec normalisation (Edwin)<br />
*T3.2 -> Mise en place de la fonction de comparaison des combinaisons de descripteurs de films pour faciliter le travail des DUT (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal LSTM (Coralie)<br />
*T4. -> Changement de la méthode de prédiction de film (Elsa)<br />
*T6. -> Communication front-back test (Elsa/Quentin)<br />
* SRS (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* Rendez-vous avec les DUT : aide sur l'installation du projet, clone du projet Github. <br />
* Préparation de la présentation (Elsa & Edwin)<br />
* Préparation démo (Quentin & Elsa)<br />
* Mise à jour Wiki, SRS, Scrumboard (Elsa & Edwin)<br />
* Aide des DUT (Edwin & Julian)<br />
* T3.2 -> Evaluation du modèle et comparaison avec SVM et Perceptron de manière graphique (extraire les données et construire des graphes - csv ou matplotlib) (Sébastien & Marceau)<br />
* T7. -> Prétraitement des Tweet(Coralie)<br />
* T5. -> Avancement sur le distribué (Julian)<br />
* T1.2 -> Page de login du front, fix problème de CSS sur les graphes (Quentin)<br />
* T3.2 -> Amélioration du classifieur, tests en changeant les layers, le batch-size, etc. (Quentin)<br />
<br />
====Vendredi====<br />
* Préparation du travail qu'Edwin pourra réaliser durant la semaine de vacances (Edwin travaillera en décalé avec le reste du groupe)<br />
* Début de la mise en place de la base de données (Edwin)<br />
<br />
=== Semaine 5 : 20/02 - 26/02 ===<br />
(Edwin a travaillé la semaine précédente, en décalé avec le reste du groupe)<br />
====Lundi====<br />
*T8. -> Installation des outils liés à la gestion de la base de données MySQL et début de la conception de l'API de communication avec cette base. (Edwin)<br />
====Mardi====<br />
*T8. -> Finalisation de l'API, début des tests et des corrections de bug. (Edwin)<br />
====Mercredi====<br />
*T8. -> Ajout de nouvelles fonctionnalités SQL à l'API et tests de l'API. Création d'un readme et d'un fichier d'exemple complet pour l'utilisation de l'API de MySQL. (Edwin)<br />
*T8. -> Amélioration de l'image Docker, correction de bugs de paths et de librairies manquantes. (Edwin)<br />
====Jeudi====<br />
*T8. -> Review générale du travail lié à la base de données. (Edwin)<br />
*T8. -> Mise en place de MySQL pour Docker. (Edwin)<br />
*Mise à jour du Scrumboard et du wiki-air. (Edwin)<br />
<br />
====Vendredi====<br />
*T8. -> Amélioration du Docker pour tenter de régler des problèmes de ports liés à MySQL (non terminé). (Edwin) <br />
*T8. -> Tests unitaires de fonctionnement de serveurs apaches. (Edwin)<br />
<br />
=== Semaine 5 : 27/02 - 28/02 ===<br />
<br />
====Lundi====<br />
<br />
* T1.2 -> Mise en place de la page de recommendations (Quentin)<br />
* Merge du classifieur sur la branche develop, avec la prédiction (Elsa)<br />
* T8. -> Revue de la BD et sécurisation (Julian) puis merge sur develop<br />
* T7. -> Finalisation de l'analyse de sentiments (Coralie) pour merge sur develop<br />
* T3.2 -> Recherche sur une construction différente des matrices (basée sur la factorisation de matrices, cf Prix Netflix) (Quentin & Elsa)<br />
<br />
====Mardi====<br />
* Harmonisation des données merge sur le git (Sentiment analysis, evaluation du classifieur et prediction) (Elsa)<br />
* T6. -> Recherche et premiers tests pour l'authentification (Quentin pour le front et Julian pour le back)<br />
* T8. & T5. -> Creation d'une instance de BD Amazon RDS dans un VPC (Coralie)<br />
* T1.2 -> Finalisation page de recommendations (Quentin)<br />
* Insertion en BD des films annotés par les users (Julian)<br />
<br />
====Mercredi====<br />
* Réunion avec Massih-Reza Amini pour parler d'un nouveau modèle de machine learning (Cf Quentin & Elsa lundi)<br />
* T4. -> Amélioration de la prédiction (Elsa)<br />
* T5. -> Essais déploiement du back sur une instance Amazon EC2 (Coralie)<br />
* T6. -> Mise en place de l'authentification simple (login) (Quentin & Julian)<br />
<br />
====Jeudi====<br />
* T4. -> Amélioration de la prédiction et module de test pour la prédiction (Elsa)<br />
* T5. -> Essais déploiement du back sur une instance Amazon EC2 (Coralie)<br />
* T1.2 -> Création des vues d'inscription (sign up) et début vue des paramètres (Quentin)<br />
* T6. -> Sécurisation des appels à l'API par Token (Julian)<br />
<br />
====Vendredi====<br />
* Nettoyage de develop + mise en place de nouveaux tests et état des lieux des tests et de la doc à faire (Elsa)<br />
* T5. -> Essais déploiement du back sur une instance Amazon EC2 (Coralie)<br />
* T6. -> Finalisation de l'inscription et test des premiers appels de récupération des films annotés d'un user (Quentin & Julian)<br />
<br />
===État du scrumboard en fin du Sprint2===<br />
<br />
[[File:Sprint2-end-Scrumboard.png|1080px|middle]]<br />
<br />
== Sprint 3 ==<br />
<br />
===Tâches du Sprint2===<br />
<br />
*T1.1 Lier le back et le front, mettre en place les routes (suggestion, annotation) - Authentification faite<br />
*T1.2 Revoir les vues du front<br />
*T2. Déployer l'API sur un serveur Amazon (SQL dans Docker, environnement d'exécution avec Docker)<br />
*T3. Enrichir l'ensemble de tests et la documentation<br />
*T4. Mettre en place le nouveau modèle pour avoir une autre base de comparaison<br />
<br />
=== Semaine 6 : 27/02 - 05/03 ===<br />
====Lundi====<br />
* Conclusion sur le sprint précédent<br />
* Discussion au sujet du nouveau Sprint<br />
* T2. -> Problème de mise en place de Docker sur les machines Amazon : discussion de l'équipe pour essayer de trouver une solution (Swap)<br />
<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
=== Semaine 7 : 06/03 - 12/03 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
* Soutenance de fin de projet avec Didier Donsez et Massih-Reza Amini</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=Fiche_de_suivi_-_Recommandation_intelligente_de_films&diff=34165Fiche de suivi - Recommandation intelligente de films2017-03-06T09:11:41Z<p>Elsa.Navarro: /* Sprint 3 */</p>
<hr />
<div>Voici la Fiche de suivi du projet de fin d'études DeepMovies 2016-2017<br />
<br />
[[Suggestion_intelligente_de_films_basée_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin (Responsable innovation)<br />
* Hattinguais Julian (Responsable qualité)<br />
* Navarro Elsa (Responsable communication, Médiatrice)<br />
* Dunand Quentin (Responsable des deadlines,Responsable du front-end)<br />
<br />
= Avancée du projet =<br />
Le scrumboard utilisé pour le projet est visible dans l'onglet Projet de l'organisation DeepLearningMovies que nous avons créé sur Github. Chaque tâche est réalisée par un ou plusieurs membre(s) de l'équipe et testée par un autre membre de l'équipe.<br />
<br />
== Sprint 0 ==<br />
<br />
===Sprint dédié aux travaux préparatoires du projet===<br />
* Debriefing autour du projet<br />
* Renseignements sur les technologies et principaux défis techniques<br />
* Maquette de tests sur la faisabilité du projet (recherche de solutions pour les principaux problèmes techniques afin de guider nos choix technologiques et choix de fonctionnalités) <br />
* Choix technologiques<br />
* Préparation des environnements<br />
* Établissement de la liste des exigences fonctionnelles et non fonctionnelles<br />
<br />
<br />
[[File:Sprint0-Semaine1.jpg|1400px|middle]]<br />
<br />
=== Semaine 1 : 23/01 - 29/01 ===<br />
* Mise en place du wiki (Edwin)<br />
* Recherche sur les technologies et les problèmes techniques (Tous)<br />
* Prise RDV avec Massih-Reza Amini pour renseignements (Coralie)<br />
* Mise en place d'un agenda pour le suivi du projet (Coralie)<br />
* Comment lier l'API au front-end ? AngularJS ou Polymer ? ... (Quentin)<br />
<br />
* Mise en place de l'architecture (Tous) avant de faire un prototype comme prévu.<br />
* Installation, compréhension et manipulation de Keras (Tous)<br />
* Recherche mise en place API-REST Python pour le back-end (Julian)<br />
* Mise en place du front-end - première requêtes - choix Angular pour communiquer avec une API-REST (Quentin)<br />
* Traitement de données simple en se basant juste sur le vote des utilisateurs de TMDb sur les films (Edwin, Coralie, Elsa)<br />
* Mise en place d'un prototype capable de récolter grâce à l'API de TMDB les informations de films ciblés. Puis construction d'un modèle de Deep Learning capable de prédire si une personne va aimer un film ou non en fonction de sa note. (Edwin, Coralie)<br />
* Recherche de la transformation de texte en valeurs numériques (String to Float) et plus généralement du prétraitement des données (Elsa, Coralie, Quentin) : découvertes de Word2Vec et de [http://nlp.stanford.edu/projects/glove/ GloVe].<br />
<br />
<br />
* Rendez-vous avec Massih-Reza Amini pour éclaircir le sujet, notamment au sujet du pré-traitement du texte. (Tous)<br />
* Premiers scripts Python pour le prétraitement des données : import depuis un script JSON (Julian) et transformation sous forme de vecteur moyen pour un film donné (Elsa), recherche d'une méthode plus approfondie pour traiter le Résumé (Coralie).<br />
* Réflexion sur les choix des différents layers de traitement des données et sur l'étape d'embedding des données (premier traitement) (Edwin).<br />
* Mise en place d'un système de notation fonctionnel qui permet d'enregistrer les données à partir du front (Quentin).<br />
<br />
== Sprint 1 ==<br />
<br />
===Tâches du Sprint1===<br />
* T1. Établissement des vues principales côté client (recherche et annotation de films)<br />
* T2. Mise en place du processus de pré-traitement des données (titre, mots clés, résumé, note, artiste, producteur)<br />
* T3. Mise en place du réseau neuronal (réseau neuronal simple)<br />
* T4. Mise en place de la structure de test du réseau neuronal (former les corpus de données, cross validation, test de précision)<br />
* T5. Mise en place de l'environnement système (Docker)<br />
<br />
=== Semaine 2 : 30/01 - 05/02 ===<br />
<br />
[[File:Sprint1-Semaine2.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Préparation du premier sprint :<br />
** Mise au point sur le travail réalisé la semaine passée et sur le travail à réaliser durant le sprint<br />
** Établissement d'une liste de fonctionnalités, avec une estimation de l'importance et du temps de réalisation de chaque tâche<br />
** Sélection des fonctionnalités à réaliser au cours du Sprint, remplissage du Scrumboard<br />
* Mise au point sur l'arborescence du git / architecture du projet<br />
* Installation d'une version GPU pour Keras et Tensor-Flow sur les machines équipées d'un bon GPU<br />
<br />
====Mardi====<br />
<br />
* Réunion avec Didier Donsez : <br />
** Technologies : storm, spark, flint (temps réel) pour Twitter<br />
** Distribution : préparer un déploiement sur GRID5000, contacter Olivier Richard et préparer un container Docker<br />
** Utiliser Github pour héberger le site web<br />
<br />
* T1. -> Vues "recherche de films", "annotation de film" et "consultation des films annotés" (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** prétraitement des mots via Glove (Elsa, Edwin, Julian)<br />
** récupération des données (Julian)<br />
** mise en place de l'embedding (Edwin)<br />
** mise en place d'une librairie pour le pré-traitement des données envoyées aux classifieur (Julian)<br />
** Import des modules (Julian)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Chargement des images de films côté client (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" + Ajout "genre" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** extraction des données JSON via l'API (Elsa)<br />
** prétraitement des genres (Julian)<br />
** prétraitement général (mise en forme de la matrice de données) (Edwin)<br />
** revue de code (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur sous Keras - Elephas ? (Coralie)<br />
<br />
====Jeudi====<br />
<br />
* Cours de MPI - travail sur la communication au sein d'un groupe<br />
* T1. -> Pagination et chargement d'images (Quentin)<br />
* T3. -> Création d'une première version du classifieur (Elsa, Edwin)<br />
* T4. -> Validation croisée pour pouvoir tester le classifieur correctement (Edwin & Elsa)<br />
* T5. -> Installation version GPU sur PC (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur Keras - Elephas (Coralie)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Déploiement sur github.io (Quentin)<br />
* T3. -> Insertion de Doc2Vec dans le classifieur (Julian)<br />
* T3. -> Revue du classifieur pour obtenir une meilleure précision (Elsa & Edwin)<br />
* T4. -> Mise en place d'un système de test du classifieur automatisé avec k validations croisées pour les films enregistrés dans un fichier JSON (Elsa)<br />
* T4. -> Annotation de films pour constituer la base d'apprentissage/test (Tous)<br />
* T5. -> Auto-formation sur Docker (Coralie, Edwin)<br />
<br />
=== Semaine 3 : 06/02 - 12/02 ===<br />
<br />
[[File:Sprint1-Semaine3.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Cours de MPI - gestion de projet<br />
* T1. -> Ajout d'un boite de dialogue permettant de visualiser les infos d'un film (Quentin)<br />
* T2. -> Fix de bugs dans preprocessing (Julian)<br />
* T4. -> Recherche sur la mise en place de tests avec Python (Elsa)<br />
* T5. -> Mise en place de l'image Docker avec Python, Keras et Tensorflow en partant d'un Ubuntu 14 (Edwin)<br />
* T5. -> Mise en place de l'image Docker avec Spark en partant d'un Ubuntu 14 (Coralie)<br />
<br />
====Mardi====<br />
<br />
* Rendez-vous avec Mr. Amini<br />
* T1. -> Amélioration de la boîte de dialogue pour les infos (Quentin)<br />
* T2. -> Preprocessing des acteurs et des realisateurs et ajout des fonction de test associées (Julian)<br />
* T2. -> Test le modèle D2V sur un analyseur de sentiment de tweets, beaucoup plus objectif que les gouts utilisateurs vis à vis des films (Coralie).<br />
* T2. -> Mise en place de modules de test unitaires dans MovieProject/tests/unit et suppression de fichiers inutiles dans MovieProject/tests (Elsa)<br />
* T4. -> Ajout de nouveaux fichiers de tests (json) et évaluation du classifieur de façon générique sur les fichiers json dans MovieProject/resources/evaluation (Elsa)<br />
* T4. -> Evaluation du classifieur avec la méthode Doc2Vec (Elsa)<br />
* T5. -> Finalisation de l'image Docker avec Python, Keras et Tensorflow (Edwin)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Début de la mise en place des différents modèles d'apprentissage en vue de leur comparaison : <br />
** Réseau neuronal avec Keras (Elsa)<br />
** Perceptron (Coralie)<br />
** Modification du prétraitement afin de pouvoir récupérer les matrices de chacune des variables caractérisant un film (Julian)<br />
* T5. -> Ajout de Spark à l'image Docker (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* T1. -> Poursuite de la création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Poursuite des tests de performance :<br />
** Test de l'influence de chaque variable des films sur le modèle du perceptron, afin de ne sélectionner que les variables pertinentes (Coralie)<br />
** Test du réseau neuronal (Elsa)<br />
** Mise en place d'un SVM pour concurrencer les performances des deux autres modèles (Julian)<br />
* T5. -> Test de l'image Docker (Edwin)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Visualisation des statistiques + explications sur la page d'accueil (Quentin)<br />
* T4. -> Finalisation perceptron + intégration dans evaluation (Coralie)<br />
* T4. -> Finalisation SVM + intégration dans evaluation (Julian)<br />
* T4. -> Mise en place du module evaluation et intégration des modifications de classifieur & preprocessing (Elsa)<br />
* T5. -> Documentation sur Spark (Edwin & Coralie)<br />
<br />
===État du scrumboard en fin du Sprint1===<br />
<br />
[[File:Sprint1-end-Scrumboard.png|1080px|middle]]<br />
<br />
== Sprint 2 ==<br />
<br />
===Tâches du Sprint2===<br />
<br />
*T1.2. Amélioration du front-end (mise en cache, etc.)<br />
*T2.2. Ajout de descripteurs (durée, budget, année de production, compagnie de production, appartenance à une sage) en vue d'améliorer notre modèle d'apprentissage.<br />
*T3.2 Amélioration du réseau neuronal (comparaison avec Perceptron simple, SVM, RN Convolutif)<br />
*T4. Mise en place de la suggestion de films (vue côté front-end et logique côté back-end)<br />
*T5. Distribution de l'apprentissage sur plusieurs machines (Docker - Spark - Mesos - Elephas) & Parallélisation requêtes<br />
*T6 Communication front/back, établissement des routes et mise en place du système d'authentification<br />
*T7. Analyse de sentiment sur les flux Twitter<br />
*T8. Mise en place de la base de données<br />
<br />
=== Semaine 4 : 13/02 - 19/02 ===<br />
<br />
====Lundi====<br />
<br />
* Réunion de fin de sprint1 et de début de sprint0 : discussion autour des avancées, difficultés, retards & établissement fonctionnalités à implémenter au cours du sprint2<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T2.2. -> Revue de la structure du code (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
<br />
====Mardi====<br />
<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T3.2 -> Amélioration du classifieur (Elsa/Quentin)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
*T5. -> Parallélisation des requêtes à l'API TMDB (Julian)<br />
<br />
====Mercredi====<br />
<br />
*T1.2 -> Finalisation du cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T1.2 -> Finalisation des statistiques cinématographique utilisateurs (Quentin)<br />
*T2.2. -> Ajout du descripteurs "budget" avec normalisation (Edwin)<br />
*T3.2 -> Mise en place de la fonction de comparaison des combinaisons de descripteurs de films pour faciliter le travail des DUT (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal LSTM (Coralie)<br />
*T4. -> Changement de la méthode de prédiction de film (Elsa)<br />
*T6. -> Communication front-back test (Elsa/Quentin)<br />
* SRS (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* Rendez-vous avec les DUT : aide sur l'installation du projet, clone du projet Github. <br />
* Préparation de la présentation (Elsa & Edwin)<br />
* Préparation démo (Quentin & Elsa)<br />
* Mise à jour Wiki, SRS, Scrumboard (Elsa & Edwin)<br />
* Aide des DUT (Edwin & Julian)<br />
* T3.2 -> Evaluation du modèle et comparaison avec SVM et Perceptron de manière graphique (extraire les données et construire des graphes - csv ou matplotlib) (Sébastien & Marceau)<br />
* T7. -> Prétraitement des Tweet(Coralie)<br />
* T5. -> Avancement sur le distribué (Julian)<br />
* T1.2 -> Page de login du front, fix problème de CSS sur les graphes (Quentin)<br />
* T3.2 -> Amélioration du classifieur, tests en changeant les layers, le batch-size, etc. (Quentin)<br />
<br />
====Vendredi====<br />
* Préparation du travail qu'Edwin pourra réaliser durant la semaine de vacances (Edwin travaillera en décalé avec le reste du groupe)<br />
* Début de la mise en place de la base de données (Edwin)<br />
<br />
=== Semaine 5 : 20/02 - 26/02 ===<br />
(Edwin a travaillé la semaine précédente, en décalé avec le reste du groupe)<br />
====Lundi====<br />
*T8. -> Installation des outils liés à la gestion de la base de données MySQL et début de la conception de l'API de communication avec cette base. (Edwin)<br />
====Mardi====<br />
*T8. -> Finalisation de l'API, début des tests et des corrections de bug. (Edwin)<br />
====Mercredi====<br />
*T8. -> Ajout de nouvelles fonctionnalités SQL à l'API et tests de l'API. Création d'un readme et d'un fichier d'exemple complet pour l'utilisation de l'API de MySQL. (Edwin)<br />
*T8. -> Amélioration de l'image Docker, correction de bugs de paths et de librairies manquantes. (Edwin)<br />
====Jeudi====<br />
*T8. -> Review générale du travail lié à la base de données. (Edwin)<br />
*T8. -> Mise en place de MySQL pour Docker. (Edwin)<br />
*Mise à jour du Scrumboard et du wiki-air. (Edwin)<br />
<br />
====Vendredi====<br />
*T8. -> Amélioration du Docker pour tenter de régler des problèmes de ports liés à MySQL (non terminé). (Edwin) <br />
*T8. -> Tests unitaires de fonctionnement de serveurs apaches. (Edwin)<br />
<br />
=== Semaine 5 : 27/02 - 28/02 ===<br />
<br />
====Lundi====<br />
<br />
* T1.2 -> Mise en place de la page de recommendations (Quentin)<br />
* Merge du classifieur sur la branche develop, avec la prédiction (Elsa)<br />
* T8. -> Revue de la BD et sécurisation (Julian) puis merge sur develop<br />
* T7. -> Finalisation de l'analyse de sentiments (Coralie) pour merge sur develop<br />
* T3.2 -> Recherche sur une construction différente des matrices (basée sur la factorisation de matrices, cf Prix Netflix) (Quentin & Elsa)<br />
<br />
====Mardi====<br />
* Harmonisation des données merge sur le git (Sentiment analysis, evaluation du classifieur et prediction) (Elsa)<br />
* T6. -> Recherche et premiers tests pour l'authentification (Quentin pour le front et Julian pour le back)<br />
* T8. & T5. -> Creation d'une instance de BD Amazon RDS dans un VPC (Coralie)<br />
* T1.2 -> Finalisation page de recommendations (Quentin)<br />
* Insertion en BD des films annotés par les users (Julian)<br />
<br />
====Mercredi====<br />
* Réunion avec Massih-Reza Amini pour parler d'un nouveau modèle de machine learning (Cf Quentin & Elsa lundi)<br />
* T4. -> Amélioration de la prédiction (Elsa)<br />
* T5. -> Essais déploiement du back sur une instance Amazon EC2 (Coralie)<br />
* T6. -> Mise en place de l'authentification simple (login) (Quentin & Julian)<br />
<br />
====Jeudi====<br />
* T4. -> Amélioration de la prédiction et module de test pour la prédiction (Elsa)<br />
* T5. -> Essais déploiement du back sur une instance Amazon EC2 (Coralie)<br />
* T1.2 -> Création des vues d'inscription (sign up) et début vue des paramètres (Quentin)<br />
* T6. -> Sécurisation des appels à l'API par Token (Julian)<br />
<br />
====Vendredi====<br />
* Nettoyage de develop + mise en place de nouveaux tests et état des lieux des tests et de la doc à faire (Elsa)<br />
* T5. -> Essais déploiement du back sur une instance Amazon EC2 (Coralie)<br />
* T6. -> Finalisation de l'inscription et test des premiers appels de récupération des films annotés d'un user (Quentin & Julian)<br />
<br />
===État du scrumboard en fin du Sprint2===<br />
<br />
[[File:Sprint2-end-Scrumboard.png|1080px|middle]]<br />
<br />
== Sprint 3 ==<br />
<br />
===Tâches du Sprint2===<br />
<br />
*T1.1 Lier le back et le front, mettre en place les routes (suggestion, annotation) - Authentification faite<br />
*T1.2 Revoir les vues du front<br />
*T2. Déployer l'API sur un serveur Amazon (SQL dans Docker, environnement d'exécution avec Docker)<br />
*T3. Enrichir l'ensemble de tests et la documentation<br />
*T4. Mettre en place le nouveau modèle pour avoir une autre base de comparaison<br />
<br />
=== Semaine 6 : 27/02 - 05/03 ===<br />
====Lundi====<br />
* Conclusion sur le sprint précédent<br />
* Discussion au sujet du nouveau Sprint<br />
* T2. -> Problème de mise en place de Docker sur les machines Amazon : discussion de l'équipe pour essayer de trouver une solution (Swap)<br />
<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
=== Semaine 7 : 06/03 - 12/03 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=Fiche_de_suivi_-_Recommandation_intelligente_de_films&diff=34162Fiche de suivi - Recommandation intelligente de films2017-03-06T08:36:01Z<p>Elsa.Navarro: /* Lundi */</p>
<hr />
<div>Voici la Fiche de suivi du projet de fin d'études DeepMovies 2016-2017<br />
<br />
[[Suggestion_intelligente_de_films_basée_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin (Responsable innovation)<br />
* Hattinguais Julian (Responsable qualité)<br />
* Navarro Elsa (Responsable communication, Médiatrice)<br />
* Dunand Quentin (Responsable des deadlines,Responsable du front-end)<br />
<br />
= Avancée du projet =<br />
Le scrumboard utilisé pour le projet est visible dans l'onglet Projet de l'organisation DeepLearningMovies que nous avons créé sur Github. Chaque tâche est réalisée par un ou plusieurs membre(s) de l'équipe et testée par un autre membre de l'équipe.<br />
<br />
== Sprint 0 ==<br />
<br />
===Sprint dédié aux travaux préparatoires du projet===<br />
* Debriefing autour du projet<br />
* Renseignements sur les technologies et principaux défis techniques<br />
* Maquette de tests sur la faisabilité du projet (recherche de solutions pour les principaux problèmes techniques afin de guider nos choix technologiques et choix de fonctionnalités) <br />
* Choix technologiques<br />
* Préparation des environnements<br />
* Établissement de la liste des exigences fonctionnelles et non fonctionnelles<br />
<br />
<br />
[[File:Sprint0-Semaine1.jpg|1400px|middle]]<br />
<br />
=== Semaine 1 : 23/01 - 29/01 ===<br />
* Mise en place du wiki (Edwin)<br />
* Recherche sur les technologies et les problèmes techniques (Tous)<br />
* Prise RDV avec Massih-Reza Amini pour renseignements (Coralie)<br />
* Mise en place d'un agenda pour le suivi du projet (Coralie)<br />
* Comment lier l'API au front-end ? AngularJS ou Polymer ? ... (Quentin)<br />
<br />
* Mise en place de l'architecture (Tous) avant de faire un prototype comme prévu.<br />
* Installation, compréhension et manipulation de Keras (Tous)<br />
* Recherche mise en place API-REST Python pour le back-end (Julian)<br />
* Mise en place du front-end - première requêtes - choix Angular pour communiquer avec une API-REST (Quentin)<br />
* Traitement de données simple en se basant juste sur le vote des utilisateurs de TMDb sur les films (Edwin, Coralie, Elsa)<br />
* Mise en place d'un prototype capable de récolter grâce à l'API de TMDB les informations de films ciblés. Puis construction d'un modèle de Deep Learning capable de prédire si une personne va aimer un film ou non en fonction de sa note. (Edwin, Coralie)<br />
* Recherche de la transformation de texte en valeurs numériques (String to Float) et plus généralement du prétraitement des données (Elsa, Coralie, Quentin) : découvertes de Word2Vec et de [http://nlp.stanford.edu/projects/glove/ GloVe].<br />
<br />
<br />
* Rendez-vous avec Massih-Reza Amini pour éclaircir le sujet, notamment au sujet du pré-traitement du texte. (Tous)<br />
* Premiers scripts Python pour le prétraitement des données : import depuis un script JSON (Julian) et transformation sous forme de vecteur moyen pour un film donné (Elsa), recherche d'une méthode plus approfondie pour traiter le Résumé (Coralie).<br />
* Réflexion sur les choix des différents layers de traitement des données et sur l'étape d'embedding des données (premier traitement) (Edwin).<br />
* Mise en place d'un système de notation fonctionnel qui permet d'enregistrer les données à partir du front (Quentin).<br />
<br />
== Sprint 1 ==<br />
<br />
===Tâches du Sprint1===<br />
* T1. Établissement des vues principales côté client (recherche et annotation de films)<br />
* T2. Mise en place du processus de pré-traitement des données (titre, mots clés, résumé, note, artiste, producteur)<br />
* T3. Mise en place du réseau neuronal (réseau neuronal simple)<br />
* T4. Mise en place de la structure de test du réseau neuronal (former les corpus de données, cross validation, test de précision)<br />
* T5. Mise en place de l'environnement système (Docker)<br />
<br />
=== Semaine 2 : 30/01 - 05/02 ===<br />
<br />
[[File:Sprint1-Semaine2.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Préparation du premier sprint :<br />
** Mise au point sur le travail réalisé la semaine passée et sur le travail à réaliser durant le sprint<br />
** Établissement d'une liste de fonctionnalités, avec une estimation de l'importance et du temps de réalisation de chaque tâche<br />
** Sélection des fonctionnalités à réaliser au cours du Sprint, remplissage du Scrumboard<br />
* Mise au point sur l'arborescence du git / architecture du projet<br />
* Installation d'une version GPU pour Keras et Tensor-Flow sur les machines équipées d'un bon GPU<br />
<br />
====Mardi====<br />
<br />
* Réunion avec Didier Donsez : <br />
** Technologies : storm, spark, flint (temps réel) pour Twitter<br />
** Distribution : préparer un déploiement sur GRID5000, contacter Olivier Richard et préparer un container Docker<br />
** Utiliser Github pour héberger le site web<br />
<br />
* T1. -> Vues "recherche de films", "annotation de film" et "consultation des films annotés" (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** prétraitement des mots via Glove (Elsa, Edwin, Julian)<br />
** récupération des données (Julian)<br />
** mise en place de l'embedding (Edwin)<br />
** mise en place d'une librairie pour le pré-traitement des données envoyées aux classifieur (Julian)<br />
** Import des modules (Julian)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Chargement des images de films côté client (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" + Ajout "genre" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** extraction des données JSON via l'API (Elsa)<br />
** prétraitement des genres (Julian)<br />
** prétraitement général (mise en forme de la matrice de données) (Edwin)<br />
** revue de code (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur sous Keras - Elephas ? (Coralie)<br />
<br />
====Jeudi====<br />
<br />
* Cours de MPI - travail sur la communication au sein d'un groupe<br />
* T1. -> Pagination et chargement d'images (Quentin)<br />
* T3. -> Création d'une première version du classifieur (Elsa, Edwin)<br />
* T4. -> Validation croisée pour pouvoir tester le classifieur correctement (Edwin & Elsa)<br />
* T5. -> Installation version GPU sur PC (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur Keras - Elephas (Coralie)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Déploiement sur github.io (Quentin)<br />
* T3. -> Insertion de Doc2Vec dans le classifieur (Julian)<br />
* T3. -> Revue du classifieur pour obtenir une meilleure précision (Elsa & Edwin)<br />
* T4. -> Mise en place d'un système de test du classifieur automatisé avec k validations croisées pour les films enregistrés dans un fichier JSON (Elsa)<br />
* T4. -> Annotation de films pour constituer la base d'apprentissage/test (Tous)<br />
* T5. -> Auto-formation sur Docker (Coralie, Edwin)<br />
<br />
=== Semaine 3 : 06/02 - 12/02 ===<br />
<br />
[[File:Sprint1-Semaine3.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Cours de MPI - gestion de projet<br />
* T1. -> Ajout d'un boite de dialogue permettant de visualiser les infos d'un film (Quentin)<br />
* T2. -> Fix de bugs dans preprocessing (Julian)<br />
* T4. -> Recherche sur la mise en place de tests avec Python (Elsa)<br />
* T5. -> Mise en place de l'image Docker avec Python, Keras et Tensorflow en partant d'un Ubuntu 14 (Edwin)<br />
* T5. -> Mise en place de l'image Docker avec Spark en partant d'un Ubuntu 14 (Coralie)<br />
<br />
====Mardi====<br />
<br />
* Rendez-vous avec Mr. Amini<br />
* T1. -> Amélioration de la boîte de dialogue pour les infos (Quentin)<br />
* T2. -> Preprocessing des acteurs et des realisateurs et ajout des fonction de test associées (Julian)<br />
* T2. -> Test le modèle D2V sur un analyseur de sentiment de tweets, beaucoup plus objectif que les gouts utilisateurs vis à vis des films (Coralie).<br />
* T2. -> Mise en place de modules de test unitaires dans MovieProject/tests/unit et suppression de fichiers inutiles dans MovieProject/tests (Elsa)<br />
* T4. -> Ajout de nouveaux fichiers de tests (json) et évaluation du classifieur de façon générique sur les fichiers json dans MovieProject/resources/evaluation (Elsa)<br />
* T4. -> Evaluation du classifieur avec la méthode Doc2Vec (Elsa)<br />
* T5. -> Finalisation de l'image Docker avec Python, Keras et Tensorflow (Edwin)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Début de la mise en place des différents modèles d'apprentissage en vue de leur comparaison : <br />
** Réseau neuronal avec Keras (Elsa)<br />
** Perceptron (Coralie)<br />
** Modification du prétraitement afin de pouvoir récupérer les matrices de chacune des variables caractérisant un film (Julian)<br />
* T5. -> Ajout de Spark à l'image Docker (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* T1. -> Poursuite de la création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Poursuite des tests de performance :<br />
** Test de l'influence de chaque variable des films sur le modèle du perceptron, afin de ne sélectionner que les variables pertinentes (Coralie)<br />
** Test du réseau neuronal (Elsa)<br />
** Mise en place d'un SVM pour concurrencer les performances des deux autres modèles (Julian)<br />
* T5. -> Test de l'image Docker (Edwin)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Visualisation des statistiques + explications sur la page d'accueil (Quentin)<br />
* T4. -> Finalisation perceptron + intégration dans evaluation (Coralie)<br />
* T4. -> Finalisation SVM + intégration dans evaluation (Julian)<br />
* T4. -> Mise en place du module evaluation et intégration des modifications de classifieur & preprocessing (Elsa)<br />
* T5. -> Documentation sur Spark (Edwin & Coralie)<br />
<br />
===État du scrumboard en fin du Sprint1===<br />
<br />
[[File:Sprint1-end-Scrumboard.png|1080px|middle]]<br />
<br />
== Sprint 2 ==<br />
<br />
===Tâches du Sprint2===<br />
<br />
*T1.2. Amélioration du front-end (mise en cache, etc.)<br />
*T2.2. Ajout de descripteurs (durée, budget, année de production, compagnie de production, appartenance à une sage) en vue d'améliorer notre modèle d'apprentissage.<br />
*T3.2 Amélioration du réseau neuronal (comparaison avec Perceptron simple, SVM, RN Convolutif)<br />
*T4. Mise en place de la suggestion de films (vue côté front-end et logique côté back-end)<br />
*T5. Distribution de l'apprentissage sur plusieurs machines (Docker - Spark - Mesos - Elephas) & Parallélisation requêtes<br />
*T6 Communication front/back, établissement des routes et mise en place du système d'authentification<br />
*T7. Analyse de sentiment sur les flux Twitter<br />
*T8. Mise en place de la base de données<br />
<br />
=== Semaine 4 : 13/02 - 19/02 ===<br />
<br />
====Lundi====<br />
<br />
* Réunion de fin de sprint1 et de début de sprint0 : discussion autour des avancées, difficultés, retards & établissement fonctionnalités à implémenter au cours du sprint2<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T2.2. -> Revue de la structure du code (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
<br />
====Mardi====<br />
<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T3.2 -> Amélioration du classifieur (Elsa/Quentin)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
*T5. -> Parallélisation des requêtes à l'API TMDB (Julian)<br />
<br />
====Mercredi====<br />
<br />
*T1.2 -> Finalisation du cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T1.2 -> Finalisation des statistiques cinématographique utilisateurs (Quentin)<br />
*T2.2. -> Ajout du descripteurs "budget" avec normalisation (Edwin)<br />
*T3.2 -> Mise en place de la fonction de comparaison des combinaisons de descripteurs de films pour faciliter le travail des DUT (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal LSTM (Coralie)<br />
*T4. -> Changement de la méthode de prédiction de film (Elsa)<br />
*T6. -> Communication front-back test (Elsa/Quentin)<br />
* SRS (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* Rendez-vous avec les DUT : aide sur l'installation du projet, clone du projet Github. <br />
* Préparation de la présentation (Elsa & Edwin)<br />
* Préparation démo (Quentin & Elsa)<br />
* Mise à jour Wiki, SRS, Scrumboard (Elsa & Edwin)<br />
* Aide des DUT (Edwin & Julian)<br />
* T3.2 -> Evaluation du modèle et comparaison avec SVM et Perceptron de manière graphique (extraire les données et construire des graphes - csv ou matplotlib) (Sébastien & Marceau)<br />
* T7. -> Prétraitement des Tweet(Coralie)<br />
* T5. -> Avancement sur le distribué (Julian)<br />
* T1.2 -> Page de login du front, fix problème de CSS sur les graphes (Quentin)<br />
* T3.2 -> Amélioration du classifieur, tests en changeant les layers, le batch-size, etc. (Quentin)<br />
<br />
====Vendredi====<br />
* Préparation du travail qu'Edwin pourra réaliser durant la semaine de vacances (Edwin travaillera en décalé avec le reste du groupe)<br />
* Début de la mise en place de la base de données (Edwin)<br />
<br />
=== Semaine 5 : 20/02 - 26/02 ===<br />
(Edwin a travaillé la semaine précédente, en décalé avec le reste du groupe)<br />
====Lundi====<br />
*T8. -> Installation des outils liés à la gestion de la base de données MySQL et début de la conception de l'API de communication avec cette base. (Edwin)<br />
====Mardi====<br />
*T8. -> Finalisation de l'API, début des tests et des corrections de bug. (Edwin)<br />
====Mercredi====<br />
*T8. -> Ajout de nouvelles fonctionnalités SQL à l'API et tests de l'API. Création d'un readme et d'un fichier d'exemple complet pour l'utilisation de l'API de MySQL. (Edwin)<br />
*T8. -> Amélioration de l'image Docker, correction de bugs de paths et de librairies manquantes. (Edwin)<br />
====Jeudi====<br />
*T8. -> Review générale du travail lié à la base de données. (Edwin)<br />
*T8. -> Mise en place de MySQL pour Docker. (Edwin)<br />
*Mise à jour du Scrumboard et du wiki-air. (Edwin)<br />
<br />
====Vendredi====<br />
*T8. -> Amélioration du Docker pour tenter de régler des problèmes de ports liés à MySQL (non terminé). (Edwin) <br />
*T8. -> Tests unitaires de fonctionnement de serveurs apaches. (Edwin)<br />
<br />
=== Semaine 5 : 27/02 - 28/02 ===<br />
<br />
====Lundi====<br />
<br />
* T1.2 -> Mise en place de la page de recommendations (Quentin)<br />
* Merge du classifieur sur la branche develop, avec la prédiction (Elsa)<br />
* T8. -> Revue de la BD et sécurisation (Julian) puis merge sur develop<br />
* T7. -> Finalisation de l'analyse de sentiments (Coralie) pour merge sur develop<br />
* T3.2 -> Recherche sur une construction différente des matrices (basée sur la factorisation de matrices, cf Prix Netflix) (Quentin & Elsa)<br />
<br />
====Mardi====<br />
* Harmonisation des données merge sur le git (Sentiment analysis, evaluation du classifieur et prediction) (Elsa)<br />
* T6. -> Recherche et premiers tests pour l'authentification (Quentin pour le front et Julian pour le back)<br />
* T8. & T5. -> Creation d'une instance de BD Amazon RDS dans un VPC (Coralie)<br />
* T1.2 -> Finalisation page de recommendations (Quentin)<br />
* Insertion en BD des films annotés par les users (Julian)<br />
<br />
====Mercredi====<br />
* Réunion avec Massih-Reza Amini pour parler d'un nouveau modèle de machine learning (Cf Quentin & Elsa lundi)<br />
* T4. -> Amélioration de la prédiction (Elsa)<br />
* T5. -> Essais déploiement du back sur une instance Amazon EC2 (Coralie)<br />
* T6. -> Mise en place de l'authentification simple (login) (Quentin & Julian)<br />
<br />
====Jeudi====<br />
* T4. -> Amélioration de la prédiction et module de test pour la prédiction (Elsa)<br />
* T5. -> Essais déploiement du back sur une instance Amazon EC2 (Coralie)<br />
* T1.2 -> Création des vues d'inscription (sign up) et début vue des paramètres (Quentin)<br />
* T6. -> Sécurisation des appels à l'API par Token (Julian)<br />
<br />
====Vendredi====<br />
* Nettoyage de develop + mise en place de nouveaux tests et état des lieux des tests et de la doc à faire (Elsa)<br />
* T5. -> Essais déploiement du back sur une instance Amazon EC2 (Coralie)<br />
* T6. -> Finalisation de l'inscription et test des premiers appels de récupération des films annotés d'un user (Quentin & Julian)<br />
<br />
===État du scrumboard en fin du Sprint2===<br />
<br />
[[File:Sprint2-end-Scrumboard.png|1080px|middle]]<br />
<br />
== Sprint 3 ==<br />
<br />
===Tâches du Sprint2===<br />
Attention il faut changer ces tâches ! Ce sont celles du sprint 2 !<br />
<br />
*T1.2. Amélioration du front-end (mise en cache, etc.)<br />
*T2.2. Ajout de descripteurs (durée, budget, année de production, compagnie de production, appartenance à une sage) en vue d'améliorer notre modèle d'apprentissage.<br />
*T3.2 Amélioration du réseau neuronal (comparaison avec Perceptron simple, SVM, RN Convolutif)<br />
*T4. Mise en place de la suggestion de films (vue côté front-end et logique côté back-end)<br />
*T5. Distribution de l'apprentissage sur plusieurs machines (Docker - Spark - Mesos - Elephas) & Parallélisation requêtes<br />
*T6 Communication front/back, établissement des routes et mise en place du système d'authentification<br />
*T7. Analyse de sentiment sur les flux Twitter<br />
*T8. Mise en place de la base de données<br />
<br />
=== Semaine 6 : 27/02 - 05/03 ===<br />
====Lundi====<br />
* Conclusion sur le sprint précédent<br />
* Discussion au sujet du nouveau Sprint<br />
* Problème de mise en place de Docker sur les machines Amazon : discussion de l'équipe pour essayer de trouver une solution (Swap)<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
=== Semaine 7 : 06/03 - 12/03 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=Fiche_de_suivi_-_Recommandation_intelligente_de_films&diff=34161Fiche de suivi - Recommandation intelligente de films2017-03-06T08:33:20Z<p>Elsa.Navarro: </p>
<hr />
<div>Voici la Fiche de suivi du projet de fin d'études DeepMovies 2016-2017<br />
<br />
[[Suggestion_intelligente_de_films_basée_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin (Responsable innovation)<br />
* Hattinguais Julian (Responsable qualité)<br />
* Navarro Elsa (Responsable communication, Médiatrice)<br />
* Dunand Quentin (Responsable des deadlines,Responsable du front-end)<br />
<br />
= Avancée du projet =<br />
Le scrumboard utilisé pour le projet est visible dans l'onglet Projet de l'organisation DeepLearningMovies que nous avons créé sur Github. Chaque tâche est réalisée par un ou plusieurs membre(s) de l'équipe et testée par un autre membre de l'équipe.<br />
<br />
== Sprint 0 ==<br />
<br />
===Sprint dédié aux travaux préparatoires du projet===<br />
* Debriefing autour du projet<br />
* Renseignements sur les technologies et principaux défis techniques<br />
* Maquette de tests sur la faisabilité du projet (recherche de solutions pour les principaux problèmes techniques afin de guider nos choix technologiques et choix de fonctionnalités) <br />
* Choix technologiques<br />
* Préparation des environnements<br />
* Établissement de la liste des exigences fonctionnelles et non fonctionnelles<br />
<br />
<br />
[[File:Sprint0-Semaine1.jpg|1400px|middle]]<br />
<br />
=== Semaine 1 : 23/01 - 29/01 ===<br />
* Mise en place du wiki (Edwin)<br />
* Recherche sur les technologies et les problèmes techniques (Tous)<br />
* Prise RDV avec Massih-Reza Amini pour renseignements (Coralie)<br />
* Mise en place d'un agenda pour le suivi du projet (Coralie)<br />
* Comment lier l'API au front-end ? AngularJS ou Polymer ? ... (Quentin)<br />
<br />
* Mise en place de l'architecture (Tous) avant de faire un prototype comme prévu.<br />
* Installation, compréhension et manipulation de Keras (Tous)<br />
* Recherche mise en place API-REST Python pour le back-end (Julian)<br />
* Mise en place du front-end - première requêtes - choix Angular pour communiquer avec une API-REST (Quentin)<br />
* Traitement de données simple en se basant juste sur le vote des utilisateurs de TMDb sur les films (Edwin, Coralie, Elsa)<br />
* Mise en place d'un prototype capable de récolter grâce à l'API de TMDB les informations de films ciblés. Puis construction d'un modèle de Deep Learning capable de prédire si une personne va aimer un film ou non en fonction de sa note. (Edwin, Coralie)<br />
* Recherche de la transformation de texte en valeurs numériques (String to Float) et plus généralement du prétraitement des données (Elsa, Coralie, Quentin) : découvertes de Word2Vec et de [http://nlp.stanford.edu/projects/glove/ GloVe].<br />
<br />
<br />
* Rendez-vous avec Massih-Reza Amini pour éclaircir le sujet, notamment au sujet du pré-traitement du texte. (Tous)<br />
* Premiers scripts Python pour le prétraitement des données : import depuis un script JSON (Julian) et transformation sous forme de vecteur moyen pour un film donné (Elsa), recherche d'une méthode plus approfondie pour traiter le Résumé (Coralie).<br />
* Réflexion sur les choix des différents layers de traitement des données et sur l'étape d'embedding des données (premier traitement) (Edwin).<br />
* Mise en place d'un système de notation fonctionnel qui permet d'enregistrer les données à partir du front (Quentin).<br />
<br />
== Sprint 1 ==<br />
<br />
===Tâches du Sprint1===<br />
* T1. Établissement des vues principales côté client (recherche et annotation de films)<br />
* T2. Mise en place du processus de pré-traitement des données (titre, mots clés, résumé, note, artiste, producteur)<br />
* T3. Mise en place du réseau neuronal (réseau neuronal simple)<br />
* T4. Mise en place de la structure de test du réseau neuronal (former les corpus de données, cross validation, test de précision)<br />
* T5. Mise en place de l'environnement système (Docker)<br />
<br />
=== Semaine 2 : 30/01 - 05/02 ===<br />
<br />
[[File:Sprint1-Semaine2.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Préparation du premier sprint :<br />
** Mise au point sur le travail réalisé la semaine passée et sur le travail à réaliser durant le sprint<br />
** Établissement d'une liste de fonctionnalités, avec une estimation de l'importance et du temps de réalisation de chaque tâche<br />
** Sélection des fonctionnalités à réaliser au cours du Sprint, remplissage du Scrumboard<br />
* Mise au point sur l'arborescence du git / architecture du projet<br />
* Installation d'une version GPU pour Keras et Tensor-Flow sur les machines équipées d'un bon GPU<br />
<br />
====Mardi====<br />
<br />
* Réunion avec Didier Donsez : <br />
** Technologies : storm, spark, flint (temps réel) pour Twitter<br />
** Distribution : préparer un déploiement sur GRID5000, contacter Olivier Richard et préparer un container Docker<br />
** Utiliser Github pour héberger le site web<br />
<br />
* T1. -> Vues "recherche de films", "annotation de film" et "consultation des films annotés" (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** prétraitement des mots via Glove (Elsa, Edwin, Julian)<br />
** récupération des données (Julian)<br />
** mise en place de l'embedding (Edwin)<br />
** mise en place d'une librairie pour le pré-traitement des données envoyées aux classifieur (Julian)<br />
** Import des modules (Julian)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Chargement des images de films côté client (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" + Ajout "genre" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** extraction des données JSON via l'API (Elsa)<br />
** prétraitement des genres (Julian)<br />
** prétraitement général (mise en forme de la matrice de données) (Edwin)<br />
** revue de code (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur sous Keras - Elephas ? (Coralie)<br />
<br />
====Jeudi====<br />
<br />
* Cours de MPI - travail sur la communication au sein d'un groupe<br />
* T1. -> Pagination et chargement d'images (Quentin)<br />
* T3. -> Création d'une première version du classifieur (Elsa, Edwin)<br />
* T4. -> Validation croisée pour pouvoir tester le classifieur correctement (Edwin & Elsa)<br />
* T5. -> Installation version GPU sur PC (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur Keras - Elephas (Coralie)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Déploiement sur github.io (Quentin)<br />
* T3. -> Insertion de Doc2Vec dans le classifieur (Julian)<br />
* T3. -> Revue du classifieur pour obtenir une meilleure précision (Elsa & Edwin)<br />
* T4. -> Mise en place d'un système de test du classifieur automatisé avec k validations croisées pour les films enregistrés dans un fichier JSON (Elsa)<br />
* T4. -> Annotation de films pour constituer la base d'apprentissage/test (Tous)<br />
* T5. -> Auto-formation sur Docker (Coralie, Edwin)<br />
<br />
=== Semaine 3 : 06/02 - 12/02 ===<br />
<br />
[[File:Sprint1-Semaine3.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Cours de MPI - gestion de projet<br />
* T1. -> Ajout d'un boite de dialogue permettant de visualiser les infos d'un film (Quentin)<br />
* T2. -> Fix de bugs dans preprocessing (Julian)<br />
* T4. -> Recherche sur la mise en place de tests avec Python (Elsa)<br />
* T5. -> Mise en place de l'image Docker avec Python, Keras et Tensorflow en partant d'un Ubuntu 14 (Edwin)<br />
* T5. -> Mise en place de l'image Docker avec Spark en partant d'un Ubuntu 14 (Coralie)<br />
<br />
====Mardi====<br />
<br />
* Rendez-vous avec Mr. Amini<br />
* T1. -> Amélioration de la boîte de dialogue pour les infos (Quentin)<br />
* T2. -> Preprocessing des acteurs et des realisateurs et ajout des fonction de test associées (Julian)<br />
* T2. -> Test le modèle D2V sur un analyseur de sentiment de tweets, beaucoup plus objectif que les gouts utilisateurs vis à vis des films (Coralie).<br />
* T2. -> Mise en place de modules de test unitaires dans MovieProject/tests/unit et suppression de fichiers inutiles dans MovieProject/tests (Elsa)<br />
* T4. -> Ajout de nouveaux fichiers de tests (json) et évaluation du classifieur de façon générique sur les fichiers json dans MovieProject/resources/evaluation (Elsa)<br />
* T4. -> Evaluation du classifieur avec la méthode Doc2Vec (Elsa)<br />
* T5. -> Finalisation de l'image Docker avec Python, Keras et Tensorflow (Edwin)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Début de la mise en place des différents modèles d'apprentissage en vue de leur comparaison : <br />
** Réseau neuronal avec Keras (Elsa)<br />
** Perceptron (Coralie)<br />
** Modification du prétraitement afin de pouvoir récupérer les matrices de chacune des variables caractérisant un film (Julian)<br />
* T5. -> Ajout de Spark à l'image Docker (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* T1. -> Poursuite de la création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Poursuite des tests de performance :<br />
** Test de l'influence de chaque variable des films sur le modèle du perceptron, afin de ne sélectionner que les variables pertinentes (Coralie)<br />
** Test du réseau neuronal (Elsa)<br />
** Mise en place d'un SVM pour concurrencer les performances des deux autres modèles (Julian)<br />
* T5. -> Test de l'image Docker (Edwin)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Visualisation des statistiques + explications sur la page d'accueil (Quentin)<br />
* T4. -> Finalisation perceptron + intégration dans evaluation (Coralie)<br />
* T4. -> Finalisation SVM + intégration dans evaluation (Julian)<br />
* T4. -> Mise en place du module evaluation et intégration des modifications de classifieur & preprocessing (Elsa)<br />
* T5. -> Documentation sur Spark (Edwin & Coralie)<br />
<br />
===État du scrumboard en fin du Sprint1===<br />
<br />
[[File:Sprint1-end-Scrumboard.png|1080px|middle]]<br />
<br />
== Sprint 2 ==<br />
<br />
===Tâches du Sprint2===<br />
<br />
*T1.2. Amélioration du front-end (mise en cache, etc.)<br />
*T2.2. Ajout de descripteurs (durée, budget, année de production, compagnie de production, appartenance à une sage) en vue d'améliorer notre modèle d'apprentissage.<br />
*T3.2 Amélioration du réseau neuronal (comparaison avec Perceptron simple, SVM, RN Convolutif)<br />
*T4. Mise en place de la suggestion de films (vue côté front-end et logique côté back-end)<br />
*T5. Distribution de l'apprentissage sur plusieurs machines (Docker - Spark - Mesos - Elephas) & Parallélisation requêtes<br />
*T6 Communication front/back, établissement des routes et mise en place du système d'authentification<br />
*T7. Analyse de sentiment sur les flux Twitter<br />
*T8. Mise en place de la base de données<br />
<br />
=== Semaine 4 : 13/02 - 19/02 ===<br />
<br />
====Lundi====<br />
<br />
* Réunion de fin de sprint1 et de début de sprint0 : discussion autour des avancées, difficultés, retards & établissement fonctionnalités à implémenter au cours du sprint2<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T2.2. -> Revue de la structure du code (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
<br />
====Mardi====<br />
<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T3.2 -> Amélioration du classifieur (Elsa/Quentin)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
*T5. -> Parallélisation des requêtes à l'API TMDB (Julian)<br />
<br />
====Mercredi====<br />
<br />
*T1.2 -> Finalisation du cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T1.2 -> Finalisation des statistiques cinématographique utilisateurs (Quentin)<br />
*T2.2. -> Ajout du descripteurs "budget" avec normalisation (Edwin)<br />
*T3.2 -> Mise en place de la fonction de comparaison des combinaisons de descripteurs de films pour faciliter le travail des DUT (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal LSTM (Coralie)<br />
*T4. -> Changement de la méthode de prédiction de film (Elsa)<br />
*T6. -> Communication front-back test (Elsa/Quentin)<br />
* SRS (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* Rendez-vous avec les DUT : aide sur l'installation du projet, clone du projet Github. <br />
* Préparation de la présentation (Elsa & Edwin)<br />
* Préparation démo (Quentin & Elsa)<br />
* Mise à jour Wiki, SRS, Scrumboard (Elsa & Edwin)<br />
* Aide des DUT (Edwin & Julian)<br />
* T3.2 -> Evaluation du modèle et comparaison avec SVM et Perceptron de manière graphique (extraire les données et construire des graphes - csv ou matplotlib) (Sébastien & Marceau)<br />
* T7. -> Prétraitement des Tweet(Coralie)<br />
* T5. -> Avancement sur le distribué (Julian)<br />
* T1.2 -> Page de login du front, fix problème de CSS sur les graphes (Quentin)<br />
* T3.2 -> Amélioration du classifieur, tests en changeant les layers, le batch-size, etc. (Quentin)<br />
<br />
====Vendredi====<br />
* Préparation du travail qu'Edwin pourra réaliser durant la semaine de vacances (Edwin travaillera en décalé avec le reste du groupe)<br />
* Début de la mise en place de la base de données (Edwin)<br />
<br />
=== Semaine 5 : 20/02 - 26/02 ===<br />
(Edwin a travaillé la semaine précédente, en décalé avec le reste du groupe)<br />
====Lundi====<br />
*T8. -> Installation des outils liés à la gestion de la base de données MySQL et début de la conception de l'API de communication avec cette base. (Edwin)<br />
====Mardi====<br />
*T8. -> Finalisation de l'API, début des tests et des corrections de bug. (Edwin)<br />
====Mercredi====<br />
*T8. -> Ajout de nouvelles fonctionnalités SQL à l'API et tests de l'API. Création d'un readme et d'un fichier d'exemple complet pour l'utilisation de l'API de MySQL. (Edwin)<br />
*T8. -> Amélioration de l'image Docker, correction de bugs de paths et de librairies manquantes. (Edwin)<br />
====Jeudi====<br />
*T8. -> Review générale du travail lié à la base de données. (Edwin)<br />
*T8. -> Mise en place de MySQL pour Docker. (Edwin)<br />
*Mise à jour du Scrumboard et du wiki-air. (Edwin)<br />
<br />
====Vendredi====<br />
*T8. -> Amélioration du Docker pour tenter de régler des problèmes de ports liés à MySQL (non terminé). (Edwin) <br />
*T8. -> Tests unitaires de fonctionnement de serveurs apaches. (Edwin)<br />
<br />
=== Semaine 5 : 27/02 - 28/02 ===<br />
<br />
====Lundi====<br />
<br />
* T1.2 -> Mise en place de la page de recommendations (Quentin)<br />
* Merge du classifieur sur la branche develop, avec la prédiction (Elsa)<br />
* T8. -> Revue de la BD et sécurisation (Julian) puis merge sur develop<br />
* T7. -> Finalisation de l'analyse de sentiments (Coralie) pour merge sur develop<br />
* T3.2 -> Recherche sur une construction différente des matrices (basée sur la factorisation de matrices, cf Prix Netflix) (Quentin & Elsa)<br />
<br />
====Mardi====<br />
* Harmonisation des données merge sur le git (Sentiment analysis, evaluation du classifieur et prediction) (Elsa)<br />
* T6. -> Recherche et premiers tests pour l'authentification (Quentin pour le front et Julian pour le back)<br />
* T8. & T5. -> Creation d'une instance de BD Amazon RDS dans un VPC (Coralie)<br />
* T1.2 -> Finalisation page de recommendations (Quentin)<br />
* Insertion en BD des films annotés par les users (Julian)<br />
<br />
====Mercredi====<br />
* Réunion avec Massih-Reza Amini pour parler d'un nouveau modèle de machine learning (Cf Quentin & Elsa lundi)<br />
* T4. -> Amélioration de la prédiction (Elsa)<br />
* T5. -> Essais déploiement du back sur une instance Amazon EC2 (Coralie)<br />
* T6. -> Mise en place de l'authentification simple (login) (Quentin & Julian)<br />
<br />
====Jeudi====<br />
* T4. -> Amélioration de la prédiction et module de test pour la prédiction (Elsa)<br />
* T5. -> Essais déploiement du back sur une instance Amazon EC2 (Coralie)<br />
* T1.2 -> Création des vues d'inscription (sign up) et début vue des paramètres (Quentin)<br />
* T6. -> Sécurisation des appels à l'API par Token (Julian)<br />
<br />
====Vendredi====<br />
* Nettoyage de develop + mise en place de nouveaux tests et état des lieux des tests et de la doc à faire (Elsa)<br />
* T5. -> Essais déploiement du back sur une instance Amazon EC2 (Coralie)<br />
* T6. -> Finalisation de l'inscription et test des premiers appels de récupération des films annotés d'un user (Quentin & Julian)<br />
<br />
===État du scrumboard en fin du Sprint2===<br />
<br />
[[File:Sprint2-end-Scrumboard.png|1080px|middle]]<br />
<br />
== Sprint 3 ==<br />
<br />
===Tâches du Sprint2===<br />
Attention il faut changer ces tâches ! Ce sont celles du sprint 2 !<br />
<br />
*T1.2. Amélioration du front-end (mise en cache, etc.)<br />
*T2.2. Ajout de descripteurs (durée, budget, année de production, compagnie de production, appartenance à une sage) en vue d'améliorer notre modèle d'apprentissage.<br />
*T3.2 Amélioration du réseau neuronal (comparaison avec Perceptron simple, SVM, RN Convolutif)<br />
*T4. Mise en place de la suggestion de films (vue côté front-end et logique côté back-end)<br />
*T5. Distribution de l'apprentissage sur plusieurs machines (Docker - Spark - Mesos - Elephas) & Parallélisation requêtes<br />
*T6 Communication front/back, établissement des routes et mise en place du système d'authentification<br />
*T7. Analyse de sentiment sur les flux Twitter<br />
*T8. Mise en place de la base de données<br />
<br />
=== Semaine 6 : 27/02 - 05/03 ===<br />
====Lundi====<br />
* Conclusion sur le sprint précédent<br />
* Discussion au sujet du nouveau Sprint<br />
* Problème de mise en place de Docker sur les machines Amazon : discussion de l'équipe pour essayer de trouver une solution<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
=== Semaine 7 : 06/03 - 12/03 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=Fiche_de_suivi_-_Recommandation_intelligente_de_films&diff=34093Fiche de suivi - Recommandation intelligente de films2017-03-03T16:01:16Z<p>Elsa.Navarro: /* Semaine 5 : 27/02 - 28/02 */</p>
<hr />
<div>Voici la Fiche de suivi du projet de fin d'études DeepMovies 2016-2017<br />
<br />
[[Suggestion_intelligente_de_films_basée_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin (Responsable innovation)<br />
* Hattinguais Julian (Responsable qualité)<br />
* Navarro Elsa (Responsable communication, Médiatrice)<br />
* Dunand Quentin (Responsable des deadlines,Responsable du front-end)<br />
<br />
= Avancée du projet =<br />
Le scrumboard utilisé pour le projet est visible dans l'onglet Projet de l'organisation DeepLearningMovies que nous avons créé sur Github. Chaque tâche est réalisée par un ou plusieurs membre(s) de l'équipe et testée par un autre membre de l'équipe.<br />
<br />
== Sprint 0 ==<br />
<br />
===Sprint dédié aux travaux préparatoires du projet===<br />
* Debriefing autour du projet<br />
* Renseignements sur les technologies et principaux défis techniques<br />
* Maquette de tests sur la faisabilité du projet (recherche de solutions pour les principaux problèmes techniques afin de guider nos choix technologiques et choix de fonctionnalités) <br />
* Choix technologiques<br />
* Préparation des environnements<br />
* Établissement de la liste des exigences fonctionnelles et non fonctionnelles<br />
<br />
<br />
[[File:Sprint0-Semaine1.jpg|1400px|middle]]<br />
<br />
=== Semaine 1 : 23/01 - 29/01 ===<br />
* Mise en place du wiki (Edwin)<br />
* Recherche sur les technologies et les problèmes techniques (Tous)<br />
* Prise RDV avec Massih-Reza Amini pour renseignements (Coralie)<br />
* Mise en place d'un agenda pour le suivi du projet (Coralie)<br />
* Comment lier l'API au front-end ? AngularJS ou Polymer ? ... (Quentin)<br />
<br />
* Mise en place de l'architecture (Tous) avant de faire un prototype comme prévu.<br />
* Installation, compréhension et manipulation de Keras (Tous)<br />
* Recherche mise en place API-REST Python pour le back-end (Julian)<br />
* Mise en place du front-end - première requêtes - choix Angular pour communiquer avec une API-REST (Quentin)<br />
* Traitement de données simple en se basant juste sur le vote des utilisateurs de TMDb sur les films (Edwin, Coralie, Elsa)<br />
* Mise en place d'un prototype capable de récolter grâce à l'API de TMDB les informations de films ciblés. Puis construction d'un modèle de Deep Learning capable de prédire si une personne va aimer un film ou non en fonction de sa note. (Edwin, Coralie)<br />
* Recherche de la transformation de texte en valeurs numériques (String to Float) et plus généralement du prétraitement des données (Elsa, Coralie, Quentin) : découvertes de Word2Vec et de [http://nlp.stanford.edu/projects/glove/ GloVe].<br />
<br />
<br />
* Rendez-vous avec Massih-Reza Amini pour éclaircir le sujet, notamment au sujet du pré-traitement du texte. (Tous)<br />
* Premiers scripts Python pour le prétraitement des données : import depuis un script JSON (Julian) et transformation sous forme de vecteur moyen pour un film donné (Elsa), recherche d'une méthode plus approfondie pour traiter le Résumé (Coralie).<br />
* Réflexion sur les choix des différents layers de traitement des données et sur l'étape d'embedding des données (premier traitement) (Edwin).<br />
* Mise en place d'un système de notation fonctionnel qui permet d'enregistrer les données à partir du front (Quentin).<br />
<br />
== Sprint 1 ==<br />
<br />
===Tâches du Sprint1===<br />
* T1. Établissement des vues principales côté client (recherche et annotation de films)<br />
* T2. Mise en place du processus de pré-traitement des données (titre, mots clés, résumé, note, artiste, producteur)<br />
* T3. Mise en place du réseau neuronal (réseau neuronal simple)<br />
* T4. Mise en place de la structure de test du réseau neuronal (former les corpus de données, cross validation, test de précision)<br />
* T5. Mise en place de l'environnement système (Docker)<br />
<br />
=== Semaine 2 : 30/01 - 05/02 ===<br />
<br />
[[File:Sprint1-Semaine2.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Préparation du premier sprint :<br />
** Mise au point sur le travail réalisé la semaine passée et sur le travail à réaliser durant le sprint<br />
** Établissement d'une liste de fonctionnalités, avec une estimation de l'importance et du temps de réalisation de chaque tâche<br />
** Sélection des fonctionnalités à réaliser au cours du Sprint, remplissage du Scrumboard<br />
* Mise au point sur l'arborescence du git / architecture du projet<br />
* Installation d'une version GPU pour Keras et Tensor-Flow sur les machines équipées d'un bon GPU<br />
<br />
====Mardi====<br />
<br />
* Réunion avec Didier Donsez : <br />
** Technologies : storm, spark, flint (temps réel) pour Twitter<br />
** Distribution : préparer un déploiement sur GRID5000, contacter Olivier Richard et préparer un container Docker<br />
** Utiliser Github pour héberger le site web<br />
<br />
* T1. -> Vues "recherche de films", "annotation de film" et "consultation des films annotés" (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** prétraitement des mots via Glove (Elsa, Edwin, Julian)<br />
** récupération des données (Julian)<br />
** mise en place de l'embedding (Edwin)<br />
** mise en place d'une librairie pour le pré-traitement des données envoyées aux classifieur (Julian)<br />
** Import des modules (Julian)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Chargement des images de films côté client (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" + Ajout "genre" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** extraction des données JSON via l'API (Elsa)<br />
** prétraitement des genres (Julian)<br />
** prétraitement général (mise en forme de la matrice de données) (Edwin)<br />
** revue de code (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur sous Keras - Elephas ? (Coralie)<br />
<br />
====Jeudi====<br />
<br />
* Cours de MPI - travail sur la communication au sein d'un groupe<br />
* T1. -> Pagination et chargement d'images (Quentin)<br />
* T3. -> Création d'une première version du classifieur (Elsa, Edwin)<br />
* T4. -> Validation croisée pour pouvoir tester le classifieur correctement (Edwin & Elsa)<br />
* T5. -> Installation version GPU sur PC (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur Keras - Elephas (Coralie)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Déploiement sur github.io (Quentin)<br />
* T3. -> Insertion de Doc2Vec dans le classifieur (Julian)<br />
* T3. -> Revue du classifieur pour obtenir une meilleure précision (Elsa & Edwin)<br />
* T4. -> Mise en place d'un système de test du classifieur automatisé avec k validations croisées pour les films enregistrés dans un fichier JSON (Elsa)<br />
* T4. -> Annotation de films pour constituer la base d'apprentissage/test (Tous)<br />
* T5. -> Auto-formation sur Docker (Coralie, Edwin)<br />
<br />
=== Semaine 3 : 06/02 - 12/02 ===<br />
<br />
[[File:Sprint1-Semaine3.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Cours de MPI - gestion de projet<br />
* T1. -> Ajout d'un boite de dialogue permettant de visualiser les infos d'un film (Quentin)<br />
* T2. -> Fix de bugs dans preprocessing (Julian)<br />
* T4. -> Recherche sur la mise en place de tests avec Python (Elsa)<br />
* T5. -> Mise en place de l'image Docker avec Python, Keras et Tensorflow en partant d'un Ubuntu 14 (Edwin)<br />
* T5. -> Mise en place de l'image Docker avec Spark en partant d'un Ubuntu 14 (Coralie)<br />
<br />
====Mardi====<br />
<br />
* Rendez-vous avec Mr. Amini<br />
* T1. -> Amélioration de la boîte de dialogue pour les infos (Quentin)<br />
* T2. -> Preprocessing des acteurs et des realisateurs et ajout des fonction de test associées (Julian)<br />
* T2. -> Test le modèle D2V sur un analyseur de sentiment de tweets, beaucoup plus objectif que les gouts utilisateurs vis à vis des films (Coralie).<br />
* T2. -> Mise en place de modules de test unitaires dans MovieProject/tests/unit et suppression de fichiers inutiles dans MovieProject/tests (Elsa)<br />
* T4. -> Ajout de nouveaux fichiers de tests (json) et évaluation du classifieur de façon générique sur les fichiers json dans MovieProject/resources/evaluation (Elsa)<br />
* T4. -> Evaluation du classifieur avec la méthode Doc2Vec (Elsa)<br />
* T5. -> Finalisation de l'image Docker avec Python, Keras et Tensorflow (Edwin)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Début de la mise en place des différents modèles d'apprentissage en vue de leur comparaison : <br />
** Réseau neuronal avec Keras (Elsa)<br />
** Perceptron (Coralie)<br />
** Modification du prétraitement afin de pouvoir récupérer les matrices de chacune des variables caractérisant un film (Julian)<br />
* T5. -> Ajout de Spark à l'image Docker (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* T1. -> Poursuite de la création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Poursuite des tests de performance :<br />
** Test de l'influence de chaque variable des films sur le modèle du perceptron, afin de ne sélectionner que les variables pertinentes (Coralie)<br />
** Test du réseau neuronal (Elsa)<br />
** Mise en place d'un SVM pour concurrencer les performances des deux autres modèles (Julian)<br />
* T5. -> Test de l'image Docker (Edwin)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Visualisation des statistiques + explications sur la page d'accueil (Quentin)<br />
* T4. -> Finalisation perceptron + intégration dans evaluation (Coralie)<br />
* T4. -> Finalisation SVM + intégration dans evaluation (Julian)<br />
* T4. -> Mise en place du module evaluation et intégration des modifications de classifieur & preprocessing (Elsa)<br />
* T5. -> Documentation sur Spark (Edwin & Coralie)<br />
<br />
===État du scrumboard en fin du Sprint1===<br />
<br />
[[File:Sprint1-end-Scrumboard.png|1080px|middle]]<br />
<br />
== Sprint 2 ==<br />
<br />
===Tâches du Sprint2===<br />
<br />
*T1.2. Amélioration du front-end (mise en cache, etc.)<br />
*T2.2. Ajout de descripteurs (durée, budget, année de production, compagnie de production, appartenance à une sage) en vue d'améliorer notre modèle d'apprentissage.<br />
*T3.2 Amélioration du réseau neuronal (comparaison avec Perceptron simple, SVM, RN Convolutif)<br />
*T4. Mise en place de la suggestion de films (vue côté front-end et logique côté back-end)<br />
*T5. Distribution de l'apprentissage sur plusieurs machines (Docker - Spark - Mesos - Elephas) & Parallélisation requêtes<br />
*T6 Communication front/back, établissement des routes et mise en place du système d'authentification<br />
*T7. Analyse de sentiment sur les flux Twitter<br />
*T8. Mise en place de la base de données<br />
<br />
=== Semaine 4 : 13/02 - 19/02 ===<br />
<br />
====Lundi====<br />
<br />
* Réunion de fin de sprint1 et de début de sprint0 : discussion autour des avancées, difficultés, retards & établissement fonctionnalités à implémenter au cours du sprint2<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T2.2. -> Revue de la structure du code (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
<br />
====Mardi====<br />
<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T3.2 -> Amélioration du classifieur (Elsa/Quentin)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
*T5. -> Parallélisation des requêtes à l'API TMDB (Julian)<br />
<br />
====Mercredi====<br />
<br />
*T1.2 -> Finalisation du cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T1.2 -> Finalisation des statistiques cinématographique utilisateurs (Quentin)<br />
*T2.2. -> Ajout du descripteurs "budget" avec normalisation (Edwin)<br />
*T3.2 -> Mise en place de la fonction de comparaison des combinaisons de descripteurs de films pour faciliter le travail des DUT (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal LSTM (Coralie)<br />
*T4. -> Changement de la méthode de prédiction de film (Elsa)<br />
*T6. -> Communication front-back test (Elsa/Quentin)<br />
* SRS (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* Rendez-vous avec les DUT : aide sur l'installation du projet, clone du projet Github. <br />
* Préparation de la présentation (Elsa & Edwin)<br />
* Préparation démo (Quentin & Elsa)<br />
* Mise à jour Wiki, SRS, Scrumboard (Elsa & Edwin)<br />
* Aide des DUT (Edwin & Julian)<br />
* T3.2 -> Evaluation du modèle et comparaison avec SVM et Perceptron de manière graphique (extraire les données et construire des graphes - csv ou matplotlib) (Sébastien & Marceau)<br />
* T7. -> Prétraitement des Tweet(Coralie)<br />
* T5. -> Avancement sur le distribué (Julian)<br />
* T1.2 -> Page de login du front, fix problème de CSS sur les graphes (Quentin)<br />
* T3.2 -> Amélioration du classifieur, tests en changeant les layers, le batch-size, etc. (Quentin)<br />
<br />
====Vendredi====<br />
* Préparation du travail qu'Edwin pourra réaliser durant la semaine de vacances (Edwin travaillera en décalé avec le reste du groupe)<br />
* Début de la mise en place de la base de données (Edwin)<br />
<br />
=== Semaine 5 : 20/02 - 26/02 ===<br />
(Edwin a travaillé la semaine précédente, en décalé avec le reste du groupe)<br />
====Lundi====<br />
*T8. -> Installation des outils liés à la gestion de la base de données MySQL et début de la conception de l'API de communication avec cette base. (Edwin)<br />
====Mardi====<br />
*T8. -> Finalisation de l'API, début des tests et des corrections de bug. (Edwin)<br />
====Mercredi====<br />
*T8. -> Ajout de nouvelles fonctionnalités SQL à l'API et tests de l'API. Création d'un readme et d'un fichier d'exemple complet pour l'utilisation de l'API de MySQL. (Edwin)<br />
*T8. -> Amélioration de l'image Docker, correction de bugs de paths et de librairies manquantes. (Edwin)<br />
====Jeudi====<br />
*T8. -> Review générale du travail lié à la base de données. (Edwin)<br />
*T8. -> Mise en place de MySQL pour Docker. (Edwin)<br />
*Mise à jour du Scrumboard et du wiki-air. (Edwin)<br />
<br />
====Vendredi====<br />
*T8. -> Amélioration du Docker pour tenter de régler des problèmes de ports liés à MySQL (non terminé). (Edwin) <br />
*T8. -> Tests unitaires de fonctionnement de serveurs apaches. (Edwin)<br />
<br />
=== Semaine 5 : 27/02 - 28/02 ===<br />
<br />
====Lundi====<br />
<br />
* T1.2 -> Mise en place de la page de recommendations (Quentin)<br />
* Merge du classifieur sur la branche develop, avec la prédiction (Elsa)<br />
* T8. -> Revue de la BD et sécurisation (Julian) puis merge sur develop<br />
* T7. -> Finalisation de l'analyse de sentiments (Coralie) pour merge sur develop<br />
* T3.2 -> Recherche sur une construction différente des matrices (basée sur la factorisation de matrices, cf Prix Netflix) (Quentin & Elsa)<br />
<br />
====Mardi====<br />
* Harmonisation des données merge sur le git (Sentiment analysis, evaluation du classifieur et prediction) (Elsa)<br />
* T6. -> Recherche et premiers tests pour l'authentification (Quentin pour le front et Julian pour le back)<br />
* T8. & T5. -> Creation d'une instance de BD Amazon RDS dans un VPC (Coralie)<br />
* T1.2 -> Finalisation page de recommendations (Quentin)<br />
* Insertion en BD des films annotés par les users (Julian)<br />
<br />
====Mercredi====<br />
* Réunion avec Massih-Reza Amini pour parler d'un nouveau modèle de machine learning (Cf Quentin & Elsa lundi)<br />
* T4. -> Amélioration de la prédiction (Elsa)<br />
* T5. -> Essais déploiement du back sur une instance Amazon EC2 (Coralie)<br />
* T6. -> Mise en place de l'authentification simple (login) (Quentin & Julian)<br />
<br />
====Jeudi====<br />
* T4. -> Amélioration de la prédiction et module de test pour la prédiction (Elsa)<br />
* T5. -> Essais déploiement du back sur une instance Amazon EC2 (Coralie)<br />
* T1.2 -> Création des vues d'inscription (sign up) et début vue des paramètres (Quentin)<br />
* T6. -> Sécurisation des appels à l'API par Token (Julian)<br />
<br />
====Vendredi====<br />
* Nettoyage de develop + mise en place de nouveaux tests et état des lieux des tests et de la doc à faire (Elsa)<br />
* T5. -> Essais déploiement du back sur une instance Amazon EC2 (Coralie)<br />
* T6. -> Finalisation de l'inscription et test des premiers appels de récupération des films annotés d'un user (Quentin & Julian)<br />
<br />
== Sprint 3 ==<br />
=== Semaine 6 : 27/02 - 05/03 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
=== Semaine 7 : 06/03 - 12/03 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=Fiche_de_suivi_-_Recommandation_intelligente_de_films&diff=34092Fiche de suivi - Recommandation intelligente de films2017-03-03T16:00:21Z<p>Elsa.Navarro: /* Semaine 5 : 27/02 - 28/02 */</p>
<hr />
<div>Voici la Fiche de suivi du projet de fin d'études DeepMovies 2016-2017<br />
<br />
[[Suggestion_intelligente_de_films_basée_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin (Responsable innovation)<br />
* Hattinguais Julian (Responsable qualité)<br />
* Navarro Elsa (Responsable communication, Médiatrice)<br />
* Dunand Quentin (Responsable des deadlines,Responsable du front-end)<br />
<br />
= Avancée du projet =<br />
Le scrumboard utilisé pour le projet est visible dans l'onglet Projet de l'organisation DeepLearningMovies que nous avons créé sur Github. Chaque tâche est réalisée par un ou plusieurs membre(s) de l'équipe et testée par un autre membre de l'équipe.<br />
<br />
== Sprint 0 ==<br />
<br />
===Sprint dédié aux travaux préparatoires du projet===<br />
* Debriefing autour du projet<br />
* Renseignements sur les technologies et principaux défis techniques<br />
* Maquette de tests sur la faisabilité du projet (recherche de solutions pour les principaux problèmes techniques afin de guider nos choix technologiques et choix de fonctionnalités) <br />
* Choix technologiques<br />
* Préparation des environnements<br />
* Établissement de la liste des exigences fonctionnelles et non fonctionnelles<br />
<br />
<br />
[[File:Sprint0-Semaine1.jpg|1400px|middle]]<br />
<br />
=== Semaine 1 : 23/01 - 29/01 ===<br />
* Mise en place du wiki (Edwin)<br />
* Recherche sur les technologies et les problèmes techniques (Tous)<br />
* Prise RDV avec Massih-Reza Amini pour renseignements (Coralie)<br />
* Mise en place d'un agenda pour le suivi du projet (Coralie)<br />
* Comment lier l'API au front-end ? AngularJS ou Polymer ? ... (Quentin)<br />
<br />
* Mise en place de l'architecture (Tous) avant de faire un prototype comme prévu.<br />
* Installation, compréhension et manipulation de Keras (Tous)<br />
* Recherche mise en place API-REST Python pour le back-end (Julian)<br />
* Mise en place du front-end - première requêtes - choix Angular pour communiquer avec une API-REST (Quentin)<br />
* Traitement de données simple en se basant juste sur le vote des utilisateurs de TMDb sur les films (Edwin, Coralie, Elsa)<br />
* Mise en place d'un prototype capable de récolter grâce à l'API de TMDB les informations de films ciblés. Puis construction d'un modèle de Deep Learning capable de prédire si une personne va aimer un film ou non en fonction de sa note. (Edwin, Coralie)<br />
* Recherche de la transformation de texte en valeurs numériques (String to Float) et plus généralement du prétraitement des données (Elsa, Coralie, Quentin) : découvertes de Word2Vec et de [http://nlp.stanford.edu/projects/glove/ GloVe].<br />
<br />
<br />
* Rendez-vous avec Massih-Reza Amini pour éclaircir le sujet, notamment au sujet du pré-traitement du texte. (Tous)<br />
* Premiers scripts Python pour le prétraitement des données : import depuis un script JSON (Julian) et transformation sous forme de vecteur moyen pour un film donné (Elsa), recherche d'une méthode plus approfondie pour traiter le Résumé (Coralie).<br />
* Réflexion sur les choix des différents layers de traitement des données et sur l'étape d'embedding des données (premier traitement) (Edwin).<br />
* Mise en place d'un système de notation fonctionnel qui permet d'enregistrer les données à partir du front (Quentin).<br />
<br />
== Sprint 1 ==<br />
<br />
===Tâches du Sprint1===<br />
* T1. Établissement des vues principales côté client (recherche et annotation de films)<br />
* T2. Mise en place du processus de pré-traitement des données (titre, mots clés, résumé, note, artiste, producteur)<br />
* T3. Mise en place du réseau neuronal (réseau neuronal simple)<br />
* T4. Mise en place de la structure de test du réseau neuronal (former les corpus de données, cross validation, test de précision)<br />
* T5. Mise en place de l'environnement système (Docker)<br />
<br />
=== Semaine 2 : 30/01 - 05/02 ===<br />
<br />
[[File:Sprint1-Semaine2.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Préparation du premier sprint :<br />
** Mise au point sur le travail réalisé la semaine passée et sur le travail à réaliser durant le sprint<br />
** Établissement d'une liste de fonctionnalités, avec une estimation de l'importance et du temps de réalisation de chaque tâche<br />
** Sélection des fonctionnalités à réaliser au cours du Sprint, remplissage du Scrumboard<br />
* Mise au point sur l'arborescence du git / architecture du projet<br />
* Installation d'une version GPU pour Keras et Tensor-Flow sur les machines équipées d'un bon GPU<br />
<br />
====Mardi====<br />
<br />
* Réunion avec Didier Donsez : <br />
** Technologies : storm, spark, flint (temps réel) pour Twitter<br />
** Distribution : préparer un déploiement sur GRID5000, contacter Olivier Richard et préparer un container Docker<br />
** Utiliser Github pour héberger le site web<br />
<br />
* T1. -> Vues "recherche de films", "annotation de film" et "consultation des films annotés" (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** prétraitement des mots via Glove (Elsa, Edwin, Julian)<br />
** récupération des données (Julian)<br />
** mise en place de l'embedding (Edwin)<br />
** mise en place d'une librairie pour le pré-traitement des données envoyées aux classifieur (Julian)<br />
** Import des modules (Julian)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Chargement des images de films côté client (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" + Ajout "genre" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** extraction des données JSON via l'API (Elsa)<br />
** prétraitement des genres (Julian)<br />
** prétraitement général (mise en forme de la matrice de données) (Edwin)<br />
** revue de code (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur sous Keras - Elephas ? (Coralie)<br />
<br />
====Jeudi====<br />
<br />
* Cours de MPI - travail sur la communication au sein d'un groupe<br />
* T1. -> Pagination et chargement d'images (Quentin)<br />
* T3. -> Création d'une première version du classifieur (Elsa, Edwin)<br />
* T4. -> Validation croisée pour pouvoir tester le classifieur correctement (Edwin & Elsa)<br />
* T5. -> Installation version GPU sur PC (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur Keras - Elephas (Coralie)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Déploiement sur github.io (Quentin)<br />
* T3. -> Insertion de Doc2Vec dans le classifieur (Julian)<br />
* T3. -> Revue du classifieur pour obtenir une meilleure précision (Elsa & Edwin)<br />
* T4. -> Mise en place d'un système de test du classifieur automatisé avec k validations croisées pour les films enregistrés dans un fichier JSON (Elsa)<br />
* T4. -> Annotation de films pour constituer la base d'apprentissage/test (Tous)<br />
* T5. -> Auto-formation sur Docker (Coralie, Edwin)<br />
<br />
=== Semaine 3 : 06/02 - 12/02 ===<br />
<br />
[[File:Sprint1-Semaine3.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Cours de MPI - gestion de projet<br />
* T1. -> Ajout d'un boite de dialogue permettant de visualiser les infos d'un film (Quentin)<br />
* T2. -> Fix de bugs dans preprocessing (Julian)<br />
* T4. -> Recherche sur la mise en place de tests avec Python (Elsa)<br />
* T5. -> Mise en place de l'image Docker avec Python, Keras et Tensorflow en partant d'un Ubuntu 14 (Edwin)<br />
* T5. -> Mise en place de l'image Docker avec Spark en partant d'un Ubuntu 14 (Coralie)<br />
<br />
====Mardi====<br />
<br />
* Rendez-vous avec Mr. Amini<br />
* T1. -> Amélioration de la boîte de dialogue pour les infos (Quentin)<br />
* T2. -> Preprocessing des acteurs et des realisateurs et ajout des fonction de test associées (Julian)<br />
* T2. -> Test le modèle D2V sur un analyseur de sentiment de tweets, beaucoup plus objectif que les gouts utilisateurs vis à vis des films (Coralie).<br />
* T2. -> Mise en place de modules de test unitaires dans MovieProject/tests/unit et suppression de fichiers inutiles dans MovieProject/tests (Elsa)<br />
* T4. -> Ajout de nouveaux fichiers de tests (json) et évaluation du classifieur de façon générique sur les fichiers json dans MovieProject/resources/evaluation (Elsa)<br />
* T4. -> Evaluation du classifieur avec la méthode Doc2Vec (Elsa)<br />
* T5. -> Finalisation de l'image Docker avec Python, Keras et Tensorflow (Edwin)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Début de la mise en place des différents modèles d'apprentissage en vue de leur comparaison : <br />
** Réseau neuronal avec Keras (Elsa)<br />
** Perceptron (Coralie)<br />
** Modification du prétraitement afin de pouvoir récupérer les matrices de chacune des variables caractérisant un film (Julian)<br />
* T5. -> Ajout de Spark à l'image Docker (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* T1. -> Poursuite de la création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Poursuite des tests de performance :<br />
** Test de l'influence de chaque variable des films sur le modèle du perceptron, afin de ne sélectionner que les variables pertinentes (Coralie)<br />
** Test du réseau neuronal (Elsa)<br />
** Mise en place d'un SVM pour concurrencer les performances des deux autres modèles (Julian)<br />
* T5. -> Test de l'image Docker (Edwin)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Visualisation des statistiques + explications sur la page d'accueil (Quentin)<br />
* T4. -> Finalisation perceptron + intégration dans evaluation (Coralie)<br />
* T4. -> Finalisation SVM + intégration dans evaluation (Julian)<br />
* T4. -> Mise en place du module evaluation et intégration des modifications de classifieur & preprocessing (Elsa)<br />
* T5. -> Documentation sur Spark (Edwin & Coralie)<br />
<br />
===État du scrumboard en fin du Sprint1===<br />
<br />
[[File:Sprint1-end-Scrumboard.png|1080px|middle]]<br />
<br />
== Sprint 2 ==<br />
<br />
===Tâches du Sprint2===<br />
<br />
*T1.2. Amélioration du front-end (mise en cache, etc.)<br />
*T2.2. Ajout de descripteurs (durée, budget, année de production, compagnie de production, appartenance à une sage) en vue d'améliorer notre modèle d'apprentissage.<br />
*T3.2 Amélioration du réseau neuronal (comparaison avec Perceptron simple, SVM, RN Convolutif)<br />
*T4. Mise en place de la suggestion de films (vue côté front-end et logique côté back-end)<br />
*T5. Distribution de l'apprentissage sur plusieurs machines (Docker - Spark - Mesos - Elephas) & Parallélisation requêtes<br />
*T6 Communication front/back, établissement des routes et mise en place du système d'authentification<br />
*T7. Analyse de sentiment sur les flux Twitter<br />
*T8. Mise en place de la base de données<br />
<br />
=== Semaine 4 : 13/02 - 19/02 ===<br />
<br />
====Lundi====<br />
<br />
* Réunion de fin de sprint1 et de début de sprint0 : discussion autour des avancées, difficultés, retards & établissement fonctionnalités à implémenter au cours du sprint2<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T2.2. -> Revue de la structure du code (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
<br />
====Mardi====<br />
<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T3.2 -> Amélioration du classifieur (Elsa/Quentin)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
*T5. -> Parallélisation des requêtes à l'API TMDB (Julian)<br />
<br />
====Mercredi====<br />
<br />
*T1.2 -> Finalisation du cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T1.2 -> Finalisation des statistiques cinématographique utilisateurs (Quentin)<br />
*T2.2. -> Ajout du descripteurs "budget" avec normalisation (Edwin)<br />
*T3.2 -> Mise en place de la fonction de comparaison des combinaisons de descripteurs de films pour faciliter le travail des DUT (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal LSTM (Coralie)<br />
*T4. -> Changement de la méthode de prédiction de film (Elsa)<br />
*T6. -> Communication front-back test (Elsa/Quentin)<br />
* SRS (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* Rendez-vous avec les DUT : aide sur l'installation du projet, clone du projet Github. <br />
* Préparation de la présentation (Elsa & Edwin)<br />
* Préparation démo (Quentin & Elsa)<br />
* Mise à jour Wiki, SRS, Scrumboard (Elsa & Edwin)<br />
* Aide des DUT (Edwin & Julian)<br />
* T3.2 -> Evaluation du modèle et comparaison avec SVM et Perceptron de manière graphique (extraire les données et construire des graphes - csv ou matplotlib) (Sébastien & Marceau)<br />
* T7. -> Prétraitement des Tweet(Coralie)<br />
* T5. -> Avancement sur le distribué (Julian)<br />
* T1.2 -> Page de login du front, fix problème de CSS sur les graphes (Quentin)<br />
* T3.2 -> Amélioration du classifieur, tests en changeant les layers, le batch-size, etc. (Quentin)<br />
<br />
====Vendredi====<br />
* Préparation du travail qu'Edwin pourra réaliser durant la semaine de vacances (Edwin travaillera en décalé avec le reste du groupe)<br />
* Début de la mise en place de la base de données (Edwin)<br />
<br />
=== Semaine 5 : 20/02 - 26/02 ===<br />
(Edwin a travaillé la semaine précédente, en décalé avec le reste du groupe)<br />
====Lundi====<br />
*T8. -> Installation des outils liés à la gestion de la base de données MySQL et début de la conception de l'API de communication avec cette base. (Edwin)<br />
====Mardi====<br />
*T8. -> Finalisation de l'API, début des tests et des corrections de bug. (Edwin)<br />
====Mercredi====<br />
*T8. -> Ajout de nouvelles fonctionnalités SQL à l'API et tests de l'API. Création d'un readme et d'un fichier d'exemple complet pour l'utilisation de l'API de MySQL. (Edwin)<br />
*T8. -> Amélioration de l'image Docker, correction de bugs de paths et de librairies manquantes. (Edwin)<br />
====Jeudi====<br />
*T8. -> Review générale du travail lié à la base de données. (Edwin)<br />
*T8. -> Mise en place de MySQL pour Docker. (Edwin)<br />
*Mise à jour du Scrumboard et du wiki-air. (Edwin)<br />
<br />
====Vendredi====<br />
*T8. -> Amélioration du Docker pour tenter de régler des problèmes de ports liés à MySQL (non terminé). (Edwin) <br />
*T8. -> Tests unitaires de fonctionnement de serveurs apaches. (Edwin)<br />
<br />
=== Semaine 5 : 27/02 - 28/02 ===<br />
<br />
====Lundi====<br />
<br />
* T1.2 -> Mise en place de la page de recommendations (Quentin)<br />
* Merge du classifieur sur la branche develop, avec la prédiction (Elsa)<br />
* T8. -> Revue de la BD et sécurisation (Julian) puis merge sur develop<br />
* T7. -> Finalisation de l'analyse de sentiments (Coralie) pour merge sur develop<br />
* T3.2 -> Recherche sur une construction différente des matrices (basée sur la factorisation de matrices, cf Prix Netflix) (Quentin & Elsa)<br />
<br />
====Mardi====<br />
* Harmonisation des données merge sur le git (Sentiment analysis, evaluation du classifieur et prediction) (Elsa)<br />
* T6. -> Recherche et premiers tests pour l'authentification (Quentin pour le front et Julian pour le back)<br />
* T8. & T5. -> Creation d'une instance de BD Amazon RDS dans un VPC (Coralie)<br />
* T1.2 -> Finalisation page de recommendations (Quentin)<br />
* Insertion en BD des films annotés par les users (Julian)<br />
<br />
====Mercredi====<br />
* Réunion avec Massih-Reza Amini pour parler d'un nouveau modèle de machine learning (Cf Quentin & Elsa lundi)<br />
* T4. -> Amélioration de la prédiction (Elsa)<br />
* T5. -> Essais déploiement du back sur une instance Amazon RDS dans un VPC (Coralie)<br />
* T6. -> Mise en place de l'authentification simple (login) (Quentin & Julian)<br />
<br />
====Jeudi====<br />
* T4. -> Amélioration de la prédiction et module de test pour la prédiction (Elsa)<br />
* T5. -> Essais déploiement du back sur une instance Amazon RDS dans un VPC (Coralie)<br />
* T1.2 -> Création des vues d'inscription (sign up) et début vue des paramètres (Quentin)<br />
* T6. -> Sécurisation des appels à l'API par Token (Julian)<br />
<br />
====Vendredi====<br />
* Nettoyage de develop + mise en place de nouveaux tests et état des lieux des tests et de la doc à faire (Elsa)<br />
* T5. -> Essais déploiement du back sur une instance Amazon RDS dans un VPC (Coralie)<br />
* T6. -> Finalisation de l'inscription et test des premiers appels de récupération des films annotés d'un user (Quentin & Julian)<br />
<br />
== Sprint 3 ==<br />
=== Semaine 6 : 27/02 - 05/03 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
=== Semaine 7 : 06/03 - 12/03 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=Fiche_de_suivi_-_Recommandation_intelligente_de_films&diff=34016Fiche de suivi - Recommandation intelligente de films2017-02-28T10:50:31Z<p>Elsa.Navarro: /* Mercredi */</p>
<hr />
<div>Voici la Fiche de suivi du projet de fin d'études DeepMovies 2016-2017<br />
<br />
[[Suggestion_intelligente_de_films_basée_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin (Responsable innovation)<br />
* Hattinguais Julian (Responsable qualité)<br />
* Navarro Elsa (Responsable communication, Médiatrice)<br />
* Dunand Quentin (Responsable des deadlines,Responsable du front-end)<br />
<br />
= Avancée du projet =<br />
Le scrumboard utilisé pour le projet est visible dans l'onglet Projet de l'organisation DeepLearningMovies que nous avons créé sur Github. Chaque tâche est réalisée par un ou plusieurs membre(s) de l'équipe et testée par un autre membre de l'équipe.<br />
<br />
== Sprint 0 ==<br />
<br />
===Sprint dédié aux travaux préparatoires du projet===<br />
* Debriefing autour du projet<br />
* Renseignements sur les technologies et principaux défis techniques<br />
* Maquette de tests sur la faisabilité du projet (recherche de solutions pour les principaux problèmes techniques afin de guider nos choix technologiques et choix de fonctionnalités) <br />
* Choix technologiques<br />
* Préparation des environnements<br />
* Établissement de la liste des exigences fonctionnelles et non fonctionnelles<br />
<br />
<br />
[[File:Sprint0-Semaine1.jpg|1400px|middle]]<br />
<br />
=== Semaine 1 : 23/01 - 29/01 ===<br />
* Mise en place du wiki (Edwin)<br />
* Recherche sur les technologies et les problèmes techniques (Tous)<br />
* Prise RDV avec Massih-Reza Amini pour renseignements (Coralie)<br />
* Mise en place d'un agenda pour le suivi du projet (Coralie)<br />
* Comment lier l'API au front-end ? AngularJS ou Polymer ? ... (Quentin)<br />
<br />
* Mise en place de l'architecture (Tous) avant de faire un prototype comme prévu.<br />
* Installation, compréhension et manipulation de Keras (Tous)<br />
* Recherche mise en place API-REST Python pour le back-end (Julian)<br />
* Mise en place du front-end - première requêtes - choix Angular pour communiquer avec une API-REST (Quentin)<br />
* Traitement de données simple en se basant juste sur le vote des utilisateurs de TMDb sur les films (Edwin, Coralie, Elsa)<br />
* Mise en place d'un prototype capable de récolter grâce à l'API de TMDB les informations de films ciblés. Puis construction d'un modèle de Deep Learning capable de prédire si une personne va aimer un film ou non en fonction de sa note. (Edwin, Coralie)<br />
* Recherche de la transformation de texte en valeurs numériques (String to Float) et plus généralement du prétraitement des données (Elsa, Coralie, Quentin) : découvertes de Word2Vec et de [http://nlp.stanford.edu/projects/glove/ GloVe].<br />
<br />
<br />
* Rendez-vous avec Massih-Reza Amini pour éclaircir le sujet, notamment au sujet du pré-traitement du texte. (Tous)<br />
* Premiers scripts Python pour le prétraitement des données : import depuis un script JSON (Julian) et transformation sous forme de vecteur moyen pour un film donné (Elsa), recherche d'une méthode plus approfondie pour traiter le Résumé (Coralie).<br />
* Réflexion sur les choix des différents layers de traitement des données et sur l'étape d'embedding des données (premier traitement) (Edwin).<br />
* Mise en place d'un système de notation fonctionnel qui permet d'enregistrer les données à partir du front (Quentin).<br />
<br />
== Sprint 1 ==<br />
<br />
===Tâches du Sprint1===<br />
* T1. Établissement des vues principales côté client (recherche et annotation de films)<br />
* T2. Mise en place du processus de pré-traitement des données (titre, mots clés, résumé, note, artiste, producteur)<br />
* T3. Mise en place du réseau neuronal (réseau neuronal simple)<br />
* T4. Mise en place de la structure de test du réseau neuronal (former les corpus de données, cross validation, test de précision)<br />
* T5. Mise en place de l'environnement système (Docker)<br />
<br />
=== Semaine 2 : 30/01 - 05/02 ===<br />
<br />
[[File:Sprint1-Semaine2.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Préparation du premier sprint :<br />
** Mise au point sur le travail réalisé la semaine passée et sur le travail à réaliser durant le sprint<br />
** Établissement d'une liste de fonctionnalités, avec une estimation de l'importance et du temps de réalisation de chaque tâche<br />
** Sélection des fonctionnalités à réaliser au cours du Sprint, remplissage du Scrumboard<br />
* Mise au point sur l'arborescence du git / architecture du projet<br />
* Installation d'une version GPU pour Keras et Tensor-Flow sur les machines équipées d'un bon GPU<br />
<br />
====Mardi====<br />
<br />
* Réunion avec Didier Donsez : <br />
** Technologies : storm, spark, flint (temps réel) pour Twitter<br />
** Distribution : préparer un déploiement sur GRID5000, contacter Olivier Richard et préparer un container Docker<br />
** Utiliser Github pour héberger le site web<br />
<br />
* T1. -> Vues "recherche de films", "annotation de film" et "consultation des films annotés" (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** prétraitement des mots via Glove (Elsa, Edwin, Julian)<br />
** récupération des données (Julian)<br />
** mise en place de l'embedding (Edwin)<br />
** mise en place d'une librairie pour le pré-traitement des données envoyées aux classifieur (Julian)<br />
** Import des modules (Julian)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Chargement des images de films côté client (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" + Ajout "genre" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** extraction des données JSON via l'API (Elsa)<br />
** prétraitement des genres (Julian)<br />
** prétraitement général (mise en forme de la matrice de données) (Edwin)<br />
** revue de code (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur sous Keras - Elephas ? (Coralie)<br />
<br />
====Jeudi====<br />
<br />
* Cours de MPI - travail sur la communication au sein d'un groupe<br />
* T1. -> Pagination et chargement d'images (Quentin)<br />
* T3. -> Création d'une première version du classifieur (Elsa, Edwin)<br />
* T4. -> Validation croisée pour pouvoir tester le classifieur correctement (Edwin & Elsa)<br />
* T5. -> Installation version GPU sur PC (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur Keras - Elephas (Coralie)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Déploiement sur github.io (Quentin)<br />
* T3. -> Insertion de Doc2Vec dans le classifieur (Julian)<br />
* T3. -> Revue du classifieur pour obtenir une meilleure précision (Elsa & Edwin)<br />
* T4. -> Mise en place d'un système de test du classifieur automatisé avec k validations croisées pour les films enregistrés dans un fichier JSON (Elsa)<br />
* T4. -> Annotation de films pour constituer la base d'apprentissage/test (Tous)<br />
* T5. -> Auto-formation sur Docker (Coralie, Edwin)<br />
<br />
=== Semaine 3 : 06/02 - 12/02 ===<br />
<br />
[[File:Sprint1-Semaine3.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Cours de MPI - gestion de projet<br />
* T1. -> Ajout d'un boite de dialogue permettant de visualiser les infos d'un film (Quentin)<br />
* T2. -> Fix de bugs dans preprocessing (Julian)<br />
* T4. -> Recherche sur la mise en place de tests avec Python (Elsa)<br />
* T5. -> Mise en place de l'image Docker avec Python, Keras et Tensorflow en partant d'un Ubuntu 14 (Edwin)<br />
* T5. -> Mise en place de l'image Docker avec Spark en partant d'un Ubuntu 14 (Coralie)<br />
<br />
====Mardi====<br />
<br />
* Rendez-vous avec Mr. Amini<br />
* T1. -> Amélioration de la boîte de dialogue pour les infos (Quentin)<br />
* T2. -> Preprocessing des acteurs et des realisateurs et ajout des fonction de test associées (Julian)<br />
* T2. -> Test le modèle D2V sur un analyseur de sentiment de tweets, beaucoup plus objectif que les gouts utilisateurs vis à vis des films (Coralie).<br />
* T2. -> Mise en place de modules de test unitaires dans MovieProject/tests/unit et suppression de fichiers inutiles dans MovieProject/tests (Elsa)<br />
* T4. -> Ajout de nouveaux fichiers de tests (json) et évaluation du classifieur de façon générique sur les fichiers json dans MovieProject/resources/evaluation (Elsa)<br />
* T4. -> Evaluation du classifieur avec la méthode Doc2Vec (Elsa)<br />
* T5. -> Finalisation de l'image Docker avec Python, Keras et Tensorflow (Edwin)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Début de la mise en place des différents modèles d'apprentissage en vue de leur comparaison : <br />
** Réseau neuronal avec Keras (Elsa)<br />
** Perceptron (Coralie)<br />
** Modification du prétraitement afin de pouvoir récupérer les matrices de chacune des variables caractérisant un film (Julian)<br />
* T5. -> Ajout de Spark à l'image Docker (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* T1. -> Poursuite de la création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Poursuite des tests de performance :<br />
** Test de l'influence de chaque variable des films sur le modèle du perceptron, afin de ne sélectionner que les variables pertinentes (Coralie)<br />
** Test du réseau neuronal (Elsa)<br />
** Mise en place d'un SVM pour concurrencer les performances des deux autres modèles (Julian)<br />
* T5. -> Test de l'image Docker (Edwin)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Visualisation des statistiques + explications sur la page d'accueil (Quentin)<br />
* T4. -> Finalisation perceptron + intégration dans evaluation (Coralie)<br />
* T4. -> Finalisation SVM + intégration dans evaluation (Julian)<br />
* T4. -> Mise en place du module evaluation et intégration des modifications de classifieur & preprocessing (Elsa)<br />
* T5. -> Documentation sur Spark (Edwin & Coralie)<br />
<br />
===État du scrumboard en fin du Sprint1===<br />
<br />
[[File:Sprint1-end-Scrumboard.png|1080px|middle]]<br />
<br />
== Sprint 2 ==<br />
<br />
===Tâches du Sprint2===<br />
<br />
*T1.2. Amélioration du front-end (mise en cache, etc.)<br />
*T2.2. Ajout de descripteurs (durée, budget, année de production, compagnie de production, appartenance à une sage) en vue d'améliorer notre modèle d'apprentissage.<br />
*T3.2 Amélioration du réseau neuronal (comparaison avec Perceptron simple, SVM, RN Convolutif)<br />
*T4. Mise en place de la suggestion de films (vue côté front-end et logique côté back-end)<br />
*T5. Distribution de l'apprentissage sur plusieurs machines (Docker - Spark - Mesos - Elephas) & Parallélisation requêtes<br />
*T6 Communication front/back, établissement des routes et mise en place du système d'authentification<br />
*T7. Analyse de sentiment sur les flux Twitter<br />
*T8. Mise en place de la base de données<br />
<br />
=== Semaine 4 : 13/02 - 19/02 ===<br />
<br />
====Lundi====<br />
<br />
* Réunion de fin de sprint1 et de début de sprint0 : discussion autour des avancées, difficultés, retards & établissement fonctionnalités à implémenter au cours du sprint2<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T2.2. -> Revue de la structure du code (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
<br />
====Mardi====<br />
<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T3.2 -> Amélioration du classifieur (Elsa/Quentin)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
*T5. -> Parallélisation des requêtes à l'API TMDB (Julian)<br />
<br />
====Mercredi====<br />
<br />
*T1.2 -> Finalisation du cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T1.2 -> Finalisation des statistiques cinématographique utilisateurs (Quentin)<br />
*T2.2. -> Ajout du descripteurs "budget" avec normalisation (Edwin)<br />
*T3.2 -> Mise en place de la fonction de comparaison des combinaisons de descripteurs de films pour faciliter le travail des DUT (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal LSTM (Coralie)<br />
*T4. -> Changement de la méthode de prédiction de film (Elsa)<br />
*T6. -> Communication front-back test (Elsa/Quentin)<br />
* SRS (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* Rendez-vous avec les DUT : aide sur l'installation du projet, clone du projet Github. <br />
* Préparation de la présentation (Elsa & Edwin)<br />
* Préparation démo (Quentin & Elsa)<br />
* Mise à jour Wiki, SRS, Scrumboard (Elsa & Edwin)<br />
* Aide des DUT (Edwin & Julian)<br />
* T3.2 -> Evaluation du modèle et comparaison avec SVM et Perceptron de manière graphique (extraire les données et construire des graphes - csv ou matplotlib) (Sébastien & Marceau)<br />
* T7. -> Prétraitement des Tweet(Coralie)<br />
* T5. -> Avancement sur le distribué (Julian)<br />
* T1.2 -> Page de login du front, fix problème de CSS sur les graphes (Quentin)<br />
* T3.2 -> Amélioration du classifieur, tests en changeant les layers, le batch-size, etc. (Quentin)<br />
<br />
====Vendredi====<br />
* Préparation du travail qu'Edwin pourra réaliser durant la semaine de vacances (Edwin travaillera en décalé avec le reste du groupe)<br />
* Début de la mise en place de la base de données (Edwin)<br />
<br />
=== Semaine 5 : 20/02 - 26/02 ===<br />
(Edwin a travaillé la semaine précédente, en décalé avec le reste du groupe)<br />
====Lundi====<br />
*T8. -> Installation des outils liés à la gestion de la base de données MySQL et début de la conception de l'API de communication avec cette base. (Edwin)<br />
====Mardi====<br />
*T8. -> Finalisation de l'API, début des tests et des corrections de bug. (Edwin)<br />
====Mercredi====<br />
*T8. -> Ajout de nouvelles fonctionnalités SQL à l'API et tests de l'API. Création d'un readme et d'un fichier d'exemple complet pour l'utilisation de l'API de MySQL. (Edwin)<br />
*T8. -> Amélioration de l'image Docker, correction de bugs de paths et de librairies manquantes. (Edwin)<br />
====Jeudi====<br />
*T8. -> Review générale du travail lié à la base de données. (Edwin)<br />
*T8. -> Mise en place de MySQL pour Docker. (Edwin)<br />
*Mise à jour du Scrumboard et du wiki-air. (Edwin)<br />
<br />
====Vendredi====<br />
*T8. -> Amélioration du Docker pour tenter de régler des problèmes de ports liés à MySQL (non terminé). (Edwin) <br />
*T8. -> Tests unitaires de fonctionnement de serveurs apaches. (Edwin)<br />
<br />
=== Semaine 5 : 27/02 - 28/02 ===<br />
<br />
====Lundi====<br />
<br />
* T1.2 -> Mise en place de la page de prédictions (Quentin)<br />
* Merge du classifieur sur la branche develop, avec la prédiction (Elsa)<br />
* T8. -> Revue de la BD et sécurisation (Julian) pui smerge sur develop<br />
* T7. -> Finalisation de l'analyse de sentiments (Coralie) pour merge sur develop<br />
* T3.2 -> Recherche sur une construction différente des matrices (basée sur la factorisation de matrices, cf Prix Netflix) (Quentin & Elsa)<br />
<br />
====Mardi====<br />
* Harmonisation des données merge sur le git (Sentiment analysis, evaluation du classifieur et prediction) (Elsa)<br />
* T6. -> Recherche et premiers tests pour l'authentification (Quentin pour le front et Julian pour le back)<br />
* T8. -> Creation d'une instance de BD Amazon RDS dans un VPC (Coralie)<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
== Sprint 3 ==<br />
=== Semaine 6 : 27/02 - 05/03 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
=== Semaine 7 : 06/03 - 12/03 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=Fiche_de_suivi_-_Recommandation_intelligente_de_films&diff=34015Fiche de suivi - Recommandation intelligente de films2017-02-28T10:50:10Z<p>Elsa.Navarro: /* Mardi */</p>
<hr />
<div>Voici la Fiche de suivi du projet de fin d'études DeepMovies 2016-2017<br />
<br />
[[Suggestion_intelligente_de_films_basée_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin (Responsable innovation)<br />
* Hattinguais Julian (Responsable qualité)<br />
* Navarro Elsa (Responsable communication, Médiatrice)<br />
* Dunand Quentin (Responsable des deadlines,Responsable du front-end)<br />
<br />
= Avancée du projet =<br />
Le scrumboard utilisé pour le projet est visible dans l'onglet Projet de l'organisation DeepLearningMovies que nous avons créé sur Github. Chaque tâche est réalisée par un ou plusieurs membre(s) de l'équipe et testée par un autre membre de l'équipe.<br />
<br />
== Sprint 0 ==<br />
<br />
===Sprint dédié aux travaux préparatoires du projet===<br />
* Debriefing autour du projet<br />
* Renseignements sur les technologies et principaux défis techniques<br />
* Maquette de tests sur la faisabilité du projet (recherche de solutions pour les principaux problèmes techniques afin de guider nos choix technologiques et choix de fonctionnalités) <br />
* Choix technologiques<br />
* Préparation des environnements<br />
* Établissement de la liste des exigences fonctionnelles et non fonctionnelles<br />
<br />
<br />
[[File:Sprint0-Semaine1.jpg|1400px|middle]]<br />
<br />
=== Semaine 1 : 23/01 - 29/01 ===<br />
* Mise en place du wiki (Edwin)<br />
* Recherche sur les technologies et les problèmes techniques (Tous)<br />
* Prise RDV avec Massih-Reza Amini pour renseignements (Coralie)<br />
* Mise en place d'un agenda pour le suivi du projet (Coralie)<br />
* Comment lier l'API au front-end ? AngularJS ou Polymer ? ... (Quentin)<br />
<br />
* Mise en place de l'architecture (Tous) avant de faire un prototype comme prévu.<br />
* Installation, compréhension et manipulation de Keras (Tous)<br />
* Recherche mise en place API-REST Python pour le back-end (Julian)<br />
* Mise en place du front-end - première requêtes - choix Angular pour communiquer avec une API-REST (Quentin)<br />
* Traitement de données simple en se basant juste sur le vote des utilisateurs de TMDb sur les films (Edwin, Coralie, Elsa)<br />
* Mise en place d'un prototype capable de récolter grâce à l'API de TMDB les informations de films ciblés. Puis construction d'un modèle de Deep Learning capable de prédire si une personne va aimer un film ou non en fonction de sa note. (Edwin, Coralie)<br />
* Recherche de la transformation de texte en valeurs numériques (String to Float) et plus généralement du prétraitement des données (Elsa, Coralie, Quentin) : découvertes de Word2Vec et de [http://nlp.stanford.edu/projects/glove/ GloVe].<br />
<br />
<br />
* Rendez-vous avec Massih-Reza Amini pour éclaircir le sujet, notamment au sujet du pré-traitement du texte. (Tous)<br />
* Premiers scripts Python pour le prétraitement des données : import depuis un script JSON (Julian) et transformation sous forme de vecteur moyen pour un film donné (Elsa), recherche d'une méthode plus approfondie pour traiter le Résumé (Coralie).<br />
* Réflexion sur les choix des différents layers de traitement des données et sur l'étape d'embedding des données (premier traitement) (Edwin).<br />
* Mise en place d'un système de notation fonctionnel qui permet d'enregistrer les données à partir du front (Quentin).<br />
<br />
== Sprint 1 ==<br />
<br />
===Tâches du Sprint1===<br />
* T1. Établissement des vues principales côté client (recherche et annotation de films)<br />
* T2. Mise en place du processus de pré-traitement des données (titre, mots clés, résumé, note, artiste, producteur)<br />
* T3. Mise en place du réseau neuronal (réseau neuronal simple)<br />
* T4. Mise en place de la structure de test du réseau neuronal (former les corpus de données, cross validation, test de précision)<br />
* T5. Mise en place de l'environnement système (Docker)<br />
<br />
=== Semaine 2 : 30/01 - 05/02 ===<br />
<br />
[[File:Sprint1-Semaine2.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Préparation du premier sprint :<br />
** Mise au point sur le travail réalisé la semaine passée et sur le travail à réaliser durant le sprint<br />
** Établissement d'une liste de fonctionnalités, avec une estimation de l'importance et du temps de réalisation de chaque tâche<br />
** Sélection des fonctionnalités à réaliser au cours du Sprint, remplissage du Scrumboard<br />
* Mise au point sur l'arborescence du git / architecture du projet<br />
* Installation d'une version GPU pour Keras et Tensor-Flow sur les machines équipées d'un bon GPU<br />
<br />
====Mardi====<br />
<br />
* Réunion avec Didier Donsez : <br />
** Technologies : storm, spark, flint (temps réel) pour Twitter<br />
** Distribution : préparer un déploiement sur GRID5000, contacter Olivier Richard et préparer un container Docker<br />
** Utiliser Github pour héberger le site web<br />
<br />
* T1. -> Vues "recherche de films", "annotation de film" et "consultation des films annotés" (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** prétraitement des mots via Glove (Elsa, Edwin, Julian)<br />
** récupération des données (Julian)<br />
** mise en place de l'embedding (Edwin)<br />
** mise en place d'une librairie pour le pré-traitement des données envoyées aux classifieur (Julian)<br />
** Import des modules (Julian)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Chargement des images de films côté client (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" + Ajout "genre" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** extraction des données JSON via l'API (Elsa)<br />
** prétraitement des genres (Julian)<br />
** prétraitement général (mise en forme de la matrice de données) (Edwin)<br />
** revue de code (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur sous Keras - Elephas ? (Coralie)<br />
<br />
====Jeudi====<br />
<br />
* Cours de MPI - travail sur la communication au sein d'un groupe<br />
* T1. -> Pagination et chargement d'images (Quentin)<br />
* T3. -> Création d'une première version du classifieur (Elsa, Edwin)<br />
* T4. -> Validation croisée pour pouvoir tester le classifieur correctement (Edwin & Elsa)<br />
* T5. -> Installation version GPU sur PC (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur Keras - Elephas (Coralie)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Déploiement sur github.io (Quentin)<br />
* T3. -> Insertion de Doc2Vec dans le classifieur (Julian)<br />
* T3. -> Revue du classifieur pour obtenir une meilleure précision (Elsa & Edwin)<br />
* T4. -> Mise en place d'un système de test du classifieur automatisé avec k validations croisées pour les films enregistrés dans un fichier JSON (Elsa)<br />
* T4. -> Annotation de films pour constituer la base d'apprentissage/test (Tous)<br />
* T5. -> Auto-formation sur Docker (Coralie, Edwin)<br />
<br />
=== Semaine 3 : 06/02 - 12/02 ===<br />
<br />
[[File:Sprint1-Semaine3.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Cours de MPI - gestion de projet<br />
* T1. -> Ajout d'un boite de dialogue permettant de visualiser les infos d'un film (Quentin)<br />
* T2. -> Fix de bugs dans preprocessing (Julian)<br />
* T4. -> Recherche sur la mise en place de tests avec Python (Elsa)<br />
* T5. -> Mise en place de l'image Docker avec Python, Keras et Tensorflow en partant d'un Ubuntu 14 (Edwin)<br />
* T5. -> Mise en place de l'image Docker avec Spark en partant d'un Ubuntu 14 (Coralie)<br />
<br />
====Mardi====<br />
<br />
* Rendez-vous avec Mr. Amini<br />
* T1. -> Amélioration de la boîte de dialogue pour les infos (Quentin)<br />
* T2. -> Preprocessing des acteurs et des realisateurs et ajout des fonction de test associées (Julian)<br />
* T2. -> Test le modèle D2V sur un analyseur de sentiment de tweets, beaucoup plus objectif que les gouts utilisateurs vis à vis des films (Coralie).<br />
* T2. -> Mise en place de modules de test unitaires dans MovieProject/tests/unit et suppression de fichiers inutiles dans MovieProject/tests (Elsa)<br />
* T4. -> Ajout de nouveaux fichiers de tests (json) et évaluation du classifieur de façon générique sur les fichiers json dans MovieProject/resources/evaluation (Elsa)<br />
* T4. -> Evaluation du classifieur avec la méthode Doc2Vec (Elsa)<br />
* T5. -> Finalisation de l'image Docker avec Python, Keras et Tensorflow (Edwin)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Début de la mise en place des différents modèles d'apprentissage en vue de leur comparaison : <br />
** Réseau neuronal avec Keras (Elsa)<br />
** Perceptron (Coralie)<br />
** Modification du prétraitement afin de pouvoir récupérer les matrices de chacune des variables caractérisant un film (Julian)<br />
* T5. -> Ajout de Spark à l'image Docker (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* T1. -> Poursuite de la création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Poursuite des tests de performance :<br />
** Test de l'influence de chaque variable des films sur le modèle du perceptron, afin de ne sélectionner que les variables pertinentes (Coralie)<br />
** Test du réseau neuronal (Elsa)<br />
** Mise en place d'un SVM pour concurrencer les performances des deux autres modèles (Julian)<br />
* T5. -> Test de l'image Docker (Edwin)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Visualisation des statistiques + explications sur la page d'accueil (Quentin)<br />
* T4. -> Finalisation perceptron + intégration dans evaluation (Coralie)<br />
* T4. -> Finalisation SVM + intégration dans evaluation (Julian)<br />
* T4. -> Mise en place du module evaluation et intégration des modifications de classifieur & preprocessing (Elsa)<br />
* T5. -> Documentation sur Spark (Edwin & Coralie)<br />
<br />
===État du scrumboard en fin du Sprint1===<br />
<br />
[[File:Sprint1-end-Scrumboard.png|1080px|middle]]<br />
<br />
== Sprint 2 ==<br />
<br />
===Tâches du Sprint2===<br />
<br />
*T1.2. Amélioration du front-end (mise en cache, etc.)<br />
*T2.2. Ajout de descripteurs (durée, budget, année de production, compagnie de production, appartenance à une sage) en vue d'améliorer notre modèle d'apprentissage.<br />
*T3.2 Amélioration du réseau neuronal (comparaison avec Perceptron simple, SVM, RN Convolutif)<br />
*T4. Mise en place de la suggestion de films (vue côté front-end et logique côté back-end)<br />
*T5. Distribution de l'apprentissage sur plusieurs machines (Docker - Spark - Mesos - Elephas) & Parallélisation requêtes<br />
*T6 Communication front/back, établissement des routes et mise en place du système d'authentification<br />
*T7. Analyse de sentiment sur les flux Twitter<br />
*T8. Mise en place de la base de données<br />
<br />
=== Semaine 4 : 13/02 - 19/02 ===<br />
<br />
====Lundi====<br />
<br />
* Réunion de fin de sprint1 et de début de sprint0 : discussion autour des avancées, difficultés, retards & établissement fonctionnalités à implémenter au cours du sprint2<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T2.2. -> Revue de la structure du code (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
<br />
====Mardi====<br />
<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T3.2 -> Amélioration du classifieur (Elsa/Quentin)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
*T5. -> Parallélisation des requêtes à l'API TMDB (Julian)<br />
<br />
====Mercredi====<br />
<br />
*T1.2 -> Finalisation du cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T1.2 -> Finalisation des statistiques cinématographique utilisateurs (Quentin)<br />
*T2.2. -> Ajout du descripteurs "budget" avec normalisation (Edwin)<br />
*T3.2 -> Mise en place de la fonction de comparaison des combinaisons de descripteurs de films pour faciliter le travail des DUT (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal LSTM (Coralie)<br />
*T4. -> Changement de la méthode de prédiction de film (Elsa)<br />
*T6 -> Communication front-back test (Elsa/Quentin)<br />
* SRS (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* Rendez-vous avec les DUT : aide sur l'installation du projet, clone du projet Github. <br />
* Préparation de la présentation (Elsa & Edwin)<br />
* Préparation démo (Quentin & Elsa)<br />
* Mise à jour Wiki, SRS, Scrumboard (Elsa & Edwin)<br />
* Aide des DUT (Edwin & Julian)<br />
* T3.2 -> Evaluation du modèle et comparaison avec SVM et Perceptron de manière graphique (extraire les données et construire des graphes - csv ou matplotlib) (Sébastien & Marceau)<br />
* T7. -> Prétraitement des Tweet(Coralie)<br />
* T5. -> Avancement sur le distribué (Julian)<br />
* T1.2 -> Page de login du front, fix problème de CSS sur les graphes (Quentin)<br />
* T3.2 -> Amélioration du classifieur, tests en changeant les layers, le batch-size, etc. (Quentin)<br />
<br />
====Vendredi====<br />
* Préparation du travail qu'Edwin pourra réaliser durant la semaine de vacances (Edwin travaillera en décalé avec le reste du groupe)<br />
* Début de la mise en place de la base de données (Edwin)<br />
<br />
=== Semaine 5 : 20/02 - 26/02 ===<br />
(Edwin a travaillé la semaine précédente, en décalé avec le reste du groupe)<br />
====Lundi====<br />
*T8. -> Installation des outils liés à la gestion de la base de données MySQL et début de la conception de l'API de communication avec cette base. (Edwin)<br />
====Mardi====<br />
*T8. -> Finalisation de l'API, début des tests et des corrections de bug. (Edwin)<br />
====Mercredi====<br />
*T8. -> Ajout de nouvelles fonctionnalités SQL à l'API et tests de l'API. Création d'un readme et d'un fichier d'exemple complet pour l'utilisation de l'API de MySQL. (Edwin)<br />
*T8. -> Amélioration de l'image Docker, correction de bugs de paths et de librairies manquantes. (Edwin)<br />
====Jeudi====<br />
*T8. -> Review générale du travail lié à la base de données. (Edwin)<br />
*T8. -> Mise en place de MySQL pour Docker. (Edwin)<br />
*Mise à jour du Scrumboard et du wiki-air. (Edwin)<br />
<br />
====Vendredi====<br />
*T8. -> Amélioration du Docker pour tenter de régler des problèmes de ports liés à MySQL (non terminé). (Edwin) <br />
*T8. -> Tests unitaires de fonctionnement de serveurs apaches. (Edwin)<br />
<br />
=== Semaine 5 : 27/02 - 28/02 ===<br />
<br />
====Lundi====<br />
<br />
* T1.2 -> Mise en place de la page de prédictions (Quentin)<br />
* Merge du classifieur sur la branche develop, avec la prédiction (Elsa)<br />
* T8. -> Revue de la BD et sécurisation (Julian) pui smerge sur develop<br />
* T7. -> Finalisation de l'analyse de sentiments (Coralie) pour merge sur develop<br />
* T3.2 -> Recherche sur une construction différente des matrices (basée sur la factorisation de matrices, cf Prix Netflix) (Quentin & Elsa)<br />
<br />
====Mardi====<br />
* Harmonisation des données merge sur le git (Sentiment analysis, evaluation du classifieur et prediction) (Elsa)<br />
* T6. -> Recherche et premiers tests pour l'authentification (Quentin pour le front et Julian pour le back)<br />
* T8. -> Creation d'une instance de BD Amazon RDS dans un VPC (Coralie)<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
== Sprint 3 ==<br />
=== Semaine 6 : 27/02 - 05/03 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
=== Semaine 7 : 06/03 - 12/03 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=Fiche_de_suivi_-_Recommandation_intelligente_de_films&diff=34014Fiche de suivi - Recommandation intelligente de films2017-02-28T10:49:46Z<p>Elsa.Navarro: /* Mercredi */</p>
<hr />
<div>Voici la Fiche de suivi du projet de fin d'études DeepMovies 2016-2017<br />
<br />
[[Suggestion_intelligente_de_films_basée_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin (Responsable innovation)<br />
* Hattinguais Julian (Responsable qualité)<br />
* Navarro Elsa (Responsable communication, Médiatrice)<br />
* Dunand Quentin (Responsable des deadlines,Responsable du front-end)<br />
<br />
= Avancée du projet =<br />
Le scrumboard utilisé pour le projet est visible dans l'onglet Projet de l'organisation DeepLearningMovies que nous avons créé sur Github. Chaque tâche est réalisée par un ou plusieurs membre(s) de l'équipe et testée par un autre membre de l'équipe.<br />
<br />
== Sprint 0 ==<br />
<br />
===Sprint dédié aux travaux préparatoires du projet===<br />
* Debriefing autour du projet<br />
* Renseignements sur les technologies et principaux défis techniques<br />
* Maquette de tests sur la faisabilité du projet (recherche de solutions pour les principaux problèmes techniques afin de guider nos choix technologiques et choix de fonctionnalités) <br />
* Choix technologiques<br />
* Préparation des environnements<br />
* Établissement de la liste des exigences fonctionnelles et non fonctionnelles<br />
<br />
<br />
[[File:Sprint0-Semaine1.jpg|1400px|middle]]<br />
<br />
=== Semaine 1 : 23/01 - 29/01 ===<br />
* Mise en place du wiki (Edwin)<br />
* Recherche sur les technologies et les problèmes techniques (Tous)<br />
* Prise RDV avec Massih-Reza Amini pour renseignements (Coralie)<br />
* Mise en place d'un agenda pour le suivi du projet (Coralie)<br />
* Comment lier l'API au front-end ? AngularJS ou Polymer ? ... (Quentin)<br />
<br />
* Mise en place de l'architecture (Tous) avant de faire un prototype comme prévu.<br />
* Installation, compréhension et manipulation de Keras (Tous)<br />
* Recherche mise en place API-REST Python pour le back-end (Julian)<br />
* Mise en place du front-end - première requêtes - choix Angular pour communiquer avec une API-REST (Quentin)<br />
* Traitement de données simple en se basant juste sur le vote des utilisateurs de TMDb sur les films (Edwin, Coralie, Elsa)<br />
* Mise en place d'un prototype capable de récolter grâce à l'API de TMDB les informations de films ciblés. Puis construction d'un modèle de Deep Learning capable de prédire si une personne va aimer un film ou non en fonction de sa note. (Edwin, Coralie)<br />
* Recherche de la transformation de texte en valeurs numériques (String to Float) et plus généralement du prétraitement des données (Elsa, Coralie, Quentin) : découvertes de Word2Vec et de [http://nlp.stanford.edu/projects/glove/ GloVe].<br />
<br />
<br />
* Rendez-vous avec Massih-Reza Amini pour éclaircir le sujet, notamment au sujet du pré-traitement du texte. (Tous)<br />
* Premiers scripts Python pour le prétraitement des données : import depuis un script JSON (Julian) et transformation sous forme de vecteur moyen pour un film donné (Elsa), recherche d'une méthode plus approfondie pour traiter le Résumé (Coralie).<br />
* Réflexion sur les choix des différents layers de traitement des données et sur l'étape d'embedding des données (premier traitement) (Edwin).<br />
* Mise en place d'un système de notation fonctionnel qui permet d'enregistrer les données à partir du front (Quentin).<br />
<br />
== Sprint 1 ==<br />
<br />
===Tâches du Sprint1===<br />
* T1. Établissement des vues principales côté client (recherche et annotation de films)<br />
* T2. Mise en place du processus de pré-traitement des données (titre, mots clés, résumé, note, artiste, producteur)<br />
* T3. Mise en place du réseau neuronal (réseau neuronal simple)<br />
* T4. Mise en place de la structure de test du réseau neuronal (former les corpus de données, cross validation, test de précision)<br />
* T5. Mise en place de l'environnement système (Docker)<br />
<br />
=== Semaine 2 : 30/01 - 05/02 ===<br />
<br />
[[File:Sprint1-Semaine2.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Préparation du premier sprint :<br />
** Mise au point sur le travail réalisé la semaine passée et sur le travail à réaliser durant le sprint<br />
** Établissement d'une liste de fonctionnalités, avec une estimation de l'importance et du temps de réalisation de chaque tâche<br />
** Sélection des fonctionnalités à réaliser au cours du Sprint, remplissage du Scrumboard<br />
* Mise au point sur l'arborescence du git / architecture du projet<br />
* Installation d'une version GPU pour Keras et Tensor-Flow sur les machines équipées d'un bon GPU<br />
<br />
====Mardi====<br />
<br />
* Réunion avec Didier Donsez : <br />
** Technologies : storm, spark, flint (temps réel) pour Twitter<br />
** Distribution : préparer un déploiement sur GRID5000, contacter Olivier Richard et préparer un container Docker<br />
** Utiliser Github pour héberger le site web<br />
<br />
* T1. -> Vues "recherche de films", "annotation de film" et "consultation des films annotés" (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** prétraitement des mots via Glove (Elsa, Edwin, Julian)<br />
** récupération des données (Julian)<br />
** mise en place de l'embedding (Edwin)<br />
** mise en place d'une librairie pour le pré-traitement des données envoyées aux classifieur (Julian)<br />
** Import des modules (Julian)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Chargement des images de films côté client (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" + Ajout "genre" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** extraction des données JSON via l'API (Elsa)<br />
** prétraitement des genres (Julian)<br />
** prétraitement général (mise en forme de la matrice de données) (Edwin)<br />
** revue de code (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur sous Keras - Elephas ? (Coralie)<br />
<br />
====Jeudi====<br />
<br />
* Cours de MPI - travail sur la communication au sein d'un groupe<br />
* T1. -> Pagination et chargement d'images (Quentin)<br />
* T3. -> Création d'une première version du classifieur (Elsa, Edwin)<br />
* T4. -> Validation croisée pour pouvoir tester le classifieur correctement (Edwin & Elsa)<br />
* T5. -> Installation version GPU sur PC (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur Keras - Elephas (Coralie)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Déploiement sur github.io (Quentin)<br />
* T3. -> Insertion de Doc2Vec dans le classifieur (Julian)<br />
* T3. -> Revue du classifieur pour obtenir une meilleure précision (Elsa & Edwin)<br />
* T4. -> Mise en place d'un système de test du classifieur automatisé avec k validations croisées pour les films enregistrés dans un fichier JSON (Elsa)<br />
* T4. -> Annotation de films pour constituer la base d'apprentissage/test (Tous)<br />
* T5. -> Auto-formation sur Docker (Coralie, Edwin)<br />
<br />
=== Semaine 3 : 06/02 - 12/02 ===<br />
<br />
[[File:Sprint1-Semaine3.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Cours de MPI - gestion de projet<br />
* T1. -> Ajout d'un boite de dialogue permettant de visualiser les infos d'un film (Quentin)<br />
* T2. -> Fix de bugs dans preprocessing (Julian)<br />
* T4. -> Recherche sur la mise en place de tests avec Python (Elsa)<br />
* T5. -> Mise en place de l'image Docker avec Python, Keras et Tensorflow en partant d'un Ubuntu 14 (Edwin)<br />
* T5. -> Mise en place de l'image Docker avec Spark en partant d'un Ubuntu 14 (Coralie)<br />
<br />
====Mardi====<br />
<br />
* Rendez-vous avec Mr. Amini<br />
* T1. -> Amélioration de la boîte de dialogue pour les infos (Quentin)<br />
* T2. -> Preprocessing des acteurs et des realisateurs et ajout des fonction de test associées (Julian)<br />
* T2. -> Test le modèle D2V sur un analyseur de sentiment de tweets, beaucoup plus objectif que les gouts utilisateurs vis à vis des films (Coralie).<br />
* T2. -> Mise en place de modules de test unitaires dans MovieProject/tests/unit et suppression de fichiers inutiles dans MovieProject/tests (Elsa)<br />
* T4. -> Ajout de nouveaux fichiers de tests (json) et évaluation du classifieur de façon générique sur les fichiers json dans MovieProject/resources/evaluation (Elsa)<br />
* T4. -> Evaluation du classifieur avec la méthode Doc2Vec (Elsa)<br />
* T5. -> Finalisation de l'image Docker avec Python, Keras et Tensorflow (Edwin)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Début de la mise en place des différents modèles d'apprentissage en vue de leur comparaison : <br />
** Réseau neuronal avec Keras (Elsa)<br />
** Perceptron (Coralie)<br />
** Modification du prétraitement afin de pouvoir récupérer les matrices de chacune des variables caractérisant un film (Julian)<br />
* T5. -> Ajout de Spark à l'image Docker (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* T1. -> Poursuite de la création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Poursuite des tests de performance :<br />
** Test de l'influence de chaque variable des films sur le modèle du perceptron, afin de ne sélectionner que les variables pertinentes (Coralie)<br />
** Test du réseau neuronal (Elsa)<br />
** Mise en place d'un SVM pour concurrencer les performances des deux autres modèles (Julian)<br />
* T5. -> Test de l'image Docker (Edwin)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Visualisation des statistiques + explications sur la page d'accueil (Quentin)<br />
* T4. -> Finalisation perceptron + intégration dans evaluation (Coralie)<br />
* T4. -> Finalisation SVM + intégration dans evaluation (Julian)<br />
* T4. -> Mise en place du module evaluation et intégration des modifications de classifieur & preprocessing (Elsa)<br />
* T5. -> Documentation sur Spark (Edwin & Coralie)<br />
<br />
===État du scrumboard en fin du Sprint1===<br />
<br />
[[File:Sprint1-end-Scrumboard.png|1080px|middle]]<br />
<br />
== Sprint 2 ==<br />
<br />
===Tâches du Sprint2===<br />
<br />
*T1.2. Amélioration du front-end (mise en cache, etc.)<br />
*T2.2. Ajout de descripteurs (durée, budget, année de production, compagnie de production, appartenance à une sage) en vue d'améliorer notre modèle d'apprentissage.<br />
*T3.2 Amélioration du réseau neuronal (comparaison avec Perceptron simple, SVM, RN Convolutif)<br />
*T4. Mise en place de la suggestion de films (vue côté front-end et logique côté back-end)<br />
*T5. Distribution de l'apprentissage sur plusieurs machines (Docker - Spark - Mesos - Elephas) & Parallélisation requêtes<br />
*T6 Communication front/back, établissement des routes et mise en place du système d'authentification<br />
*T7. Analyse de sentiment sur les flux Twitter<br />
*T8. Mise en place de la base de données<br />
<br />
=== Semaine 4 : 13/02 - 19/02 ===<br />
<br />
====Lundi====<br />
<br />
* Réunion de fin de sprint1 et de début de sprint0 : discussion autour des avancées, difficultés, retards & établissement fonctionnalités à implémenter au cours du sprint2<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T2.2. -> Revue de la structure du code (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
<br />
====Mardi====<br />
<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T3.2 -> Amélioration du classifieur (Elsa/Quentin)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
*T5. -> Parallélisation des requêtes à l'API TMDB (Julian)<br />
<br />
====Mercredi====<br />
<br />
*T1.2 -> Finalisation du cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T1.2 -> Finalisation des statistiques cinématographique utilisateurs (Quentin)<br />
*T2.2. -> Ajout du descripteurs "budget" avec normalisation (Edwin)<br />
*T3.2 -> Mise en place de la fonction de comparaison des combinaisons de descripteurs de films pour faciliter le travail des DUT (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal LSTM (Coralie)<br />
*T4. -> Changement de la méthode de prédiction de film (Elsa)<br />
*T6 -> Communication front-back test (Elsa/Quentin)<br />
* SRS (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* Rendez-vous avec les DUT : aide sur l'installation du projet, clone du projet Github. <br />
* Préparation de la présentation (Elsa & Edwin)<br />
* Préparation démo (Quentin & Elsa)<br />
* Mise à jour Wiki, SRS, Scrumboard (Elsa & Edwin)<br />
* Aide des DUT (Edwin & Julian)<br />
* T3.2 -> Evaluation du modèle et comparaison avec SVM et Perceptron de manière graphique (extraire les données et construire des graphes - csv ou matplotlib) (Sébastien & Marceau)<br />
* T7. -> Prétraitement des Tweet(Coralie)<br />
* T5. -> Avancement sur le distribué (Julian)<br />
* T1.2 -> Page de login du front, fix problème de CSS sur les graphes (Quentin)<br />
* T3.2 -> Amélioration du classifieur, tests en changeant les layers, le batch-size, etc. (Quentin)<br />
<br />
====Vendredi====<br />
* Préparation du travail qu'Edwin pourra réaliser durant la semaine de vacances (Edwin travaillera en décalé avec le reste du groupe)<br />
* Début de la mise en place de la base de données (Edwin)<br />
<br />
=== Semaine 5 : 20/02 - 26/02 ===<br />
(Edwin a travaillé la semaine précédente, en décalé avec le reste du groupe)<br />
====Lundi====<br />
*T8. -> Installation des outils liés à la gestion de la base de données MySQL et début de la conception de l'API de communication avec cette base. (Edwin)<br />
====Mardi====<br />
*T8. -> Finalisation de l'API, début des tests et des corrections de bug. (Edwin)<br />
====Mercredi====<br />
*T8. -> Ajout de nouvelles fonctionnalités SQL à l'API et tests de l'API. Création d'un readme et d'un fichier d'exemple complet pour l'utilisation de l'API de MySQL. (Edwin)<br />
*T8. -> Amélioration de l'image Docker, correction de bugs de paths et de librairies manquantes. (Edwin)<br />
====Jeudi====<br />
*T8. -> Review générale du travail lié à la base de données. (Edwin)<br />
*T8. -> Mise en place de MySQL pour Docker. (Edwin)<br />
*Mise à jour du Scrumboard et du wiki-air. (Edwin)<br />
<br />
====Vendredi====<br />
*T8. -> Amélioration du Docker pour tenter de régler des problèmes de ports liés à MySQL (non terminé). (Edwin) <br />
*T8. -> Tests unitaires de fonctionnement de serveurs apaches. (Edwin)<br />
<br />
=== Semaine 5 : 27/02 - 28/02 ===<br />
<br />
====Lundi====<br />
<br />
* T1.2 -> Mise en place de la page de prédictions (Quentin)<br />
* Merge du classifieur sur la branche develop, avec la prédiction (Elsa)<br />
* T8. -> Revue de la BD et sécurisation (Julian) pui smerge sur develop<br />
* T7. -> Finalisation de l'analyse de sentiments (Coralie) pour merge sur develop<br />
* T3.2 -> Recherche sur une construction différente des matrices (basée sur la factorisation de matrices, cf Prix Netflix) (Quentin & Elsa)<br />
<br />
====Mardi====<br />
* Harmonisation des données merge sur le git (Sentiment analysis, evaluation du classifieur et prediction) (Elsa)<br />
* T6.2 -> Recherche et premiers tests pour l'authentification (Quentin pour le front et Julian pour le back)<br />
* T8. -> Creation d'une instance de BD Amazon RDS dans un VPC (Coralie)<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
== Sprint 3 ==<br />
=== Semaine 6 : 27/02 - 05/03 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
=== Semaine 7 : 06/03 - 12/03 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=Fiche_de_suivi_-_Recommandation_intelligente_de_films&diff=34013Fiche de suivi - Recommandation intelligente de films2017-02-28T10:49:29Z<p>Elsa.Navarro: /* Tâches du Sprint2 */</p>
<hr />
<div>Voici la Fiche de suivi du projet de fin d'études DeepMovies 2016-2017<br />
<br />
[[Suggestion_intelligente_de_films_basée_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin (Responsable innovation)<br />
* Hattinguais Julian (Responsable qualité)<br />
* Navarro Elsa (Responsable communication, Médiatrice)<br />
* Dunand Quentin (Responsable des deadlines,Responsable du front-end)<br />
<br />
= Avancée du projet =<br />
Le scrumboard utilisé pour le projet est visible dans l'onglet Projet de l'organisation DeepLearningMovies que nous avons créé sur Github. Chaque tâche est réalisée par un ou plusieurs membre(s) de l'équipe et testée par un autre membre de l'équipe.<br />
<br />
== Sprint 0 ==<br />
<br />
===Sprint dédié aux travaux préparatoires du projet===<br />
* Debriefing autour du projet<br />
* Renseignements sur les technologies et principaux défis techniques<br />
* Maquette de tests sur la faisabilité du projet (recherche de solutions pour les principaux problèmes techniques afin de guider nos choix technologiques et choix de fonctionnalités) <br />
* Choix technologiques<br />
* Préparation des environnements<br />
* Établissement de la liste des exigences fonctionnelles et non fonctionnelles<br />
<br />
<br />
[[File:Sprint0-Semaine1.jpg|1400px|middle]]<br />
<br />
=== Semaine 1 : 23/01 - 29/01 ===<br />
* Mise en place du wiki (Edwin)<br />
* Recherche sur les technologies et les problèmes techniques (Tous)<br />
* Prise RDV avec Massih-Reza Amini pour renseignements (Coralie)<br />
* Mise en place d'un agenda pour le suivi du projet (Coralie)<br />
* Comment lier l'API au front-end ? AngularJS ou Polymer ? ... (Quentin)<br />
<br />
* Mise en place de l'architecture (Tous) avant de faire un prototype comme prévu.<br />
* Installation, compréhension et manipulation de Keras (Tous)<br />
* Recherche mise en place API-REST Python pour le back-end (Julian)<br />
* Mise en place du front-end - première requêtes - choix Angular pour communiquer avec une API-REST (Quentin)<br />
* Traitement de données simple en se basant juste sur le vote des utilisateurs de TMDb sur les films (Edwin, Coralie, Elsa)<br />
* Mise en place d'un prototype capable de récolter grâce à l'API de TMDB les informations de films ciblés. Puis construction d'un modèle de Deep Learning capable de prédire si une personne va aimer un film ou non en fonction de sa note. (Edwin, Coralie)<br />
* Recherche de la transformation de texte en valeurs numériques (String to Float) et plus généralement du prétraitement des données (Elsa, Coralie, Quentin) : découvertes de Word2Vec et de [http://nlp.stanford.edu/projects/glove/ GloVe].<br />
<br />
<br />
* Rendez-vous avec Massih-Reza Amini pour éclaircir le sujet, notamment au sujet du pré-traitement du texte. (Tous)<br />
* Premiers scripts Python pour le prétraitement des données : import depuis un script JSON (Julian) et transformation sous forme de vecteur moyen pour un film donné (Elsa), recherche d'une méthode plus approfondie pour traiter le Résumé (Coralie).<br />
* Réflexion sur les choix des différents layers de traitement des données et sur l'étape d'embedding des données (premier traitement) (Edwin).<br />
* Mise en place d'un système de notation fonctionnel qui permet d'enregistrer les données à partir du front (Quentin).<br />
<br />
== Sprint 1 ==<br />
<br />
===Tâches du Sprint1===<br />
* T1. Établissement des vues principales côté client (recherche et annotation de films)<br />
* T2. Mise en place du processus de pré-traitement des données (titre, mots clés, résumé, note, artiste, producteur)<br />
* T3. Mise en place du réseau neuronal (réseau neuronal simple)<br />
* T4. Mise en place de la structure de test du réseau neuronal (former les corpus de données, cross validation, test de précision)<br />
* T5. Mise en place de l'environnement système (Docker)<br />
<br />
=== Semaine 2 : 30/01 - 05/02 ===<br />
<br />
[[File:Sprint1-Semaine2.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Préparation du premier sprint :<br />
** Mise au point sur le travail réalisé la semaine passée et sur le travail à réaliser durant le sprint<br />
** Établissement d'une liste de fonctionnalités, avec une estimation de l'importance et du temps de réalisation de chaque tâche<br />
** Sélection des fonctionnalités à réaliser au cours du Sprint, remplissage du Scrumboard<br />
* Mise au point sur l'arborescence du git / architecture du projet<br />
* Installation d'une version GPU pour Keras et Tensor-Flow sur les machines équipées d'un bon GPU<br />
<br />
====Mardi====<br />
<br />
* Réunion avec Didier Donsez : <br />
** Technologies : storm, spark, flint (temps réel) pour Twitter<br />
** Distribution : préparer un déploiement sur GRID5000, contacter Olivier Richard et préparer un container Docker<br />
** Utiliser Github pour héberger le site web<br />
<br />
* T1. -> Vues "recherche de films", "annotation de film" et "consultation des films annotés" (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** prétraitement des mots via Glove (Elsa, Edwin, Julian)<br />
** récupération des données (Julian)<br />
** mise en place de l'embedding (Edwin)<br />
** mise en place d'une librairie pour le pré-traitement des données envoyées aux classifieur (Julian)<br />
** Import des modules (Julian)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Chargement des images de films côté client (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" + Ajout "genre" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** extraction des données JSON via l'API (Elsa)<br />
** prétraitement des genres (Julian)<br />
** prétraitement général (mise en forme de la matrice de données) (Edwin)<br />
** revue de code (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur sous Keras - Elephas ? (Coralie)<br />
<br />
====Jeudi====<br />
<br />
* Cours de MPI - travail sur la communication au sein d'un groupe<br />
* T1. -> Pagination et chargement d'images (Quentin)<br />
* T3. -> Création d'une première version du classifieur (Elsa, Edwin)<br />
* T4. -> Validation croisée pour pouvoir tester le classifieur correctement (Edwin & Elsa)<br />
* T5. -> Installation version GPU sur PC (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur Keras - Elephas (Coralie)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Déploiement sur github.io (Quentin)<br />
* T3. -> Insertion de Doc2Vec dans le classifieur (Julian)<br />
* T3. -> Revue du classifieur pour obtenir une meilleure précision (Elsa & Edwin)<br />
* T4. -> Mise en place d'un système de test du classifieur automatisé avec k validations croisées pour les films enregistrés dans un fichier JSON (Elsa)<br />
* T4. -> Annotation de films pour constituer la base d'apprentissage/test (Tous)<br />
* T5. -> Auto-formation sur Docker (Coralie, Edwin)<br />
<br />
=== Semaine 3 : 06/02 - 12/02 ===<br />
<br />
[[File:Sprint1-Semaine3.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Cours de MPI - gestion de projet<br />
* T1. -> Ajout d'un boite de dialogue permettant de visualiser les infos d'un film (Quentin)<br />
* T2. -> Fix de bugs dans preprocessing (Julian)<br />
* T4. -> Recherche sur la mise en place de tests avec Python (Elsa)<br />
* T5. -> Mise en place de l'image Docker avec Python, Keras et Tensorflow en partant d'un Ubuntu 14 (Edwin)<br />
* T5. -> Mise en place de l'image Docker avec Spark en partant d'un Ubuntu 14 (Coralie)<br />
<br />
====Mardi====<br />
<br />
* Rendez-vous avec Mr. Amini<br />
* T1. -> Amélioration de la boîte de dialogue pour les infos (Quentin)<br />
* T2. -> Preprocessing des acteurs et des realisateurs et ajout des fonction de test associées (Julian)<br />
* T2. -> Test le modèle D2V sur un analyseur de sentiment de tweets, beaucoup plus objectif que les gouts utilisateurs vis à vis des films (Coralie).<br />
* T2. -> Mise en place de modules de test unitaires dans MovieProject/tests/unit et suppression de fichiers inutiles dans MovieProject/tests (Elsa)<br />
* T4. -> Ajout de nouveaux fichiers de tests (json) et évaluation du classifieur de façon générique sur les fichiers json dans MovieProject/resources/evaluation (Elsa)<br />
* T4. -> Evaluation du classifieur avec la méthode Doc2Vec (Elsa)<br />
* T5. -> Finalisation de l'image Docker avec Python, Keras et Tensorflow (Edwin)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Début de la mise en place des différents modèles d'apprentissage en vue de leur comparaison : <br />
** Réseau neuronal avec Keras (Elsa)<br />
** Perceptron (Coralie)<br />
** Modification du prétraitement afin de pouvoir récupérer les matrices de chacune des variables caractérisant un film (Julian)<br />
* T5. -> Ajout de Spark à l'image Docker (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* T1. -> Poursuite de la création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Poursuite des tests de performance :<br />
** Test de l'influence de chaque variable des films sur le modèle du perceptron, afin de ne sélectionner que les variables pertinentes (Coralie)<br />
** Test du réseau neuronal (Elsa)<br />
** Mise en place d'un SVM pour concurrencer les performances des deux autres modèles (Julian)<br />
* T5. -> Test de l'image Docker (Edwin)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Visualisation des statistiques + explications sur la page d'accueil (Quentin)<br />
* T4. -> Finalisation perceptron + intégration dans evaluation (Coralie)<br />
* T4. -> Finalisation SVM + intégration dans evaluation (Julian)<br />
* T4. -> Mise en place du module evaluation et intégration des modifications de classifieur & preprocessing (Elsa)<br />
* T5. -> Documentation sur Spark (Edwin & Coralie)<br />
<br />
===État du scrumboard en fin du Sprint1===<br />
<br />
[[File:Sprint1-end-Scrumboard.png|1080px|middle]]<br />
<br />
== Sprint 2 ==<br />
<br />
===Tâches du Sprint2===<br />
<br />
*T1.2. Amélioration du front-end (mise en cache, etc.)<br />
*T2.2. Ajout de descripteurs (durée, budget, année de production, compagnie de production, appartenance à une sage) en vue d'améliorer notre modèle d'apprentissage.<br />
*T3.2 Amélioration du réseau neuronal (comparaison avec Perceptron simple, SVM, RN Convolutif)<br />
*T4. Mise en place de la suggestion de films (vue côté front-end et logique côté back-end)<br />
*T5. Distribution de l'apprentissage sur plusieurs machines (Docker - Spark - Mesos - Elephas) & Parallélisation requêtes<br />
*T6 Communication front/back, établissement des routes et mise en place du système d'authentification<br />
*T7. Analyse de sentiment sur les flux Twitter<br />
*T8. Mise en place de la base de données<br />
<br />
=== Semaine 4 : 13/02 - 19/02 ===<br />
<br />
====Lundi====<br />
<br />
* Réunion de fin de sprint1 et de début de sprint0 : discussion autour des avancées, difficultés, retards & établissement fonctionnalités à implémenter au cours du sprint2<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T2.2. -> Revue de la structure du code (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
<br />
====Mardi====<br />
<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T3.2 -> Amélioration du classifieur (Elsa/Quentin)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
*T5. -> Parallélisation des requêtes à l'API TMDB (Julian)<br />
<br />
====Mercredi====<br />
<br />
*T1.2 -> Finalisation du cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T1.2 -> Finalisation des statistiques cinématographique utilisateurs (Quentin)<br />
*T2.2. -> Ajout du descripteurs "budget" avec normalisation (Edwin)<br />
*T3.2 -> Mise en place de la fonction de comparaison des combinaisons de descripteurs de films pour faciliter le travail des DUT (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal LSTM (Coralie)<br />
*T4. -> Changement de la méthode de prédiction de film (Elsa)<br />
*T6.1 -> Communication front-back test (Elsa/Quentin)<br />
* SRS (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* Rendez-vous avec les DUT : aide sur l'installation du projet, clone du projet Github. <br />
* Préparation de la présentation (Elsa & Edwin)<br />
* Préparation démo (Quentin & Elsa)<br />
* Mise à jour Wiki, SRS, Scrumboard (Elsa & Edwin)<br />
* Aide des DUT (Edwin & Julian)<br />
* T3.2 -> Evaluation du modèle et comparaison avec SVM et Perceptron de manière graphique (extraire les données et construire des graphes - csv ou matplotlib) (Sébastien & Marceau)<br />
* T7. -> Prétraitement des Tweet(Coralie)<br />
* T5. -> Avancement sur le distribué (Julian)<br />
* T1.2 -> Page de login du front, fix problème de CSS sur les graphes (Quentin)<br />
* T3.2 -> Amélioration du classifieur, tests en changeant les layers, le batch-size, etc. (Quentin)<br />
<br />
====Vendredi====<br />
* Préparation du travail qu'Edwin pourra réaliser durant la semaine de vacances (Edwin travaillera en décalé avec le reste du groupe)<br />
* Début de la mise en place de la base de données (Edwin)<br />
<br />
=== Semaine 5 : 20/02 - 26/02 ===<br />
(Edwin a travaillé la semaine précédente, en décalé avec le reste du groupe)<br />
====Lundi====<br />
*T8. -> Installation des outils liés à la gestion de la base de données MySQL et début de la conception de l'API de communication avec cette base. (Edwin)<br />
====Mardi====<br />
*T8. -> Finalisation de l'API, début des tests et des corrections de bug. (Edwin)<br />
====Mercredi====<br />
*T8. -> Ajout de nouvelles fonctionnalités SQL à l'API et tests de l'API. Création d'un readme et d'un fichier d'exemple complet pour l'utilisation de l'API de MySQL. (Edwin)<br />
*T8. -> Amélioration de l'image Docker, correction de bugs de paths et de librairies manquantes. (Edwin)<br />
====Jeudi====<br />
*T8. -> Review générale du travail lié à la base de données. (Edwin)<br />
*T8. -> Mise en place de MySQL pour Docker. (Edwin)<br />
*Mise à jour du Scrumboard et du wiki-air. (Edwin)<br />
<br />
====Vendredi====<br />
*T8. -> Amélioration du Docker pour tenter de régler des problèmes de ports liés à MySQL (non terminé). (Edwin) <br />
*T8. -> Tests unitaires de fonctionnement de serveurs apaches. (Edwin)<br />
<br />
=== Semaine 5 : 27/02 - 28/02 ===<br />
<br />
====Lundi====<br />
<br />
* T1.2 -> Mise en place de la page de prédictions (Quentin)<br />
* Merge du classifieur sur la branche develop, avec la prédiction (Elsa)<br />
* T8. -> Revue de la BD et sécurisation (Julian) pui smerge sur develop<br />
* T7. -> Finalisation de l'analyse de sentiments (Coralie) pour merge sur develop<br />
* T3.2 -> Recherche sur une construction différente des matrices (basée sur la factorisation de matrices, cf Prix Netflix) (Quentin & Elsa)<br />
<br />
====Mardi====<br />
* Harmonisation des données merge sur le git (Sentiment analysis, evaluation du classifieur et prediction) (Elsa)<br />
* T6.2 -> Recherche et premiers tests pour l'authentification (Quentin pour le front et Julian pour le back)<br />
* T8. -> Creation d'une instance de BD Amazon RDS dans un VPC (Coralie)<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
== Sprint 3 ==<br />
=== Semaine 6 : 27/02 - 05/03 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
=== Semaine 7 : 06/03 - 12/03 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=Fiche_de_suivi_-_Recommandation_intelligente_de_films&diff=34012Fiche de suivi - Recommandation intelligente de films2017-02-28T10:48:27Z<p>Elsa.Navarro: /* Mardi */</p>
<hr />
<div>Voici la Fiche de suivi du projet de fin d'études DeepMovies 2016-2017<br />
<br />
[[Suggestion_intelligente_de_films_basée_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin (Responsable innovation)<br />
* Hattinguais Julian (Responsable qualité)<br />
* Navarro Elsa (Responsable communication, Médiatrice)<br />
* Dunand Quentin (Responsable des deadlines,Responsable du front-end)<br />
<br />
= Avancée du projet =<br />
Le scrumboard utilisé pour le projet est visible dans l'onglet Projet de l'organisation DeepLearningMovies que nous avons créé sur Github. Chaque tâche est réalisée par un ou plusieurs membre(s) de l'équipe et testée par un autre membre de l'équipe.<br />
<br />
== Sprint 0 ==<br />
<br />
===Sprint dédié aux travaux préparatoires du projet===<br />
* Debriefing autour du projet<br />
* Renseignements sur les technologies et principaux défis techniques<br />
* Maquette de tests sur la faisabilité du projet (recherche de solutions pour les principaux problèmes techniques afin de guider nos choix technologiques et choix de fonctionnalités) <br />
* Choix technologiques<br />
* Préparation des environnements<br />
* Établissement de la liste des exigences fonctionnelles et non fonctionnelles<br />
<br />
<br />
[[File:Sprint0-Semaine1.jpg|1400px|middle]]<br />
<br />
=== Semaine 1 : 23/01 - 29/01 ===<br />
* Mise en place du wiki (Edwin)<br />
* Recherche sur les technologies et les problèmes techniques (Tous)<br />
* Prise RDV avec Massih-Reza Amini pour renseignements (Coralie)<br />
* Mise en place d'un agenda pour le suivi du projet (Coralie)<br />
* Comment lier l'API au front-end ? AngularJS ou Polymer ? ... (Quentin)<br />
<br />
* Mise en place de l'architecture (Tous) avant de faire un prototype comme prévu.<br />
* Installation, compréhension et manipulation de Keras (Tous)<br />
* Recherche mise en place API-REST Python pour le back-end (Julian)<br />
* Mise en place du front-end - première requêtes - choix Angular pour communiquer avec une API-REST (Quentin)<br />
* Traitement de données simple en se basant juste sur le vote des utilisateurs de TMDb sur les films (Edwin, Coralie, Elsa)<br />
* Mise en place d'un prototype capable de récolter grâce à l'API de TMDB les informations de films ciblés. Puis construction d'un modèle de Deep Learning capable de prédire si une personne va aimer un film ou non en fonction de sa note. (Edwin, Coralie)<br />
* Recherche de la transformation de texte en valeurs numériques (String to Float) et plus généralement du prétraitement des données (Elsa, Coralie, Quentin) : découvertes de Word2Vec et de [http://nlp.stanford.edu/projects/glove/ GloVe].<br />
<br />
<br />
* Rendez-vous avec Massih-Reza Amini pour éclaircir le sujet, notamment au sujet du pré-traitement du texte. (Tous)<br />
* Premiers scripts Python pour le prétraitement des données : import depuis un script JSON (Julian) et transformation sous forme de vecteur moyen pour un film donné (Elsa), recherche d'une méthode plus approfondie pour traiter le Résumé (Coralie).<br />
* Réflexion sur les choix des différents layers de traitement des données et sur l'étape d'embedding des données (premier traitement) (Edwin).<br />
* Mise en place d'un système de notation fonctionnel qui permet d'enregistrer les données à partir du front (Quentin).<br />
<br />
== Sprint 1 ==<br />
<br />
===Tâches du Sprint1===<br />
* T1. Établissement des vues principales côté client (recherche et annotation de films)<br />
* T2. Mise en place du processus de pré-traitement des données (titre, mots clés, résumé, note, artiste, producteur)<br />
* T3. Mise en place du réseau neuronal (réseau neuronal simple)<br />
* T4. Mise en place de la structure de test du réseau neuronal (former les corpus de données, cross validation, test de précision)<br />
* T5. Mise en place de l'environnement système (Docker)<br />
<br />
=== Semaine 2 : 30/01 - 05/02 ===<br />
<br />
[[File:Sprint1-Semaine2.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Préparation du premier sprint :<br />
** Mise au point sur le travail réalisé la semaine passée et sur le travail à réaliser durant le sprint<br />
** Établissement d'une liste de fonctionnalités, avec une estimation de l'importance et du temps de réalisation de chaque tâche<br />
** Sélection des fonctionnalités à réaliser au cours du Sprint, remplissage du Scrumboard<br />
* Mise au point sur l'arborescence du git / architecture du projet<br />
* Installation d'une version GPU pour Keras et Tensor-Flow sur les machines équipées d'un bon GPU<br />
<br />
====Mardi====<br />
<br />
* Réunion avec Didier Donsez : <br />
** Technologies : storm, spark, flint (temps réel) pour Twitter<br />
** Distribution : préparer un déploiement sur GRID5000, contacter Olivier Richard et préparer un container Docker<br />
** Utiliser Github pour héberger le site web<br />
<br />
* T1. -> Vues "recherche de films", "annotation de film" et "consultation des films annotés" (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** prétraitement des mots via Glove (Elsa, Edwin, Julian)<br />
** récupération des données (Julian)<br />
** mise en place de l'embedding (Edwin)<br />
** mise en place d'une librairie pour le pré-traitement des données envoyées aux classifieur (Julian)<br />
** Import des modules (Julian)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Chargement des images de films côté client (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" + Ajout "genre" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** extraction des données JSON via l'API (Elsa)<br />
** prétraitement des genres (Julian)<br />
** prétraitement général (mise en forme de la matrice de données) (Edwin)<br />
** revue de code (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur sous Keras - Elephas ? (Coralie)<br />
<br />
====Jeudi====<br />
<br />
* Cours de MPI - travail sur la communication au sein d'un groupe<br />
* T1. -> Pagination et chargement d'images (Quentin)<br />
* T3. -> Création d'une première version du classifieur (Elsa, Edwin)<br />
* T4. -> Validation croisée pour pouvoir tester le classifieur correctement (Edwin & Elsa)<br />
* T5. -> Installation version GPU sur PC (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur Keras - Elephas (Coralie)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Déploiement sur github.io (Quentin)<br />
* T3. -> Insertion de Doc2Vec dans le classifieur (Julian)<br />
* T3. -> Revue du classifieur pour obtenir une meilleure précision (Elsa & Edwin)<br />
* T4. -> Mise en place d'un système de test du classifieur automatisé avec k validations croisées pour les films enregistrés dans un fichier JSON (Elsa)<br />
* T4. -> Annotation de films pour constituer la base d'apprentissage/test (Tous)<br />
* T5. -> Auto-formation sur Docker (Coralie, Edwin)<br />
<br />
=== Semaine 3 : 06/02 - 12/02 ===<br />
<br />
[[File:Sprint1-Semaine3.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Cours de MPI - gestion de projet<br />
* T1. -> Ajout d'un boite de dialogue permettant de visualiser les infos d'un film (Quentin)<br />
* T2. -> Fix de bugs dans preprocessing (Julian)<br />
* T4. -> Recherche sur la mise en place de tests avec Python (Elsa)<br />
* T5. -> Mise en place de l'image Docker avec Python, Keras et Tensorflow en partant d'un Ubuntu 14 (Edwin)<br />
* T5. -> Mise en place de l'image Docker avec Spark en partant d'un Ubuntu 14 (Coralie)<br />
<br />
====Mardi====<br />
<br />
* Rendez-vous avec Mr. Amini<br />
* T1. -> Amélioration de la boîte de dialogue pour les infos (Quentin)<br />
* T2. -> Preprocessing des acteurs et des realisateurs et ajout des fonction de test associées (Julian)<br />
* T2. -> Test le modèle D2V sur un analyseur de sentiment de tweets, beaucoup plus objectif que les gouts utilisateurs vis à vis des films (Coralie).<br />
* T2. -> Mise en place de modules de test unitaires dans MovieProject/tests/unit et suppression de fichiers inutiles dans MovieProject/tests (Elsa)<br />
* T4. -> Ajout de nouveaux fichiers de tests (json) et évaluation du classifieur de façon générique sur les fichiers json dans MovieProject/resources/evaluation (Elsa)<br />
* T4. -> Evaluation du classifieur avec la méthode Doc2Vec (Elsa)<br />
* T5. -> Finalisation de l'image Docker avec Python, Keras et Tensorflow (Edwin)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Début de la mise en place des différents modèles d'apprentissage en vue de leur comparaison : <br />
** Réseau neuronal avec Keras (Elsa)<br />
** Perceptron (Coralie)<br />
** Modification du prétraitement afin de pouvoir récupérer les matrices de chacune des variables caractérisant un film (Julian)<br />
* T5. -> Ajout de Spark à l'image Docker (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* T1. -> Poursuite de la création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Poursuite des tests de performance :<br />
** Test de l'influence de chaque variable des films sur le modèle du perceptron, afin de ne sélectionner que les variables pertinentes (Coralie)<br />
** Test du réseau neuronal (Elsa)<br />
** Mise en place d'un SVM pour concurrencer les performances des deux autres modèles (Julian)<br />
* T5. -> Test de l'image Docker (Edwin)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Visualisation des statistiques + explications sur la page d'accueil (Quentin)<br />
* T4. -> Finalisation perceptron + intégration dans evaluation (Coralie)<br />
* T4. -> Finalisation SVM + intégration dans evaluation (Julian)<br />
* T4. -> Mise en place du module evaluation et intégration des modifications de classifieur & preprocessing (Elsa)<br />
* T5. -> Documentation sur Spark (Edwin & Coralie)<br />
<br />
===État du scrumboard en fin du Sprint1===<br />
<br />
[[File:Sprint1-end-Scrumboard.png|1080px|middle]]<br />
<br />
== Sprint 2 ==<br />
<br />
===Tâches du Sprint2===<br />
<br />
*T1.2. Amélioration du front-end (mise en cache, etc.)<br />
*T2.2. Ajout de descripteurs (durée, budget, année de production, compagnie de production, appartenance à une sage) en vue d'améliorer notre modèle d'apprentissage.<br />
*T3.2 Amélioration du réseau neuronal (comparaison avec Perceptron simple, SVM, RN Convolutif)<br />
*T4. Mise en place de la suggestion de films (vue côté front-end et logique côté back-end)<br />
*T5. Distribution de l'apprentissage sur plusieurs machines (Docker - Spark - Mesos - Elephas) & Parallélisation requêtes<br />
*T6.1 Communication front/back, établissement des routes<br />
*T6.2 Mise en place du système d'authentification<br />
*T7. Analyse de sentiment sur les flux Twitter<br />
*T8. Mise en place de la base de données<br />
<br />
=== Semaine 4 : 13/02 - 19/02 ===<br />
<br />
====Lundi====<br />
<br />
* Réunion de fin de sprint1 et de début de sprint0 : discussion autour des avancées, difficultés, retards & établissement fonctionnalités à implémenter au cours du sprint2<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T2.2. -> Revue de la structure du code (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
<br />
====Mardi====<br />
<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T3.2 -> Amélioration du classifieur (Elsa/Quentin)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
*T5. -> Parallélisation des requêtes à l'API TMDB (Julian)<br />
<br />
====Mercredi====<br />
<br />
*T1.2 -> Finalisation du cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T1.2 -> Finalisation des statistiques cinématographique utilisateurs (Quentin)<br />
*T2.2. -> Ajout du descripteurs "budget" avec normalisation (Edwin)<br />
*T3.2 -> Mise en place de la fonction de comparaison des combinaisons de descripteurs de films pour faciliter le travail des DUT (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal LSTM (Coralie)<br />
*T4. -> Changement de la méthode de prédiction de film (Elsa)<br />
*T6.1 -> Communication front-back test (Elsa/Quentin)<br />
* SRS (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* Rendez-vous avec les DUT : aide sur l'installation du projet, clone du projet Github. <br />
* Préparation de la présentation (Elsa & Edwin)<br />
* Préparation démo (Quentin & Elsa)<br />
* Mise à jour Wiki, SRS, Scrumboard (Elsa & Edwin)<br />
* Aide des DUT (Edwin & Julian)<br />
* T3.2 -> Evaluation du modèle et comparaison avec SVM et Perceptron de manière graphique (extraire les données et construire des graphes - csv ou matplotlib) (Sébastien & Marceau)<br />
* T7. -> Prétraitement des Tweet(Coralie)<br />
* T5. -> Avancement sur le distribué (Julian)<br />
* T1.2 -> Page de login du front, fix problème de CSS sur les graphes (Quentin)<br />
* T3.2 -> Amélioration du classifieur, tests en changeant les layers, le batch-size, etc. (Quentin)<br />
<br />
====Vendredi====<br />
* Préparation du travail qu'Edwin pourra réaliser durant la semaine de vacances (Edwin travaillera en décalé avec le reste du groupe)<br />
* Début de la mise en place de la base de données (Edwin)<br />
<br />
=== Semaine 5 : 20/02 - 26/02 ===<br />
(Edwin a travaillé la semaine précédente, en décalé avec le reste du groupe)<br />
====Lundi====<br />
*T8. -> Installation des outils liés à la gestion de la base de données MySQL et début de la conception de l'API de communication avec cette base. (Edwin)<br />
====Mardi====<br />
*T8. -> Finalisation de l'API, début des tests et des corrections de bug. (Edwin)<br />
====Mercredi====<br />
*T8. -> Ajout de nouvelles fonctionnalités SQL à l'API et tests de l'API. Création d'un readme et d'un fichier d'exemple complet pour l'utilisation de l'API de MySQL. (Edwin)<br />
*T8. -> Amélioration de l'image Docker, correction de bugs de paths et de librairies manquantes. (Edwin)<br />
====Jeudi====<br />
*T8. -> Review générale du travail lié à la base de données. (Edwin)<br />
*T8. -> Mise en place de MySQL pour Docker. (Edwin)<br />
*Mise à jour du Scrumboard et du wiki-air. (Edwin)<br />
<br />
====Vendredi====<br />
*T8. -> Amélioration du Docker pour tenter de régler des problèmes de ports liés à MySQL (non terminé). (Edwin) <br />
*T8. -> Tests unitaires de fonctionnement de serveurs apaches. (Edwin)<br />
<br />
=== Semaine 5 : 27/02 - 28/02 ===<br />
<br />
====Lundi====<br />
<br />
* T1.2 -> Mise en place de la page de prédictions (Quentin)<br />
* Merge du classifieur sur la branche develop, avec la prédiction (Elsa)<br />
* T8. -> Revue de la BD et sécurisation (Julian) pui smerge sur develop<br />
* T7. -> Finalisation de l'analyse de sentiments (Coralie) pour merge sur develop<br />
* T3.2 -> Recherche sur une construction différente des matrices (basée sur la factorisation de matrices, cf Prix Netflix) (Quentin & Elsa)<br />
<br />
====Mardi====<br />
* Harmonisation des données merge sur le git (Sentiment analysis, evaluation du classifieur et prediction) (Elsa)<br />
* T6.2 -> Recherche et premiers tests pour l'authentification (Quentin pour le front et Julian pour le back)<br />
* T8. -> Creation d'une instance de BD Amazon RDS dans un VPC (Coralie)<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
== Sprint 3 ==<br />
=== Semaine 6 : 27/02 - 05/03 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
=== Semaine 7 : 06/03 - 12/03 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=Fiche_de_suivi_-_Recommandation_intelligente_de_films&diff=34011Fiche de suivi - Recommandation intelligente de films2017-02-28T10:45:23Z<p>Elsa.Navarro: /* Semaine 5 : 27/02 - 28/02 */</p>
<hr />
<div>Voici la Fiche de suivi du projet de fin d'études DeepMovies 2016-2017<br />
<br />
[[Suggestion_intelligente_de_films_basée_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin (Responsable innovation)<br />
* Hattinguais Julian (Responsable qualité)<br />
* Navarro Elsa (Responsable communication, Médiatrice)<br />
* Dunand Quentin (Responsable des deadlines,Responsable du front-end)<br />
<br />
= Avancée du projet =<br />
Le scrumboard utilisé pour le projet est visible dans l'onglet Projet de l'organisation DeepLearningMovies que nous avons créé sur Github. Chaque tâche est réalisée par un ou plusieurs membre(s) de l'équipe et testée par un autre membre de l'équipe.<br />
<br />
== Sprint 0 ==<br />
<br />
===Sprint dédié aux travaux préparatoires du projet===<br />
* Debriefing autour du projet<br />
* Renseignements sur les technologies et principaux défis techniques<br />
* Maquette de tests sur la faisabilité du projet (recherche de solutions pour les principaux problèmes techniques afin de guider nos choix technologiques et choix de fonctionnalités) <br />
* Choix technologiques<br />
* Préparation des environnements<br />
* Établissement de la liste des exigences fonctionnelles et non fonctionnelles<br />
<br />
<br />
[[File:Sprint0-Semaine1.jpg|1400px|middle]]<br />
<br />
=== Semaine 1 : 23/01 - 29/01 ===<br />
* Mise en place du wiki (Edwin)<br />
* Recherche sur les technologies et les problèmes techniques (Tous)<br />
* Prise RDV avec Massih-Reza Amini pour renseignements (Coralie)<br />
* Mise en place d'un agenda pour le suivi du projet (Coralie)<br />
* Comment lier l'API au front-end ? AngularJS ou Polymer ? ... (Quentin)<br />
<br />
* Mise en place de l'architecture (Tous) avant de faire un prototype comme prévu.<br />
* Installation, compréhension et manipulation de Keras (Tous)<br />
* Recherche mise en place API-REST Python pour le back-end (Julian)<br />
* Mise en place du front-end - première requêtes - choix Angular pour communiquer avec une API-REST (Quentin)<br />
* Traitement de données simple en se basant juste sur le vote des utilisateurs de TMDb sur les films (Edwin, Coralie, Elsa)<br />
* Mise en place d'un prototype capable de récolter grâce à l'API de TMDB les informations de films ciblés. Puis construction d'un modèle de Deep Learning capable de prédire si une personne va aimer un film ou non en fonction de sa note. (Edwin, Coralie)<br />
* Recherche de la transformation de texte en valeurs numériques (String to Float) et plus généralement du prétraitement des données (Elsa, Coralie, Quentin) : découvertes de Word2Vec et de [http://nlp.stanford.edu/projects/glove/ GloVe].<br />
<br />
<br />
* Rendez-vous avec Massih-Reza Amini pour éclaircir le sujet, notamment au sujet du pré-traitement du texte. (Tous)<br />
* Premiers scripts Python pour le prétraitement des données : import depuis un script JSON (Julian) et transformation sous forme de vecteur moyen pour un film donné (Elsa), recherche d'une méthode plus approfondie pour traiter le Résumé (Coralie).<br />
* Réflexion sur les choix des différents layers de traitement des données et sur l'étape d'embedding des données (premier traitement) (Edwin).<br />
* Mise en place d'un système de notation fonctionnel qui permet d'enregistrer les données à partir du front (Quentin).<br />
<br />
== Sprint 1 ==<br />
<br />
===Tâches du Sprint1===<br />
* T1. Établissement des vues principales côté client (recherche et annotation de films)<br />
* T2. Mise en place du processus de pré-traitement des données (titre, mots clés, résumé, note, artiste, producteur)<br />
* T3. Mise en place du réseau neuronal (réseau neuronal simple)<br />
* T4. Mise en place de la structure de test du réseau neuronal (former les corpus de données, cross validation, test de précision)<br />
* T5. Mise en place de l'environnement système (Docker)<br />
<br />
=== Semaine 2 : 30/01 - 05/02 ===<br />
<br />
[[File:Sprint1-Semaine2.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Préparation du premier sprint :<br />
** Mise au point sur le travail réalisé la semaine passée et sur le travail à réaliser durant le sprint<br />
** Établissement d'une liste de fonctionnalités, avec une estimation de l'importance et du temps de réalisation de chaque tâche<br />
** Sélection des fonctionnalités à réaliser au cours du Sprint, remplissage du Scrumboard<br />
* Mise au point sur l'arborescence du git / architecture du projet<br />
* Installation d'une version GPU pour Keras et Tensor-Flow sur les machines équipées d'un bon GPU<br />
<br />
====Mardi====<br />
<br />
* Réunion avec Didier Donsez : <br />
** Technologies : storm, spark, flint (temps réel) pour Twitter<br />
** Distribution : préparer un déploiement sur GRID5000, contacter Olivier Richard et préparer un container Docker<br />
** Utiliser Github pour héberger le site web<br />
<br />
* T1. -> Vues "recherche de films", "annotation de film" et "consultation des films annotés" (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** prétraitement des mots via Glove (Elsa, Edwin, Julian)<br />
** récupération des données (Julian)<br />
** mise en place de l'embedding (Edwin)<br />
** mise en place d'une librairie pour le pré-traitement des données envoyées aux classifieur (Julian)<br />
** Import des modules (Julian)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Chargement des images de films côté client (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" + Ajout "genre" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** extraction des données JSON via l'API (Elsa)<br />
** prétraitement des genres (Julian)<br />
** prétraitement général (mise en forme de la matrice de données) (Edwin)<br />
** revue de code (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur sous Keras - Elephas ? (Coralie)<br />
<br />
====Jeudi====<br />
<br />
* Cours de MPI - travail sur la communication au sein d'un groupe<br />
* T1. -> Pagination et chargement d'images (Quentin)<br />
* T3. -> Création d'une première version du classifieur (Elsa, Edwin)<br />
* T4. -> Validation croisée pour pouvoir tester le classifieur correctement (Edwin & Elsa)<br />
* T5. -> Installation version GPU sur PC (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur Keras - Elephas (Coralie)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Déploiement sur github.io (Quentin)<br />
* T3. -> Insertion de Doc2Vec dans le classifieur (Julian)<br />
* T3. -> Revue du classifieur pour obtenir une meilleure précision (Elsa & Edwin)<br />
* T4. -> Mise en place d'un système de test du classifieur automatisé avec k validations croisées pour les films enregistrés dans un fichier JSON (Elsa)<br />
* T4. -> Annotation de films pour constituer la base d'apprentissage/test (Tous)<br />
* T5. -> Auto-formation sur Docker (Coralie, Edwin)<br />
<br />
=== Semaine 3 : 06/02 - 12/02 ===<br />
<br />
[[File:Sprint1-Semaine3.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Cours de MPI - gestion de projet<br />
* T1. -> Ajout d'un boite de dialogue permettant de visualiser les infos d'un film (Quentin)<br />
* T2. -> Fix de bugs dans preprocessing (Julian)<br />
* T4. -> Recherche sur la mise en place de tests avec Python (Elsa)<br />
* T5. -> Mise en place de l'image Docker avec Python, Keras et Tensorflow en partant d'un Ubuntu 14 (Edwin)<br />
* T5. -> Mise en place de l'image Docker avec Spark en partant d'un Ubuntu 14 (Coralie)<br />
<br />
====Mardi====<br />
<br />
* Rendez-vous avec Mr. Amini<br />
* T1. -> Amélioration de la boîte de dialogue pour les infos (Quentin)<br />
* T2. -> Preprocessing des acteurs et des realisateurs et ajout des fonction de test associées (Julian)<br />
* T2. -> Test le modèle D2V sur un analyseur de sentiment de tweets, beaucoup plus objectif que les gouts utilisateurs vis à vis des films (Coralie).<br />
* T2. -> Mise en place de modules de test unitaires dans MovieProject/tests/unit et suppression de fichiers inutiles dans MovieProject/tests (Elsa)<br />
* T4. -> Ajout de nouveaux fichiers de tests (json) et évaluation du classifieur de façon générique sur les fichiers json dans MovieProject/resources/evaluation (Elsa)<br />
* T4. -> Evaluation du classifieur avec la méthode Doc2Vec (Elsa)<br />
* T5. -> Finalisation de l'image Docker avec Python, Keras et Tensorflow (Edwin)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Début de la mise en place des différents modèles d'apprentissage en vue de leur comparaison : <br />
** Réseau neuronal avec Keras (Elsa)<br />
** Perceptron (Coralie)<br />
** Modification du prétraitement afin de pouvoir récupérer les matrices de chacune des variables caractérisant un film (Julian)<br />
* T5. -> Ajout de Spark à l'image Docker (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* T1. -> Poursuite de la création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Poursuite des tests de performance :<br />
** Test de l'influence de chaque variable des films sur le modèle du perceptron, afin de ne sélectionner que les variables pertinentes (Coralie)<br />
** Test du réseau neuronal (Elsa)<br />
** Mise en place d'un SVM pour concurrencer les performances des deux autres modèles (Julian)<br />
* T5. -> Test de l'image Docker (Edwin)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Visualisation des statistiques + explications sur la page d'accueil (Quentin)<br />
* T4. -> Finalisation perceptron + intégration dans evaluation (Coralie)<br />
* T4. -> Finalisation SVM + intégration dans evaluation (Julian)<br />
* T4. -> Mise en place du module evaluation et intégration des modifications de classifieur & preprocessing (Elsa)<br />
* T5. -> Documentation sur Spark (Edwin & Coralie)<br />
<br />
===État du scrumboard en fin du Sprint1===<br />
<br />
[[File:Sprint1-end-Scrumboard.png|1080px|middle]]<br />
<br />
== Sprint 2 ==<br />
<br />
===Tâches du Sprint2===<br />
<br />
*T1.2. Amélioration du front-end (mise en cache, etc.)<br />
*T2.2. Ajout de descripteurs (durée, budget, année de production, compagnie de production, appartenance à une sage) en vue d'améliorer notre modèle d'apprentissage.<br />
*T3.2 Amélioration du réseau neuronal (comparaison avec Perceptron simple, SVM, RN Convolutif)<br />
*T4. Mise en place de la suggestion de films (vue côté front-end et logique côté back-end)<br />
*T5. Distribution de l'apprentissage sur plusieurs machines (Docker - Spark - Mesos - Elephas) & Parallélisation requêtes<br />
*T6.1 Communication front/back, établissement des routes<br />
*T6.2 Mise en place du système d'authentification<br />
*T7. Analyse de sentiment sur les flux Twitter<br />
*T8. Mise en place de la base de données<br />
<br />
=== Semaine 4 : 13/02 - 19/02 ===<br />
<br />
====Lundi====<br />
<br />
* Réunion de fin de sprint1 et de début de sprint0 : discussion autour des avancées, difficultés, retards & établissement fonctionnalités à implémenter au cours du sprint2<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T2.2. -> Revue de la structure du code (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
<br />
====Mardi====<br />
<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T3.2 -> Amélioration du classifieur (Elsa/Quentin)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
*T5. -> Parallélisation des requêtes à l'API TMDB (Julian)<br />
<br />
====Mercredi====<br />
<br />
*T1.2 -> Finalisation du cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T1.2 -> Finalisation des statistiques cinématographique utilisateurs (Quentin)<br />
*T2.2. -> Ajout du descripteurs "budget" avec normalisation (Edwin)<br />
*T3.2 -> Mise en place de la fonction de comparaison des combinaisons de descripteurs de films pour faciliter le travail des DUT (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal LSTM (Coralie)<br />
*T4. -> Changement de la méthode de prédiction de film (Elsa)<br />
*T6.1 -> Communication front-back test (Elsa/Quentin)<br />
* SRS (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* Rendez-vous avec les DUT : aide sur l'installation du projet, clone du projet Github. <br />
* Préparation de la présentation (Elsa & Edwin)<br />
* Préparation démo (Quentin & Elsa)<br />
* Mise à jour Wiki, SRS, Scrumboard (Elsa & Edwin)<br />
* Aide des DUT (Edwin & Julian)<br />
* T3.2 -> Evaluation du modèle et comparaison avec SVM et Perceptron de manière graphique (extraire les données et construire des graphes - csv ou matplotlib) (Sébastien & Marceau)<br />
* T7. -> Prétraitement des Tweet(Coralie)<br />
* T5. -> Avancement sur le distribué (Julian)<br />
* T1.2 -> Page de login du front, fix problème de CSS sur les graphes (Quentin)<br />
* T3.2 -> Amélioration du classifieur, tests en changeant les layers, le batch-size, etc. (Quentin)<br />
<br />
====Vendredi====<br />
* Préparation du travail qu'Edwin pourra réaliser durant la semaine de vacances (Edwin travaillera en décalé avec le reste du groupe)<br />
* Début de la mise en place de la base de données (Edwin)<br />
<br />
=== Semaine 5 : 20/02 - 26/02 ===<br />
(Edwin a travaillé la semaine précédente, en décalé avec le reste du groupe)<br />
====Lundi====<br />
*T8. -> Installation des outils liés à la gestion de la base de données MySQL et début de la conception de l'API de communication avec cette base. (Edwin)<br />
====Mardi====<br />
*T8. -> Finalisation de l'API, début des tests et des corrections de bug. (Edwin)<br />
====Mercredi====<br />
*T8. -> Ajout de nouvelles fonctionnalités SQL à l'API et tests de l'API. Création d'un readme et d'un fichier d'exemple complet pour l'utilisation de l'API de MySQL. (Edwin)<br />
*T8. -> Amélioration de l'image Docker, correction de bugs de paths et de librairies manquantes. (Edwin)<br />
====Jeudi====<br />
*T8. -> Review générale du travail lié à la base de données. (Edwin)<br />
*T8. -> Mise en place de MySQL pour Docker. (Edwin)<br />
*Mise à jour du Scrumboard et du wiki-air. (Edwin)<br />
<br />
====Vendredi====<br />
*T8. -> Amélioration du Docker pour tenter de régler des problèmes de ports liés à MySQL (non terminé). (Edwin) <br />
*T8. -> Tests unitaires de fonctionnement de serveurs apaches. (Edwin)<br />
<br />
=== Semaine 5 : 27/02 - 28/02 ===<br />
<br />
====Lundi====<br />
<br />
* T1.2 -> Mise en place de la page de prédictions (Quentin)<br />
* Merge du classifieur sur la branche develop, avec la prédiction (Elsa)<br />
* T8. -> Revue de la BD et sécurisation (Julian) pui smerge sur develop<br />
* T7. -> Finalisation de l'analyse de sentiments (Coralie) pour merge sur develop<br />
* T3.2 -> Recherche sur une construction différente des matrices (basée sur la factorisation de matrices, cf Prix Netflix) (Quentin & Elsa)<br />
<br />
====Mardi====<br />
* Harmonisation des données merge sur le git (Sentiment analysis, evaluation du classifieur et prediction) (Elsa)<br />
* T6.2 -> Recherche et premiers tests pour l'authentification (Quentin pour le front et Julian pour le back)<br />
* T8. ->Creation d'une instance de BD Amazon RDS dans un VPC (Coralie)<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
== Sprint 3 ==<br />
=== Semaine 6 : 27/02 - 05/03 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
=== Semaine 7 : 06/03 - 12/03 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=Fiche_de_suivi_-_Recommandation_intelligente_de_films&diff=34010Fiche de suivi - Recommandation intelligente de films2017-02-28T10:42:04Z<p>Elsa.Navarro: /* Mercredi */</p>
<hr />
<div>Voici la Fiche de suivi du projet de fin d'études DeepMovies 2016-2017<br />
<br />
[[Suggestion_intelligente_de_films_basée_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin (Responsable innovation)<br />
* Hattinguais Julian (Responsable qualité)<br />
* Navarro Elsa (Responsable communication, Médiatrice)<br />
* Dunand Quentin (Responsable des deadlines,Responsable du front-end)<br />
<br />
= Avancée du projet =<br />
Le scrumboard utilisé pour le projet est visible dans l'onglet Projet de l'organisation DeepLearningMovies que nous avons créé sur Github. Chaque tâche est réalisée par un ou plusieurs membre(s) de l'équipe et testée par un autre membre de l'équipe.<br />
<br />
== Sprint 0 ==<br />
<br />
===Sprint dédié aux travaux préparatoires du projet===<br />
* Debriefing autour du projet<br />
* Renseignements sur les technologies et principaux défis techniques<br />
* Maquette de tests sur la faisabilité du projet (recherche de solutions pour les principaux problèmes techniques afin de guider nos choix technologiques et choix de fonctionnalités) <br />
* Choix technologiques<br />
* Préparation des environnements<br />
* Établissement de la liste des exigences fonctionnelles et non fonctionnelles<br />
<br />
<br />
[[File:Sprint0-Semaine1.jpg|1400px|middle]]<br />
<br />
=== Semaine 1 : 23/01 - 29/01 ===<br />
* Mise en place du wiki (Edwin)<br />
* Recherche sur les technologies et les problèmes techniques (Tous)<br />
* Prise RDV avec Massih-Reza Amini pour renseignements (Coralie)<br />
* Mise en place d'un agenda pour le suivi du projet (Coralie)<br />
* Comment lier l'API au front-end ? AngularJS ou Polymer ? ... (Quentin)<br />
<br />
* Mise en place de l'architecture (Tous) avant de faire un prototype comme prévu.<br />
* Installation, compréhension et manipulation de Keras (Tous)<br />
* Recherche mise en place API-REST Python pour le back-end (Julian)<br />
* Mise en place du front-end - première requêtes - choix Angular pour communiquer avec une API-REST (Quentin)<br />
* Traitement de données simple en se basant juste sur le vote des utilisateurs de TMDb sur les films (Edwin, Coralie, Elsa)<br />
* Mise en place d'un prototype capable de récolter grâce à l'API de TMDB les informations de films ciblés. Puis construction d'un modèle de Deep Learning capable de prédire si une personne va aimer un film ou non en fonction de sa note. (Edwin, Coralie)<br />
* Recherche de la transformation de texte en valeurs numériques (String to Float) et plus généralement du prétraitement des données (Elsa, Coralie, Quentin) : découvertes de Word2Vec et de [http://nlp.stanford.edu/projects/glove/ GloVe].<br />
<br />
<br />
* Rendez-vous avec Massih-Reza Amini pour éclaircir le sujet, notamment au sujet du pré-traitement du texte. (Tous)<br />
* Premiers scripts Python pour le prétraitement des données : import depuis un script JSON (Julian) et transformation sous forme de vecteur moyen pour un film donné (Elsa), recherche d'une méthode plus approfondie pour traiter le Résumé (Coralie).<br />
* Réflexion sur les choix des différents layers de traitement des données et sur l'étape d'embedding des données (premier traitement) (Edwin).<br />
* Mise en place d'un système de notation fonctionnel qui permet d'enregistrer les données à partir du front (Quentin).<br />
<br />
== Sprint 1 ==<br />
<br />
===Tâches du Sprint1===<br />
* T1. Établissement des vues principales côté client (recherche et annotation de films)<br />
* T2. Mise en place du processus de pré-traitement des données (titre, mots clés, résumé, note, artiste, producteur)<br />
* T3. Mise en place du réseau neuronal (réseau neuronal simple)<br />
* T4. Mise en place de la structure de test du réseau neuronal (former les corpus de données, cross validation, test de précision)<br />
* T5. Mise en place de l'environnement système (Docker)<br />
<br />
=== Semaine 2 : 30/01 - 05/02 ===<br />
<br />
[[File:Sprint1-Semaine2.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Préparation du premier sprint :<br />
** Mise au point sur le travail réalisé la semaine passée et sur le travail à réaliser durant le sprint<br />
** Établissement d'une liste de fonctionnalités, avec une estimation de l'importance et du temps de réalisation de chaque tâche<br />
** Sélection des fonctionnalités à réaliser au cours du Sprint, remplissage du Scrumboard<br />
* Mise au point sur l'arborescence du git / architecture du projet<br />
* Installation d'une version GPU pour Keras et Tensor-Flow sur les machines équipées d'un bon GPU<br />
<br />
====Mardi====<br />
<br />
* Réunion avec Didier Donsez : <br />
** Technologies : storm, spark, flint (temps réel) pour Twitter<br />
** Distribution : préparer un déploiement sur GRID5000, contacter Olivier Richard et préparer un container Docker<br />
** Utiliser Github pour héberger le site web<br />
<br />
* T1. -> Vues "recherche de films", "annotation de film" et "consultation des films annotés" (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** prétraitement des mots via Glove (Elsa, Edwin, Julian)<br />
** récupération des données (Julian)<br />
** mise en place de l'embedding (Edwin)<br />
** mise en place d'une librairie pour le pré-traitement des données envoyées aux classifieur (Julian)<br />
** Import des modules (Julian)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Chargement des images de films côté client (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" + Ajout "genre" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** extraction des données JSON via l'API (Elsa)<br />
** prétraitement des genres (Julian)<br />
** prétraitement général (mise en forme de la matrice de données) (Edwin)<br />
** revue de code (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur sous Keras - Elephas ? (Coralie)<br />
<br />
====Jeudi====<br />
<br />
* Cours de MPI - travail sur la communication au sein d'un groupe<br />
* T1. -> Pagination et chargement d'images (Quentin)<br />
* T3. -> Création d'une première version du classifieur (Elsa, Edwin)<br />
* T4. -> Validation croisée pour pouvoir tester le classifieur correctement (Edwin & Elsa)<br />
* T5. -> Installation version GPU sur PC (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur Keras - Elephas (Coralie)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Déploiement sur github.io (Quentin)<br />
* T3. -> Insertion de Doc2Vec dans le classifieur (Julian)<br />
* T3. -> Revue du classifieur pour obtenir une meilleure précision (Elsa & Edwin)<br />
* T4. -> Mise en place d'un système de test du classifieur automatisé avec k validations croisées pour les films enregistrés dans un fichier JSON (Elsa)<br />
* T4. -> Annotation de films pour constituer la base d'apprentissage/test (Tous)<br />
* T5. -> Auto-formation sur Docker (Coralie, Edwin)<br />
<br />
=== Semaine 3 : 06/02 - 12/02 ===<br />
<br />
[[File:Sprint1-Semaine3.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Cours de MPI - gestion de projet<br />
* T1. -> Ajout d'un boite de dialogue permettant de visualiser les infos d'un film (Quentin)<br />
* T2. -> Fix de bugs dans preprocessing (Julian)<br />
* T4. -> Recherche sur la mise en place de tests avec Python (Elsa)<br />
* T5. -> Mise en place de l'image Docker avec Python, Keras et Tensorflow en partant d'un Ubuntu 14 (Edwin)<br />
* T5. -> Mise en place de l'image Docker avec Spark en partant d'un Ubuntu 14 (Coralie)<br />
<br />
====Mardi====<br />
<br />
* Rendez-vous avec Mr. Amini<br />
* T1. -> Amélioration de la boîte de dialogue pour les infos (Quentin)<br />
* T2. -> Preprocessing des acteurs et des realisateurs et ajout des fonction de test associées (Julian)<br />
* T2. -> Test le modèle D2V sur un analyseur de sentiment de tweets, beaucoup plus objectif que les gouts utilisateurs vis à vis des films (Coralie).<br />
* T2. -> Mise en place de modules de test unitaires dans MovieProject/tests/unit et suppression de fichiers inutiles dans MovieProject/tests (Elsa)<br />
* T4. -> Ajout de nouveaux fichiers de tests (json) et évaluation du classifieur de façon générique sur les fichiers json dans MovieProject/resources/evaluation (Elsa)<br />
* T4. -> Evaluation du classifieur avec la méthode Doc2Vec (Elsa)<br />
* T5. -> Finalisation de l'image Docker avec Python, Keras et Tensorflow (Edwin)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Début de la mise en place des différents modèles d'apprentissage en vue de leur comparaison : <br />
** Réseau neuronal avec Keras (Elsa)<br />
** Perceptron (Coralie)<br />
** Modification du prétraitement afin de pouvoir récupérer les matrices de chacune des variables caractérisant un film (Julian)<br />
* T5. -> Ajout de Spark à l'image Docker (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* T1. -> Poursuite de la création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Poursuite des tests de performance :<br />
** Test de l'influence de chaque variable des films sur le modèle du perceptron, afin de ne sélectionner que les variables pertinentes (Coralie)<br />
** Test du réseau neuronal (Elsa)<br />
** Mise en place d'un SVM pour concurrencer les performances des deux autres modèles (Julian)<br />
* T5. -> Test de l'image Docker (Edwin)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Visualisation des statistiques + explications sur la page d'accueil (Quentin)<br />
* T4. -> Finalisation perceptron + intégration dans evaluation (Coralie)<br />
* T4. -> Finalisation SVM + intégration dans evaluation (Julian)<br />
* T4. -> Mise en place du module evaluation et intégration des modifications de classifieur & preprocessing (Elsa)<br />
* T5. -> Documentation sur Spark (Edwin & Coralie)<br />
<br />
===État du scrumboard en fin du Sprint1===<br />
<br />
[[File:Sprint1-end-Scrumboard.png|1080px|middle]]<br />
<br />
== Sprint 2 ==<br />
<br />
===Tâches du Sprint2===<br />
<br />
*T1.2. Amélioration du front-end (mise en cache, etc.)<br />
*T2.2. Ajout de descripteurs (durée, budget, année de production, compagnie de production, appartenance à une sage) en vue d'améliorer notre modèle d'apprentissage.<br />
*T3.2 Amélioration du réseau neuronal (comparaison avec Perceptron simple, SVM, RN Convolutif)<br />
*T4. Mise en place de la suggestion de films (vue côté front-end et logique côté back-end)<br />
*T5. Distribution de l'apprentissage sur plusieurs machines (Docker - Spark - Mesos - Elephas) & Parallélisation requêtes<br />
*T6.1 Communication front/back, établissement des routes<br />
*T6.2 Mise en place du système d'authentification<br />
*T7. Analyse de sentiment sur les flux Twitter<br />
*T8. Mise en place de la base de données<br />
<br />
=== Semaine 4 : 13/02 - 19/02 ===<br />
<br />
====Lundi====<br />
<br />
* Réunion de fin de sprint1 et de début de sprint0 : discussion autour des avancées, difficultés, retards & établissement fonctionnalités à implémenter au cours du sprint2<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T2.2. -> Revue de la structure du code (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
<br />
====Mardi====<br />
<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T3.2 -> Amélioration du classifieur (Elsa/Quentin)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
*T5. -> Parallélisation des requêtes à l'API TMDB (Julian)<br />
<br />
====Mercredi====<br />
<br />
*T1.2 -> Finalisation du cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T1.2 -> Finalisation des statistiques cinématographique utilisateurs (Quentin)<br />
*T2.2. -> Ajout du descripteurs "budget" avec normalisation (Edwin)<br />
*T3.2 -> Mise en place de la fonction de comparaison des combinaisons de descripteurs de films pour faciliter le travail des DUT (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal LSTM (Coralie)<br />
*T4. -> Changement de la méthode de prédiction de film (Elsa)<br />
*T6.1 -> Communication front-back test (Elsa/Quentin)<br />
* SRS (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* Rendez-vous avec les DUT : aide sur l'installation du projet, clone du projet Github. <br />
* Préparation de la présentation (Elsa & Edwin)<br />
* Préparation démo (Quentin & Elsa)<br />
* Mise à jour Wiki, SRS, Scrumboard (Elsa & Edwin)<br />
* Aide des DUT (Edwin & Julian)<br />
* T3.2 -> Evaluation du modèle et comparaison avec SVM et Perceptron de manière graphique (extraire les données et construire des graphes - csv ou matplotlib) (Sébastien & Marceau)<br />
* T7. -> Prétraitement des Tweet(Coralie)<br />
* T5. -> Avancement sur le distribué (Julian)<br />
* T1.2 -> Page de login du front, fix problème de CSS sur les graphes (Quentin)<br />
* T3.2 -> Amélioration du classifieur, tests en changeant les layers, le batch-size, etc. (Quentin)<br />
<br />
====Vendredi====<br />
* Préparation du travail qu'Edwin pourra réaliser durant la semaine de vacances (Edwin travaillera en décalé avec le reste du groupe)<br />
* Début de la mise en place de la base de données (Edwin)<br />
<br />
=== Semaine 5 : 20/02 - 26/02 ===<br />
(Edwin a travaillé la semaine précédente, en décalé avec le reste du groupe)<br />
====Lundi====<br />
*T8. -> Installation des outils liés à la gestion de la base de données MySQL et début de la conception de l'API de communication avec cette base. (Edwin)<br />
====Mardi====<br />
*T8. -> Finalisation de l'API, début des tests et des corrections de bug. (Edwin)<br />
====Mercredi====<br />
*T8. -> Ajout de nouvelles fonctionnalités SQL à l'API et tests de l'API. Création d'un readme et d'un fichier d'exemple complet pour l'utilisation de l'API de MySQL. (Edwin)<br />
*T8. -> Amélioration de l'image Docker, correction de bugs de paths et de librairies manquantes. (Edwin)<br />
====Jeudi====<br />
*T8. -> Review générale du travail lié à la base de données. (Edwin)<br />
*T8. -> Mise en place de MySQL pour Docker. (Edwin)<br />
*Mise à jour du Scrumboard et du wiki-air. (Edwin)<br />
<br />
====Vendredi====<br />
*T8. -> Amélioration du Docker pour tenter de régler des problèmes de ports liés à MySQL (non terminé). (Edwin) <br />
*T8. -> Tests unitaires de fonctionnement de serveurs apaches. (Edwin)<br />
<br />
=== Semaine 5 : 27/02 - 28/02 ===<br />
<br />
====Lundi====<br />
<br />
* T1.2 -> Mise en place de la page de prédictions (Quentin)<br />
* T8. -> Revue de la BD et sécurisation (Julian)<br />
* T7. -> Finalisation de l'analyse de sentiments (Coralie) pour merge sur develop<br />
* Merge du classifieur sur la branche develop, avec la prédiction (Elsa)<br />
* T3.2 -> Recherche sur une construction différente des matrices (basée sur la factorisation de matrices, cf Prix Netflix) (Quentin & Elsa)<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
== Sprint 3 ==<br />
=== Semaine 6 : 27/02 - 05/03 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
=== Semaine 7 : 06/03 - 12/03 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=Fiche_de_suivi_-_Recommandation_intelligente_de_films&diff=34009Fiche de suivi - Recommandation intelligente de films2017-02-28T10:41:41Z<p>Elsa.Navarro: /* Tâches du Sprint2 */</p>
<hr />
<div>Voici la Fiche de suivi du projet de fin d'études DeepMovies 2016-2017<br />
<br />
[[Suggestion_intelligente_de_films_basée_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin (Responsable innovation)<br />
* Hattinguais Julian (Responsable qualité)<br />
* Navarro Elsa (Responsable communication, Médiatrice)<br />
* Dunand Quentin (Responsable des deadlines,Responsable du front-end)<br />
<br />
= Avancée du projet =<br />
Le scrumboard utilisé pour le projet est visible dans l'onglet Projet de l'organisation DeepLearningMovies que nous avons créé sur Github. Chaque tâche est réalisée par un ou plusieurs membre(s) de l'équipe et testée par un autre membre de l'équipe.<br />
<br />
== Sprint 0 ==<br />
<br />
===Sprint dédié aux travaux préparatoires du projet===<br />
* Debriefing autour du projet<br />
* Renseignements sur les technologies et principaux défis techniques<br />
* Maquette de tests sur la faisabilité du projet (recherche de solutions pour les principaux problèmes techniques afin de guider nos choix technologiques et choix de fonctionnalités) <br />
* Choix technologiques<br />
* Préparation des environnements<br />
* Établissement de la liste des exigences fonctionnelles et non fonctionnelles<br />
<br />
<br />
[[File:Sprint0-Semaine1.jpg|1400px|middle]]<br />
<br />
=== Semaine 1 : 23/01 - 29/01 ===<br />
* Mise en place du wiki (Edwin)<br />
* Recherche sur les technologies et les problèmes techniques (Tous)<br />
* Prise RDV avec Massih-Reza Amini pour renseignements (Coralie)<br />
* Mise en place d'un agenda pour le suivi du projet (Coralie)<br />
* Comment lier l'API au front-end ? AngularJS ou Polymer ? ... (Quentin)<br />
<br />
* Mise en place de l'architecture (Tous) avant de faire un prototype comme prévu.<br />
* Installation, compréhension et manipulation de Keras (Tous)<br />
* Recherche mise en place API-REST Python pour le back-end (Julian)<br />
* Mise en place du front-end - première requêtes - choix Angular pour communiquer avec une API-REST (Quentin)<br />
* Traitement de données simple en se basant juste sur le vote des utilisateurs de TMDb sur les films (Edwin, Coralie, Elsa)<br />
* Mise en place d'un prototype capable de récolter grâce à l'API de TMDB les informations de films ciblés. Puis construction d'un modèle de Deep Learning capable de prédire si une personne va aimer un film ou non en fonction de sa note. (Edwin, Coralie)<br />
* Recherche de la transformation de texte en valeurs numériques (String to Float) et plus généralement du prétraitement des données (Elsa, Coralie, Quentin) : découvertes de Word2Vec et de [http://nlp.stanford.edu/projects/glove/ GloVe].<br />
<br />
<br />
* Rendez-vous avec Massih-Reza Amini pour éclaircir le sujet, notamment au sujet du pré-traitement du texte. (Tous)<br />
* Premiers scripts Python pour le prétraitement des données : import depuis un script JSON (Julian) et transformation sous forme de vecteur moyen pour un film donné (Elsa), recherche d'une méthode plus approfondie pour traiter le Résumé (Coralie).<br />
* Réflexion sur les choix des différents layers de traitement des données et sur l'étape d'embedding des données (premier traitement) (Edwin).<br />
* Mise en place d'un système de notation fonctionnel qui permet d'enregistrer les données à partir du front (Quentin).<br />
<br />
== Sprint 1 ==<br />
<br />
===Tâches du Sprint1===<br />
* T1. Établissement des vues principales côté client (recherche et annotation de films)<br />
* T2. Mise en place du processus de pré-traitement des données (titre, mots clés, résumé, note, artiste, producteur)<br />
* T3. Mise en place du réseau neuronal (réseau neuronal simple)<br />
* T4. Mise en place de la structure de test du réseau neuronal (former les corpus de données, cross validation, test de précision)<br />
* T5. Mise en place de l'environnement système (Docker)<br />
<br />
=== Semaine 2 : 30/01 - 05/02 ===<br />
<br />
[[File:Sprint1-Semaine2.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Préparation du premier sprint :<br />
** Mise au point sur le travail réalisé la semaine passée et sur le travail à réaliser durant le sprint<br />
** Établissement d'une liste de fonctionnalités, avec une estimation de l'importance et du temps de réalisation de chaque tâche<br />
** Sélection des fonctionnalités à réaliser au cours du Sprint, remplissage du Scrumboard<br />
* Mise au point sur l'arborescence du git / architecture du projet<br />
* Installation d'une version GPU pour Keras et Tensor-Flow sur les machines équipées d'un bon GPU<br />
<br />
====Mardi====<br />
<br />
* Réunion avec Didier Donsez : <br />
** Technologies : storm, spark, flint (temps réel) pour Twitter<br />
** Distribution : préparer un déploiement sur GRID5000, contacter Olivier Richard et préparer un container Docker<br />
** Utiliser Github pour héberger le site web<br />
<br />
* T1. -> Vues "recherche de films", "annotation de film" et "consultation des films annotés" (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** prétraitement des mots via Glove (Elsa, Edwin, Julian)<br />
** récupération des données (Julian)<br />
** mise en place de l'embedding (Edwin)<br />
** mise en place d'une librairie pour le pré-traitement des données envoyées aux classifieur (Julian)<br />
** Import des modules (Julian)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Chargement des images de films côté client (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" + Ajout "genre" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** extraction des données JSON via l'API (Elsa)<br />
** prétraitement des genres (Julian)<br />
** prétraitement général (mise en forme de la matrice de données) (Edwin)<br />
** revue de code (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur sous Keras - Elephas ? (Coralie)<br />
<br />
====Jeudi====<br />
<br />
* Cours de MPI - travail sur la communication au sein d'un groupe<br />
* T1. -> Pagination et chargement d'images (Quentin)<br />
* T3. -> Création d'une première version du classifieur (Elsa, Edwin)<br />
* T4. -> Validation croisée pour pouvoir tester le classifieur correctement (Edwin & Elsa)<br />
* T5. -> Installation version GPU sur PC (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur Keras - Elephas (Coralie)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Déploiement sur github.io (Quentin)<br />
* T3. -> Insertion de Doc2Vec dans le classifieur (Julian)<br />
* T3. -> Revue du classifieur pour obtenir une meilleure précision (Elsa & Edwin)<br />
* T4. -> Mise en place d'un système de test du classifieur automatisé avec k validations croisées pour les films enregistrés dans un fichier JSON (Elsa)<br />
* T4. -> Annotation de films pour constituer la base d'apprentissage/test (Tous)<br />
* T5. -> Auto-formation sur Docker (Coralie, Edwin)<br />
<br />
=== Semaine 3 : 06/02 - 12/02 ===<br />
<br />
[[File:Sprint1-Semaine3.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Cours de MPI - gestion de projet<br />
* T1. -> Ajout d'un boite de dialogue permettant de visualiser les infos d'un film (Quentin)<br />
* T2. -> Fix de bugs dans preprocessing (Julian)<br />
* T4. -> Recherche sur la mise en place de tests avec Python (Elsa)<br />
* T5. -> Mise en place de l'image Docker avec Python, Keras et Tensorflow en partant d'un Ubuntu 14 (Edwin)<br />
* T5. -> Mise en place de l'image Docker avec Spark en partant d'un Ubuntu 14 (Coralie)<br />
<br />
====Mardi====<br />
<br />
* Rendez-vous avec Mr. Amini<br />
* T1. -> Amélioration de la boîte de dialogue pour les infos (Quentin)<br />
* T2. -> Preprocessing des acteurs et des realisateurs et ajout des fonction de test associées (Julian)<br />
* T2. -> Test le modèle D2V sur un analyseur de sentiment de tweets, beaucoup plus objectif que les gouts utilisateurs vis à vis des films (Coralie).<br />
* T2. -> Mise en place de modules de test unitaires dans MovieProject/tests/unit et suppression de fichiers inutiles dans MovieProject/tests (Elsa)<br />
* T4. -> Ajout de nouveaux fichiers de tests (json) et évaluation du classifieur de façon générique sur les fichiers json dans MovieProject/resources/evaluation (Elsa)<br />
* T4. -> Evaluation du classifieur avec la méthode Doc2Vec (Elsa)<br />
* T5. -> Finalisation de l'image Docker avec Python, Keras et Tensorflow (Edwin)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Début de la mise en place des différents modèles d'apprentissage en vue de leur comparaison : <br />
** Réseau neuronal avec Keras (Elsa)<br />
** Perceptron (Coralie)<br />
** Modification du prétraitement afin de pouvoir récupérer les matrices de chacune des variables caractérisant un film (Julian)<br />
* T5. -> Ajout de Spark à l'image Docker (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* T1. -> Poursuite de la création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Poursuite des tests de performance :<br />
** Test de l'influence de chaque variable des films sur le modèle du perceptron, afin de ne sélectionner que les variables pertinentes (Coralie)<br />
** Test du réseau neuronal (Elsa)<br />
** Mise en place d'un SVM pour concurrencer les performances des deux autres modèles (Julian)<br />
* T5. -> Test de l'image Docker (Edwin)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Visualisation des statistiques + explications sur la page d'accueil (Quentin)<br />
* T4. -> Finalisation perceptron + intégration dans evaluation (Coralie)<br />
* T4. -> Finalisation SVM + intégration dans evaluation (Julian)<br />
* T4. -> Mise en place du module evaluation et intégration des modifications de classifieur & preprocessing (Elsa)<br />
* T5. -> Documentation sur Spark (Edwin & Coralie)<br />
<br />
===État du scrumboard en fin du Sprint1===<br />
<br />
[[File:Sprint1-end-Scrumboard.png|1080px|middle]]<br />
<br />
== Sprint 2 ==<br />
<br />
===Tâches du Sprint2===<br />
<br />
*T1.2. Amélioration du front-end (mise en cache, etc.)<br />
*T2.2. Ajout de descripteurs (durée, budget, année de production, compagnie de production, appartenance à une sage) en vue d'améliorer notre modèle d'apprentissage.<br />
*T3.2 Amélioration du réseau neuronal (comparaison avec Perceptron simple, SVM, RN Convolutif)<br />
*T4. Mise en place de la suggestion de films (vue côté front-end et logique côté back-end)<br />
*T5. Distribution de l'apprentissage sur plusieurs machines (Docker - Spark - Mesos - Elephas) & Parallélisation requêtes<br />
*T6.1 Communication front/back, établissement des routes<br />
*T6.2 Mise en place du système d'authentification<br />
*T7. Analyse de sentiment sur les flux Twitter<br />
*T8. Mise en place de la base de données<br />
<br />
=== Semaine 4 : 13/02 - 19/02 ===<br />
<br />
====Lundi====<br />
<br />
* Réunion de fin de sprint1 et de début de sprint0 : discussion autour des avancées, difficultés, retards & établissement fonctionnalités à implémenter au cours du sprint2<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T2.2. -> Revue de la structure du code (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
<br />
====Mardi====<br />
<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T3.2 -> Amélioration du classifieur (Elsa/Quentin)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
*T5. -> Parallélisation des requêtes à l'API TMDB (Julian)<br />
<br />
====Mercredi====<br />
<br />
*T1.2 -> Finalisation du cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T1.2 -> Finalisation des statistiques cinématographique utilisateurs (Quentin)<br />
*T2.2. -> Ajout du descripteurs "budget" avec normalisation (Edwin)<br />
*T3.2 -> Mise en place de la fonction de comparaison des combinaisons de descripteurs de films pour faciliter le travail des DUT (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal LSTM (Coralie)<br />
*T4. -> Changement de la méthode de prédiction de film (Elsa)<br />
*T6. -> Communication front-back test (Elsa/Quentin)<br />
* SRS (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* Rendez-vous avec les DUT : aide sur l'installation du projet, clone du projet Github. <br />
* Préparation de la présentation (Elsa & Edwin)<br />
* Préparation démo (Quentin & Elsa)<br />
* Mise à jour Wiki, SRS, Scrumboard (Elsa & Edwin)<br />
* Aide des DUT (Edwin & Julian)<br />
* T3.2 -> Evaluation du modèle et comparaison avec SVM et Perceptron de manière graphique (extraire les données et construire des graphes - csv ou matplotlib) (Sébastien & Marceau)<br />
* T7. -> Prétraitement des Tweet(Coralie)<br />
* T5. -> Avancement sur le distribué (Julian)<br />
* T1.2 -> Page de login du front, fix problème de CSS sur les graphes (Quentin)<br />
* T3.2 -> Amélioration du classifieur, tests en changeant les layers, le batch-size, etc. (Quentin)<br />
<br />
====Vendredi====<br />
* Préparation du travail qu'Edwin pourra réaliser durant la semaine de vacances (Edwin travaillera en décalé avec le reste du groupe)<br />
* Début de la mise en place de la base de données (Edwin)<br />
<br />
=== Semaine 5 : 20/02 - 26/02 ===<br />
(Edwin a travaillé la semaine précédente, en décalé avec le reste du groupe)<br />
====Lundi====<br />
*T8. -> Installation des outils liés à la gestion de la base de données MySQL et début de la conception de l'API de communication avec cette base. (Edwin)<br />
====Mardi====<br />
*T8. -> Finalisation de l'API, début des tests et des corrections de bug. (Edwin)<br />
====Mercredi====<br />
*T8. -> Ajout de nouvelles fonctionnalités SQL à l'API et tests de l'API. Création d'un readme et d'un fichier d'exemple complet pour l'utilisation de l'API de MySQL. (Edwin)<br />
*T8. -> Amélioration de l'image Docker, correction de bugs de paths et de librairies manquantes. (Edwin)<br />
====Jeudi====<br />
*T8. -> Review générale du travail lié à la base de données. (Edwin)<br />
*T8. -> Mise en place de MySQL pour Docker. (Edwin)<br />
*Mise à jour du Scrumboard et du wiki-air. (Edwin)<br />
<br />
====Vendredi====<br />
*T8. -> Amélioration du Docker pour tenter de régler des problèmes de ports liés à MySQL (non terminé). (Edwin) <br />
*T8. -> Tests unitaires de fonctionnement de serveurs apaches. (Edwin)<br />
<br />
=== Semaine 5 : 27/02 - 28/02 ===<br />
<br />
====Lundi====<br />
<br />
* T1.2 -> Mise en place de la page de prédictions (Quentin)<br />
* T8. -> Revue de la BD et sécurisation (Julian)<br />
* T7. -> Finalisation de l'analyse de sentiments (Coralie) pour merge sur develop<br />
* Merge du classifieur sur la branche develop, avec la prédiction (Elsa)<br />
* T3.2 -> Recherche sur une construction différente des matrices (basée sur la factorisation de matrices, cf Prix Netflix) (Quentin & Elsa)<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
== Sprint 3 ==<br />
=== Semaine 6 : 27/02 - 05/03 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
=== Semaine 7 : 06/03 - 12/03 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=Fiche_de_suivi_-_Recommandation_intelligente_de_films&diff=33919Fiche de suivi - Recommandation intelligente de films2017-02-27T13:16:00Z<p>Elsa.Navarro: /* Semaine 5 : 27/02 - 28/02 */</p>
<hr />
<div>Voici la Fiche de suivi du projet de fin d'études DeepMovies 2016-2017<br />
<br />
[[Suggestion_intelligente_de_films_basée_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin (Responsable innovation)<br />
* Hattinguais Julian (Responsable qualité)<br />
* Navarro Elsa (Responsable communication, Médiatrice)<br />
* Dunand Quentin (Responsable des deadlines,Responsable du front-end)<br />
<br />
= Avancée du projet =<br />
Le scrumboard utilisé pour le projet est visible dans l'onglet Projet de l'organisation DeepLearningMovies que nous avons créé sur Github. Chaque tâche est réalisée par un ou plusieurs membre(s) de l'équipe et testée par un autre membre de l'équipe.<br />
<br />
== Sprint 0 ==<br />
<br />
===Sprint dédié aux travaux préparatoires du projet===<br />
* Debriefing autour du projet<br />
* Renseignements sur les technologies et principaux défis techniques<br />
* Maquette de tests sur la faisabilité du projet (recherche de solutions pour les principaux problèmes techniques afin de guider nos choix technologiques et choix de fonctionnalités) <br />
* Choix technologiques<br />
* Préparation des environnements<br />
* Établissement de la liste des exigences fonctionnelles et non fonctionnelles<br />
<br />
<br />
[[File:Sprint0-Semaine1.jpg|1400px|middle]]<br />
<br />
=== Semaine 1 : 23/01 - 29/01 ===<br />
* Mise en place du wiki (Edwin)<br />
* Recherche sur les technologies et les problèmes techniques (Tous)<br />
* Prise RDV avec Massih-Reza Amini pour renseignements (Coralie)<br />
* Mise en place d'un agenda pour le suivi du projet (Coralie)<br />
* Comment lier l'API au front-end ? AngularJS ou Polymer ? ... (Quentin)<br />
<br />
* Mise en place de l'architecture (Tous) avant de faire un prototype comme prévu.<br />
* Installation, compréhension et manipulation de Keras (Tous)<br />
* Recherche mise en place API-REST Python pour le back-end (Julian)<br />
* Mise en place du front-end - première requêtes - choix Angular pour communiquer avec une API-REST (Quentin)<br />
* Traitement de données simple en se basant juste sur le vote des utilisateurs de TMDb sur les films (Edwin, Coralie, Elsa)<br />
* Mise en place d'un prototype capable de récolter grâce à l'API de TMDB les informations de films ciblés. Puis construction d'un modèle de Deep Learning capable de prédire si une personne va aimer un film ou non en fonction de sa note. (Edwin, Coralie)<br />
* Recherche de la transformation de texte en valeurs numériques (String to Float) et plus généralement du prétraitement des données (Elsa, Coralie, Quentin) : découvertes de Word2Vec et de [http://nlp.stanford.edu/projects/glove/ GloVe].<br />
<br />
<br />
* Rendez-vous avec Massih-Reza Amini pour éclaircir le sujet, notamment au sujet du pré-traitement du texte. (Tous)<br />
* Premiers scripts Python pour le prétraitement des données : import depuis un script JSON (Julian) et transformation sous forme de vecteur moyen pour un film donné (Elsa), recherche d'une méthode plus approfondie pour traiter le Résumé (Coralie).<br />
* Réflexion sur les choix des différents layers de traitement des données et sur l'étape d'embedding des données (premier traitement) (Edwin).<br />
* Mise en place d'un système de notation fonctionnel qui permet d'enregistrer les données à partir du front (Quentin).<br />
<br />
== Sprint 1 ==<br />
<br />
===Tâches du Sprint1===<br />
* T1. Établissement des vues principales côté client (recherche et annotation de films)<br />
* T2. Mise en place du processus de pré-traitement des données (titre, mots clés, résumé, note, artiste, producteur)<br />
* T3. Mise en place du réseau neuronal (réseau neuronal simple)<br />
* T4. Mise en place de la structure de test du réseau neuronal (former les corpus de données, cross validation, test de précision)<br />
* T5. Mise en place de l'environnement système (Docker)<br />
<br />
=== Semaine 2 : 30/01 - 05/02 ===<br />
<br />
[[File:Sprint1-Semaine2.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Préparation du premier sprint :<br />
** Mise au point sur le travail réalisé la semaine passée et sur le travail à réaliser durant le sprint<br />
** Établissement d'une liste de fonctionnalités, avec une estimation de l'importance et du temps de réalisation de chaque tâche<br />
** Sélection des fonctionnalités à réaliser au cours du Sprint, remplissage du Scrumboard<br />
* Mise au point sur l'arborescence du git / architecture du projet<br />
* Installation d'une version GPU pour Keras et Tensor-Flow sur les machines équipées d'un bon GPU<br />
<br />
====Mardi====<br />
<br />
* Réunion avec Didier Donsez : <br />
** Technologies : storm, spark, flint (temps réel) pour Twitter<br />
** Distribution : préparer un déploiement sur GRID5000, contacter Olivier Richard et préparer un container Docker<br />
** Utiliser Github pour héberger le site web<br />
<br />
* T1. -> Vues "recherche de films", "annotation de film" et "consultation des films annotés" (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** prétraitement des mots via Glove (Elsa, Edwin, Julian)<br />
** récupération des données (Julian)<br />
** mise en place de l'embedding (Edwin)<br />
** mise en place d'une librairie pour le pré-traitement des données envoyées aux classifieur (Julian)<br />
** Import des modules (Julian)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Chargement des images de films côté client (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" + Ajout "genre" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** extraction des données JSON via l'API (Elsa)<br />
** prétraitement des genres (Julian)<br />
** prétraitement général (mise en forme de la matrice de données) (Edwin)<br />
** revue de code (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur sous Keras - Elephas ? (Coralie)<br />
<br />
====Jeudi====<br />
<br />
* Cours de MPI - travail sur la communication au sein d'un groupe<br />
* T1. -> Pagination et chargement d'images (Quentin)<br />
* T3. -> Création d'une première version du classifieur (Elsa, Edwin)<br />
* T4. -> Validation croisée pour pouvoir tester le classifieur correctement (Edwin & Elsa)<br />
* T5. -> Installation version GPU sur PC (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur Keras - Elephas (Coralie)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Déploiement sur github.io (Quentin)<br />
* T3. -> Insertion de Doc2Vec dans le classifieur (Julian)<br />
* T3. -> Revue du classifieur pour obtenir une meilleure précision (Elsa & Edwin)<br />
* T4. -> Mise en place d'un système de test du classifieur automatisé avec k validations croisées pour les films enregistrés dans un fichier JSON (Elsa)<br />
* T4. -> Annotation de films pour constituer la base d'apprentissage/test (Tous)<br />
* T5. -> Auto-formation sur Docker (Coralie, Edwin)<br />
<br />
=== Semaine 3 : 06/02 - 12/02 ===<br />
<br />
[[File:Sprint1-Semaine3.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Cours de MPI - gestion de projet<br />
* T1. -> Ajout d'un boite de dialogue permettant de visualiser les infos d'un film (Quentin)<br />
* T2. -> Fix de bugs dans preprocessing (Julian)<br />
* T4. -> Recherche sur la mise en place de tests avec Python (Elsa)<br />
* T5. -> Mise en place de l'image Docker avec Python, Keras et Tensorflow en partant d'un Ubuntu 14 (Edwin)<br />
* T5. -> Mise en place de l'image Docker avec Spark en partant d'un Ubuntu 14 (Coralie)<br />
<br />
====Mardi====<br />
<br />
* Rendez-vous avec Mr. Amini<br />
* T1. -> Amélioration de la boîte de dialogue pour les infos (Quentin)<br />
* T2. -> Preprocessing des acteurs et des realisateurs et ajout des fonction de test associées (Julian)<br />
* T2. -> Test le modèle D2V sur un analyseur de sentiment de tweets, beaucoup plus objectif que les gouts utilisateurs vis à vis des films (Coralie).<br />
* T2. -> Mise en place de modules de test unitaires dans MovieProject/tests/unit et suppression de fichiers inutiles dans MovieProject/tests (Elsa)<br />
* T4. -> Ajout de nouveaux fichiers de tests (json) et évaluation du classifieur de façon générique sur les fichiers json dans MovieProject/resources/evaluation (Elsa)<br />
* T4. -> Evaluation du classifieur avec la méthode Doc2Vec (Elsa)<br />
* T5. -> Finalisation de l'image Docker avec Python, Keras et Tensorflow (Edwin)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Début de la mise en place des différents modèles d'apprentissage en vue de leur comparaison : <br />
** Réseau neuronal avec Keras (Elsa)<br />
** Perceptron (Coralie)<br />
** Modification du prétraitement afin de pouvoir récupérer les matrices de chacune des variables caractérisant un film (Julian)<br />
* T5. -> Ajout de Spark à l'image Docker (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* T1. -> Poursuite de la création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Poursuite des tests de performance :<br />
** Test de l'influence de chaque variable des films sur le modèle du perceptron, afin de ne sélectionner que les variables pertinentes (Coralie)<br />
** Test du réseau neuronal (Elsa)<br />
** Mise en place d'un SVM pour concurrencer les performances des deux autres modèles (Julian)<br />
* T5. -> Test de l'image Docker (Edwin)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Visualisation des statistiques + explications sur la page d'accueil (Quentin)<br />
* T4. -> Finalisation perceptron + intégration dans evaluation (Coralie)<br />
* T4. -> Finalisation SVM + intégration dans evaluation (Julian)<br />
* T4. -> Mise en place du module evaluation et intégration des modifications de classifieur & preprocessing (Elsa)<br />
* T5. -> Documentation sur Spark (Edwin & Coralie)<br />
<br />
===État du scrumboard en fin du Sprint1===<br />
<br />
[[File:Sprint1-end-Scrumboard.png|1080px|middle]]<br />
<br />
== Sprint 2 ==<br />
<br />
===Tâches du Sprint2===<br />
<br />
*T1.2. Amélioration du front-end (mise en cache, etc.)<br />
*T2.2. Ajout de descripteurs (durée, budget, année de production, compagnie de production, appartenance à une sage) en vue d'améliorer notre modèle d'apprentissage.<br />
*T3.2 Amélioration du réseau neuronal (comparaison avec Perceptron simple, SVM, RN Convolutif)<br />
*T4. Mise en place de la suggestion de films (vue côté front-end et logique côté back-end)<br />
*T5. Distribution de l'apprentissage sur plusieurs machines (Docker - Spark - Mesos - Elephas) & Parallélisation requêtes<br />
*T6. Communication front/back, établissement des routes<br />
*T7. Analyse de sentiment sur les flux Twitter<br />
*T8. Mise en place de la base de données<br />
<br />
=== Semaine 4 : 13/02 - 19/02 ===<br />
<br />
====Lundi====<br />
<br />
* Réunion de fin de sprint1 et de début de sprint0 : discussion autour des avancées, difficultés, retards & établissement fonctionnalités à implémenter au cours du sprint2<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T2.2. -> Revue de la structure du code (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
<br />
====Mardi====<br />
<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T3.2 -> Amélioration du classifieur (Elsa/Quentin)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
*T5. -> Parallélisation des requêtes à l'API TMDB (Julian)<br />
<br />
====Mercredi====<br />
<br />
*T1.2 -> Finalisation du cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T1.2 -> Finalisation des statistiques cinématographique utilisateurs (Quentin)<br />
*T2.2. -> Ajout du descripteurs "budget" avec normalisation (Edwin)<br />
*T3.2 -> Mise en place de la fonction de comparaison des combinaisons de descripteurs de films pour faciliter le travail des DUT (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal LSTM (Coralie)<br />
*T4. -> Changement de la méthode de prédiction de film (Elsa)<br />
*T6. -> Communication front-back test (Elsa/Quentin)<br />
* SRS (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* Rendez-vous avec les DUT : aide sur l'installation du projet, clone du projet Github. <br />
* Préparation de la présentation (Elsa & Edwin)<br />
* Préparation démo (Quentin & Elsa)<br />
* Mise à jour Wiki, SRS, Scrumboard (Elsa & Edwin)<br />
* Aide des DUT (Edwin & Julian)<br />
* T3.2 -> Evaluation du modèle et comparaison avec SVM et Perceptron de manière graphique (extraire les données et construire des graphes - csv ou matplotlib) (Sébastien & Marceau)<br />
* T7. -> Prétraitement des Tweet(Coralie)<br />
* T5. -> Avancement sur le distribué (Julian)<br />
* T1.2 -> Page de login du front, fix problème de CSS sur les graphes (Quentin)<br />
* T3.2 -> Amélioration du classifieur, tests en changeant les layers, le batch-size, etc. (Quentin)<br />
<br />
====Vendredi====<br />
* Préparation du travail qu'Edwin pourra réaliser durant la semaine de vacances (Edwin travaillera en décalé avec le reste du groupe)<br />
* Début de la mise en place de la base de données (Edwin)<br />
<br />
=== Semaine 5 : 20/02 - 26/02 ===<br />
(Edwin a travaillé la semaine précédente, en décalé avec le reste du groupe)<br />
====Lundi====<br />
*T8. -> Installation des outils liés à la gestion de la base de données MySQL et début de la conception de l'API de communication avec cette base. (Edwin)<br />
====Mardi====<br />
*T8. -> Finalisation de l'API, début des tests et des corrections de bug. (Edwin)<br />
====Mercredi====<br />
*T8. -> Ajout de nouvelles fonctionnalités SQL à l'API et tests de l'API. Création d'un readme et d'un fichier d'exemple complet pour l'utilisation de l'API de MySQL. (Edwin)<br />
*T8. -> Amélioration de l'image Docker, correction de bugs de paths et de librairies manquantes. (Edwin)<br />
====Jeudi====<br />
*T8. -> Review générale du travail lié à la base de données. (Edwin)<br />
*T8. -> Mise en place de MySQL pour Docker. (Edwin)<br />
*Mise à jour du Scrumboard et du wiki-air. (Edwin)<br />
<br />
====Vendredi====<br />
*T8. -> Amélioration du Docker pour tenter de régler des problèmes de ports liés à MySQL (non terminé). (Edwin) <br />
*T8. -> Tests unitaires de fonctionnement de serveurs apaches. (Edwin)<br />
<br />
=== Semaine 5 : 27/02 - 28/02 ===<br />
<br />
====Lundi====<br />
<br />
* T1.2 -> Mise en place de la page de prédictions (Quentin)<br />
* T8. -> Revue de la BD et sécurisation (Julian)<br />
* T7. -> Finalisation de l'analyse de sentiments (Coralie) pour merge sur develop<br />
* Merge du classifieur sur la branche develop, avec la prédiction (Elsa)<br />
* T3.2 -> Recherche sur une construction différente des matrices (basée sur la factorisation de matrices, cf Prix Netflix) (Quentin & Elsa)<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
== Sprint 3 ==<br />
=== Semaine 6 : 27/02 - 05/03 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
=== Semaine 7 : 06/03 - 12/03 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=Fiche_de_suivi_-_Recommandation_intelligente_de_films&diff=33917Fiche de suivi - Recommandation intelligente de films2017-02-27T12:10:05Z<p>Elsa.Navarro: /* Semaine 5 : 27/02 - 28/02 */</p>
<hr />
<div>Voici la Fiche de suivi du projet de fin d'études DeepMovies 2016-2017<br />
<br />
[[Suggestion_intelligente_de_films_basée_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin (Responsable innovation)<br />
* Hattinguais Julian (Responsable qualité)<br />
* Navarro Elsa (Responsable communication, Médiatrice)<br />
* Dunand Quentin (Responsable des deadlines,Responsable du front-end)<br />
<br />
= Avancée du projet =<br />
Le scrumboard utilisé pour le projet est visible dans l'onglet Projet de l'organisation DeepLearningMovies que nous avons créé sur Github. Chaque tâche est réalisée par un ou plusieurs membre(s) de l'équipe et testée par un autre membre de l'équipe.<br />
<br />
== Sprint 0 ==<br />
<br />
===Sprint dédié aux travaux préparatoires du projet===<br />
* Debriefing autour du projet<br />
* Renseignements sur les technologies et principaux défis techniques<br />
* Maquette de tests sur la faisabilité du projet (recherche de solutions pour les principaux problèmes techniques afin de guider nos choix technologiques et choix de fonctionnalités) <br />
* Choix technologiques<br />
* Préparation des environnements<br />
* Établissement de la liste des exigences fonctionnelles et non fonctionnelles<br />
<br />
<br />
[[File:Sprint0-Semaine1.jpg|1400px|middle]]<br />
<br />
=== Semaine 1 : 23/01 - 29/01 ===<br />
* Mise en place du wiki (Edwin)<br />
* Recherche sur les technologies et les problèmes techniques (Tous)<br />
* Prise RDV avec Massih-Reza Amini pour renseignements (Coralie)<br />
* Mise en place d'un agenda pour le suivi du projet (Coralie)<br />
* Comment lier l'API au front-end ? AngularJS ou Polymer ? ... (Quentin)<br />
<br />
* Mise en place de l'architecture (Tous) avant de faire un prototype comme prévu.<br />
* Installation, compréhension et manipulation de Keras (Tous)<br />
* Recherche mise en place API-REST Python pour le back-end (Julian)<br />
* Mise en place du front-end - première requêtes - choix Angular pour communiquer avec une API-REST (Quentin)<br />
* Traitement de données simple en se basant juste sur le vote des utilisateurs de TMDb sur les films (Edwin, Coralie, Elsa)<br />
* Mise en place d'un prototype capable de récolter grâce à l'API de TMDB les informations de films ciblés. Puis construction d'un modèle de Deep Learning capable de prédire si une personne va aimer un film ou non en fonction de sa note. (Edwin, Coralie)<br />
* Recherche de la transformation de texte en valeurs numériques (String to Float) et plus généralement du prétraitement des données (Elsa, Coralie, Quentin) : découvertes de Word2Vec et de [http://nlp.stanford.edu/projects/glove/ GloVe].<br />
<br />
<br />
* Rendez-vous avec Massih-Reza Amini pour éclaircir le sujet, notamment au sujet du pré-traitement du texte. (Tous)<br />
* Premiers scripts Python pour le prétraitement des données : import depuis un script JSON (Julian) et transformation sous forme de vecteur moyen pour un film donné (Elsa), recherche d'une méthode plus approfondie pour traiter le Résumé (Coralie).<br />
* Réflexion sur les choix des différents layers de traitement des données et sur l'étape d'embedding des données (premier traitement) (Edwin).<br />
* Mise en place d'un système de notation fonctionnel qui permet d'enregistrer les données à partir du front (Quentin).<br />
<br />
== Sprint 1 ==<br />
<br />
===Tâches du Sprint1===<br />
* T1. Établissement des vues principales côté client (recherche et annotation de films)<br />
* T2. Mise en place du processus de pré-traitement des données (titre, mots clés, résumé, note, artiste, producteur)<br />
* T3. Mise en place du réseau neuronal (réseau neuronal simple)<br />
* T4. Mise en place de la structure de test du réseau neuronal (former les corpus de données, cross validation, test de précision)<br />
* T5. Mise en place de l'environnement système (Docker)<br />
<br />
=== Semaine 2 : 30/01 - 05/02 ===<br />
<br />
[[File:Sprint1-Semaine2.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Préparation du premier sprint :<br />
** Mise au point sur le travail réalisé la semaine passée et sur le travail à réaliser durant le sprint<br />
** Établissement d'une liste de fonctionnalités, avec une estimation de l'importance et du temps de réalisation de chaque tâche<br />
** Sélection des fonctionnalités à réaliser au cours du Sprint, remplissage du Scrumboard<br />
* Mise au point sur l'arborescence du git / architecture du projet<br />
* Installation d'une version GPU pour Keras et Tensor-Flow sur les machines équipées d'un bon GPU<br />
<br />
====Mardi====<br />
<br />
* Réunion avec Didier Donsez : <br />
** Technologies : storm, spark, flint (temps réel) pour Twitter<br />
** Distribution : préparer un déploiement sur GRID5000, contacter Olivier Richard et préparer un container Docker<br />
** Utiliser Github pour héberger le site web<br />
<br />
* T1. -> Vues "recherche de films", "annotation de film" et "consultation des films annotés" (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** prétraitement des mots via Glove (Elsa, Edwin, Julian)<br />
** récupération des données (Julian)<br />
** mise en place de l'embedding (Edwin)<br />
** mise en place d'une librairie pour le pré-traitement des données envoyées aux classifieur (Julian)<br />
** Import des modules (Julian)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Chargement des images de films côté client (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" + Ajout "genre" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** extraction des données JSON via l'API (Elsa)<br />
** prétraitement des genres (Julian)<br />
** prétraitement général (mise en forme de la matrice de données) (Edwin)<br />
** revue de code (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur sous Keras - Elephas ? (Coralie)<br />
<br />
====Jeudi====<br />
<br />
* Cours de MPI - travail sur la communication au sein d'un groupe<br />
* T1. -> Pagination et chargement d'images (Quentin)<br />
* T3. -> Création d'une première version du classifieur (Elsa, Edwin)<br />
* T4. -> Validation croisée pour pouvoir tester le classifieur correctement (Edwin & Elsa)<br />
* T5. -> Installation version GPU sur PC (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur Keras - Elephas (Coralie)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Déploiement sur github.io (Quentin)<br />
* T3. -> Insertion de Doc2Vec dans le classifieur (Julian)<br />
* T3. -> Revue du classifieur pour obtenir une meilleure précision (Elsa & Edwin)<br />
* T4. -> Mise en place d'un système de test du classifieur automatisé avec k validations croisées pour les films enregistrés dans un fichier JSON (Elsa)<br />
* T4. -> Annotation de films pour constituer la base d'apprentissage/test (Tous)<br />
* T5. -> Auto-formation sur Docker (Coralie, Edwin)<br />
<br />
=== Semaine 3 : 06/02 - 12/02 ===<br />
<br />
[[File:Sprint1-Semaine3.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Cours de MPI - gestion de projet<br />
* T1. -> Ajout d'un boite de dialogue permettant de visualiser les infos d'un film (Quentin)<br />
* T2. -> Fix de bugs dans preprocessing (Julian)<br />
* T4. -> Recherche sur la mise en place de tests avec Python (Elsa)<br />
* T5. -> Mise en place de l'image Docker avec Python, Keras et Tensorflow en partant d'un Ubuntu 14 (Edwin)<br />
* T5. -> Mise en place de l'image Docker avec Spark en partant d'un Ubuntu 14 (Coralie)<br />
<br />
====Mardi====<br />
<br />
* Rendez-vous avec Mr. Amini<br />
* T1. -> Amélioration de la boîte de dialogue pour les infos (Quentin)<br />
* T2. -> Preprocessing des acteurs et des realisateurs et ajout des fonction de test associées (Julian)<br />
* T2. -> Test le modèle D2V sur un analyseur de sentiment de tweets, beaucoup plus objectif que les gouts utilisateurs vis à vis des films (Coralie).<br />
* T2. -> Mise en place de modules de test unitaires dans MovieProject/tests/unit et suppression de fichiers inutiles dans MovieProject/tests (Elsa)<br />
* T4. -> Ajout de nouveaux fichiers de tests (json) et évaluation du classifieur de façon générique sur les fichiers json dans MovieProject/resources/evaluation (Elsa)<br />
* T4. -> Evaluation du classifieur avec la méthode Doc2Vec (Elsa)<br />
* T5. -> Finalisation de l'image Docker avec Python, Keras et Tensorflow (Edwin)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Début de la mise en place des différents modèles d'apprentissage en vue de leur comparaison : <br />
** Réseau neuronal avec Keras (Elsa)<br />
** Perceptron (Coralie)<br />
** Modification du prétraitement afin de pouvoir récupérer les matrices de chacune des variables caractérisant un film (Julian)<br />
* T5. -> Ajout de Spark à l'image Docker (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* T1. -> Poursuite de la création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Poursuite des tests de performance :<br />
** Test de l'influence de chaque variable des films sur le modèle du perceptron, afin de ne sélectionner que les variables pertinentes (Coralie)<br />
** Test du réseau neuronal (Elsa)<br />
** Mise en place d'un SVM pour concurrencer les performances des deux autres modèles (Julian)<br />
* T5. -> Test de l'image Docker (Edwin)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Visualisation des statistiques + explications sur la page d'accueil (Quentin)<br />
* T4. -> Finalisation perceptron + intégration dans evaluation (Coralie)<br />
* T4. -> Finalisation SVM + intégration dans evaluation (Julian)<br />
* T4. -> Mise en place du module evaluation et intégration des modifications de classifieur & preprocessing (Elsa)<br />
* T5. -> Documentation sur Spark (Edwin & Coralie)<br />
<br />
===État du scrumboard en fin du Sprint1===<br />
<br />
[[File:Sprint1-end-Scrumboard.png|1080px|middle]]<br />
<br />
== Sprint 2 ==<br />
<br />
===Tâches du Sprint2===<br />
<br />
*T1.2. Amélioration du front-end (mise en cache, etc.)<br />
*T2.2. Ajout de descripteurs (durée, budget, année de production, compagnie de production, appartenance à une sage) en vue d'améliorer notre modèle d'apprentissage.<br />
*T3.2 Amélioration du réseau neuronal (comparaison avec Perceptron simple, SVM, RN Convolutif)<br />
*T4. Mise en place de la suggestion de films (vue côté front-end et logique côté back-end)<br />
*T5. Distribution de l'apprentissage sur plusieurs machines (Docker - Spark - Mesos - Elephas) & Parallélisation requêtes<br />
*T6. Communication front/back, établissement des routes<br />
*T7. Analyse de sentiment sur les flux Twitter<br />
*T8. Mise en place de la base de données<br />
<br />
=== Semaine 4 : 13/02 - 19/02 ===<br />
<br />
====Lundi====<br />
<br />
* Réunion de fin de sprint1 et de début de sprint0 : discussion autour des avancées, difficultés, retards & établissement fonctionnalités à implémenter au cours du sprint2<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T2.2. -> Revue de la structure du code (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
<br />
====Mardi====<br />
<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T3.2 -> Amélioration du classifieur (Elsa/Quentin)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
*T5. -> Parallélisation des requêtes à l'API TMDB (Julian)<br />
<br />
====Mercredi====<br />
<br />
*T1.2 -> Finalisation du cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T1.2 -> Finalisation des statistiques cinématographique utilisateurs (Quentin)<br />
*T2.2. -> Ajout du descripteurs "budget" avec normalisation (Edwin)<br />
*T3.2 -> Mise en place de la fonction de comparaison des combinaisons de descripteurs de films pour faciliter le travail des DUT (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal LSTM (Coralie)<br />
*T4. -> Changement de la méthode de prédiction de film (Elsa)<br />
*T6. -> Communication front-back test (Elsa/Quentin)<br />
* SRS (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* Rendez-vous avec les DUT : aide sur l'installation du projet, clone du projet Github. <br />
* Préparation de la présentation (Elsa & Edwin)<br />
* Préparation démo (Quentin & Elsa)<br />
* Mise à jour Wiki, SRS, Scrumboard (Elsa & Edwin)<br />
* Aide des DUT (Edwin & Julian)<br />
* T3.2 -> Evaluation du modèle et comparaison avec SVM et Perceptron de manière graphique (extraire les données et construire des graphes - csv ou matplotlib) (Sébastien & Marceau)<br />
* T7. -> Prétraitement des Tweet(Coralie)<br />
* T5. -> Avancement sur le distribué (Julian)<br />
* T1.2 -> Page de login du front, fix problème de CSS sur les graphes (Quentin)<br />
* T3.2 -> Amélioration du classifieur, tests en changeant les layers, le batch-size, etc. (Quentin)<br />
<br />
====Vendredi====<br />
* Préparation du travail qu'Edwin pourra réaliser durant la semaine de vacances (Edwin travaillera en décalé avec le reste du groupe)<br />
* Début de la mise en place de la base de données (Edwin)<br />
<br />
=== Semaine 5 : 20/02 - 26/02 ===<br />
(Edwin a travaillé la semaine précédente, en décalé avec le reste du groupe)<br />
====Lundi====<br />
*T8. -> Installation des outils liés à la gestion de la base de données MySQL et début de la conception de l'API de communication avec cette base. (Edwin)<br />
====Mardi====<br />
*T8. -> Finalisation de l'API, début des tests et des corrections de bug. (Edwin)<br />
====Mercredi====<br />
*T8. -> Ajout de nouvelles fonctionnalités SQL à l'API et tests de l'API. Création d'un readme et d'un fichier d'exemple complet pour l'utilisation de l'API de MySQL. (Edwin)<br />
*T8. -> Amélioration de l'image Docker, correction de bugs de paths et de librairies manquantes. (Edwin)<br />
====Jeudi====<br />
*T8. -> Review générale du travail lié à la base de données. (Edwin)<br />
*T8. -> Mise en place de MySQL pour Docker. (Edwin)<br />
*Mise à jour du Scrumboard et du wiki-air. (Edwin)<br />
<br />
====Vendredi====<br />
*T8. -> Amélioration du Docker pour tenter de régler des problèmes de ports liés à MySQL (non terminé). (Edwin) <br />
*T8. -> Tests unitaires de fonctionnement de serveurs apaches. (Edwin)<br />
<br />
=== Semaine 5 : 27/02 - 28/02 ===<br />
<br />
====Lundi====<br />
<br />
* T1.2 -> Mise en place de la page de prédictions (Quentin)<br />
* T8. -> Revue de la BD et sécurisation (Julian)<br />
* T7. -> Finalisation de l'analyse de sentiments (Coralie) pour merge sur develop<br />
* Merge du classifieur sur la branche develop, avec la prédiction (Elsa)<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
== Sprint 3 ==<br />
=== Semaine 6 : 27/02 - 05/03 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
=== Semaine 7 : 06/03 - 12/03 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=Fiche_de_suivi_-_Recommandation_intelligente_de_films&diff=33916Fiche de suivi - Recommandation intelligente de films2017-02-27T11:54:28Z<p>Elsa.Navarro: /* Semaine 5 : 20/02 - 26/02 */</p>
<hr />
<div>Voici la Fiche de suivi du projet de fin d'études DeepMovies 2016-2017<br />
<br />
[[Suggestion_intelligente_de_films_basée_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin (Responsable innovation)<br />
* Hattinguais Julian (Responsable qualité)<br />
* Navarro Elsa (Responsable communication, Médiatrice)<br />
* Dunand Quentin (Responsable des deadlines,Responsable du front-end)<br />
<br />
= Avancée du projet =<br />
Le scrumboard utilisé pour le projet est visible dans l'onglet Projet de l'organisation DeepLearningMovies que nous avons créé sur Github. Chaque tâche est réalisée par un ou plusieurs membre(s) de l'équipe et testée par un autre membre de l'équipe.<br />
<br />
== Sprint 0 ==<br />
<br />
===Sprint dédié aux travaux préparatoires du projet===<br />
* Debriefing autour du projet<br />
* Renseignements sur les technologies et principaux défis techniques<br />
* Maquette de tests sur la faisabilité du projet (recherche de solutions pour les principaux problèmes techniques afin de guider nos choix technologiques et choix de fonctionnalités) <br />
* Choix technologiques<br />
* Préparation des environnements<br />
* Établissement de la liste des exigences fonctionnelles et non fonctionnelles<br />
<br />
<br />
[[File:Sprint0-Semaine1.jpg|1400px|middle]]<br />
<br />
=== Semaine 1 : 23/01 - 29/01 ===<br />
* Mise en place du wiki (Edwin)<br />
* Recherche sur les technologies et les problèmes techniques (Tous)<br />
* Prise RDV avec Massih-Reza Amini pour renseignements (Coralie)<br />
* Mise en place d'un agenda pour le suivi du projet (Coralie)<br />
* Comment lier l'API au front-end ? AngularJS ou Polymer ? ... (Quentin)<br />
<br />
* Mise en place de l'architecture (Tous) avant de faire un prototype comme prévu.<br />
* Installation, compréhension et manipulation de Keras (Tous)<br />
* Recherche mise en place API-REST Python pour le back-end (Julian)<br />
* Mise en place du front-end - première requêtes - choix Angular pour communiquer avec une API-REST (Quentin)<br />
* Traitement de données simple en se basant juste sur le vote des utilisateurs de TMDb sur les films (Edwin, Coralie, Elsa)<br />
* Mise en place d'un prototype capable de récolter grâce à l'API de TMDB les informations de films ciblés. Puis construction d'un modèle de Deep Learning capable de prédire si une personne va aimer un film ou non en fonction de sa note. (Edwin, Coralie)<br />
* Recherche de la transformation de texte en valeurs numériques (String to Float) et plus généralement du prétraitement des données (Elsa, Coralie, Quentin) : découvertes de Word2Vec et de [http://nlp.stanford.edu/projects/glove/ GloVe].<br />
<br />
<br />
* Rendez-vous avec Massih-Reza Amini pour éclaircir le sujet, notamment au sujet du pré-traitement du texte. (Tous)<br />
* Premiers scripts Python pour le prétraitement des données : import depuis un script JSON (Julian) et transformation sous forme de vecteur moyen pour un film donné (Elsa), recherche d'une méthode plus approfondie pour traiter le Résumé (Coralie).<br />
* Réflexion sur les choix des différents layers de traitement des données et sur l'étape d'embedding des données (premier traitement) (Edwin).<br />
* Mise en place d'un système de notation fonctionnel qui permet d'enregistrer les données à partir du front (Quentin).<br />
<br />
== Sprint 1 ==<br />
<br />
===Tâches du Sprint1===<br />
* T1. Établissement des vues principales côté client (recherche et annotation de films)<br />
* T2. Mise en place du processus de pré-traitement des données (titre, mots clés, résumé, note, artiste, producteur)<br />
* T3. Mise en place du réseau neuronal (réseau neuronal simple)<br />
* T4. Mise en place de la structure de test du réseau neuronal (former les corpus de données, cross validation, test de précision)<br />
* T5. Mise en place de l'environnement système (Docker)<br />
<br />
=== Semaine 2 : 30/01 - 05/02 ===<br />
<br />
[[File:Sprint1-Semaine2.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Préparation du premier sprint :<br />
** Mise au point sur le travail réalisé la semaine passée et sur le travail à réaliser durant le sprint<br />
** Établissement d'une liste de fonctionnalités, avec une estimation de l'importance et du temps de réalisation de chaque tâche<br />
** Sélection des fonctionnalités à réaliser au cours du Sprint, remplissage du Scrumboard<br />
* Mise au point sur l'arborescence du git / architecture du projet<br />
* Installation d'une version GPU pour Keras et Tensor-Flow sur les machines équipées d'un bon GPU<br />
<br />
====Mardi====<br />
<br />
* Réunion avec Didier Donsez : <br />
** Technologies : storm, spark, flint (temps réel) pour Twitter<br />
** Distribution : préparer un déploiement sur GRID5000, contacter Olivier Richard et préparer un container Docker<br />
** Utiliser Github pour héberger le site web<br />
<br />
* T1. -> Vues "recherche de films", "annotation de film" et "consultation des films annotés" (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** prétraitement des mots via Glove (Elsa, Edwin, Julian)<br />
** récupération des données (Julian)<br />
** mise en place de l'embedding (Edwin)<br />
** mise en place d'une librairie pour le pré-traitement des données envoyées aux classifieur (Julian)<br />
** Import des modules (Julian)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Chargement des images de films côté client (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" + Ajout "genre" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** extraction des données JSON via l'API (Elsa)<br />
** prétraitement des genres (Julian)<br />
** prétraitement général (mise en forme de la matrice de données) (Edwin)<br />
** revue de code (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur sous Keras - Elephas ? (Coralie)<br />
<br />
====Jeudi====<br />
<br />
* Cours de MPI - travail sur la communication au sein d'un groupe<br />
* T1. -> Pagination et chargement d'images (Quentin)<br />
* T3. -> Création d'une première version du classifieur (Elsa, Edwin)<br />
* T4. -> Validation croisée pour pouvoir tester le classifieur correctement (Edwin & Elsa)<br />
* T5. -> Installation version GPU sur PC (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur Keras - Elephas (Coralie)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Déploiement sur github.io (Quentin)<br />
* T3. -> Insertion de Doc2Vec dans le classifieur (Julian)<br />
* T3. -> Revue du classifieur pour obtenir une meilleure précision (Elsa & Edwin)<br />
* T4. -> Mise en place d'un système de test du classifieur automatisé avec k validations croisées pour les films enregistrés dans un fichier JSON (Elsa)<br />
* T4. -> Annotation de films pour constituer la base d'apprentissage/test (Tous)<br />
* T5. -> Auto-formation sur Docker (Coralie, Edwin)<br />
<br />
=== Semaine 3 : 06/02 - 12/02 ===<br />
<br />
[[File:Sprint1-Semaine3.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Cours de MPI - gestion de projet<br />
* T1. -> Ajout d'un boite de dialogue permettant de visualiser les infos d'un film (Quentin)<br />
* T2. -> Fix de bugs dans preprocessing (Julian)<br />
* T4. -> Recherche sur la mise en place de tests avec Python (Elsa)<br />
* T5. -> Mise en place de l'image Docker avec Python, Keras et Tensorflow en partant d'un Ubuntu 14 (Edwin)<br />
* T5. -> Mise en place de l'image Docker avec Spark en partant d'un Ubuntu 14 (Coralie)<br />
<br />
====Mardi====<br />
<br />
* Rendez-vous avec Mr. Amini<br />
* T1. -> Amélioration de la boîte de dialogue pour les infos (Quentin)<br />
* T2. -> Preprocessing des acteurs et des realisateurs et ajout des fonction de test associées (Julian)<br />
* T2. -> Test le modèle D2V sur un analyseur de sentiment de tweets, beaucoup plus objectif que les gouts utilisateurs vis à vis des films (Coralie).<br />
* T2. -> Mise en place de modules de test unitaires dans MovieProject/tests/unit et suppression de fichiers inutiles dans MovieProject/tests (Elsa)<br />
* T4. -> Ajout de nouveaux fichiers de tests (json) et évaluation du classifieur de façon générique sur les fichiers json dans MovieProject/resources/evaluation (Elsa)<br />
* T4. -> Evaluation du classifieur avec la méthode Doc2Vec (Elsa)<br />
* T5. -> Finalisation de l'image Docker avec Python, Keras et Tensorflow (Edwin)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Début de la mise en place des différents modèles d'apprentissage en vue de leur comparaison : <br />
** Réseau neuronal avec Keras (Elsa)<br />
** Perceptron (Coralie)<br />
** Modification du prétraitement afin de pouvoir récupérer les matrices de chacune des variables caractérisant un film (Julian)<br />
* T5. -> Ajout de Spark à l'image Docker (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* T1. -> Poursuite de la création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Poursuite des tests de performance :<br />
** Test de l'influence de chaque variable des films sur le modèle du perceptron, afin de ne sélectionner que les variables pertinentes (Coralie)<br />
** Test du réseau neuronal (Elsa)<br />
** Mise en place d'un SVM pour concurrencer les performances des deux autres modèles (Julian)<br />
* T5. -> Test de l'image Docker (Edwin)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Visualisation des statistiques + explications sur la page d'accueil (Quentin)<br />
* T4. -> Finalisation perceptron + intégration dans evaluation (Coralie)<br />
* T4. -> Finalisation SVM + intégration dans evaluation (Julian)<br />
* T4. -> Mise en place du module evaluation et intégration des modifications de classifieur & preprocessing (Elsa)<br />
* T5. -> Documentation sur Spark (Edwin & Coralie)<br />
<br />
===État du scrumboard en fin du Sprint1===<br />
<br />
[[File:Sprint1-end-Scrumboard.png|1080px|middle]]<br />
<br />
== Sprint 2 ==<br />
<br />
===Tâches du Sprint2===<br />
<br />
*T1.2. Amélioration du front-end (mise en cache, etc.)<br />
*T2.2. Ajout de descripteurs (durée, budget, année de production, compagnie de production, appartenance à une sage) en vue d'améliorer notre modèle d'apprentissage.<br />
*T3.2 Amélioration du réseau neuronal (comparaison avec Perceptron simple, SVM, RN Convolutif)<br />
*T4. Mise en place de la suggestion de films (vue côté front-end et logique côté back-end)<br />
*T5. Distribution de l'apprentissage sur plusieurs machines (Docker - Spark - Mesos - Elephas) & Parallélisation requêtes<br />
*T6. Communication front/back, établissement des routes<br />
*T7. Analyse de sentiment sur les flux Twitter<br />
*T8. Mise en place de la base de données<br />
<br />
=== Semaine 4 : 13/02 - 19/02 ===<br />
<br />
====Lundi====<br />
<br />
* Réunion de fin de sprint1 et de début de sprint0 : discussion autour des avancées, difficultés, retards & établissement fonctionnalités à implémenter au cours du sprint2<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T2.2. -> Revue de la structure du code (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
<br />
====Mardi====<br />
<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T3.2 -> Amélioration du classifieur (Elsa/Quentin)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
*T5. -> Parallélisation des requêtes à l'API TMDB (Julian)<br />
<br />
====Mercredi====<br />
<br />
*T1.2 -> Finalisation du cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T1.2 -> Finalisation des statistiques cinématographique utilisateurs (Quentin)<br />
*T2.2. -> Ajout du descripteurs "budget" avec normalisation (Edwin)<br />
*T3.2 -> Mise en place de la fonction de comparaison des combinaisons de descripteurs de films pour faciliter le travail des DUT (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal LSTM (Coralie)<br />
*T4. -> Changement de la méthode de prédiction de film (Elsa)<br />
*T6. -> Communication front-back test (Elsa/Quentin)<br />
* SRS (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* Rendez-vous avec les DUT : aide sur l'installation du projet, clone du projet Github. <br />
* Préparation de la présentation (Elsa & Edwin)<br />
* Préparation démo (Quentin & Elsa)<br />
* Mise à jour Wiki, SRS, Scrumboard (Elsa & Edwin)<br />
* Aide des DUT (Edwin & Julian)<br />
* T3.2 -> Evaluation du modèle et comparaison avec SVM et Perceptron de manière graphique (extraire les données et construire des graphes - csv ou matplotlib) (Sébastien & Marceau)<br />
* T7. -> Prétraitement des Tweet(Coralie)<br />
* T5. -> Avancement sur le distribué (Julian)<br />
* T1.2 -> Page de login du front, fix problème de CSS sur les graphes (Quentin)<br />
* T3.2 -> Amélioration du classifieur, tests en changeant les layers, le batch-size, etc. (Quentin)<br />
<br />
====Vendredi====<br />
* Préparation du travail qu'Edwin pourra réaliser durant la semaine de vacances (Edwin travaillera en décalé avec le reste du groupe)<br />
* Début de la mise en place de la base de données (Edwin)<br />
<br />
=== Semaine 5 : 20/02 - 26/02 ===<br />
(Edwin a travaillé la semaine précédente, en décalé avec le reste du groupe)<br />
====Lundi====<br />
*T8. -> Installation des outils liés à la gestion de la base de données MySQL et début de la conception de l'API de communication avec cette base. (Edwin)<br />
====Mardi====<br />
*T8. -> Finalisation de l'API, début des tests et des corrections de bug. (Edwin)<br />
====Mercredi====<br />
*T8. -> Ajout de nouvelles fonctionnalités SQL à l'API et tests de l'API. Création d'un readme et d'un fichier d'exemple complet pour l'utilisation de l'API de MySQL. (Edwin)<br />
*T8. -> Amélioration de l'image Docker, correction de bugs de paths et de librairies manquantes. (Edwin)<br />
====Jeudi====<br />
*T8. -> Review générale du travail lié à la base de données. (Edwin)<br />
*T8. -> Mise en place de MySQL pour Docker. (Edwin)<br />
*Mise à jour du Scrumboard et du wiki-air. (Edwin)<br />
<br />
====Vendredi====<br />
*T8. -> Amélioration du Docker pour tenter de régler des problèmes de ports liés à MySQL (non terminé). (Edwin) <br />
*T8. -> Tests unitaires de fonctionnement de serveurs apaches. (Edwin)<br />
<br />
=== Semaine 5 : 27/02 - 28/02 ===<br />
<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
== Sprint 3 ==<br />
=== Semaine 6 : 27/02 - 05/03 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
=== Semaine 7 : 06/03 - 12/03 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=Fiche_de_suivi_-_Recommandation_intelligente_de_films&diff=33827Fiche de suivi - Recommandation intelligente de films2017-02-16T16:29:38Z<p>Elsa.Navarro: /* Jeudi */</p>
<hr />
<div>Voici la Fiche de suivi du projet de fin d'études DeepMovies 2016-2017<br />
<br />
[[Suggestion_intelligente_de_films_basée_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin (Responsable innovation)<br />
* Hattinguais Julian (Responsable qualité)<br />
* Navarro Elsa (Responsable communication, Médiatrice)<br />
* Dunand Quentin (Responsable des deadlines,Responsable du front-end)<br />
<br />
= Avancée du projet =<br />
Le scrumboard utilisé pour le projet est visible dans l'onglet Projet de l'organisation DeepLearningMovies que nous avons créé sur Github. Chaque tâche est réalisée par un ou plusieurs membre(s) de l'équipe et testée par un autre membre de l'équipe.<br />
<br />
== Sprint 0 ==<br />
<br />
===Sprint dédié aux travaux préparatoires du projet===<br />
* Debriefing autour du projet<br />
* Renseignements sur les technologies et principaux défis techniques<br />
* Maquette de tests sur la faisabilité du projet (recherche de solutions pour les principaux problèmes techniques afin de guider nos choix technologiques et choix de fonctionnalités) <br />
* Choix technologiques<br />
* Préparation des environnements<br />
* Établissement de la liste des exigences fonctionnelles et non fonctionnelles<br />
<br />
<br />
[[File:Sprint0-Semaine1.jpg|1400px|middle]]<br />
<br />
=== Semaine 1 : 23/01 - 29/01 ===<br />
* Mise en place du wiki (Edwin)<br />
* Recherche sur les technologies et les problèmes techniques (Tous)<br />
* Prise RDV avec Massih-Reza Amini pour renseignements (Coralie)<br />
* Mise en place d'un agenda pour le suivi du projet (Coralie)<br />
* Comment lier l'API au front-end ? AngularJS ou Polymer ? ... (Quentin)<br />
<br />
* Mise en place de l'architecture (Tous) avant de faire un prototype comme prévu.<br />
* Installation, compréhension et manipulation de Keras (Tous)<br />
* Recherche mise en place API-REST Python pour le back-end (Julian)<br />
* Mise en place du front-end - première requêtes - choix Angular pour communiquer avec une API-REST (Quentin)<br />
* Traitement de données simple en se basant juste sur le vote des utilisateurs de TMDb sur les films (Edwin, Coralie, Elsa)<br />
* Mise en place d'un prototype capable de récolter grâce à l'API de TMDB les informations de films ciblés. Puis construction d'un modèle de Deep Learning capable de prédire si une personne va aimer un film ou non en fonction de sa note. (Edwin, Coralie)<br />
* Recherche de la transformation de texte en valeurs numériques (String to Float) et plus généralement du prétraitement des données (Elsa, Coralie, Quentin) : découvertes de Word2Vec et de [http://nlp.stanford.edu/projects/glove/ GloVe].<br />
<br />
<br />
* Rendez-vous avec Massih-Reza Amini pour éclaircir le sujet, notamment au sujet du pré-traitement du texte. (Tous)<br />
* Premiers scripts Python pour le prétraitement des données : import depuis un script JSON (Julian) et transformation sous forme de vecteur moyen pour un film donné (Elsa), recherche d'une méthode plus approfondie pour traiter le Résumé (Coralie).<br />
* Réflexion sur les choix des différents layers de traitement des données et sur l'étape d'embedding des données (premier traitement) (Edwin).<br />
* Mise en place d'un système de notation fonctionnel qui permet d'enregistrer les données à partir du front (Quentin).<br />
<br />
== Sprint 1 ==<br />
<br />
===Tâches du Sprint1===<br />
* T1. Établissement des vues principales côté client (recherche et annotation de films)<br />
* T2. Mise en place du processus de pré-traitement des données (titre, mots clés, résumé, note, artiste, producteur)<br />
* T3. Mise en place du réseau neuronal (réseau neuronal simple)<br />
* T4. Mise en place de la structure de test du réseau neuronal (former les corpus de données, cross validation, test de précision)<br />
* T5. Mise en place de l'environnement système (Docker)<br />
<br />
=== Semaine 2 : 30/01 - 05/02 ===<br />
<br />
[[File:Sprint1-Semaine2.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Préparation du premier sprint :<br />
** Mise au point sur le travail réalisé la semaine passée et sur le travail à réaliser durant le sprint<br />
** Établissement d'une liste de fonctionnalités, avec une estimation de l'importance et du temps de réalisation de chaque tâche<br />
** Sélection des fonctionnalités à réaliser au cours du Sprint, remplissage du Scrumboard<br />
* Mise au point sur l'arborescence du git / architecture du projet<br />
* Installation d'une version GPU pour Keras et Tensor-Flow sur les machines équipées d'un bon GPU<br />
<br />
====Mardi====<br />
<br />
* Réunion avec Didier Donsez : <br />
** Technologies : storm, spark, flint (temps réel) pour Twitter<br />
** Distribution : préparer un déploiement sur GRID5000, contacter Olivier Richard et préparer un container Docker<br />
** Utiliser Github pour héberger le site web<br />
<br />
* T1. -> Vues "recherche de films", "annotation de film" et "consultation des films annotés" (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** prétraitement des mots via Glove (Elsa, Edwin, Julian)<br />
** récupération des données (Julian)<br />
** mise en place de l'embedding (Edwin)<br />
** mise en place d'une librairie pour le pré-traitement des données envoyées aux classifieur (Julian)<br />
** Import des modules (Julian)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Chargement des images de films côté client (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" + Ajout "genre" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** extraction des données JSON via l'API (Elsa)<br />
** prétraitement des genres (Julian)<br />
** prétraitement général (mise en forme de la matrice de données) (Edwin)<br />
** revue de code (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur sous Keras - Elephas ? (Coralie)<br />
<br />
====Jeudi====<br />
<br />
* Cours de MPI - travail sur la communication au sein d'un groupe<br />
* T1. -> Pagination et chargement d'images (Quentin)<br />
* T3. -> Création d'une première version du classifieur (Elsa, Edwin)<br />
* T4. -> Validation croisée pour pouvoir tester le classifieur correctement (Edwin & Elsa)<br />
* T5. -> Installation version GPU sur PC (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur Keras - Elephas (Coralie)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Déploiement sur github.io (Quentin)<br />
* T3. -> Insertion de Doc2Vec dans le classifieur (Julian)<br />
* T3. -> Revue du classifieur pour obtenir une meilleure précision (Elsa & Edwin)<br />
* T4. -> Mise en place d'un système de test du classifieur automatisé avec k validations croisées pour les films enregistrés dans un fichier JSON (Elsa)<br />
* T4. -> Annotation de films pour constituer la base d'apprentissage/test (Tous)<br />
* T5. -> Auto-formation sur Docker (Coralie, Edwin)<br />
<br />
=== Semaine 3 : 06/02 - 12/02 ===<br />
<br />
[[File:Sprint1-Semaine3.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Cours de MPI - gestion de projet<br />
* T1. -> Ajout d'un boite de dialogue permettant de visualiser les infos d'un film (Quentin)<br />
* T2. -> Fix de bugs dans preprocessing (Julian)<br />
* T4. -> Recherche sur la mise en place de tests avec Python (Elsa)<br />
* T5. -> Mise en place de l'image Docker avec Python, Keras et Tensorflow en partant d'un Ubuntu 14 (Edwin)<br />
* T5. -> Mise en place de l'image Docker avec Spark en partant d'un Ubuntu 14 (Coralie)<br />
<br />
====Mardi====<br />
<br />
* Rendez-vous avec Mr. Amini<br />
* T1. -> Amélioration de la boîte de dialogue pour les infos (Quentin)<br />
* T2. -> Preprocessing des acteurs et des realisateurs et ajout des fonction de test associées (Julian)<br />
* T2. -> Test le modèle D2V sur un analyseur de sentiment de tweets, beaucoup plus objectif que les gouts utilisateurs vis à vis des films (Coralie).<br />
* T2. -> Mise en place de modules de test unitaires dans MovieProject/tests/unit et suppression de fichiers inutiles dans MovieProject/tests (Elsa)<br />
* T4. -> Ajout de nouveaux fichiers de tests (json) et évaluation du classifieur de façon générique sur les fichiers json dans MovieProject/resources/evaluation (Elsa)<br />
* T4. -> Evaluation du classifieur avec la méthode Doc2Vec (Elsa)<br />
* T5. -> Finalisation de l'image Docker avec Python, Keras et Tensorflow (Edwin)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Début de la mise en place des différents modèles d'apprentissage en vue de leur comparaison : <br />
** Réseau neuronal avec Keras (Elsa)<br />
** Perceptron (Coralie)<br />
** Modification du prétraitement afin de pouvoir récupérer les matrices de chacune des variables caractérisant un film (Julian)<br />
* T5. -> Ajout de Spark à l'image Docker (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* T1. -> Poursuite de la création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Poursuite des tests de performance :<br />
** Test de l'influence de chaque variable des films sur le modèle du perceptron, afin de ne sélectionner que les variables pertinentes (Coralie)<br />
** Test du réseau neuronal (Elsa)<br />
** Mise en place d'un SVM pour concurrencer les performances des deux autres modèles (Julian)<br />
* T5. -> Test de l'image Docker (Edwin)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Visualisation des statistiques + explications sur la page d'accueil (Quentin)<br />
* T4. -> Finalisation perceptron + intégration dans evaluation (Coralie)<br />
* T4. -> Finalisation SVM + intégration dans evaluation (Julian)<br />
* T4. -> Mise en place du module evaluation et intégration des modifications de classifieur & preprocessing (Elsa)<br />
* T5. -> Documentation sur Spark (Edwin & Coralie)<br />
<br />
===État du scrumboard en fin du Sprint1===<br />
<br />
[[File:Sprint1-end-Scrumboard.png|1080px|middle]]<br />
<br />
== Sprint 2 ==<br />
<br />
===Tâches du Sprint1===<br />
<br />
*T1.2. Amélioration du front-end (mise en cache, etc.)<br />
*T2.2. Ajout de descripteurs (durée, budget, année de production, compagnie de production, appartenance à une sage) en vue d'améliorer notre modèle d'apprentissage.<br />
*T3.2 Amélioration du réseau neuronal (comparaison avec Perceptron simple, SVM, RN Convolutif)<br />
*T4. Mise en place de la suggestion de films (vue côté front-end et logique côté back-end)<br />
*T5. Distribution de l'apprentissage sur plusieurs machines (Docker - Spark - Mesos - Elephas) & Parallélisation requêtes<br />
*T6. Communication front/back, établissement des routes<br />
*T7. Analyse de sentiment sur les flux Twitter<br />
<br />
=== Semaine 4 : 13/02 - 19/02 ===<br />
<br />
====Lundi====<br />
<br />
* Réunion de fin de sprint1 et de début de sprint0 : discussion autour des avancées, difficultés, retards & établissement fonctionnalités à implémenter au cours du sprint2<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T2.2. -> Revue de la structure du code (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
<br />
====Mardi====<br />
<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T3.2 -> Amélioration du classifieur (Elsa/Quentin)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
*T5. -> Parallélisation des requêtes à l'API TMDB (Julian)<br />
<br />
====Mercredi====<br />
<br />
*T1.2 -> Finalisation du cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T1.2 -> Finalisation des statistiques cinématographique utilisateurs (Quentin)<br />
*T2.2. -> Ajout du descripteurs "budget" avec normalisation (Edwin)<br />
*T3.2 -> Mise en place de la fonction de comparaison des combinaisons de descripteurs de films pour faciliter le travail des DUT (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal LSTM (Coralie)<br />
*T4. -> Changement de la méthode de prédiction de film (Elsa)<br />
*T6. -> Communication front-back test (Elsa/Quentin)<br />
* SRS (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* Rendez-vous avec les DUT : aide sur l'installation du projet, clone du projet Github. <br />
* Préparation de la présentation (Elsa & Edwin)<br />
* Préparation démo (Quentin & Elsa)<br />
* Mise à jour Wiki, SRS, Scrumboard (Elsa & Edwin)<br />
* Aide des DUT (Edwin & Julian)<br />
* T3.2 -> Evaluation du modèle et comparaison avec SVM et Perceptron de manière graphique (extraire les données et construire des graphes - csv ou matplotlib) (Sébastien & Marceau)<br />
* T7. -> Prétraitement des Tweet(Coralie)<br />
* T5. -> Avancement sur le distribué (Julian)<br />
* T1.2 -> Page de login du front, fix problème de CSS sur les graphes (Quentin)<br />
* T3.2 -> Amélioration du classifieur, tests en changeant les layers, le batch-size, etc. (Quentin)<br />
<br />
====Vendredi====<br />
* Préparation du travail qu'Edwin pourra réaliser durant la semaine de vacances (Edwin travaillera en décalé avec le reste du groupe)<br />
<br />
=== Semaine 5 : 20/02 - 26/02 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
== Sprint 3 ==<br />
=== Semaine 6 : 27/02 - 05/03 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
=== Semaine 7 : 06/03 - 12/03 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=Fiche_de_suivi_-_Recommandation_intelligente_de_films&diff=33826Fiche de suivi - Recommandation intelligente de films2017-02-16T16:28:49Z<p>Elsa.Navarro: /* Jeudi */</p>
<hr />
<div>Voici la Fiche de suivi du projet de fin d'études DeepMovies 2016-2017<br />
<br />
[[Suggestion_intelligente_de_films_basée_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin (Responsable innovation)<br />
* Hattinguais Julian (Responsable qualité)<br />
* Navarro Elsa (Responsable communication, Médiatrice)<br />
* Dunand Quentin (Responsable des deadlines,Responsable du front-end)<br />
<br />
= Avancée du projet =<br />
Le scrumboard utilisé pour le projet est visible dans l'onglet Projet de l'organisation DeepLearningMovies que nous avons créé sur Github. Chaque tâche est réalisée par un ou plusieurs membre(s) de l'équipe et testée par un autre membre de l'équipe.<br />
<br />
== Sprint 0 ==<br />
<br />
===Sprint dédié aux travaux préparatoires du projet===<br />
* Debriefing autour du projet<br />
* Renseignements sur les technologies et principaux défis techniques<br />
* Maquette de tests sur la faisabilité du projet (recherche de solutions pour les principaux problèmes techniques afin de guider nos choix technologiques et choix de fonctionnalités) <br />
* Choix technologiques<br />
* Préparation des environnements<br />
* Établissement de la liste des exigences fonctionnelles et non fonctionnelles<br />
<br />
<br />
[[File:Sprint0-Semaine1.jpg|1400px|middle]]<br />
<br />
=== Semaine 1 : 23/01 - 29/01 ===<br />
* Mise en place du wiki (Edwin)<br />
* Recherche sur les technologies et les problèmes techniques (Tous)<br />
* Prise RDV avec Massih-Reza Amini pour renseignements (Coralie)<br />
* Mise en place d'un agenda pour le suivi du projet (Coralie)<br />
* Comment lier l'API au front-end ? AngularJS ou Polymer ? ... (Quentin)<br />
<br />
* Mise en place de l'architecture (Tous) avant de faire un prototype comme prévu.<br />
* Installation, compréhension et manipulation de Keras (Tous)<br />
* Recherche mise en place API-REST Python pour le back-end (Julian)<br />
* Mise en place du front-end - première requêtes - choix Angular pour communiquer avec une API-REST (Quentin)<br />
* Traitement de données simple en se basant juste sur le vote des utilisateurs de TMDb sur les films (Edwin, Coralie, Elsa)<br />
* Mise en place d'un prototype capable de récolter grâce à l'API de TMDB les informations de films ciblés. Puis construction d'un modèle de Deep Learning capable de prédire si une personne va aimer un film ou non en fonction de sa note. (Edwin, Coralie)<br />
* Recherche de la transformation de texte en valeurs numériques (String to Float) et plus généralement du prétraitement des données (Elsa, Coralie, Quentin) : découvertes de Word2Vec et de [http://nlp.stanford.edu/projects/glove/ GloVe].<br />
<br />
<br />
* Rendez-vous avec Massih-Reza Amini pour éclaircir le sujet, notamment au sujet du pré-traitement du texte. (Tous)<br />
* Premiers scripts Python pour le prétraitement des données : import depuis un script JSON (Julian) et transformation sous forme de vecteur moyen pour un film donné (Elsa), recherche d'une méthode plus approfondie pour traiter le Résumé (Coralie).<br />
* Réflexion sur les choix des différents layers de traitement des données et sur l'étape d'embedding des données (premier traitement) (Edwin).<br />
* Mise en place d'un système de notation fonctionnel qui permet d'enregistrer les données à partir du front (Quentin).<br />
<br />
== Sprint 1 ==<br />
<br />
===Tâches du Sprint1===<br />
* T1. Établissement des vues principales côté client (recherche et annotation de films)<br />
* T2. Mise en place du processus de pré-traitement des données (titre, mots clés, résumé, note, artiste, producteur)<br />
* T3. Mise en place du réseau neuronal (réseau neuronal simple)<br />
* T4. Mise en place de la structure de test du réseau neuronal (former les corpus de données, cross validation, test de précision)<br />
* T5. Mise en place de l'environnement système (Docker)<br />
<br />
=== Semaine 2 : 30/01 - 05/02 ===<br />
<br />
[[File:Sprint1-Semaine2.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Préparation du premier sprint :<br />
** Mise au point sur le travail réalisé la semaine passée et sur le travail à réaliser durant le sprint<br />
** Établissement d'une liste de fonctionnalités, avec une estimation de l'importance et du temps de réalisation de chaque tâche<br />
** Sélection des fonctionnalités à réaliser au cours du Sprint, remplissage du Scrumboard<br />
* Mise au point sur l'arborescence du git / architecture du projet<br />
* Installation d'une version GPU pour Keras et Tensor-Flow sur les machines équipées d'un bon GPU<br />
<br />
====Mardi====<br />
<br />
* Réunion avec Didier Donsez : <br />
** Technologies : storm, spark, flint (temps réel) pour Twitter<br />
** Distribution : préparer un déploiement sur GRID5000, contacter Olivier Richard et préparer un container Docker<br />
** Utiliser Github pour héberger le site web<br />
<br />
* T1. -> Vues "recherche de films", "annotation de film" et "consultation des films annotés" (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** prétraitement des mots via Glove (Elsa, Edwin, Julian)<br />
** récupération des données (Julian)<br />
** mise en place de l'embedding (Edwin)<br />
** mise en place d'une librairie pour le pré-traitement des données envoyées aux classifieur (Julian)<br />
** Import des modules (Julian)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Chargement des images de films côté client (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" + Ajout "genre" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** extraction des données JSON via l'API (Elsa)<br />
** prétraitement des genres (Julian)<br />
** prétraitement général (mise en forme de la matrice de données) (Edwin)<br />
** revue de code (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur sous Keras - Elephas ? (Coralie)<br />
<br />
====Jeudi====<br />
<br />
* Cours de MPI - travail sur la communication au sein d'un groupe<br />
* T1. -> Pagination et chargement d'images (Quentin)<br />
* T3. -> Création d'une première version du classifieur (Elsa, Edwin)<br />
* T4. -> Validation croisée pour pouvoir tester le classifieur correctement (Edwin & Elsa)<br />
* T5. -> Installation version GPU sur PC (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur Keras - Elephas (Coralie)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Déploiement sur github.io (Quentin)<br />
* T3. -> Insertion de Doc2Vec dans le classifieur (Julian)<br />
* T3. -> Revue du classifieur pour obtenir une meilleure précision (Elsa & Edwin)<br />
* T4. -> Mise en place d'un système de test du classifieur automatisé avec k validations croisées pour les films enregistrés dans un fichier JSON (Elsa)<br />
* T4. -> Annotation de films pour constituer la base d'apprentissage/test (Tous)<br />
* T5. -> Auto-formation sur Docker (Coralie, Edwin)<br />
<br />
=== Semaine 3 : 06/02 - 12/02 ===<br />
<br />
[[File:Sprint1-Semaine3.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Cours de MPI - gestion de projet<br />
* T1. -> Ajout d'un boite de dialogue permettant de visualiser les infos d'un film (Quentin)<br />
* T2. -> Fix de bugs dans preprocessing (Julian)<br />
* T4. -> Recherche sur la mise en place de tests avec Python (Elsa)<br />
* T5. -> Mise en place de l'image Docker avec Python, Keras et Tensorflow en partant d'un Ubuntu 14 (Edwin)<br />
* T5. -> Mise en place de l'image Docker avec Spark en partant d'un Ubuntu 14 (Coralie)<br />
<br />
====Mardi====<br />
<br />
* Rendez-vous avec Mr. Amini<br />
* T1. -> Amélioration de la boîte de dialogue pour les infos (Quentin)<br />
* T2. -> Preprocessing des acteurs et des realisateurs et ajout des fonction de test associées (Julian)<br />
* T2. -> Test le modèle D2V sur un analyseur de sentiment de tweets, beaucoup plus objectif que les gouts utilisateurs vis à vis des films (Coralie).<br />
* T2. -> Mise en place de modules de test unitaires dans MovieProject/tests/unit et suppression de fichiers inutiles dans MovieProject/tests (Elsa)<br />
* T4. -> Ajout de nouveaux fichiers de tests (json) et évaluation du classifieur de façon générique sur les fichiers json dans MovieProject/resources/evaluation (Elsa)<br />
* T4. -> Evaluation du classifieur avec la méthode Doc2Vec (Elsa)<br />
* T5. -> Finalisation de l'image Docker avec Python, Keras et Tensorflow (Edwin)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Début de la mise en place des différents modèles d'apprentissage en vue de leur comparaison : <br />
** Réseau neuronal avec Keras (Elsa)<br />
** Perceptron (Coralie)<br />
** Modification du prétraitement afin de pouvoir récupérer les matrices de chacune des variables caractérisant un film (Julian)<br />
* T5. -> Ajout de Spark à l'image Docker (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* T1. -> Poursuite de la création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Poursuite des tests de performance :<br />
** Test de l'influence de chaque variable des films sur le modèle du perceptron, afin de ne sélectionner que les variables pertinentes (Coralie)<br />
** Test du réseau neuronal (Elsa)<br />
** Mise en place d'un SVM pour concurrencer les performances des deux autres modèles (Julian)<br />
* T5. -> Test de l'image Docker (Edwin)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Visualisation des statistiques + explications sur la page d'accueil (Quentin)<br />
* T4. -> Finalisation perceptron + intégration dans evaluation (Coralie)<br />
* T4. -> Finalisation SVM + intégration dans evaluation (Julian)<br />
* T4. -> Mise en place du module evaluation et intégration des modifications de classifieur & preprocessing (Elsa)<br />
* T5. -> Documentation sur Spark (Edwin & Coralie)<br />
<br />
===État du scrumboard en fin du Sprint1===<br />
<br />
[[File:Sprint1-end-Scrumboard.png|1080px|middle]]<br />
<br />
== Sprint 2 ==<br />
<br />
===Tâches du Sprint1===<br />
<br />
*T1.2. Amélioration du front-end (mise en cache, etc.)<br />
*T2.2. Ajout de descripteurs (durée, budget, année de production, compagnie de production, appartenance à une sage) en vue d'améliorer notre modèle d'apprentissage.<br />
*T3.2 Amélioration du réseau neuronal (comparaison avec Perceptron simple, SVM, RN Convolutif)<br />
*T4. Mise en place de la suggestion de films (vue côté front-end et logique côté back-end)<br />
*T5. Distribution de l'apprentissage sur plusieurs machines (Docker - Spark - Mesos - Elephas) & Parallélisation requêtes<br />
*T6. Communication front/back, établissement des routes<br />
*T7. Analyse de sentiment sur les flux Twitter<br />
<br />
=== Semaine 4 : 13/02 - 19/02 ===<br />
<br />
====Lundi====<br />
<br />
* Réunion de fin de sprint1 et de début de sprint0 : discussion autour des avancées, difficultés, retards & établissement fonctionnalités à implémenter au cours du sprint2<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T2.2. -> Revue de la structure du code (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
<br />
====Mardi====<br />
<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T3.2 -> Amélioration du classifieur (Elsa/Quentin)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
*T5. -> Parallélisation des requêtes à l'API TMDB (Julian)<br />
<br />
====Mercredi====<br />
<br />
*T1.2 -> Finalisation du cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T1.2 -> Finalisation des statistiques cinématographique utilisateurs (Quentin)<br />
*T2.2. -> Ajout du descripteurs "budget" avec normalisation (Edwin)<br />
*T3.2 -> Mise en place de la fonction de comparaison des combinaisons de descripteurs de films pour faciliter le travail des DUT (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal LSTM (Coralie)<br />
*T4. -> Changement de la méthode de prédiction de film (Elsa)<br />
*T6. -> Communication front-back test (Elsa/Quentin)<br />
* SRS (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* Rendez-vous avec les DUT : aide sur l'installation du projet, clone du projet Github. <br />
* Préparation de la présentation (Elsa & Edwin)<br />
* Mise à jour Wiki, SRS, Scrumboard (Elsa & Edwin)<br />
* T3.2 -> Evaluation du modèle et comparaison avec SVM et Perceptron de manière graphique (extraire les données et construire des graphes - csv ou matplotlib) (Sébastien & Marceau)<br />
* Aide des DUT (Edwin & Julian)<br />
* T7. -> Prétraitement des Tweet(Coralie)<br />
* T5. -> Avancement sur le distribué (Julian)<br />
* T1.2 -> Page de login du front, fix problème de CSS sur les graphes (Quentin)<br />
* T3.2 -> Amélioration du classifieur, tests en changeant les layers, le batch-size, etc. (Quentin)<br />
<br />
====Vendredi====<br />
* Préparation du travail qu'Edwin pourra réaliser durant la semaine de vacances (Edwin travaillera en décalé avec le reste du groupe)<br />
<br />
=== Semaine 5 : 20/02 - 26/02 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
== Sprint 3 ==<br />
=== Semaine 6 : 27/02 - 05/03 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
=== Semaine 7 : 06/03 - 12/03 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=Fiche_de_suivi_-_Recommandation_intelligente_de_films&diff=33781Fiche de suivi - Recommandation intelligente de films2017-02-16T08:29:16Z<p>Elsa.Navarro: /* Sprint 2 */</p>
<hr />
<div>Voici la Fiche de suivi du projet de fin d'études DeepMovies 2016-2017<br />
<br />
[[Suggestion_intelligente_de_films_basée_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin (Responsable innovation)<br />
* Hattinguais Julian (Responsable qualité)<br />
* Navarro Elsa (Responsable communication, Médiatrice)<br />
* Dunand Quentin (Responsable des deadlines,Responsable du front-end)<br />
<br />
= Avancée du projet =<br />
Le scrumboard utilisé pour le projet est visible dans l'onglet Projet de l'organisation DeepLearningMovies que nous avons créé sur Github. Chaque tâche est réalisée par un ou plusieurs membre(s) de l'équipe et testée par un autre membre de l'équipe.<br />
<br />
== Sprint 0 ==<br />
<br />
===Sprint dédié aux travaux préparatoires du projet===<br />
* Debriefing autour du projet<br />
* Renseignements sur les technologies et principaux défis techniques<br />
* Maquette de tests sur la faisabilité du projet (recherche de solutions pour les principaux problèmes techniques afin de guider nos choix technologiques et choix de fonctionnalités) <br />
* Choix technologiques<br />
* Préparation des environnements<br />
* Établissement de la liste des exigences fonctionnelles et non fonctionnelles<br />
<br />
<br />
[[File:Sprint0-Semaine1.jpg|1400px|middle]]<br />
<br />
=== Semaine 1 : 23/01 - 29/01 ===<br />
* Mise en place du wiki (Edwin)<br />
* Recherche sur les technologies et les problèmes techniques (Tous)<br />
* Prise RDV avec Massih-Reza Amini pour renseignements (Coralie)<br />
* Mise en place d'un agenda pour le suivi du projet (Coralie)<br />
* Comment lier l'API au front-end ? AngularJS ou Polymer ? ... (Quentin)<br />
<br />
* Mise en place de l'architecture (Tous) avant de faire un prototype comme prévu.<br />
* Installation, compréhension et manipulation de Keras (Tous)<br />
* Recherche mise en place API-REST Python pour le back-end (Julian)<br />
* Mise en place du front-end - première requêtes - choix Angular pour communiquer avec une API-REST (Quentin)<br />
* Traitement de données simple en se basant juste sur le vote des utilisateurs de TMDb sur les films (Edwin, Coralie, Elsa)<br />
* Mise en place d'un prototype capable de récolter grâce à l'API de TMDB les informations de films ciblés. Puis construction d'un modèle de Deep Learning capable de prédire si une personne va aimer un film ou non en fonction de sa note. (Edwin, Coralie)<br />
* Recherche de la transformation de texte en valeurs numériques (String to Float) et plus généralement du prétraitement des données (Elsa, Coralie, Quentin) : découvertes de Word2Vec et de [http://nlp.stanford.edu/projects/glove/ GloVe].<br />
<br />
<br />
* Rendez-vous avec Massih-Reza Amini pour éclaircir le sujet, notamment au sujet du pré-traitement du texte. (Tous)<br />
* Premiers scripts Python pour le prétraitement des données : import depuis un script JSON (Julian) et transformation sous forme de vecteur moyen pour un film donné (Elsa), recherche d'une méthode plus approfondie pour traiter le Résumé (Coralie).<br />
* Réflexion sur les choix des différents layers de traitement des données et sur l'étape d'embedding des données (premier traitement) (Edwin).<br />
* Mise en place d'un système de notation fonctionnel qui permet d'enregistrer les données à partir du front (Quentin).<br />
<br />
== Sprint 1 ==<br />
<br />
===Tâches du Sprint1===<br />
* T1. Établissement des vues principales côté client (recherche et annotation de films)<br />
* T2. Mise en place du processus de pré-traitement des données (titre, mots clés, résumé, note, artiste, producteur)<br />
* T3. Mise en place du réseau neuronal (réseau neuronal simple)<br />
* T4. Mise en place de la structure de test du réseau neuronal (former les corpus de données, cross validation, test de précision)<br />
* T5. Mise en place de l'environnement système (Docker)<br />
<br />
=== Semaine 2 : 30/01 - 05/02 ===<br />
<br />
[[File:Sprint1-Semaine2.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Préparation du premier sprint :<br />
** Mise au point sur le travail réalisé la semaine passée et sur le travail à réaliser durant le sprint<br />
** Établissement d'une liste de fonctionnalités, avec une estimation de l'importance et du temps de réalisation de chaque tâche<br />
** Sélection des fonctionnalités à réaliser au cours du Sprint, remplissage du Scrumboard<br />
* Mise au point sur l'arborescence du git / architecture du projet<br />
* Installation d'une version GPU pour Keras et Tensor-Flow sur les machines équipées d'un bon GPU<br />
<br />
====Mardi====<br />
<br />
* Réunion avec Didier Donsez : <br />
** Technologies : storm, spark, flint (temps réel) pour Twitter<br />
** Distribution : préparer un déploiement sur GRID5000, contacter Olivier Richard et préparer un container Docker<br />
** Utiliser Github pour héberger le site web<br />
<br />
* T1. -> Vues "recherche de films", "annotation de film" et "consultation des films annotés" (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** prétraitement des mots via Glove (Elsa, Edwin, Julian)<br />
** récupération des données (Julian)<br />
** mise en place de l'embedding (Edwin)<br />
** mise en place d'une librairie pour le pré-traitement des données envoyées aux classifieur (Julian)<br />
** Import des modules (Julian)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Chargement des images de films côté client (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" + Ajout "genre" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** extraction des données JSON via l'API (Elsa)<br />
** prétraitement des genres (Julian)<br />
** prétraitement général (mise en forme de la matrice de données) (Edwin)<br />
** revue de code (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur sous Keras - Elephas ? (Coralie)<br />
<br />
====Jeudi====<br />
<br />
* Cours de MPI - travail sur la communication au sein d'un groupe<br />
* T1. -> Pagination et chargement d'images (Quentin)<br />
* T3. -> Création d'une première version du classifieur (Elsa, Edwin)<br />
* T4. -> Validation croisée pour pouvoir tester le classifieur correctement (Edwin & Elsa)<br />
* T5. -> Installation version GPU sur PC (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur Keras - Elephas (Coralie)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Déploiement sur github.io (Quentin)<br />
* T3. -> Insertion de Doc2Vec dans le classifieur (Julian)<br />
* T3. -> Revue du classifieur pour obtenir une meilleure précision (Elsa & Edwin)<br />
* T4. -> Mise en place d'un système de test du classifieur automatisé avec k validations croisées pour les films enregistrés dans un fichier JSON (Elsa)<br />
* T4. -> Annotation de films pour constituer la base d'apprentissage/test (Tous)<br />
* T5. -> Auto-formation sur Docker (Coralie, Edwin)<br />
<br />
=== Semaine 3 : 06/02 - 12/02 ===<br />
<br />
[[File:Sprint1-Semaine3.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Cours de MPI - gestion de projet<br />
* T1. -> Ajout d'un boite de dialogue permettant de visualiser les infos d'un film (Quentin)<br />
* T2. -> Fix de bugs dans preprocessing (Julian)<br />
* T4. -> Recherche sur la mise en place de tests avec Python (Elsa)<br />
* T5. -> Mise en place de l'image Docker avec Python, Keras et Tensorflow en partant d'un Ubuntu 14 (Edwin)<br />
* T5. -> Mise en place de l'image Docker avec Spark en partant d'un Ubuntu 14 (Coralie)<br />
<br />
====Mardi====<br />
<br />
* Rendez-vous avec Mr. Amini<br />
* T1. -> Amélioration de la boîte de dialogue pour les infos (Quentin)<br />
* T2. -> Preprocessing des acteurs et des realisateurs et ajout des fonction de test associées (Julian)<br />
* T2. -> Test le modèle D2V sur un analyseur de sentiment de tweets, beaucoup plus objectif que les gouts utilisateurs vis à vis des films (Coralie).<br />
* T2. -> Mise en place de modules de test unitaires dans MovieProject/tests/unit et suppression de fichiers inutiles dans MovieProject/tests (Elsa)<br />
* T4. -> Ajout de nouveaux fichiers de tests (json) et évaluation du classifieur de façon générique sur les fichiers json dans MovieProject/resources/evaluation (Elsa)<br />
* T4. -> Evaluation du classifieur avec la méthode Doc2Vec (Elsa)<br />
* T5. -> Finalisation de l'image Docker avec Python, Keras et Tensorflow (Edwin)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Début de la mise en place des différents modèles d'apprentissage en vue de leur comparaison : <br />
** Réseau neuronal avec Keras (Elsa)<br />
** Perceptron (Coralie)<br />
** Modification du prétraitement afin de pouvoir récupérer les matrices de chacune des variables caractérisant un film (Julian)<br />
* T5. -> Ajout de Spark à l'image Docker (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* T1. -> Poursuite de la création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Poursuite des tests de performance :<br />
** Test de l'influence de chaque variable des films sur le modèle du perceptron, afin de ne sélectionner que les variables pertinentes (Coralie)<br />
** Test du réseau neuronal (Elsa)<br />
** Mise en place d'un SVM pour concurrencer les performances des deux autres modèles (Julian)<br />
* T5. -> Test de l'image Docker (Edwin)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Visualisation des statistiques + explications sur la page d'accueil (Quentin)<br />
* T4. -> Finalisation perceptron + intégration dans evaluation (Coralie)<br />
* T4. -> Finalisation SVM + intégration dans evaluation (Julian)<br />
* T4. -> Mise en place du module evaluation et intégration des modifications de classifieur & preprocessing (Elsa)<br />
* T5. -> Documentation sur Spark (Edwin & Coralie)<br />
<br />
===État du scrumboard en fin du Sprint1===<br />
<br />
[[File:Sprint1-end-Scrumboard.png|1080px|middle]]<br />
<br />
== Sprint 2 ==<br />
<br />
===Tâches du Sprint1===<br />
<br />
*T1.2. Amélioration du front-end (mise en cache, etc.)<br />
*T2.2. Ajout de descripteurs (durée, budget, année de production, compagnie de production, appartenance à une sage) en vue d'améliorer notre modèle d'apprentissage.<br />
*T3.2 Amélioration du réseau neuronal (comparaison avec Perceptron simple, SVM, RN Convolutif)<br />
*T4. Mise en place de la suggestion de films (vue côté front-end et logique côté back-end)<br />
*T5. Distribution de l'apprentissage sur plusieurs machines (Docker - Spark - Mesos - Elephas) & Parallélisation requêtes<br />
*T6. Communication front/back, établissement des routes<br />
*T7. Analyse de sentiment sur les flux Twitter<br />
<br />
=== Semaine 4 : 13/02 - 19/02 ===<br />
<br />
====Lundi====<br />
<br />
* Réunion de fin de sprint1 et de début de sprint0 : discussion autour des avancées, difficultés, retards & établissement fonctionnalités à implémenter au cours du sprint2<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T2.2. -> Revue de la structure du code (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
<br />
====Mardi====<br />
<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T3.2 -> Amélioration du classifieur (Elsa/Quentin)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
*T5. -> Parallélisation des requêtes à l'API TMDB (Julian)<br />
<br />
====Mercredi====<br />
<br />
*T1.2 -> Finalisation du cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T1.2 -> Finalisation des statistiques cinématographique utilisateurs (Quentin)<br />
*T2.2. -> Ajout du descripteurs "budget" avec normalisation (Edwin)<br />
*T3.2 -> Mise en place de la fonction de comparaison des combinaisons de descripteurs de films pour faciliter le travail des DUT (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal LSTM (Coralie)<br />
*T4. -> Changement de la méthode de prédiction de film (Elsa)<br />
*T6. -> Communication front-back test (Elsa/Quentin)<br />
* SRS (Edwin)<br />
<br />
====Jeudi====<br />
<br />
<br />
<br />
====Vendredi====<br />
<br />
=== Semaine 5 : 20/02 - 26/02 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
== Sprint 3 ==<br />
=== Semaine 6 : 27/02 - 05/03 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
=== Semaine 7 : 06/03 - 12/03 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=Fiche_de_suivi_-_Recommandation_intelligente_de_films&diff=33780Fiche de suivi - Recommandation intelligente de films2017-02-16T08:25:28Z<p>Elsa.Navarro: /* Mercredi */</p>
<hr />
<div>Voici la Fiche de suivi du projet de fin d'études DeepMovies 2016-2017<br />
<br />
[[Suggestion_intelligente_de_films_basée_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin (Responsable innovation)<br />
* Hattinguais Julian (Responsable qualité)<br />
* Navarro Elsa (Responsable communication, Médiatrice)<br />
* Dunand Quentin (Responsable des deadlines,Responsable du front-end)<br />
<br />
= Avancée du projet =<br />
Le scrumboard utilisé pour le projet est visible dans l'onglet Projet de l'organisation DeepLearningMovies que nous avons créé sur Github. Chaque tâche est réalisée par un ou plusieurs membre(s) de l'équipe et testée par un autre membre de l'équipe.<br />
<br />
== Sprint 0 ==<br />
<br />
===Sprint dédié aux travaux préparatoires du projet===<br />
* Debriefing autour du projet<br />
* Renseignements sur les technologies et principaux défis techniques<br />
* Maquette de tests sur la faisabilité du projet (recherche de solutions pour les principaux problèmes techniques afin de guider nos choix technologiques et choix de fonctionnalités) <br />
* Choix technologiques<br />
* Préparation des environnements<br />
* Établissement de la liste des exigences fonctionnelles et non fonctionnelles<br />
<br />
<br />
[[File:Sprint0-Semaine1.jpg|1400px|middle]]<br />
<br />
=== Semaine 1 : 23/01 - 29/01 ===<br />
* Mise en place du wiki (Edwin)<br />
* Recherche sur les technologies et les problèmes techniques (Tous)<br />
* Prise RDV avec Massih-Reza Amini pour renseignements (Coralie)<br />
* Mise en place d'un agenda pour le suivi du projet (Coralie)<br />
* Comment lier l'API au front-end ? AngularJS ou Polymer ? ... (Quentin)<br />
<br />
* Mise en place de l'architecture (Tous) avant de faire un prototype comme prévu.<br />
* Installation, compréhension et manipulation de Keras (Tous)<br />
* Recherche mise en place API-REST Python pour le back-end (Julian)<br />
* Mise en place du front-end - première requêtes - choix Angular pour communiquer avec une API-REST (Quentin)<br />
* Traitement de données simple en se basant juste sur le vote des utilisateurs de TMDb sur les films (Edwin, Coralie, Elsa)<br />
* Mise en place d'un prototype capable de récolter grâce à l'API de TMDB les informations de films ciblés. Puis construction d'un modèle de Deep Learning capable de prédire si une personne va aimer un film ou non en fonction de sa note. (Edwin, Coralie)<br />
* Recherche de la transformation de texte en valeurs numériques (String to Float) et plus généralement du prétraitement des données (Elsa, Coralie, Quentin) : découvertes de Word2Vec et de [http://nlp.stanford.edu/projects/glove/ GloVe].<br />
<br />
<br />
* Rendez-vous avec Massih-Reza Amini pour éclaircir le sujet, notamment au sujet du pré-traitement du texte. (Tous)<br />
* Premiers scripts Python pour le prétraitement des données : import depuis un script JSON (Julian) et transformation sous forme de vecteur moyen pour un film donné (Elsa), recherche d'une méthode plus approfondie pour traiter le Résumé (Coralie).<br />
* Réflexion sur les choix des différents layers de traitement des données et sur l'étape d'embedding des données (premier traitement) (Edwin).<br />
* Mise en place d'un système de notation fonctionnel qui permet d'enregistrer les données à partir du front (Quentin).<br />
<br />
== Sprint 1 ==<br />
<br />
===Tâches du Sprint1===<br />
* T1. Établissement des vues principales côté client (recherche et annotation de films)<br />
* T2. Mise en place du processus de pré-traitement des données (titre, mots clés, résumé, note, artiste, producteur)<br />
* T3. Mise en place du réseau neuronal (réseau neuronal simple)<br />
* T4. Mise en place de la structure de test du réseau neuronal (former les corpus de données, cross validation, test de précision)<br />
* T5. Mise en place de l'environnement système (Docker)<br />
<br />
=== Semaine 2 : 30/01 - 05/02 ===<br />
<br />
[[File:Sprint1-Semaine2.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Préparation du premier sprint :<br />
** Mise au point sur le travail réalisé la semaine passée et sur le travail à réaliser durant le sprint<br />
** Établissement d'une liste de fonctionnalités, avec une estimation de l'importance et du temps de réalisation de chaque tâche<br />
** Sélection des fonctionnalités à réaliser au cours du Sprint, remplissage du Scrumboard<br />
* Mise au point sur l'arborescence du git / architecture du projet<br />
* Installation d'une version GPU pour Keras et Tensor-Flow sur les machines équipées d'un bon GPU<br />
<br />
====Mardi====<br />
<br />
* Réunion avec Didier Donsez : <br />
** Technologies : storm, spark, flint (temps réel) pour Twitter<br />
** Distribution : préparer un déploiement sur GRID5000, contacter Olivier Richard et préparer un container Docker<br />
** Utiliser Github pour héberger le site web<br />
<br />
* T1. -> Vues "recherche de films", "annotation de film" et "consultation des films annotés" (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** prétraitement des mots via Glove (Elsa, Edwin, Julian)<br />
** récupération des données (Julian)<br />
** mise en place de l'embedding (Edwin)<br />
** mise en place d'une librairie pour le pré-traitement des données envoyées aux classifieur (Julian)<br />
** Import des modules (Julian)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Chargement des images de films côté client (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" + Ajout "genre" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** extraction des données JSON via l'API (Elsa)<br />
** prétraitement des genres (Julian)<br />
** prétraitement général (mise en forme de la matrice de données) (Edwin)<br />
** revue de code (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur sous Keras - Elephas ? (Coralie)<br />
<br />
====Jeudi====<br />
<br />
* Cours de MPI - travail sur la communication au sein d'un groupe<br />
* T1. -> Pagination et chargement d'images (Quentin)<br />
* T3. -> Création d'une première version du classifieur (Elsa, Edwin)<br />
* T4. -> Validation croisée pour pouvoir tester le classifieur correctement (Edwin & Elsa)<br />
* T5. -> Installation version GPU sur PC (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur Keras - Elephas (Coralie)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Déploiement sur github.io (Quentin)<br />
* T3. -> Insertion de Doc2Vec dans le classifieur (Julian)<br />
* T3. -> Revue du classifieur pour obtenir une meilleure précision (Elsa & Edwin)<br />
* T4. -> Mise en place d'un système de test du classifieur automatisé avec k validations croisées pour les films enregistrés dans un fichier JSON (Elsa)<br />
* T4. -> Annotation de films pour constituer la base d'apprentissage/test (Tous)<br />
* T5. -> Auto-formation sur Docker (Coralie, Edwin)<br />
<br />
=== Semaine 3 : 06/02 - 12/02 ===<br />
<br />
[[File:Sprint1-Semaine3.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Cours de MPI - gestion de projet<br />
* T1. -> Ajout d'un boite de dialogue permettant de visualiser les infos d'un film (Quentin)<br />
* T2. -> Fix de bugs dans preprocessing (Julian)<br />
* T4. -> Recherche sur la mise en place de tests avec Python (Elsa)<br />
* T5. -> Mise en place de l'image Docker avec Python, Keras et Tensorflow en partant d'un Ubuntu 14 (Edwin)<br />
* T5. -> Mise en place de l'image Docker avec Spark en partant d'un Ubuntu 14 (Coralie)<br />
<br />
====Mardi====<br />
<br />
* Rendez-vous avec Mr. Amini<br />
* T1. -> Amélioration de la boîte de dialogue pour les infos (Quentin)<br />
* T2. -> Preprocessing des acteurs et des realisateurs et ajout des fonction de test associées (Julian)<br />
* T2. -> Test le modèle D2V sur un analyseur de sentiment de tweets, beaucoup plus objectif que les gouts utilisateurs vis à vis des films (Coralie).<br />
* T2. -> Mise en place de modules de test unitaires dans MovieProject/tests/unit et suppression de fichiers inutiles dans MovieProject/tests (Elsa)<br />
* T4. -> Ajout de nouveaux fichiers de tests (json) et évaluation du classifieur de façon générique sur les fichiers json dans MovieProject/resources/evaluation (Elsa)<br />
* T4. -> Evaluation du classifieur avec la méthode Doc2Vec (Elsa)<br />
* T5. -> Finalisation de l'image Docker avec Python, Keras et Tensorflow (Edwin)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Début de la mise en place des différents modèles d'apprentissage en vue de leur comparaison : <br />
** Réseau neuronal avec Keras (Elsa)<br />
** Perceptron (Coralie)<br />
** Modification du prétraitement afin de pouvoir récupérer les matrices de chacune des variables caractérisant un film (Julian)<br />
* T5. -> Ajout de Spark à l'image Docker (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* T1. -> Poursuite de la création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Poursuite des tests de performance :<br />
** Test de l'influence de chaque variable des films sur le modèle du perceptron, afin de ne sélectionner que les variables pertinentes (Coralie)<br />
** Test du réseau neuronal (Elsa)<br />
** Mise en place d'un SVM pour concurrencer les performances des deux autres modèles (Julian)<br />
* T5. -> Test de l'image Docker (Edwin)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Visualisation des statistiques + explications sur la page d'accueil (Quentin)<br />
* T4. -> Finalisation perceptron + intégration dans evaluation (Coralie)<br />
* T4. -> Finalisation SVM + intégration dans evaluation (Julian)<br />
* T4. -> Mise en place du module evaluation et intégration des modifications de classifieur & preprocessing (Elsa)<br />
* T5. -> Documentation sur Spark (Edwin & Coralie)<br />
<br />
===État du scrumboard en fin du Sprint1===<br />
<br />
[[File:Sprint1-end-Scrumboard.png|1080px|middle]]<br />
<br />
== Sprint 2 ==<br />
<br />
===Tâches du Sprint1===<br />
<br />
*T1.2. Amélioration du front-end (mise en cache, etc.)<br />
*T2.2. Ajout de descripteurs (durée, budget, année de production, compagnie de production, appartenance à une sage) en vue d'améliorer notre modèle d'apprentissage.<br />
*T3.2 Amélioration du réseau neuronal (comparaison avec Perceptron simple, SVM, RN Convolutif)<br />
*T4. Mise en place de la suggestion de films (vue côté front-end et logique côté back-end)<br />
*T5. Distribution de l'apprentissage sur plusieurs machines (Docker - Spark - Mesos - Elephas) & Parallélisation requêtes<br />
<br />
=== Semaine 4 : 13/02 - 19/02 ===<br />
<br />
====Lundi====<br />
<br />
* Réunion de fin de sprint1 et de début de sprint0 : discussion autour des avancées, difficultés, retards & établissement fonctionnalités à implémenter au cours du sprint2<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T2.2. -> Revue de la structure du code (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
<br />
====Mardi====<br />
<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T3.2 -> Amélioration du classifieur (Elsa/Quentin)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
*T5. -> Parallélisation des requêtes à l'API TMDB (Julian)<br />
<br />
====Mercredi====<br />
<br />
*T1.2 -> Finalisation du cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T1.2 -> Finalisation des statistiques cinématographique utilisateurs (Quentin)<br />
*T2.2. -> Ajout du descripteurs "budget" avec normalisation (Edwin)<br />
*T3.2 -> Mise en place de la fonction de comparaison des combinaisons de descripteurs de films pour faciliter le travail des DUT (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal LSTM (Coralie)<br />
*T4. -> Changement de la méthode de prédiction de film (Elsa)<br />
* -> Communication front-back test (Elsa/Quentin)<br />
* SRS (Edwin)<br />
<br />
====Jeudi====<br />
<br />
<br />
<br />
====Vendredi====<br />
<br />
=== Semaine 5 : 20/02 - 26/02 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
== Sprint 3 ==<br />
=== Semaine 6 : 27/02 - 05/03 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
=== Semaine 7 : 06/03 - 12/03 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=SRS_-_Recommandation_intelligente_de_films&diff=33765SRS - Recommandation intelligente de films2017-02-15T15:04:56Z<p>Elsa.Navarro: </p>
<hr />
<div>Voici la fiche SRS du projet Recommandation intelligente de films.<br />
<br />
[[Suggestion_intelligente_de_films_basée_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin<br />
* Hattinguais Julian<br />
* Navarro Elsa<br />
* Dunand Quentin<br />
<br />
=Introduction =<br />
Qui n'a pas rêvé d'avoir une liste de films correspondant exactement à ses goûts cinématographiques ? Beaucoup d'algorithmes ont été conçus pour tenter d'adapter une liste de film en fonction des goûts de l'utilisateur mais manquaient d'efficacité.<br />
Avec l’essor de l'intelligence artificielle et des réseaux neuronaux, de nouveaux outils émergent afin de mieux comprendre le comportement et les goûts humains. Nous avons donc décidé de développer un système capable de comprendre les goûts cinématographiques d'un humain de manière bien plus performante que les algorithmes déjà conçu dans ce but là.<br />
<br />
==But du document ==<br />
Le but de ce document SRS est de fournir une vue d'ensemble détaillée de notre système logiciel, ses paramètres et buts. Ce document décrit le public cible du projet et son interface utilisateur, ainsi que les spécifications du logiciel. Ce document est destiné tant aux utilisateurs qu'aux développeurs du logiciel.<br />
<br />
==Objectif du projet ==<br />
Le but de ce projet est d'explorer les possibilités du Deep Learning sur des données dont les variables sont hétérogènes et multidimensionnelles, ceci au travers de la suggestion intelligente de films s'adaptant aux goûts de l'utilisateur. Grâce à un système de réseaux neuronaux et d'une base de données conséquente de films (TMDb), le site proposera une liste de suggestions de films personnalisée par utilisateur. Le modèle créé sur une base de données statique pourra alors être affiné en temps réel grâce aux nouvelles opinions exprimées par l’utilisateur.<br />
<br />
== Définitions, acronymes et abréviations ==<br />
Deep Learning : ensemble de méthodes d'apprentissage automatiques visant à modéliser avec un haut niveau d’abstraction un ensemble de données.<br />
<br />
== Références ==<br />
<br />
* [http://machinelearningmastery.com/tutorial-first-neural-network-python-keras/'''Keras''']<br />
<br />
Tensor Flow<br />
<br />
En savoir plus sur le DeepLearning<br />
<br />
Aide de Mr Amini : site<br />
<br />
Angular Material : lien<br />
<br />
==Portée du produit ==<br />
Le produit est destiné aux utilisateurs désireux de générer automatiquement des recommandations de films en fonction de leurs goûts. L'application sera plus efficace sur des cinéphiles car ils pourront annoter un grand nombre de buts, mais elle a aussi la prétention de pouvoir être utile à un internaute lambda sans condition sur ses connaissances cinématographiques.<br />
<br />
=Description générale=<br />
<br />
==Le but du produit==<br />
Le produit doit permettre à l'utilisateur d'obtenir des recommandations intelligentes de films en fonction des films qu'il a appréciés et de ceux qu'il n'a pas appréciés. Cette recommandation doit tenir compte de la proximité des films les uns par rapport aux autres en terme de genre, synopsie, acteurs, réalisateurs, etc. Mais doit également tenir compte de la popularité des films et des tendances actuelles grâce à l'analyse en temps réel des flux Twitter.<br />
<br />
L'apport principal par rapport aux produits concurrents est de réaliser des prédictions personnalisées, grâce à l'utilisation de l'apprentissage automatique et à l'établissement d'un modèle propre à chaque utilisateur. La suggestion devrait donc être plus précise comparée à celles se basant sur la similarité des goûts entre utilisateurs. Deux utilisateurs appréciant un même film, ne sont en effet pas forcés d'apprécier tous les deux un autre film.<br />
<br />
==Description du produit==<br />
<br />
=== Interface système ===<br />
<br />
=== Interface utilisateur ===<br />
<br />
=== Interface hardware ===<br />
<br />
=== Interface software ===<br />
<br />
=== Contraintes mémoires ===<br />
<br />
==Fonctionnalités==<br />
Le site est conçu pour un utilisateur et ne sauvegarde que temporairement les choix de celui-ci.<br />
<br />
*Il proposera tout d'abord une liste de films représentative de tous les genres, réalisateurs, acteurs... du cinéma. L'utilisateur pourra pour chaque film, dire s'il aime, n'aime pas ou n'a pas d'opinions sur ce film.<br />
*Ensuite, en fonction des réponses de l'utilisateur, le site prédira grâce à un système de Deep Learning les films pouvant potentiellement plaire à l'utilisateur et les affichera avec leurs détails.<br />
*L'utilisateur pourra ensuite noter ces nouveaux films s'il le souhaite, et une nouvelle liste de films se générera afin de mieux s'adapter aux goûts de l'utilisateur.<br />
<br />
==Caractéristiques utilisateurs==<br />
Les utilisateurs doivent posséder une certaine culture cinématographique pour constituer une base d'apprentissage, en fonction des films qu'ils ont préalablement visionnés et de leur avis sur ceux-ci. En revanche, aucune compétence informatique spécifique n'est requise, de sorte qu'un utilisateur novice puisse utiliser l'application. L'interface doit donc être intuitive et extrêmement simple d'utilisation.<br />
<br />
==Contraintes générales==<br />
*Avoir une connexion internet.<br />
*Avoir un niveau basique de connaissances informatiques (savoir s'inscrire sur un site internet...).<br />
* L'apprentissage machine doit reposer sur TensorFlow (Keras)<br />
* Les données en entrées proviennent de l'API TMDB et des API Twitter (API REST 1.1 pour les données historiques ou API Streaming pour les données temps réelles)<br />
* l'API TDMBSimple limite le nombre de requêtes à la base de données à 40 par seconde. Peut potentiellement énormément ralentir les services.<br />
*Le modèle de prédiction doit être assez fiable pour prédire correctement un nombre conséquent de films pouvant potentiellemennt plaire à l'utilisateur (70%-80%).<br />
<br />
==Dépendances==<br />
* API de la base de donnée de film TMDB : https://developers.themoviedb.org/3/people<br />
* API REST 1.1 : https://dev.twitter.com/rest/public<br />
* API STREAMING : https://dev.twitter.com/streaming/overview<br />
<br />
=Spécifités du système=<br />
<br />
==Conception de l'interface du système==<br />
<br />
'''TODO : Mettre des screens du site à la fin du projet'''<br />
<br />
== Fonctionnalités et performances du système ==<br />
<br />
=== F1 ===<br />
<br />
'''Fonction''':<br />
Récupérer les préférences d'un utilisateur<br />
<br />
'''Description''':<br />
Le back-end va récupérer tout les films qu'un utilisateur a noté ainsi que leur note (j'aime ou j'aime pas) et va les sauvegarder dans un fichier JSON<br />
<br />
'''Inputs''':<br />
Nom utilisateur<br />
<br />
'''Source''':<br />
Site internet<br />
<br />
'''Outputs''':<br />
Fichier JSON correspondant aux préférences de l'utilisateur concerné<br />
<br />
'''Destination''':<br />
F2<br />
<br />
<br />
=== F2 ===<br />
<br />
'''Fonction''':<br />
Prétraiter les données d'une liste de film<br />
<br />
'''Description''':<br />
Prétraite les données d'une liste de film afin de les rendrent compréhensible par le modèle d'apprentissage<br />
<br />
'''Inputs''':<br />
Liste de films (leur id) chargé depuis le fichier JSON d'un utilisateur<br />
<br />
'''Source''':<br />
F1, API TMDBSimple, Glove/Doc2Vec<br />
<br />
'''Outputs''':<br />
Matrice de données. Chaque ligne correspond aux informations d'un film<br />
<br />
'''Destination''':<br />
F3<br />
<br />
=== F3 ===<br />
<br />
'''Fonction''':<br />
Entrainer un modèle d'apprentissage d'un utilisateur<br />
<br />
'''Description''':<br />
Crée et entraîne le modèle d'apprentissage qui va comprendre les goûts cinématographique d'un utilisateur<br />
<br />
'''Inputs''':<br />
Matrice des données prétraitées correspondant aux films notés par l'utilisateur<br />
<br />
'''Source''':<br />
F2, Keras<br />
<br />
'''Outputs''':<br />
Matrice de données. Chaque ligne correspond aux informations d'un film.<br />
<br />
'''Destination''':<br />
Back-end<br />
<br />
=== F4 ===<br />
<br />
'''Fonction''':<br />
Prédiction d'une liste de film que l'utilisateur pourrait potentiellement aimer.<br />
<br />
'''Description''':<br />
Le système va soumettre une liste aléatoire ou selectionné de films et il va demander au modèle de prédiction si ces films correspondent au goût d'un utilisateur. Il a besoin de prétraiter ses données.<br />
<br />
'''Inputs''':<br />
F3, F2<br />
<br />
'''Source''':<br />
F2, Keras<br />
<br />
'''Outputs''':<br />
Liste des films pouvant intéresser l'utilisateur.<br />
<br />
'''Destination''':<br />
F5<br />
<br />
=== F5 ===<br />
<br />
'''Fonction''':<br />
Recommander à l'utilisateur des films<br />
<br />
'''Description''':<br />
Le site va soumettre à l'utilisateur une liste de films correspondant à ses goûts cinématographique<br />
<br />
'''Inputs''':<br />
Back-end, il faut que l'utilisateur ait renseigné ses goûts.<br />
<br />
'''Source''':<br />
F4<br />
<br />
'''Outputs''':<br />
Liste des films pouvant intéresser l'utilisateur.<br />
<br />
'''Destination''':<br />
Interface utilisateur<br />
<br />
=Evolutions potentielles du produit=<br />
*Multi utilisateurs : Une session de préférence par utilisateur. De plus, les goûts des utilisateurs seront sauvegardés afin qu'à la prochaine connexion, le modèle de Deep Learning soit prêt à prédire des films correspondant au goût de l'utilisateur concerné.<br />
*Prédire les films "tendance" du moment en priorité. Le site affichera en priorité les films les plus populaire du moment et correspondant aux goûts de *l'utilisateur. Pour cela, il scannera les tweets de Tweeter en temps réel et cherchera une correspondance entre les tweets de films populaires et ceux prédis par le modèle pour l'utilisateur concerné. <br />
*Utiliser des systèmes distribués afin d'améliorer les performances d'apprentissage du modèle de Deep Learning et de l'analyse en temps réel de Tweeter.<br />
<br />
=Appendices=<br />
<br />
==Structure du SRS==<br />
The document is based on template of the Software Requirements Specification (SRS) inspired of the IEEE/ANSI 830-1998 Standard.<br />
<br />
'''References:'''<br />
* http://air.imag.fr/index.php/SRS<br />
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx<br />
* http://en.wikipedia.org/wiki/Software_requirements_specification<br />
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]<br />
<br />
=Bibliographie=<br />
<br />
Articles sur les systèmes de recommandation :<br />
<br />
*spotify - http://benanne.github.io/2014/08/05/spotify-cnns.html#contentbased<br />
*youtube - https://static.googleusercontent.com/media/research.google.com/fr//pubs/archive/45530.pdf<br />
*https://www.atala.org/IMG/pdf/1-Poirier-TAL51-3.pdf<br />
<br />
Explication des termes deep learning :<br />
<br />
*https://devblogs.nvidia.com/parallelforall/deep-learning-nutshell-core-concepts/<br />
<br />
Exemple simple pour prendre en main Keras :<br />
<br />
*http://machinelearningmastery.com/tutorial-first-neural-network-python-keras/<br />
*http://machinelearningmastery.com/introduction-python-deep-learning-library-keras/<br />
*http://tryhera.com/<br />
<br />
API TMDB :<br />
<br />
*https://developers.themoviedb.org/3/people<br />
<br />
Tuto Django + AngularJS :<br />
<br />
*https://thinkster.io/django-angularjs-tutorial#rendering-post-objects<br />
<br />
DOC2VEC :<br />
<br />
*https://github.com/nisarg64/Sentiment-Analysis-Word2Vec<br />
*https://translate.google.fr/translate?hl=fr&sl=en&u=https://rare-technologies.com/doc2vec-tutorial/&prev=search<br />
*https://translate.google.fr/translate?hl=fr&sl=en&u=http://linanqiu.github.io/2015/10/07/word2vec-sentiment/&prev=search<br />
<br />
Embedding layers : <br />
<br />
*http://stats.stackexchange.com/questions/182775/what-is-an-embedding-layer-in-a-neural-network<br />
*https://github.com/ririw/ririw.github.io/blob/master/assets/Recommending%20movies.ipynb<br />
*http://blog.richardweiss.org/2016/09/25/movie-embeddings.html<br />
<br />
Python API - Flask :<br />
<br />
*http://flask.pocoo.org/docs/0.12/quickstart/#accessing-request-data<br />
<br />
Grid'5000 :<br />
*https://www.grid5000.fr/mediawiki/index.php/Grid5000:Get_an_account</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=SRS_-_Recommandation_intelligente_de_films&diff=33764SRS - Recommandation intelligente de films2017-02-15T15:01:24Z<p>Elsa.Navarro: </p>
<hr />
<div>Voici la fiche SRS du projet Recommandation intelligente de films.<br />
<br />
[[Suggestion_intelligente_de_films_basée_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin<br />
* Hattinguais Julian<br />
* Navarro Elsa<br />
* Dunand Quentin<br />
<br />
=Introduction =<br />
Qui n'a pas rêvé d'avoir une liste de films correspondant exactement à ses goûts cinématographiques ? Beaucoup d'algorithmes ont été conçus pour tenter d'adapter une liste de film en fonction des goûts de l'utilisateur mais manquaient d'efficacité.<br />
Avec l’essor de l'intelligence artificielle et des réseaux neuronaux, de nouveaux outils émergent afin de mieux comprendre le comportement et les goûts humains. Nous avons donc décidé de développer un système capable de comprendre les goûts cinématographiques d'un humain de manière bien plus performante que les algorithmes déjà conçu dans ce but là.<br />
<br />
==But du document ==<br />
Le but de ce document SRS est de fournir une vue d'ensemble détaillée de notre système logiciel, ses paramètres et buts. Ce document décrit le public cible du projet et son interface utilisateur, ainsi que les spécifications du logiciel. Ce document est destiné tant aux utilisateurs qu'aux développeurs du logiciel.<br />
<br />
==Objectif du projet ==<br />
Le but de ce projet est d'explorer les possibilités du Deep Learning sur des données dont les variables sont hétérogènes et multidimensionnelles, ceci au travers de la suggestion intelligente de films s'adaptant aux goûts de l'utilisateur. Grâce à un système de réseaux neuronaux et d'une base de données conséquente de films (TMDb), le site proposera une liste de suggestions de films personnalisée par utilisateur. Le modèle créé sur une base de données statique pourra alors être affiné en temps réel grâce aux nouvelles opinions exprimées par l’utilisateur.<br />
<br />
== Définitions, acronymes et abréviations ==<br />
Deep Learning : ensemble de méthodes d'apprentissage automatiques visant à modéliser avec un haut niveau d’abstraction un ensemble de données.<br />
<br />
== Références ==<br />
Keras<br />
<br />
Tensor Flow<br />
<br />
En savoir plus sur le DeepLearning<br />
<br />
Aide de Mr Amini : site<br />
<br />
Angular Material : lien<br />
<br />
==Portée du produit ==<br />
Le produit est destiné aux utilisateurs désireux de générer automatiquement des recommandations de films en fonction de leurs goûts. L'application sera plus efficace sur des cinéphiles car ils pourront annoter un grand nombre de buts, mais elle a aussi la prétention de pouvoir être utile à un internaute lambda sans condition sur ses connaissances cinématographiques.<br />
<br />
=Description générale=<br />
<br />
==Le but du produit==<br />
Le produit doit permettre à l'utilisateur d'obtenir des recommandations intelligentes de films en fonction des films qu'il a appréciés et de ceux qu'il n'a pas appréciés. Cette recommandation doit tenir compte de la proximité des films les uns par rapport aux autres en terme de genre, synopsie, acteurs, réalisateurs, etc. Mais doit également tenir compte de la popularité des films et des tendances actuelles grâce à l'analyse en temps réel des flux Twitter.<br />
<br />
L'apport principal par rapport aux produits concurrents est de réaliser des prédictions personnalisées, grâce à l'utilisation de l'apprentissage automatique et à l'établissement d'un modèle propre à chaque utilisateur. La suggestion devrait donc être plus précise comparée à celles se basant sur la similarité des goûts entre utilisateurs. Deux utilisateurs appréciant un même film, ne sont en effet pas forcés d'apprécier tous les deux un autre film.<br />
<br />
==Description du produit==<br />
<br />
=== Interface système ===<br />
<br />
=== Interface utilisateur ===<br />
<br />
=== Interface hardware ===<br />
<br />
=== Interface software ===<br />
<br />
=== Contraintes mémoires ===<br />
<br />
==Fonctionnalités==<br />
Le site est conçu pour un utilisateur et ne sauvegarde que temporairement les choix de celui-ci.<br />
<br />
*Il proposera tout d'abord une liste de films représentative de tous les genres, réalisateurs, acteurs... du cinéma. L'utilisateur pourra pour chaque film, dire s'il aime, n'aime pas ou n'a pas d'opinions sur ce film.<br />
*Ensuite, en fonction des réponses de l'utilisateur, le site prédira grâce à un système de Deep Learning les films pouvant potentiellement plaire à l'utilisateur et les affichera avec leurs détails.<br />
*L'utilisateur pourra ensuite noter ces nouveaux films s'il le souhaite, et une nouvelle liste de films se générera afin de mieux s'adapter aux goûts de l'utilisateur.<br />
<br />
==Caractéristiques utilisateurs==<br />
Les utilisateurs doivent posséder une certaine culture cinématographique pour constituer une base d'apprentissage, en fonction des films qu'ils ont préalablement visionnés et de leur avis sur ceux-ci. En revanche, aucune compétence informatique spécifique n'est requise, de sorte qu'un utilisateur novice puisse utiliser l'application. L'interface doit donc être intuitive et extrêmement simple d'utilisation.<br />
<br />
==Contraintes générales==<br />
*Avoir une connexion internet.<br />
*Avoir un niveau basique de connaissances informatiques (savoir s'inscrire sur un site internet...).<br />
* L'apprentissage machine doit reposer sur TensorFlow (Keras)<br />
* Les données en entrées proviennent de l'API TMDB et des API Twitter (API REST 1.1 pour les données historiques ou API Streaming pour les données temps réelles)<br />
* l'API TDMBSimple limite le nombre de requêtes à la base de données à 40 par seconde. Peut potentiellement énormément ralentir les services.<br />
*Le modèle de prédiction doit être assez fiable pour prédire correctement un nombre conséquent de films pouvant potentiellemennt plaire à l'utilisateur (70%-80%).<br />
<br />
==Dépendances==<br />
* API de la base de donnée de film TMDB : https://developers.themoviedb.org/3/people<br />
* API REST 1.1 : https://dev.twitter.com/rest/public<br />
* API STREAMING : https://dev.twitter.com/streaming/overview<br />
<br />
=Spécifités du système=<br />
<br />
==Conception de l'interface du système==<br />
<br />
'''TODO : Mettre des screens du site à la fin du projet'''<br />
<br />
== Fonctionnalités et performances du système ==<br />
<br />
=== F1 ===<br />
<br />
'''Fonction''':<br />
Récupérer les préférences d'un utilisateur<br />
<br />
'''Description''':<br />
Le back-end va récupérer tout les films qu'un utilisateur a noté ainsi que leur note (j'aime ou j'aime pas) et va les sauvegarder dans un fichier JSON<br />
<br />
'''Inputs''':<br />
Nom utilisateur<br />
<br />
'''Source''':<br />
Site internet<br />
<br />
'''Outputs''':<br />
Fichier JSON correspondant aux préférences de l'utilisateur concerné<br />
<br />
'''Destination''':<br />
F2<br />
<br />
<br />
=== F2 ===<br />
<br />
'''Fonction''':<br />
Prétraiter les données d'une liste de film<br />
<br />
'''Description''':<br />
Prétraite les données d'une liste de film afin de les rendrent compréhensible par le modèle d'apprentissage<br />
<br />
'''Inputs''':<br />
Liste de films (leur id) chargé depuis le fichier JSON d'un utilisateur<br />
<br />
'''Source''':<br />
F1, API TMDBSimple, Glove/Doc2Vec<br />
<br />
'''Outputs''':<br />
Matrice de données. Chaque ligne correspond aux informations d'un film<br />
<br />
'''Destination''':<br />
F3<br />
<br />
=== F3 ===<br />
<br />
'''Fonction''':<br />
Entrainer un modèle d'apprentissage d'un utilisateur<br />
<br />
'''Description''':<br />
Crée et entraîne le modèle d'apprentissage qui va comprendre les goûts cinématographique d'un utilisateur<br />
<br />
'''Inputs''':<br />
Matrice des données prétraitées correspondant aux films notés par l'utilisateur<br />
<br />
'''Source''':<br />
F2, Keras<br />
<br />
'''Outputs''':<br />
Matrice de données. Chaque ligne correspond aux informations d'un film.<br />
<br />
'''Destination''':<br />
Back-end<br />
<br />
=== F4 ===<br />
<br />
'''Fonction''':<br />
Prédiction d'une liste de film que l'utilisateur pourrait potentiellement aimer.<br />
<br />
'''Description''':<br />
Le système va soumettre une liste aléatoire ou selectionné de films et il va demander au modèle de prédiction si ces films correspondent au goût d'un utilisateur. Il a besoin de prétraiter ses données.<br />
<br />
'''Inputs''':<br />
F3, F2<br />
<br />
'''Source''':<br />
F2, Keras<br />
<br />
'''Outputs''':<br />
Liste des films pouvant intéresser l'utilisateur.<br />
<br />
'''Destination''':<br />
F5<br />
<br />
=== F5 ===<br />
<br />
'''Fonction''':<br />
Recommander à l'utilisateur des films<br />
<br />
'''Description''':<br />
Le site va soumettre à l'utilisateur une liste de films correspondant à ses goûts cinématographique<br />
<br />
'''Inputs''':<br />
Back-end, il faut que l'utilisateur ai renseigné ses goûts.<br />
<br />
'''Source''':<br />
F4<br />
<br />
'''Outputs''':<br />
Liste des films pouvant intéresser l'utilisateur.<br />
<br />
'''Destination''':<br />
Interface utilisateur<br />
<br />
=Evolutions potentielles du produit=<br />
*Multi utilisateurs : Une session de préférence par utilisateur. De plus, les goûts des utilisateurs seront sauvegardés afin qu'à la prochaine connexion, le modèle de Deep Learning soit prêt à prédire des films correspondant au goût de l'utilisateur concerné.<br />
*Prédire les films "tendance" du moment en priorité. Le site affichera en priorité les films les plus populaire du moment et correspondant aux goûts de *l'utilisateur. Pour cela, il scannera les tweets de Tweeter en temps réel et cherchera une correspondance entre les tweets de films populaires et ceux prédis par le modèle pour l'utilisateur concerné. <br />
*Utiliser des systèmes distribués afin d'améliorer les performances d'apprentissage du modèle de Deep Learning et de l'analyse en temps réel de Tweeter.<br />
<br />
=Appendices=<br />
<br />
==Structure du SRS==<br />
The document is based on template of the Software Requirements Specification (SRS) inspired of the IEEE/ANSI 830-1998 Standard.<br />
<br />
'''References:'''<br />
* http://air.imag.fr/index.php/SRS<br />
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx<br />
* http://en.wikipedia.org/wiki/Software_requirements_specification<br />
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]<br />
<br />
=Bibliographie=<br />
<br />
Articles sur les systèmes de recommandation :<br />
<br />
*spotify - http://benanne.github.io/2014/08/05/spotify-cnns.html#contentbased<br />
*youtube - https://static.googleusercontent.com/media/research.google.com/fr//pubs/archive/45530.pdf<br />
*https://www.atala.org/IMG/pdf/1-Poirier-TAL51-3.pdf<br />
<br />
Explication des termes deep learning :<br />
<br />
*https://devblogs.nvidia.com/parallelforall/deep-learning-nutshell-core-concepts/<br />
<br />
Exemple simple pour prendre en main Keras :<br />
<br />
*http://machinelearningmastery.com/tutorial-first-neural-network-python-keras/<br />
*http://machinelearningmastery.com/introduction-python-deep-learning-library-keras/<br />
*http://tryhera.com/<br />
<br />
API TMDB :<br />
<br />
*https://developers.themoviedb.org/3/people<br />
<br />
Tuto Django + AngularJS :<br />
<br />
*https://thinkster.io/django-angularjs-tutorial#rendering-post-objects<br />
<br />
DOC2VEC :<br />
<br />
*https://github.com/nisarg64/Sentiment-Analysis-Word2Vec<br />
*https://translate.google.fr/translate?hl=fr&sl=en&u=https://rare-technologies.com/doc2vec-tutorial/&prev=search<br />
*https://translate.google.fr/translate?hl=fr&sl=en&u=http://linanqiu.github.io/2015/10/07/word2vec-sentiment/&prev=search<br />
<br />
Embedding layers : <br />
<br />
*http://stats.stackexchange.com/questions/182775/what-is-an-embedding-layer-in-a-neural-network<br />
*https://github.com/ririw/ririw.github.io/blob/master/assets/Recommending%20movies.ipynb<br />
*http://blog.richardweiss.org/2016/09/25/movie-embeddings.html<br />
<br />
Python API - Flask :<br />
<br />
*http://flask.pocoo.org/docs/0.12/quickstart/#accessing-request-data<br />
<br />
Grid'5000 :<br />
*https://www.grid5000.fr/mediawiki/index.php/Grid5000:Get_an_account</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=SRS_-_Recommandation_intelligente_de_films&diff=33761SRS - Recommandation intelligente de films2017-02-15T14:58:35Z<p>Elsa.Navarro: /* Références */</p>
<hr />
<div>Voici la fiche SRS du projet Recommandation intelligente de films.<br />
<br />
[[Suggestion_intelligente_des_films_basé_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin<br />
* Hattinguais Julian<br />
* Navarro Elsa<br />
* Dunand Quentin<br />
<br />
=Introduction =<br />
Qui n'a pas rêvé d'avoir une liste de films correspondant exactement à ses goûts cinématographiques ? Beaucoup d'algorithmes ont été conçus pour tenter d'adapter une liste de film en fonction des goûts de l'utilisateur mais manquaient d'efficacité.<br />
Avec l’essor de l'intelligence artificielle et des réseaux neuronaux, de nouveaux outils émergent afin de mieux comprendre le comportement et les goûts humains. Nous avons donc décidé de développer un système capable de comprendre les goûts cinématographiques d'un humain de manière bien plus performante que les algorithmes déjà conçu dans ce but là.<br />
<br />
==But du document ==<br />
Le but de ce document SRS est de fournir une vue d'ensemble détaillée de notre système logiciel, ses paramètres et buts. Ce document décrit le public cible du projet et son interface utilisateur, ainsi que les spécifications du logiciel. Ce document est destiné tant aux utilisateurs qu'aux développeurs du logiciel.<br />
<br />
==Objectif du projet ==<br />
Le but de ce projet est d'explorer les possibilités du Deep Learning sur des données dont les variables sont hétérogènes et multidimensionnelles, ceci au travers de la suggestion intelligente de films s'adaptant aux goûts de l'utilisateur. Grâce à un système de réseaux neuronaux et d'une base de données conséquente de films (TMDb), le site proposera une liste de suggestions de films personnalisée par utilisateur. Le modèle créé sur une base de données statique pourra alors être affiné en temps réel grâce aux nouvelles opinions exprimées par l’utilisateur.<br />
<br />
== Définitions, acronymes et abréviations ==<br />
Deep Learning : ensemble de méthodes d'apprentissage automatiques visant à modéliser avec un haut niveau d’abstraction un ensemble de données.<br />
<br />
== Références ==<br />
Keras<br />
<br />
Tensor Flow<br />
<br />
En savoir plus sur le DeepLearning<br />
<br />
Aide de Mr Amini : site<br />
<br />
Angular Material : lien<br />
<br />
==Portée du produit ==<br />
Le produit est destiné aux utilisateurs désireux de générer automatiquement des recommandations de films en fonction de leurs goûts. L'application sera plus efficace sur des cinéphiles car ils pourront annoter un grand nombre de buts, mais elle a aussi la prétention de pouvoir être utile à un internaute lambda sans condition sur ses connaissances cinématographiques.<br />
<br />
=Description générale=<br />
<br />
==Le but du produit==<br />
Le produit doit permettre à l'utilisateur d'obtenir des recommandations intelligentes de films en fonction des films qu'il a appréciés et de ceux qu'il n'a pas appréciés. Cette recommandation doit tenir compte de la proximité des films les uns par rapport aux autres en terme de genre, synopsie, acteurs, réalisateurs, etc. Mais doit également tenir compte de la popularité des films et des tendances actuelles grâce à l'analyse en temps réel des flux Twitter.<br />
<br />
L'apport principal par rapport aux produits concurrents est de réaliser des prédictions personnalisées, grâce à l'utilisation de l'apprentissage automatique et à l'établissement d'un modèle propre à chaque utilisateur. La suggestion devrait donc être plus précise comparée à celles se basant sur la similarité des goûts entre utilisateurs. Deux utilisateurs appréciant un même film, ne sont en effet pas forcés d'apprécier tous les deux un autre film.<br />
<br />
==Description du produit==<br />
<br />
=== Interface système ===<br />
<br />
=== Interface utilisateur ===<br />
<br />
=== Interface hardware ===<br />
<br />
=== Interface software ===<br />
<br />
=== Contraintes mémoires ===<br />
<br />
==Fonctionnalités==<br />
Le site est conçu pour un utilisateur et ne sauvegarde que temporairement les choix de celui-ci.<br />
<br />
*Il proposera tout d'abord une liste de films représentative de tous les genres, réalisateurs, acteurs... du cinéma. L'utilisateur pourra pour chaque film, dire s'il aime, n'aime pas ou n'a pas d'opinions sur ce film.<br />
*Ensuite, en fonction des réponses de l'utilisateur, le site prédira grâce à un système de Deep Learning les films pouvant potentiellement plaire à l'utilisateur et les affichera avec leurs détails.<br />
*L'utilisateur pourra ensuite noter ces nouveaux films s'il le souhaite, et une nouvelle liste de films se générera afin de mieux s'adapter aux goûts de l'utilisateur.<br />
<br />
==Caractéristiques utilisateurs==<br />
Les utilisateurs doivent posséder une certaine culture cinématographique pour constituer une base d'apprentissage, en fonction des films qu'ils ont préalablement visionnés et de leur avis sur ceux-ci. En revanche, aucune compétence informatique spécifique n'est requise, de sorte qu'un utilisateur novice puisse utiliser l'application. L'interface doit donc être intuitive et extrêmement simple d'utilisation.<br />
<br />
==Contraintes générales==<br />
*Avoir une connexion internet.<br />
*Avoir un niveau basique de connaissances informatiques (savoir s'inscrire sur un site internet...).<br />
* L'apprentissage machine doit reposer sur TensorFlow (Keras)<br />
* Les données en entrées proviennent de l'API TMDB et des API Twitter (API REST 1.1 pour les données historiques ou API Streaming pour les données temps réelles)<br />
* l'API TDMBSimple limite le nombre de requêtes à la base de données à 40 par seconde. Peut potentiellement énormément ralentir les services.<br />
*Le modèle de prédiction doit être assez fiable pour prédire correctement un nombre conséquent de films pouvant potentiellemennt plaire à l'utilisateur (70%-80%).<br />
<br />
==Dépendances==<br />
* API de la base de donnée de film TMDB : https://developers.themoviedb.org/3/people<br />
* API REST 1.1 : https://dev.twitter.com/rest/public<br />
* API STREAMING : https://dev.twitter.com/streaming/overview<br />
<br />
=Specific requirements=<br />
<br />
==Conception de l'interface du système==<br />
<br />
'''TODO : Mettre des screens du site à la fin du projet'''<br />
<br />
== Fonctionnalités et performances du système ==<br />
<br />
=== F1 ===<br />
<br />
'''Fonction''':<br />
Récupérer les préférences d'un utilisateur<br />
<br />
'''Description''':<br />
Le back-end va récupérer tout les films qu'un utilisateur a noté ainsi que leur note (j'aime ou j'aime pas) et va les sauvegarder dans un fichier JSON<br />
<br />
'''Inputs''':<br />
Nom utilisateur<br />
<br />
'''Source''':<br />
Site internet<br />
<br />
'''Outputs''':<br />
Fichier JSON correspondant aux préférences de l'utilisateur concerné<br />
<br />
'''Destination''':<br />
F2<br />
<br />
<br />
=== F2 ===<br />
<br />
'''Fonction''':<br />
Prétraiter les données d'une liste de film<br />
<br />
'''Description''':<br />
Prétraite les données d'une liste de film afin de les rendrent compréhensible par le modèle d'apprentissage<br />
<br />
'''Inputs''':<br />
Liste de films (leur id) chargé depuis le fichier JSON d'un utilisateur<br />
<br />
'''Source''':<br />
F1, API TMDBSimple, Glove/Doc2Vec<br />
<br />
'''Outputs''':<br />
Matrice de données. Chaque ligne correspond aux informations d'un film<br />
<br />
'''Destination''':<br />
F3<br />
<br />
=== F3 ===<br />
<br />
'''Fonction''':<br />
Entrainer un modèle d'apprentissage d'un utilisateur<br />
<br />
'''Description''':<br />
Crée et entraîne le modèle d'apprentissage qui va comprendre les goûts cinématographique d'un utilisateur<br />
<br />
'''Inputs''':<br />
Matrice des données prétraitées correspondant aux films notés par l'utilisateur<br />
<br />
'''Source''':<br />
F2, Keras<br />
<br />
'''Outputs''':<br />
Matrice de données. Chaque ligne correspond aux informations d'un film.<br />
<br />
'''Destination''':<br />
Back-end<br />
<br />
=== F4 ===<br />
<br />
'''Fonction''':<br />
Prédiction d'une liste de film que l'utilisateur pourrait potentiellement aimer.<br />
<br />
'''Description''':<br />
Le système va soumettre une liste aléatoire ou selectionné de films et il va demander au modèle de prédiction si ces films correspondent au goût d'un utilisateur. Il a besoin de prétraiter ses données.<br />
<br />
'''Inputs''':<br />
F3, F2<br />
<br />
'''Source''':<br />
F2, Keras<br />
<br />
'''Outputs''':<br />
Liste des films pouvant intéresser l'utilisateur.<br />
<br />
'''Destination''':<br />
F5<br />
<br />
=== F5 ===<br />
<br />
'''Fonction''':<br />
Recommander à l'utilisateur des films<br />
<br />
'''Description''':<br />
Le site va soumettre à l'utilisateur une liste de films correspondant à ses goûts cinématographique<br />
<br />
'''Inputs''':<br />
Back-end, il faut que l'utilisateur ai renseigné ses goûts.<br />
<br />
'''Source''':<br />
F4<br />
<br />
'''Outputs''':<br />
Liste des films pouvant intéresser l'utilisateur.<br />
<br />
'''Destination''':<br />
Interface utilisateur<br />
<br />
=Evolutions potentielles du produit=<br />
*Multi utilisateurs : Une session de préférence par utilisateur. De plus, les goûts des utilisateurs seront sauvegardés afin qu'à la prochaine connexion, le modèle de Deep Learning soit prêt à prédire des films correspondant au goût de l'utilisateur concerné.<br />
*Prédire les films "tendance" du moment en priorité. Le site affichera en priorité les films les plus populaire du moment et correspondant aux goûts de *l'utilisateur. Pour cela, il scannera les tweets de Tweeter en temps réel et cherchera une correspondance entre les tweets de films populaires et ceux prédis par le modèle pour l'utilisateur concerné. <br />
*Utiliser des systèmes distribués afin d'améliorer les performances d'apprentissage du modèle de Deep Learning et de l'analyse en temps réel de Tweeter.<br />
<br />
=Appendices=<br />
<br />
==Structure du SRS==<br />
The document is based on template of the Software Requirements Specification (SRS) inspired of the IEEE/ANSI 830-1998 Standard.<br />
<br />
'''References:'''<br />
* http://air.imag.fr/index.php/SRS<br />
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx<br />
* http://en.wikipedia.org/wiki/Software_requirements_specification<br />
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]<br />
<br />
=Bibliographie=<br />
<br />
Articles sur les systèmes de recommendation :<br />
<br />
*spotify - http://benanne.github.io/2014/08/05/spotify-cnns.html#contentbased<br />
*youtube - https://static.googleusercontent.com/media/research.google.com/fr//pubs/archive/45530.pdf<br />
*https://www.atala.org/IMG/pdf/1-Poirier-TAL51-3.pdf<br />
<br />
Explication des termes deep learning :<br />
<br />
*https://devblogs.nvidia.com/parallelforall/deep-learning-nutshell-core-concepts/<br />
<br />
Exemple simple pour prendre en main Keras :<br />
<br />
*http://machinelearningmastery.com/tutorial-first-neural-network-python-keras/<br />
*http://machinelearningmastery.com/introduction-python-deep-learning-library-keras/<br />
*http://tryhera.com/<br />
<br />
API TMDB :<br />
<br />
*https://developers.themoviedb.org/3/people<br />
<br />
Tuto Django + AngularJS :<br />
<br />
*https://thinkster.io/django-angularjs-tutorial#rendering-post-objects<br />
<br />
DOC2VEC :<br />
<br />
*https://github.com/nisarg64/Sentiment-Analysis-Word2Vec<br />
*https://translate.google.fr/translate?hl=fr&sl=en&u=https://rare-technologies.com/doc2vec-tutorial/&prev=search<br />
*https://translate.google.fr/translate?hl=fr&sl=en&u=http://linanqiu.github.io/2015/10/07/word2vec-sentiment/&prev=search<br />
<br />
Embedding layers : <br />
<br />
*http://stats.stackexchange.com/questions/182775/what-is-an-embedding-layer-in-a-neural-network<br />
*https://github.com/ririw/ririw.github.io/blob/master/assets/Recommending%20movies.ipynb<br />
*http://blog.richardweiss.org/2016/09/25/movie-embeddings.html<br />
<br />
Python API - Flask :<br />
<br />
*http://flask.pocoo.org/docs/0.12/quickstart/#accessing-request-data<br />
<br />
Grid'5000 :<br />
*https://www.grid5000.fr/mediawiki/index.php/Grid5000:Get_an_account</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=SRS_-_Recommandation_intelligente_de_films&diff=33753SRS - Recommandation intelligente de films2017-02-15T09:35:05Z<p>Elsa.Navarro: /* Bibliographie */</p>
<hr />
<div>Voici la fiche SRS du projet Recommandation intelligente de films.<br />
<br />
[[Suggestion_intelligente_des_films_basé_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin<br />
* Hattinguais Julian<br />
* Navarro Elsa<br />
* Dunand Quentin<br />
<br />
=Introduction =<br />
Qui n'a pas rêvé d'avoir une liste de films correspondant exactement à ses goûts cinématographiques ? Beaucoup d'algorithmes ont été conçus pour tenter d'adapter une liste de film en fonction des goûts de l'utilisateur mais manquaient d'efficacité.<br />
Avec l’essor de l'intelligence artificielle et des réseaux neuronaux, de nouveaux outils émergent afin de mieux comprendre le comportement et les goûts humains. Nous avons donc décidé de développer un système capable de comprendre les goûts cinématographiques d'un humain de manière bien plus performante que les algorithmes déjà conçu dans ce but là.<br />
<br />
==But du document ==<br />
Le but de ce document SRS est de fournir une vue d'ensemble détaillée de notre système logiciel, ses paramètres et buts. Ce document décrit le public cible du projet et son interface utilisateur, ainsi que les spécifications du logiciel. Ce document est destiné tant aux utilisateurs qu'aux développeurs du logiciel.<br />
<br />
==Objectif du projet ==<br />
Le but de ce projet est d'explorer les possibilités du Deep Learning sur des données dont les variables sont hétérogènes et multidimensionnelles, ceci au travers de la suggestion intelligente de films s'adaptant aux goûts de l'utilisateur. Grâce à un système de réseaux neuronaux et d'une base de données conséquente de films (TMDb), le site proposera une liste de suggestions de films personnalisée par utilisateur. Le modèle créé sur une base de données statique pourra alors être affiné en temps réel grâce aux nouvelles opinions exprimées par l’utilisateur.<br />
<br />
== Définitions, acronymes et abréviations ==<br />
Deep Learning : ensemble de méthodes d'apprentissage automatiques visant à modéliser avec un haut niveau d’abstraction un ensemble de données.<br />
<br />
== Références ==<br />
Keras<br />
Tensor Flow<br />
En savoir plus sur le DeepLearning<br />
Aide de Mr Amini : site<br />
Angular Material : lien<br />
<br />
==Portée du produit ==<br />
Le produit est destiné aux utilisateurs désireux de générer automatiquement des recommandations de films en fonction de leurs goûts. L'application sera plus efficace sur des cinéphiles car ils pourront annoter un grand nombre de buts, mais elle a aussi la prétention de pouvoir être utile à un internaute lambda sans condition sur ses connaissances cinématographiques.<br />
<br />
=Description générale=<br />
<br />
==Le but du produit==<br />
Le produit doit permettre à l'utilisateur d'obtenir des recommandations intelligentes de films en fonction des films qu'il a appréciés et de ceux qu'il n'a pas appréciés. Cette recommandation doit tenir compte de la proximité des films les uns par rapport aux autres en terme de genre, synopsie, acteurs, réalisateurs, etc. Mais doit également tenir compte de la popularité des films et des tendances actuelles grâce à l'analyse en temps réel des flux Twitter.<br />
<br />
L'apport principal par rapport aux produits concurrents est de réaliser des prédictions personnalisées, grâce à l'utilisation de l'apprentissage automatique et à l'établissement d'un modèle propre à chaque utilisateur. La suggestion devrait donc être plus précise comparée à celles se basant sur la similarité des goûts entre utilisateurs. Deux utilisateurs appréciant un même film, ne sont en effet pas forcés d'apprécier tous les deux un autre film.<br />
<br />
==Description du produit==<br />
<br />
=== Interface système ===<br />
<br />
=== Interface utilisateur ===<br />
<br />
=== Interface hardware ===<br />
<br />
=== Interface software ===<br />
<br />
=== Contraintes mémoires ===<br />
<br />
==Fonctionnalités==<br />
Le site est conçu pour un utilisateur et ne sauvegarde que temporairement les choix de celui-ci.<br />
<br />
*Il proposera tout d'abord une liste de films représentative de tous les genres, réalisateurs, acteurs... du cinéma. L'utilisateur pourra pour chaque film, dire s'il aime, n'aime pas ou n'a pas d'opinions sur ce film.<br />
*Ensuite, en fonction des réponses de l'utilisateur, le site prédira grâce à un système de Deep Learning les films pouvant potentiellement plaire à l'utilisateur et les affichera avec leurs détails.<br />
*L'utilisateur pourra ensuite noter ces nouveaux films s'il le souhaite, et une nouvelle liste de films se générera afin de mieux s'adapter aux goûts de l'utilisateur.<br />
<br />
==Caractéristiques utilisateurs==<br />
Les utilisateurs doivent posséder une certaine culture cinématographique pour constituer une base d'apprentissage, en fonction des films qu'ils ont préalablement visionnés et de leur avis sur ceux-ci. En revanche, aucune compétence informatique spécifique n'est requise, de sorte qu'un utilisateur novice puisse utiliser l'application. L'interface doit donc être intuitive et extrêmement simple d'utilisation.<br />
<br />
==Contraintes générales==<br />
*Avoir une connexion internet.<br />
*Avoir un niveau basique de connaissances informatiques (savoir s'inscrire sur un site internet...).<br />
* L'apprentissage machine doit reposer sur TensorFlow (Keras)<br />
* Les données en entrées proviennent de l'API TMDB et des API Twitter (API REST 1.1 pour les données historiques ou API Streaming pour les données temps réelles)<br />
* l'API TDMBSimple limite le nombre de requêtes à la base de données à 40 par seconde. Peut potentiellement énormément ralentir les services.<br />
*Le modèle de prédiction doit être assez fiable pour prédire correctement un nombre conséquent de films pouvant potentiellemennt plaire à l'utilisateur (70%-80%).<br />
<br />
==Dépendances==<br />
* API de la base de donnée de film TMDB : https://developers.themoviedb.org/3/people<br />
* API REST 1.1 : https://dev.twitter.com/rest/public<br />
* API STREAMING : https://dev.twitter.com/streaming/overview<br />
<br />
=Specific requirements=<br />
<br />
==Conception de l'interface du système==<br />
<br />
'''TODO : Mettre des screens du site à la fin du projet'''<br />
<br />
== Fonctionnalités et performances du système ==<br />
<br />
=== Description pour chaque fonctionnalité ===<br />
<br />
'''Function''':<br />
<br />
'''Description''':<br />
<br />
'''Inputs''':<br />
<br />
'''Source''':<br />
<br />
'''Outputs''':<br />
<br />
'''Destination''':<br />
<br />
'''Action''':<br />
* Natural language sentences (with MUST, MAY, SHALL)<br />
* Graphical Notations : UML Sequence w/o collaboration diagrams, Process maps, Task Analysis (HTA, CTT)<br />
* Mathematical Notations<br />
* Tabular notations for several (condition --> action) tuples<br />
<br />
'''Non functional requirements''':<br />
<br />
'''Pre-condition''':<br />
<br />
'''Post-condition''':<br />
<br />
'''Side-effects''':<br />
<br />
<br />
=Evolutions potentielles du produit=<br />
*Multi utilisateurs : Une session de préférence par utilisateur. De plus, les goûts des utilisateurs seront sauvegardés afin qu'à la prochaine connexion, le modèle de Deep Learning soit prêt à prédire des films correspondant au goût de l'utilisateur concerné.<br />
*Prédire les films "tendance" du moment en priorité. Le site affichera en priorité les films les plus populaire du moment et correspondant aux goûts de *l'utilisateur. Pour cela, il scannera les tweets de Tweeter en temps réel et cherchera une correspondance entre les tweets de films populaires et ceux prédis par le modèle pour l'utilisateur concerné. <br />
*Utiliser des systèmes distribués afin d'améliorer les performances d'apprentissage du modèle de Deep Learning et de l'analyse en temps réel de Tweeter.<br />
<br />
=Appendices=<br />
<br />
==Structure du SRS==<br />
The document is based on template of the Software Requirements Specification (SRS) inspired of the IEEE/ANSI 830-1998 Standard.<br />
<br />
'''References:'''<br />
* http://air.imag.fr/index.php/SRS<br />
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx<br />
* http://en.wikipedia.org/wiki/Software_requirements_specification<br />
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]<br />
<br />
=Bibliographie=<br />
<br />
Articles sur les systèmes de recommendation :<br />
<br />
*spotify - http://benanne.github.io/2014/08/05/spotify-cnns.html#contentbased<br />
*youtube - https://static.googleusercontent.com/media/research.google.com/fr//pubs/archive/45530.pdf<br />
*https://www.atala.org/IMG/pdf/1-Poirier-TAL51-3.pdf<br />
<br />
Explication des termes deep learning :<br />
<br />
*https://devblogs.nvidia.com/parallelforall/deep-learning-nutshell-core-concepts/<br />
<br />
Exemple simple pour prendre en main Keras :<br />
<br />
*http://machinelearningmastery.com/tutorial-first-neural-network-python-keras/<br />
*http://machinelearningmastery.com/introduction-python-deep-learning-library-keras/<br />
*http://tryhera.com/<br />
<br />
API TMDB :<br />
<br />
*https://developers.themoviedb.org/3/people<br />
<br />
Tuto Django + AngularJS :<br />
<br />
*https://thinkster.io/django-angularjs-tutorial#rendering-post-objects<br />
<br />
DOC2VEC :<br />
<br />
*https://github.com/nisarg64/Sentiment-Analysis-Word2Vec<br />
*https://translate.google.fr/translate?hl=fr&sl=en&u=https://rare-technologies.com/doc2vec-tutorial/&prev=search<br />
*https://translate.google.fr/translate?hl=fr&sl=en&u=http://linanqiu.github.io/2015/10/07/word2vec-sentiment/&prev=search<br />
<br />
Embedding layers : <br />
<br />
*http://stats.stackexchange.com/questions/182775/what-is-an-embedding-layer-in-a-neural-network<br />
*https://github.com/ririw/ririw.github.io/blob/master/assets/Recommending%20movies.ipynb<br />
*http://blog.richardweiss.org/2016/09/25/movie-embeddings.html<br />
<br />
Python API - Flask :<br />
<br />
*http://flask.pocoo.org/docs/0.12/quickstart/#accessing-request-data<br />
<br />
Grid'5000 :<br />
*https://www.grid5000.fr/mediawiki/index.php/Grid5000:Get_an_account</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=SRS_-_Recommandation_intelligente_de_films&diff=33752SRS - Recommandation intelligente de films2017-02-15T09:34:46Z<p>Elsa.Navarro: /* Structure du SRS */</p>
<hr />
<div>Voici la fiche SRS du projet Recommandation intelligente de films.<br />
<br />
[[Suggestion_intelligente_des_films_basé_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin<br />
* Hattinguais Julian<br />
* Navarro Elsa<br />
* Dunand Quentin<br />
<br />
=Introduction =<br />
Qui n'a pas rêvé d'avoir une liste de films correspondant exactement à ses goûts cinématographiques ? Beaucoup d'algorithmes ont été conçus pour tenter d'adapter une liste de film en fonction des goûts de l'utilisateur mais manquaient d'efficacité.<br />
Avec l’essor de l'intelligence artificielle et des réseaux neuronaux, de nouveaux outils émergent afin de mieux comprendre le comportement et les goûts humains. Nous avons donc décidé de développer un système capable de comprendre les goûts cinématographiques d'un humain de manière bien plus performante que les algorithmes déjà conçu dans ce but là.<br />
<br />
==But du document ==<br />
Le but de ce document SRS est de fournir une vue d'ensemble détaillée de notre système logiciel, ses paramètres et buts. Ce document décrit le public cible du projet et son interface utilisateur, ainsi que les spécifications du logiciel. Ce document est destiné tant aux utilisateurs qu'aux développeurs du logiciel.<br />
<br />
==Objectif du projet ==<br />
Le but de ce projet est d'explorer les possibilités du Deep Learning sur des données dont les variables sont hétérogènes et multidimensionnelles, ceci au travers de la suggestion intelligente de films s'adaptant aux goûts de l'utilisateur. Grâce à un système de réseaux neuronaux et d'une base de données conséquente de films (TMDb), le site proposera une liste de suggestions de films personnalisée par utilisateur. Le modèle créé sur une base de données statique pourra alors être affiné en temps réel grâce aux nouvelles opinions exprimées par l’utilisateur.<br />
<br />
== Définitions, acronymes et abréviations ==<br />
Deep Learning : ensemble de méthodes d'apprentissage automatiques visant à modéliser avec un haut niveau d’abstraction un ensemble de données.<br />
<br />
== Références ==<br />
Keras<br />
Tensor Flow<br />
En savoir plus sur le DeepLearning<br />
Aide de Mr Amini : site<br />
Angular Material : lien<br />
<br />
==Portée du produit ==<br />
Le produit est destiné aux utilisateurs désireux de générer automatiquement des recommandations de films en fonction de leurs goûts. L'application sera plus efficace sur des cinéphiles car ils pourront annoter un grand nombre de buts, mais elle a aussi la prétention de pouvoir être utile à un internaute lambda sans condition sur ses connaissances cinématographiques.<br />
<br />
=Description générale=<br />
<br />
==Le but du produit==<br />
Le produit doit permettre à l'utilisateur d'obtenir des recommandations intelligentes de films en fonction des films qu'il a appréciés et de ceux qu'il n'a pas appréciés. Cette recommandation doit tenir compte de la proximité des films les uns par rapport aux autres en terme de genre, synopsie, acteurs, réalisateurs, etc. Mais doit également tenir compte de la popularité des films et des tendances actuelles grâce à l'analyse en temps réel des flux Twitter.<br />
<br />
L'apport principal par rapport aux produits concurrents est de réaliser des prédictions personnalisées, grâce à l'utilisation de l'apprentissage automatique et à l'établissement d'un modèle propre à chaque utilisateur. La suggestion devrait donc être plus précise comparée à celles se basant sur la similarité des goûts entre utilisateurs. Deux utilisateurs appréciant un même film, ne sont en effet pas forcés d'apprécier tous les deux un autre film.<br />
<br />
==Description du produit==<br />
<br />
=== Interface système ===<br />
<br />
=== Interface utilisateur ===<br />
<br />
=== Interface hardware ===<br />
<br />
=== Interface software ===<br />
<br />
=== Contraintes mémoires ===<br />
<br />
==Fonctionnalités==<br />
Le site est conçu pour un utilisateur et ne sauvegarde que temporairement les choix de celui-ci.<br />
<br />
*Il proposera tout d'abord une liste de films représentative de tous les genres, réalisateurs, acteurs... du cinéma. L'utilisateur pourra pour chaque film, dire s'il aime, n'aime pas ou n'a pas d'opinions sur ce film.<br />
*Ensuite, en fonction des réponses de l'utilisateur, le site prédira grâce à un système de Deep Learning les films pouvant potentiellement plaire à l'utilisateur et les affichera avec leurs détails.<br />
*L'utilisateur pourra ensuite noter ces nouveaux films s'il le souhaite, et une nouvelle liste de films se générera afin de mieux s'adapter aux goûts de l'utilisateur.<br />
<br />
==Caractéristiques utilisateurs==<br />
Les utilisateurs doivent posséder une certaine culture cinématographique pour constituer une base d'apprentissage, en fonction des films qu'ils ont préalablement visionnés et de leur avis sur ceux-ci. En revanche, aucune compétence informatique spécifique n'est requise, de sorte qu'un utilisateur novice puisse utiliser l'application. L'interface doit donc être intuitive et extrêmement simple d'utilisation.<br />
<br />
==Contraintes générales==<br />
*Avoir une connexion internet.<br />
*Avoir un niveau basique de connaissances informatiques (savoir s'inscrire sur un site internet...).<br />
* L'apprentissage machine doit reposer sur TensorFlow (Keras)<br />
* Les données en entrées proviennent de l'API TMDB et des API Twitter (API REST 1.1 pour les données historiques ou API Streaming pour les données temps réelles)<br />
* l'API TDMBSimple limite le nombre de requêtes à la base de données à 40 par seconde. Peut potentiellement énormément ralentir les services.<br />
*Le modèle de prédiction doit être assez fiable pour prédire correctement un nombre conséquent de films pouvant potentiellemennt plaire à l'utilisateur (70%-80%).<br />
<br />
==Dépendances==<br />
* API de la base de donnée de film TMDB : https://developers.themoviedb.org/3/people<br />
* API REST 1.1 : https://dev.twitter.com/rest/public<br />
* API STREAMING : https://dev.twitter.com/streaming/overview<br />
<br />
=Specific requirements=<br />
<br />
==Conception de l'interface du système==<br />
<br />
'''TODO : Mettre des screens du site à la fin du projet'''<br />
<br />
== Fonctionnalités et performances du système ==<br />
<br />
=== Description pour chaque fonctionnalité ===<br />
<br />
'''Function''':<br />
<br />
'''Description''':<br />
<br />
'''Inputs''':<br />
<br />
'''Source''':<br />
<br />
'''Outputs''':<br />
<br />
'''Destination''':<br />
<br />
'''Action''':<br />
* Natural language sentences (with MUST, MAY, SHALL)<br />
* Graphical Notations : UML Sequence w/o collaboration diagrams, Process maps, Task Analysis (HTA, CTT)<br />
* Mathematical Notations<br />
* Tabular notations for several (condition --> action) tuples<br />
<br />
'''Non functional requirements''':<br />
<br />
'''Pre-condition''':<br />
<br />
'''Post-condition''':<br />
<br />
'''Side-effects''':<br />
<br />
<br />
=Evolutions potentielles du produit=<br />
*Multi utilisateurs : Une session de préférence par utilisateur. De plus, les goûts des utilisateurs seront sauvegardés afin qu'à la prochaine connexion, le modèle de Deep Learning soit prêt à prédire des films correspondant au goût de l'utilisateur concerné.<br />
*Prédire les films "tendance" du moment en priorité. Le site affichera en priorité les films les plus populaire du moment et correspondant aux goûts de *l'utilisateur. Pour cela, il scannera les tweets de Tweeter en temps réel et cherchera une correspondance entre les tweets de films populaires et ceux prédis par le modèle pour l'utilisateur concerné. <br />
*Utiliser des systèmes distribués afin d'améliorer les performances d'apprentissage du modèle de Deep Learning et de l'analyse en temps réel de Tweeter.<br />
<br />
=Appendices=<br />
<br />
==Structure du SRS==<br />
The document is based on template of the Software Requirements Specification (SRS) inspired of the IEEE/ANSI 830-1998 Standard.<br />
<br />
'''References:'''<br />
* http://air.imag.fr/index.php/SRS<br />
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx<br />
* http://en.wikipedia.org/wiki/Software_requirements_specification<br />
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]<br />
<br />
=Bibliographie=<br />
<br />
Articles sur les systèmes de recommendation<br />
<br />
*spotify - http://benanne.github.io/2014/08/05/spotify-cnns.html#contentbased<br />
*youtube - https://static.googleusercontent.com/media/research.google.com/fr//pubs/archive/45530.pdf<br />
*https://www.atala.org/IMG/pdf/1-Poirier-TAL51-3.pdf<br />
<br />
Explication des termes deep learning :<br />
<br />
*https://devblogs.nvidia.com/parallelforall/deep-learning-nutshell-core-concepts/<br />
<br />
Exemple simple pour prendre en main Keras :<br />
<br />
*http://machinelearningmastery.com/tutorial-first-neural-network-python-keras/<br />
*http://machinelearningmastery.com/introduction-python-deep-learning-library-keras/<br />
*http://tryhera.com/<br />
<br />
API TMDB :<br />
<br />
*https://developers.themoviedb.org/3/people<br />
<br />
Tuto Django + AngularJS :<br />
<br />
*https://thinkster.io/django-angularjs-tutorial#rendering-post-objects<br />
<br />
DOC2VEC :<br />
<br />
*https://github.com/nisarg64/Sentiment-Analysis-Word2Vec<br />
*https://translate.google.fr/translate?hl=fr&sl=en&u=https://rare-technologies.com/doc2vec-tutorial/&prev=search<br />
*https://translate.google.fr/translate?hl=fr&sl=en&u=http://linanqiu.github.io/2015/10/07/word2vec-sentiment/&prev=search<br />
<br />
Embedding layers : <br />
<br />
*http://stats.stackexchange.com/questions/182775/what-is-an-embedding-layer-in-a-neural-network<br />
*https://github.com/ririw/ririw.github.io/blob/master/assets/Recommending%20movies.ipynb<br />
*http://blog.richardweiss.org/2016/09/25/movie-embeddings.html<br />
<br />
Python API - Flask :<br />
<br />
*http://flask.pocoo.org/docs/0.12/quickstart/#accessing-request-data<br />
<br />
Grid'5000 :<br />
*https://www.grid5000.fr/mediawiki/index.php/Grid5000:Get_an_account</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=SRS_-_Recommandation_intelligente_de_films&diff=33751SRS - Recommandation intelligente de films2017-02-15T09:34:04Z<p>Elsa.Navarro: /* Description pour chaque fonctionnalité */</p>
<hr />
<div>Voici la fiche SRS du projet Recommandation intelligente de films.<br />
<br />
[[Suggestion_intelligente_des_films_basé_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin<br />
* Hattinguais Julian<br />
* Navarro Elsa<br />
* Dunand Quentin<br />
<br />
=Introduction =<br />
Qui n'a pas rêvé d'avoir une liste de films correspondant exactement à ses goûts cinématographiques ? Beaucoup d'algorithmes ont été conçus pour tenter d'adapter une liste de film en fonction des goûts de l'utilisateur mais manquaient d'efficacité.<br />
Avec l’essor de l'intelligence artificielle et des réseaux neuronaux, de nouveaux outils émergent afin de mieux comprendre le comportement et les goûts humains. Nous avons donc décidé de développer un système capable de comprendre les goûts cinématographiques d'un humain de manière bien plus performante que les algorithmes déjà conçu dans ce but là.<br />
<br />
==But du document ==<br />
Le but de ce document SRS est de fournir une vue d'ensemble détaillée de notre système logiciel, ses paramètres et buts. Ce document décrit le public cible du projet et son interface utilisateur, ainsi que les spécifications du logiciel. Ce document est destiné tant aux utilisateurs qu'aux développeurs du logiciel.<br />
<br />
==Objectif du projet ==<br />
Le but de ce projet est d'explorer les possibilités du Deep Learning sur des données dont les variables sont hétérogènes et multidimensionnelles, ceci au travers de la suggestion intelligente de films s'adaptant aux goûts de l'utilisateur. Grâce à un système de réseaux neuronaux et d'une base de données conséquente de films (TMDb), le site proposera une liste de suggestions de films personnalisée par utilisateur. Le modèle créé sur une base de données statique pourra alors être affiné en temps réel grâce aux nouvelles opinions exprimées par l’utilisateur.<br />
<br />
== Définitions, acronymes et abréviations ==<br />
Deep Learning : ensemble de méthodes d'apprentissage automatiques visant à modéliser avec un haut niveau d’abstraction un ensemble de données.<br />
<br />
== Références ==<br />
Keras<br />
Tensor Flow<br />
En savoir plus sur le DeepLearning<br />
Aide de Mr Amini : site<br />
Angular Material : lien<br />
<br />
==Portée du produit ==<br />
Le produit est destiné aux utilisateurs désireux de générer automatiquement des recommandations de films en fonction de leurs goûts. L'application sera plus efficace sur des cinéphiles car ils pourront annoter un grand nombre de buts, mais elle a aussi la prétention de pouvoir être utile à un internaute lambda sans condition sur ses connaissances cinématographiques.<br />
<br />
=Description générale=<br />
<br />
==Le but du produit==<br />
Le produit doit permettre à l'utilisateur d'obtenir des recommandations intelligentes de films en fonction des films qu'il a appréciés et de ceux qu'il n'a pas appréciés. Cette recommandation doit tenir compte de la proximité des films les uns par rapport aux autres en terme de genre, synopsie, acteurs, réalisateurs, etc. Mais doit également tenir compte de la popularité des films et des tendances actuelles grâce à l'analyse en temps réel des flux Twitter.<br />
<br />
L'apport principal par rapport aux produits concurrents est de réaliser des prédictions personnalisées, grâce à l'utilisation de l'apprentissage automatique et à l'établissement d'un modèle propre à chaque utilisateur. La suggestion devrait donc être plus précise comparée à celles se basant sur la similarité des goûts entre utilisateurs. Deux utilisateurs appréciant un même film, ne sont en effet pas forcés d'apprécier tous les deux un autre film.<br />
<br />
==Description du produit==<br />
<br />
=== Interface système ===<br />
<br />
=== Interface utilisateur ===<br />
<br />
=== Interface hardware ===<br />
<br />
=== Interface software ===<br />
<br />
=== Contraintes mémoires ===<br />
<br />
==Fonctionnalités==<br />
Le site est conçu pour un utilisateur et ne sauvegarde que temporairement les choix de celui-ci.<br />
<br />
*Il proposera tout d'abord une liste de films représentative de tous les genres, réalisateurs, acteurs... du cinéma. L'utilisateur pourra pour chaque film, dire s'il aime, n'aime pas ou n'a pas d'opinions sur ce film.<br />
*Ensuite, en fonction des réponses de l'utilisateur, le site prédira grâce à un système de Deep Learning les films pouvant potentiellement plaire à l'utilisateur et les affichera avec leurs détails.<br />
*L'utilisateur pourra ensuite noter ces nouveaux films s'il le souhaite, et une nouvelle liste de films se générera afin de mieux s'adapter aux goûts de l'utilisateur.<br />
<br />
==Caractéristiques utilisateurs==<br />
Les utilisateurs doivent posséder une certaine culture cinématographique pour constituer une base d'apprentissage, en fonction des films qu'ils ont préalablement visionnés et de leur avis sur ceux-ci. En revanche, aucune compétence informatique spécifique n'est requise, de sorte qu'un utilisateur novice puisse utiliser l'application. L'interface doit donc être intuitive et extrêmement simple d'utilisation.<br />
<br />
==Contraintes générales==<br />
*Avoir une connexion internet.<br />
*Avoir un niveau basique de connaissances informatiques (savoir s'inscrire sur un site internet...).<br />
* L'apprentissage machine doit reposer sur TensorFlow (Keras)<br />
* Les données en entrées proviennent de l'API TMDB et des API Twitter (API REST 1.1 pour les données historiques ou API Streaming pour les données temps réelles)<br />
* l'API TDMBSimple limite le nombre de requêtes à la base de données à 40 par seconde. Peut potentiellement énormément ralentir les services.<br />
*Le modèle de prédiction doit être assez fiable pour prédire correctement un nombre conséquent de films pouvant potentiellemennt plaire à l'utilisateur (70%-80%).<br />
<br />
==Dépendances==<br />
* API de la base de donnée de film TMDB : https://developers.themoviedb.org/3/people<br />
* API REST 1.1 : https://dev.twitter.com/rest/public<br />
* API STREAMING : https://dev.twitter.com/streaming/overview<br />
<br />
=Specific requirements=<br />
<br />
==Conception de l'interface du système==<br />
<br />
'''TODO : Mettre des screens du site à la fin du projet'''<br />
<br />
== Fonctionnalités et performances du système ==<br />
<br />
=== Description pour chaque fonctionnalité ===<br />
<br />
'''Function''':<br />
<br />
'''Description''':<br />
<br />
'''Inputs''':<br />
<br />
'''Source''':<br />
<br />
'''Outputs''':<br />
<br />
'''Destination''':<br />
<br />
'''Action''':<br />
* Natural language sentences (with MUST, MAY, SHALL)<br />
* Graphical Notations : UML Sequence w/o collaboration diagrams, Process maps, Task Analysis (HTA, CTT)<br />
* Mathematical Notations<br />
* Tabular notations for several (condition --> action) tuples<br />
<br />
'''Non functional requirements''':<br />
<br />
'''Pre-condition''':<br />
<br />
'''Post-condition''':<br />
<br />
'''Side-effects''':<br />
<br />
<br />
=Evolutions potentielles du produit=<br />
*Multi utilisateurs : Une session de préférence par utilisateur. De plus, les goûts des utilisateurs seront sauvegardés afin qu'à la prochaine connexion, le modèle de Deep Learning soit prêt à prédire des films correspondant au goût de l'utilisateur concerné.<br />
*Prédire les films "tendance" du moment en priorité. Le site affichera en priorité les films les plus populaire du moment et correspondant aux goûts de *l'utilisateur. Pour cela, il scannera les tweets de Tweeter en temps réel et cherchera une correspondance entre les tweets de films populaires et ceux prédis par le modèle pour l'utilisateur concerné. <br />
*Utiliser des systèmes distribués afin d'améliorer les performances d'apprentissage du modèle de Deep Learning et de l'analyse en temps réel de Tweeter.<br />
<br />
=Appendices=<br />
<br />
==Structure du SRS==<br />
The document is based on template of the Software Requirements Specification (SRS) inspired of the IEEE/ANSI 830-1998 Standard.<br />
<br />
'''References:'''<br />
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx<br />
* http://en.wikipedia.org/wiki/Software_requirements_specification<br />
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]<br />
<br />
=Bibliographie=<br />
<br />
Articles sur les systèmes de recommendation<br />
<br />
*spotify - http://benanne.github.io/2014/08/05/spotify-cnns.html#contentbased<br />
*youtube - https://static.googleusercontent.com/media/research.google.com/fr//pubs/archive/45530.pdf<br />
*https://www.atala.org/IMG/pdf/1-Poirier-TAL51-3.pdf<br />
<br />
Explication des termes deep learning :<br />
<br />
*https://devblogs.nvidia.com/parallelforall/deep-learning-nutshell-core-concepts/<br />
<br />
Exemple simple pour prendre en main Keras :<br />
<br />
*http://machinelearningmastery.com/tutorial-first-neural-network-python-keras/<br />
*http://machinelearningmastery.com/introduction-python-deep-learning-library-keras/<br />
*http://tryhera.com/<br />
<br />
API TMDB :<br />
<br />
*https://developers.themoviedb.org/3/people<br />
<br />
Tuto Django + AngularJS :<br />
<br />
*https://thinkster.io/django-angularjs-tutorial#rendering-post-objects<br />
<br />
DOC2VEC :<br />
<br />
*https://github.com/nisarg64/Sentiment-Analysis-Word2Vec<br />
*https://translate.google.fr/translate?hl=fr&sl=en&u=https://rare-technologies.com/doc2vec-tutorial/&prev=search<br />
*https://translate.google.fr/translate?hl=fr&sl=en&u=http://linanqiu.github.io/2015/10/07/word2vec-sentiment/&prev=search<br />
<br />
Embedding layers : <br />
<br />
*http://stats.stackexchange.com/questions/182775/what-is-an-embedding-layer-in-a-neural-network<br />
*https://github.com/ririw/ririw.github.io/blob/master/assets/Recommending%20movies.ipynb<br />
*http://blog.richardweiss.org/2016/09/25/movie-embeddings.html<br />
<br />
Python API - Flask :<br />
<br />
*http://flask.pocoo.org/docs/0.12/quickstart/#accessing-request-data<br />
<br />
Grid'5000 :<br />
*https://www.grid5000.fr/mediawiki/index.php/Grid5000:Get_an_account</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=SRS_-_Recommandation_intelligente_de_films&diff=33750SRS - Recommandation intelligente de films2017-02-15T09:33:18Z<p>Elsa.Navarro: /* Evolutions potentielles du produit */</p>
<hr />
<div>Voici la fiche SRS du projet Recommandation intelligente de films.<br />
<br />
[[Suggestion_intelligente_des_films_basé_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin<br />
* Hattinguais Julian<br />
* Navarro Elsa<br />
* Dunand Quentin<br />
<br />
=Introduction =<br />
Qui n'a pas rêvé d'avoir une liste de films correspondant exactement à ses goûts cinématographiques ? Beaucoup d'algorithmes ont été conçus pour tenter d'adapter une liste de film en fonction des goûts de l'utilisateur mais manquaient d'efficacité.<br />
Avec l’essor de l'intelligence artificielle et des réseaux neuronaux, de nouveaux outils émergent afin de mieux comprendre le comportement et les goûts humains. Nous avons donc décidé de développer un système capable de comprendre les goûts cinématographiques d'un humain de manière bien plus performante que les algorithmes déjà conçu dans ce but là.<br />
<br />
==But du document ==<br />
Le but de ce document SRS est de fournir une vue d'ensemble détaillée de notre système logiciel, ses paramètres et buts. Ce document décrit le public cible du projet et son interface utilisateur, ainsi que les spécifications du logiciel. Ce document est destiné tant aux utilisateurs qu'aux développeurs du logiciel.<br />
<br />
==Objectif du projet ==<br />
Le but de ce projet est d'explorer les possibilités du Deep Learning sur des données dont les variables sont hétérogènes et multidimensionnelles, ceci au travers de la suggestion intelligente de films s'adaptant aux goûts de l'utilisateur. Grâce à un système de réseaux neuronaux et d'une base de données conséquente de films (TMDb), le site proposera une liste de suggestions de films personnalisée par utilisateur. Le modèle créé sur une base de données statique pourra alors être affiné en temps réel grâce aux nouvelles opinions exprimées par l’utilisateur.<br />
<br />
== Définitions, acronymes et abréviations ==<br />
Deep Learning : ensemble de méthodes d'apprentissage automatiques visant à modéliser avec un haut niveau d’abstraction un ensemble de données.<br />
<br />
== Références ==<br />
Keras<br />
Tensor Flow<br />
En savoir plus sur le DeepLearning<br />
Aide de Mr Amini : site<br />
Angular Material : lien<br />
<br />
==Portée du produit ==<br />
Le produit est destiné aux utilisateurs désireux de générer automatiquement des recommandations de films en fonction de leurs goûts. L'application sera plus efficace sur des cinéphiles car ils pourront annoter un grand nombre de buts, mais elle a aussi la prétention de pouvoir être utile à un internaute lambda sans condition sur ses connaissances cinématographiques.<br />
<br />
=Description générale=<br />
<br />
==Le but du produit==<br />
Le produit doit permettre à l'utilisateur d'obtenir des recommandations intelligentes de films en fonction des films qu'il a appréciés et de ceux qu'il n'a pas appréciés. Cette recommandation doit tenir compte de la proximité des films les uns par rapport aux autres en terme de genre, synopsie, acteurs, réalisateurs, etc. Mais doit également tenir compte de la popularité des films et des tendances actuelles grâce à l'analyse en temps réel des flux Twitter.<br />
<br />
L'apport principal par rapport aux produits concurrents est de réaliser des prédictions personnalisées, grâce à l'utilisation de l'apprentissage automatique et à l'établissement d'un modèle propre à chaque utilisateur. La suggestion devrait donc être plus précise comparée à celles se basant sur la similarité des goûts entre utilisateurs. Deux utilisateurs appréciant un même film, ne sont en effet pas forcés d'apprécier tous les deux un autre film.<br />
<br />
==Description du produit==<br />
<br />
=== Interface système ===<br />
<br />
=== Interface utilisateur ===<br />
<br />
=== Interface hardware ===<br />
<br />
=== Interface software ===<br />
<br />
=== Contraintes mémoires ===<br />
<br />
==Fonctionnalités==<br />
Le site est conçu pour un utilisateur et ne sauvegarde que temporairement les choix de celui-ci.<br />
<br />
*Il proposera tout d'abord une liste de films représentative de tous les genres, réalisateurs, acteurs... du cinéma. L'utilisateur pourra pour chaque film, dire s'il aime, n'aime pas ou n'a pas d'opinions sur ce film.<br />
*Ensuite, en fonction des réponses de l'utilisateur, le site prédira grâce à un système de Deep Learning les films pouvant potentiellement plaire à l'utilisateur et les affichera avec leurs détails.<br />
*L'utilisateur pourra ensuite noter ces nouveaux films s'il le souhaite, et une nouvelle liste de films se générera afin de mieux s'adapter aux goûts de l'utilisateur.<br />
<br />
==Caractéristiques utilisateurs==<br />
Les utilisateurs doivent posséder une certaine culture cinématographique pour constituer une base d'apprentissage, en fonction des films qu'ils ont préalablement visionnés et de leur avis sur ceux-ci. En revanche, aucune compétence informatique spécifique n'est requise, de sorte qu'un utilisateur novice puisse utiliser l'application. L'interface doit donc être intuitive et extrêmement simple d'utilisation.<br />
<br />
==Contraintes générales==<br />
*Avoir une connexion internet.<br />
*Avoir un niveau basique de connaissances informatiques (savoir s'inscrire sur un site internet...).<br />
* L'apprentissage machine doit reposer sur TensorFlow (Keras)<br />
* Les données en entrées proviennent de l'API TMDB et des API Twitter (API REST 1.1 pour les données historiques ou API Streaming pour les données temps réelles)<br />
* l'API TDMBSimple limite le nombre de requêtes à la base de données à 40 par seconde. Peut potentiellement énormément ralentir les services.<br />
*Le modèle de prédiction doit être assez fiable pour prédire correctement un nombre conséquent de films pouvant potentiellemennt plaire à l'utilisateur (70%-80%).<br />
<br />
==Dépendances==<br />
* API de la base de donnée de film TMDB : https://developers.themoviedb.org/3/people<br />
* API REST 1.1 : https://dev.twitter.com/rest/public<br />
* API STREAMING : https://dev.twitter.com/streaming/overview<br />
<br />
=Specific requirements=<br />
<br />
==Conception de l'interface du système==<br />
<br />
'''TODO : Mettre des screens du site à la fin du projet'''<br />
<br />
== Fonctionnalités et performances du système ==<br />
<br />
=== Description pour chaque fonctionnalité ===<br />
<br />
'''Function''':<br />
<br />
'''Description''':<br />
<br />
'''Inputs''':<br />
<br />
'''Source''':<br />
<br />
'''Outputs''':<br />
<br />
'''Destination''':<br />
<br />
'''Action''':<br />
* Natural language sentences (with MUST, MAY, SHALL)<br />
* Graphical Notations : UML Sequence w/o collaboration diagrams, Process maps, Task Analysis (HTA, CTT)<br />
* Mathematical Notations<br />
* Tabular notations for several (condition --> action) tuples<br />
<br />
'''Non functional requirements''':<br />
<br />
'''Pre-condition''':<br />
<br />
'''Post-condition''':<br />
<br />
'''Side-effects''':<br />
<br />
=Appendices=<br />
<br />
==Structure du SRS==<br />
The document is based on template of the Software Requirements Specification (SRS) inspired of the IEEE/ANSI 830-1998 Standard.<br />
<br />
'''References:'''<br />
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx<br />
* http://en.wikipedia.org/wiki/Software_requirements_specification<br />
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]<br />
<br />
=Bibliographie=<br />
<br />
Articles sur les systèmes de recommendation<br />
<br />
*spotify - http://benanne.github.io/2014/08/05/spotify-cnns.html#contentbased<br />
*youtube - https://static.googleusercontent.com/media/research.google.com/fr//pubs/archive/45530.pdf<br />
*https://www.atala.org/IMG/pdf/1-Poirier-TAL51-3.pdf<br />
<br />
Explication des termes deep learning :<br />
<br />
*https://devblogs.nvidia.com/parallelforall/deep-learning-nutshell-core-concepts/<br />
<br />
Exemple simple pour prendre en main Keras :<br />
<br />
*http://machinelearningmastery.com/tutorial-first-neural-network-python-keras/<br />
*http://machinelearningmastery.com/introduction-python-deep-learning-library-keras/<br />
*http://tryhera.com/<br />
<br />
API TMDB :<br />
<br />
*https://developers.themoviedb.org/3/people<br />
<br />
Tuto Django + AngularJS :<br />
<br />
*https://thinkster.io/django-angularjs-tutorial#rendering-post-objects<br />
<br />
DOC2VEC :<br />
<br />
*https://github.com/nisarg64/Sentiment-Analysis-Word2Vec<br />
*https://translate.google.fr/translate?hl=fr&sl=en&u=https://rare-technologies.com/doc2vec-tutorial/&prev=search<br />
*https://translate.google.fr/translate?hl=fr&sl=en&u=http://linanqiu.github.io/2015/10/07/word2vec-sentiment/&prev=search<br />
<br />
Embedding layers : <br />
<br />
*http://stats.stackexchange.com/questions/182775/what-is-an-embedding-layer-in-a-neural-network<br />
*https://github.com/ririw/ririw.github.io/blob/master/assets/Recommending%20movies.ipynb<br />
*http://blog.richardweiss.org/2016/09/25/movie-embeddings.html<br />
<br />
Python API - Flask :<br />
<br />
*http://flask.pocoo.org/docs/0.12/quickstart/#accessing-request-data<br />
<br />
Grid'5000 :<br />
*https://www.grid5000.fr/mediawiki/index.php/Grid5000:Get_an_account</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=SRS_-_Recommandation_intelligente_de_films&diff=33749SRS - Recommandation intelligente de films2017-02-15T09:33:03Z<p>Elsa.Navarro: /* Conception de l'interface du site */</p>
<hr />
<div>Voici la fiche SRS du projet Recommandation intelligente de films.<br />
<br />
[[Suggestion_intelligente_des_films_basé_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin<br />
* Hattinguais Julian<br />
* Navarro Elsa<br />
* Dunand Quentin<br />
<br />
=Introduction =<br />
Qui n'a pas rêvé d'avoir une liste de films correspondant exactement à ses goûts cinématographiques ? Beaucoup d'algorithmes ont été conçus pour tenter d'adapter une liste de film en fonction des goûts de l'utilisateur mais manquaient d'efficacité.<br />
Avec l’essor de l'intelligence artificielle et des réseaux neuronaux, de nouveaux outils émergent afin de mieux comprendre le comportement et les goûts humains. Nous avons donc décidé de développer un système capable de comprendre les goûts cinématographiques d'un humain de manière bien plus performante que les algorithmes déjà conçu dans ce but là.<br />
<br />
==But du document ==<br />
Le but de ce document SRS est de fournir une vue d'ensemble détaillée de notre système logiciel, ses paramètres et buts. Ce document décrit le public cible du projet et son interface utilisateur, ainsi que les spécifications du logiciel. Ce document est destiné tant aux utilisateurs qu'aux développeurs du logiciel.<br />
<br />
==Objectif du projet ==<br />
Le but de ce projet est d'explorer les possibilités du Deep Learning sur des données dont les variables sont hétérogènes et multidimensionnelles, ceci au travers de la suggestion intelligente de films s'adaptant aux goûts de l'utilisateur. Grâce à un système de réseaux neuronaux et d'une base de données conséquente de films (TMDb), le site proposera une liste de suggestions de films personnalisée par utilisateur. Le modèle créé sur une base de données statique pourra alors être affiné en temps réel grâce aux nouvelles opinions exprimées par l’utilisateur.<br />
<br />
== Définitions, acronymes et abréviations ==<br />
Deep Learning : ensemble de méthodes d'apprentissage automatiques visant à modéliser avec un haut niveau d’abstraction un ensemble de données.<br />
<br />
== Références ==<br />
Keras<br />
Tensor Flow<br />
En savoir plus sur le DeepLearning<br />
Aide de Mr Amini : site<br />
Angular Material : lien<br />
<br />
==Portée du produit ==<br />
Le produit est destiné aux utilisateurs désireux de générer automatiquement des recommandations de films en fonction de leurs goûts. L'application sera plus efficace sur des cinéphiles car ils pourront annoter un grand nombre de buts, mais elle a aussi la prétention de pouvoir être utile à un internaute lambda sans condition sur ses connaissances cinématographiques.<br />
<br />
=Description générale=<br />
<br />
==Le but du produit==<br />
Le produit doit permettre à l'utilisateur d'obtenir des recommandations intelligentes de films en fonction des films qu'il a appréciés et de ceux qu'il n'a pas appréciés. Cette recommandation doit tenir compte de la proximité des films les uns par rapport aux autres en terme de genre, synopsie, acteurs, réalisateurs, etc. Mais doit également tenir compte de la popularité des films et des tendances actuelles grâce à l'analyse en temps réel des flux Twitter.<br />
<br />
L'apport principal par rapport aux produits concurrents est de réaliser des prédictions personnalisées, grâce à l'utilisation de l'apprentissage automatique et à l'établissement d'un modèle propre à chaque utilisateur. La suggestion devrait donc être plus précise comparée à celles se basant sur la similarité des goûts entre utilisateurs. Deux utilisateurs appréciant un même film, ne sont en effet pas forcés d'apprécier tous les deux un autre film.<br />
<br />
==Description du produit==<br />
<br />
=== Interface système ===<br />
<br />
=== Interface utilisateur ===<br />
<br />
=== Interface hardware ===<br />
<br />
=== Interface software ===<br />
<br />
=== Contraintes mémoires ===<br />
<br />
==Fonctionnalités==<br />
Le site est conçu pour un utilisateur et ne sauvegarde que temporairement les choix de celui-ci.<br />
<br />
*Il proposera tout d'abord une liste de films représentative de tous les genres, réalisateurs, acteurs... du cinéma. L'utilisateur pourra pour chaque film, dire s'il aime, n'aime pas ou n'a pas d'opinions sur ce film.<br />
*Ensuite, en fonction des réponses de l'utilisateur, le site prédira grâce à un système de Deep Learning les films pouvant potentiellement plaire à l'utilisateur et les affichera avec leurs détails.<br />
*L'utilisateur pourra ensuite noter ces nouveaux films s'il le souhaite, et une nouvelle liste de films se générera afin de mieux s'adapter aux goûts de l'utilisateur.<br />
<br />
==Caractéristiques utilisateurs==<br />
Les utilisateurs doivent posséder une certaine culture cinématographique pour constituer une base d'apprentissage, en fonction des films qu'ils ont préalablement visionnés et de leur avis sur ceux-ci. En revanche, aucune compétence informatique spécifique n'est requise, de sorte qu'un utilisateur novice puisse utiliser l'application. L'interface doit donc être intuitive et extrêmement simple d'utilisation.<br />
<br />
==Contraintes générales==<br />
*Avoir une connexion internet.<br />
*Avoir un niveau basique de connaissances informatiques (savoir s'inscrire sur un site internet...).<br />
* L'apprentissage machine doit reposer sur TensorFlow (Keras)<br />
* Les données en entrées proviennent de l'API TMDB et des API Twitter (API REST 1.1 pour les données historiques ou API Streaming pour les données temps réelles)<br />
* l'API TDMBSimple limite le nombre de requêtes à la base de données à 40 par seconde. Peut potentiellement énormément ralentir les services.<br />
*Le modèle de prédiction doit être assez fiable pour prédire correctement un nombre conséquent de films pouvant potentiellemennt plaire à l'utilisateur (70%-80%).<br />
<br />
==Dépendances==<br />
* API de la base de donnée de film TMDB : https://developers.themoviedb.org/3/people<br />
* API REST 1.1 : https://dev.twitter.com/rest/public<br />
* API STREAMING : https://dev.twitter.com/streaming/overview<br />
<br />
==Evolutions potentielles du produit==<br />
*Multi utilisateurs : Une session de préférence par utilisateur. De plus, les goûts des utilisateurs seront sauvegardés afin qu'à la prochaine connexion, le modèle de Deep Learning soit prêt à prédire des films correspondant au goût de l'utilisateur concerné.<br />
*Prédire les films "tendance" du moment en priorité. Le site affichera en priorité les films les plus populaire du moment et correspondant aux goûts de *l'utilisateur. Pour cela, il scannera les tweets de Tweeter en temps réel et cherchera une correspondance entre les tweets de films populaires et ceux prédis par le modèle pour l'utilisateur concerné. <br />
*Utiliser des systèmes distribués afin d'améliorer les performances d'apprentissage du modèle de Deep Learning et de l'analyse en temps réel de Tweeter.<br />
<br />
=Specific requirements=<br />
<br />
==Conception de l'interface du système==<br />
<br />
'''TODO : Mettre des screens du site à la fin du projet'''<br />
<br />
== Fonctionnalités et performances du système ==<br />
<br />
=== Description pour chaque fonctionnalité ===<br />
<br />
'''Function''':<br />
<br />
'''Description''':<br />
<br />
'''Inputs''':<br />
<br />
'''Source''':<br />
<br />
'''Outputs''':<br />
<br />
'''Destination''':<br />
<br />
'''Action''':<br />
* Natural language sentences (with MUST, MAY, SHALL)<br />
* Graphical Notations : UML Sequence w/o collaboration diagrams, Process maps, Task Analysis (HTA, CTT)<br />
* Mathematical Notations<br />
* Tabular notations for several (condition --> action) tuples<br />
<br />
'''Non functional requirements''':<br />
<br />
'''Pre-condition''':<br />
<br />
'''Post-condition''':<br />
<br />
'''Side-effects''':<br />
<br />
=Appendices=<br />
<br />
==Structure du SRS==<br />
The document is based on template of the Software Requirements Specification (SRS) inspired of the IEEE/ANSI 830-1998 Standard.<br />
<br />
'''References:'''<br />
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx<br />
* http://en.wikipedia.org/wiki/Software_requirements_specification<br />
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]<br />
<br />
=Bibliographie=<br />
<br />
Articles sur les systèmes de recommendation<br />
<br />
*spotify - http://benanne.github.io/2014/08/05/spotify-cnns.html#contentbased<br />
*youtube - https://static.googleusercontent.com/media/research.google.com/fr//pubs/archive/45530.pdf<br />
*https://www.atala.org/IMG/pdf/1-Poirier-TAL51-3.pdf<br />
<br />
Explication des termes deep learning :<br />
<br />
*https://devblogs.nvidia.com/parallelforall/deep-learning-nutshell-core-concepts/<br />
<br />
Exemple simple pour prendre en main Keras :<br />
<br />
*http://machinelearningmastery.com/tutorial-first-neural-network-python-keras/<br />
*http://machinelearningmastery.com/introduction-python-deep-learning-library-keras/<br />
*http://tryhera.com/<br />
<br />
API TMDB :<br />
<br />
*https://developers.themoviedb.org/3/people<br />
<br />
Tuto Django + AngularJS :<br />
<br />
*https://thinkster.io/django-angularjs-tutorial#rendering-post-objects<br />
<br />
DOC2VEC :<br />
<br />
*https://github.com/nisarg64/Sentiment-Analysis-Word2Vec<br />
*https://translate.google.fr/translate?hl=fr&sl=en&u=https://rare-technologies.com/doc2vec-tutorial/&prev=search<br />
*https://translate.google.fr/translate?hl=fr&sl=en&u=http://linanqiu.github.io/2015/10/07/word2vec-sentiment/&prev=search<br />
<br />
Embedding layers : <br />
<br />
*http://stats.stackexchange.com/questions/182775/what-is-an-embedding-layer-in-a-neural-network<br />
*https://github.com/ririw/ririw.github.io/blob/master/assets/Recommending%20movies.ipynb<br />
*http://blog.richardweiss.org/2016/09/25/movie-embeddings.html<br />
<br />
Python API - Flask :<br />
<br />
*http://flask.pocoo.org/docs/0.12/quickstart/#accessing-request-data<br />
<br />
Grid'5000 :<br />
*https://www.grid5000.fr/mediawiki/index.php/Grid5000:Get_an_account</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=SRS_-_Recommandation_intelligente_de_films&diff=33748SRS - Recommandation intelligente de films2017-02-15T09:32:40Z<p>Elsa.Navarro: /* Specific requirements */</p>
<hr />
<div>Voici la fiche SRS du projet Recommandation intelligente de films.<br />
<br />
[[Suggestion_intelligente_des_films_basé_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin<br />
* Hattinguais Julian<br />
* Navarro Elsa<br />
* Dunand Quentin<br />
<br />
=Introduction =<br />
Qui n'a pas rêvé d'avoir une liste de films correspondant exactement à ses goûts cinématographiques ? Beaucoup d'algorithmes ont été conçus pour tenter d'adapter une liste de film en fonction des goûts de l'utilisateur mais manquaient d'efficacité.<br />
Avec l’essor de l'intelligence artificielle et des réseaux neuronaux, de nouveaux outils émergent afin de mieux comprendre le comportement et les goûts humains. Nous avons donc décidé de développer un système capable de comprendre les goûts cinématographiques d'un humain de manière bien plus performante que les algorithmes déjà conçu dans ce but là.<br />
<br />
==But du document ==<br />
Le but de ce document SRS est de fournir une vue d'ensemble détaillée de notre système logiciel, ses paramètres et buts. Ce document décrit le public cible du projet et son interface utilisateur, ainsi que les spécifications du logiciel. Ce document est destiné tant aux utilisateurs qu'aux développeurs du logiciel.<br />
<br />
==Objectif du projet ==<br />
Le but de ce projet est d'explorer les possibilités du Deep Learning sur des données dont les variables sont hétérogènes et multidimensionnelles, ceci au travers de la suggestion intelligente de films s'adaptant aux goûts de l'utilisateur. Grâce à un système de réseaux neuronaux et d'une base de données conséquente de films (TMDb), le site proposera une liste de suggestions de films personnalisée par utilisateur. Le modèle créé sur une base de données statique pourra alors être affiné en temps réel grâce aux nouvelles opinions exprimées par l’utilisateur.<br />
<br />
== Définitions, acronymes et abréviations ==<br />
Deep Learning : ensemble de méthodes d'apprentissage automatiques visant à modéliser avec un haut niveau d’abstraction un ensemble de données.<br />
<br />
== Références ==<br />
Keras<br />
Tensor Flow<br />
En savoir plus sur le DeepLearning<br />
Aide de Mr Amini : site<br />
Angular Material : lien<br />
<br />
==Portée du produit ==<br />
Le produit est destiné aux utilisateurs désireux de générer automatiquement des recommandations de films en fonction de leurs goûts. L'application sera plus efficace sur des cinéphiles car ils pourront annoter un grand nombre de buts, mais elle a aussi la prétention de pouvoir être utile à un internaute lambda sans condition sur ses connaissances cinématographiques.<br />
<br />
=Description générale=<br />
<br />
==Le but du produit==<br />
Le produit doit permettre à l'utilisateur d'obtenir des recommandations intelligentes de films en fonction des films qu'il a appréciés et de ceux qu'il n'a pas appréciés. Cette recommandation doit tenir compte de la proximité des films les uns par rapport aux autres en terme de genre, synopsie, acteurs, réalisateurs, etc. Mais doit également tenir compte de la popularité des films et des tendances actuelles grâce à l'analyse en temps réel des flux Twitter.<br />
<br />
L'apport principal par rapport aux produits concurrents est de réaliser des prédictions personnalisées, grâce à l'utilisation de l'apprentissage automatique et à l'établissement d'un modèle propre à chaque utilisateur. La suggestion devrait donc être plus précise comparée à celles se basant sur la similarité des goûts entre utilisateurs. Deux utilisateurs appréciant un même film, ne sont en effet pas forcés d'apprécier tous les deux un autre film.<br />
<br />
==Description du produit==<br />
<br />
=== Interface système ===<br />
<br />
=== Interface utilisateur ===<br />
<br />
=== Interface hardware ===<br />
<br />
=== Interface software ===<br />
<br />
=== Contraintes mémoires ===<br />
<br />
==Fonctionnalités==<br />
Le site est conçu pour un utilisateur et ne sauvegarde que temporairement les choix de celui-ci.<br />
<br />
*Il proposera tout d'abord une liste de films représentative de tous les genres, réalisateurs, acteurs... du cinéma. L'utilisateur pourra pour chaque film, dire s'il aime, n'aime pas ou n'a pas d'opinions sur ce film.<br />
*Ensuite, en fonction des réponses de l'utilisateur, le site prédira grâce à un système de Deep Learning les films pouvant potentiellement plaire à l'utilisateur et les affichera avec leurs détails.<br />
*L'utilisateur pourra ensuite noter ces nouveaux films s'il le souhaite, et une nouvelle liste de films se générera afin de mieux s'adapter aux goûts de l'utilisateur.<br />
<br />
==Caractéristiques utilisateurs==<br />
Les utilisateurs doivent posséder une certaine culture cinématographique pour constituer une base d'apprentissage, en fonction des films qu'ils ont préalablement visionnés et de leur avis sur ceux-ci. En revanche, aucune compétence informatique spécifique n'est requise, de sorte qu'un utilisateur novice puisse utiliser l'application. L'interface doit donc être intuitive et extrêmement simple d'utilisation.<br />
<br />
==Contraintes générales==<br />
*Avoir une connexion internet.<br />
*Avoir un niveau basique de connaissances informatiques (savoir s'inscrire sur un site internet...).<br />
* L'apprentissage machine doit reposer sur TensorFlow (Keras)<br />
* Les données en entrées proviennent de l'API TMDB et des API Twitter (API REST 1.1 pour les données historiques ou API Streaming pour les données temps réelles)<br />
* l'API TDMBSimple limite le nombre de requêtes à la base de données à 40 par seconde. Peut potentiellement énormément ralentir les services.<br />
*Le modèle de prédiction doit être assez fiable pour prédire correctement un nombre conséquent de films pouvant potentiellemennt plaire à l'utilisateur (70%-80%).<br />
<br />
==Dépendances==<br />
* API de la base de donnée de film TMDB : https://developers.themoviedb.org/3/people<br />
* API REST 1.1 : https://dev.twitter.com/rest/public<br />
* API STREAMING : https://dev.twitter.com/streaming/overview<br />
<br />
==Evolutions potentielles du produit==<br />
*Multi utilisateurs : Une session de préférence par utilisateur. De plus, les goûts des utilisateurs seront sauvegardés afin qu'à la prochaine connexion, le modèle de Deep Learning soit prêt à prédire des films correspondant au goût de l'utilisateur concerné.<br />
*Prédire les films "tendance" du moment en priorité. Le site affichera en priorité les films les plus populaire du moment et correspondant aux goûts de *l'utilisateur. Pour cela, il scannera les tweets de Tweeter en temps réel et cherchera une correspondance entre les tweets de films populaires et ceux prédis par le modèle pour l'utilisateur concerné. <br />
*Utiliser des systèmes distribués afin d'améliorer les performances d'apprentissage du modèle de Deep Learning et de l'analyse en temps réel de Tweeter.<br />
<br />
=Specific requirements=<br />
<br />
==Conception de l'interface du site==<br />
<br />
'''TODO : Mettre des screens du site à la fin du projet'''<br />
<br />
== Fonctionnalités et performances du système ==<br />
<br />
=== Description pour chaque fonctionnalité ===<br />
<br />
'''Function''':<br />
<br />
'''Description''':<br />
<br />
'''Inputs''':<br />
<br />
'''Source''':<br />
<br />
'''Outputs''':<br />
<br />
'''Destination''':<br />
<br />
'''Action''':<br />
* Natural language sentences (with MUST, MAY, SHALL)<br />
* Graphical Notations : UML Sequence w/o collaboration diagrams, Process maps, Task Analysis (HTA, CTT)<br />
* Mathematical Notations<br />
* Tabular notations for several (condition --> action) tuples<br />
<br />
'''Non functional requirements''':<br />
<br />
'''Pre-condition''':<br />
<br />
'''Post-condition''':<br />
<br />
'''Side-effects''':<br />
<br />
=Appendices=<br />
<br />
==Structure du SRS==<br />
The document is based on template of the Software Requirements Specification (SRS) inspired of the IEEE/ANSI 830-1998 Standard.<br />
<br />
'''References:'''<br />
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx<br />
* http://en.wikipedia.org/wiki/Software_requirements_specification<br />
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]<br />
<br />
=Bibliographie=<br />
<br />
Articles sur les systèmes de recommendation<br />
<br />
*spotify - http://benanne.github.io/2014/08/05/spotify-cnns.html#contentbased<br />
*youtube - https://static.googleusercontent.com/media/research.google.com/fr//pubs/archive/45530.pdf<br />
*https://www.atala.org/IMG/pdf/1-Poirier-TAL51-3.pdf<br />
<br />
Explication des termes deep learning :<br />
<br />
*https://devblogs.nvidia.com/parallelforall/deep-learning-nutshell-core-concepts/<br />
<br />
Exemple simple pour prendre en main Keras :<br />
<br />
*http://machinelearningmastery.com/tutorial-first-neural-network-python-keras/<br />
*http://machinelearningmastery.com/introduction-python-deep-learning-library-keras/<br />
*http://tryhera.com/<br />
<br />
API TMDB :<br />
<br />
*https://developers.themoviedb.org/3/people<br />
<br />
Tuto Django + AngularJS :<br />
<br />
*https://thinkster.io/django-angularjs-tutorial#rendering-post-objects<br />
<br />
DOC2VEC :<br />
<br />
*https://github.com/nisarg64/Sentiment-Analysis-Word2Vec<br />
*https://translate.google.fr/translate?hl=fr&sl=en&u=https://rare-technologies.com/doc2vec-tutorial/&prev=search<br />
*https://translate.google.fr/translate?hl=fr&sl=en&u=http://linanqiu.github.io/2015/10/07/word2vec-sentiment/&prev=search<br />
<br />
Embedding layers : <br />
<br />
*http://stats.stackexchange.com/questions/182775/what-is-an-embedding-layer-in-a-neural-network<br />
*https://github.com/ririw/ririw.github.io/blob/master/assets/Recommending%20movies.ipynb<br />
*http://blog.richardweiss.org/2016/09/25/movie-embeddings.html<br />
<br />
Python API - Flask :<br />
<br />
*http://flask.pocoo.org/docs/0.12/quickstart/#accessing-request-data<br />
<br />
Grid'5000 :<br />
*https://www.grid5000.fr/mediawiki/index.php/Grid5000:Get_an_account</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=SRS_-_Recommandation_intelligente_de_films&diff=33747SRS - Recommandation intelligente de films2017-02-15T09:28:27Z<p>Elsa.Navarro: /* Cas d'utilisations */</p>
<hr />
<div>Voici la fiche SRS du projet Recommandation intelligente de films.<br />
<br />
[[Suggestion_intelligente_des_films_basé_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin<br />
* Hattinguais Julian<br />
* Navarro Elsa<br />
* Dunand Quentin<br />
<br />
=Introduction =<br />
Qui n'a pas rêvé d'avoir une liste de films correspondant exactement à ses goûts cinématographiques ? Beaucoup d'algorithmes ont été conçus pour tenter d'adapter une liste de film en fonction des goûts de l'utilisateur mais manquaient d'efficacité.<br />
Avec l’essor de l'intelligence artificielle et des réseaux neuronaux, de nouveaux outils émergent afin de mieux comprendre le comportement et les goûts humains. Nous avons donc décidé de développer un système capable de comprendre les goûts cinématographiques d'un humain de manière bien plus performante que les algorithmes déjà conçu dans ce but là.<br />
<br />
==But du document ==<br />
Le but de ce document SRS est de fournir une vue d'ensemble détaillée de notre système logiciel, ses paramètres et buts. Ce document décrit le public cible du projet et son interface utilisateur, ainsi que les spécifications du logiciel. Ce document est destiné tant aux utilisateurs qu'aux développeurs du logiciel.<br />
<br />
==Objectif du projet ==<br />
Le but de ce projet est d'explorer les possibilités du Deep Learning sur des données dont les variables sont hétérogènes et multidimensionnelles, ceci au travers de la suggestion intelligente de films s'adaptant aux goûts de l'utilisateur. Grâce à un système de réseaux neuronaux et d'une base de données conséquente de films (TMDb), le site proposera une liste de suggestions de films personnalisée par utilisateur. Le modèle créé sur une base de données statique pourra alors être affiné en temps réel grâce aux nouvelles opinions exprimées par l’utilisateur.<br />
<br />
== Définitions, acronymes et abréviations ==<br />
Deep Learning : ensemble de méthodes d'apprentissage automatiques visant à modéliser avec un haut niveau d’abstraction un ensemble de données.<br />
<br />
== Références ==<br />
Keras<br />
Tensor Flow<br />
En savoir plus sur le DeepLearning<br />
Aide de Mr Amini : site<br />
Angular Material : lien<br />
<br />
==Portée du produit ==<br />
Le produit est destiné aux utilisateurs désireux de générer automatiquement des recommandations de films en fonction de leurs goûts. L'application sera plus efficace sur des cinéphiles car ils pourront annoter un grand nombre de buts, mais elle a aussi la prétention de pouvoir être utile à un internaute lambda sans condition sur ses connaissances cinématographiques.<br />
<br />
=Description générale=<br />
<br />
==Le but du produit==<br />
Le produit doit permettre à l'utilisateur d'obtenir des recommandations intelligentes de films en fonction des films qu'il a appréciés et de ceux qu'il n'a pas appréciés. Cette recommandation doit tenir compte de la proximité des films les uns par rapport aux autres en terme de genre, synopsie, acteurs, réalisateurs, etc. Mais doit également tenir compte de la popularité des films et des tendances actuelles grâce à l'analyse en temps réel des flux Twitter.<br />
<br />
L'apport principal par rapport aux produits concurrents est de réaliser des prédictions personnalisées, grâce à l'utilisation de l'apprentissage automatique et à l'établissement d'un modèle propre à chaque utilisateur. La suggestion devrait donc être plus précise comparée à celles se basant sur la similarité des goûts entre utilisateurs. Deux utilisateurs appréciant un même film, ne sont en effet pas forcés d'apprécier tous les deux un autre film.<br />
<br />
==Description du produit==<br />
<br />
=== Interface système ===<br />
<br />
=== Interface utilisateur ===<br />
<br />
=== Interface hardware ===<br />
<br />
=== Interface software ===<br />
<br />
=== Contraintes mémoires ===<br />
<br />
==Fonctionnalités==<br />
Le site est conçu pour un utilisateur et ne sauvegarde que temporairement les choix de celui-ci.<br />
<br />
*Il proposera tout d'abord une liste de films représentative de tous les genres, réalisateurs, acteurs... du cinéma. L'utilisateur pourra pour chaque film, dire s'il aime, n'aime pas ou n'a pas d'opinions sur ce film.<br />
*Ensuite, en fonction des réponses de l'utilisateur, le site prédira grâce à un système de Deep Learning les films pouvant potentiellement plaire à l'utilisateur et les affichera avec leurs détails.<br />
*L'utilisateur pourra ensuite noter ces nouveaux films s'il le souhaite, et une nouvelle liste de films se générera afin de mieux s'adapter aux goûts de l'utilisateur.<br />
<br />
==Caractéristiques utilisateurs==<br />
Les utilisateurs doivent posséder une certaine culture cinématographique pour constituer une base d'apprentissage, en fonction des films qu'ils ont préalablement visionnés et de leur avis sur ceux-ci. En revanche, aucune compétence informatique spécifique n'est requise, de sorte qu'un utilisateur novice puisse utiliser l'application. L'interface doit donc être intuitive et extrêmement simple d'utilisation.<br />
<br />
==Contraintes générales==<br />
*Avoir une connexion internet.<br />
*Avoir un niveau basique de connaissances informatiques (savoir s'inscrire sur un site internet...).<br />
* L'apprentissage machine doit reposer sur TensorFlow (Keras)<br />
* Les données en entrées proviennent de l'API TMDB et des API Twitter (API REST 1.1 pour les données historiques ou API Streaming pour les données temps réelles)<br />
* l'API TDMBSimple limite le nombre de requêtes à la base de données à 40 par seconde. Peut potentiellement énormément ralentir les services.<br />
*Le modèle de prédiction doit être assez fiable pour prédire correctement un nombre conséquent de films pouvant potentiellemennt plaire à l'utilisateur (70%-80%).<br />
<br />
==Dépendances==<br />
* API de la base de donnée de film TMDB : https://developers.themoviedb.org/3/people<br />
* API REST 1.1 : https://dev.twitter.com/rest/public<br />
* API STREAMING : https://dev.twitter.com/streaming/overview<br />
<br />
==Evolutions potentielles du produit==<br />
*Multi utilisateurs : Une session de préférence par utilisateur. De plus, les goûts des utilisateurs seront sauvegardés afin qu'à la prochaine connexion, le modèle de Deep Learning soit prêt à prédire des films correspondant au goût de l'utilisateur concerné.<br />
*Prédire les films "tendance" du moment en priorité. Le site affichera en priorité les films les plus populaire du moment et correspondant aux goûts de *l'utilisateur. Pour cela, il scannera les tweets de Tweeter en temps réel et cherchera une correspondance entre les tweets de films populaires et ceux prédis par le modèle pour l'utilisateur concerné. <br />
*Utiliser des systèmes distribués afin d'améliorer les performances d'apprentissage du modèle de Deep Learning et de l'analyse en temps réel de Tweeter.<br />
<br />
=Specific requirements=<br />
<br />
==Conception du frontend du site==<br />
<br />
'''TODO : Mettre des screens du site à la fin du projet'''<br />
<br />
=Appendices=<br />
<br />
==Structure du SRS==<br />
The document is based on template of the Software Requirements Specification (SRS) inspired of the IEEE/ANSI 830-1998 Standard.<br />
<br />
'''References:'''<br />
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx<br />
* http://en.wikipedia.org/wiki/Software_requirements_specification<br />
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]<br />
<br />
=Bibliographie=<br />
<br />
Articles sur les systèmes de recommendation<br />
<br />
*spotify - http://benanne.github.io/2014/08/05/spotify-cnns.html#contentbased<br />
*youtube - https://static.googleusercontent.com/media/research.google.com/fr//pubs/archive/45530.pdf<br />
*https://www.atala.org/IMG/pdf/1-Poirier-TAL51-3.pdf<br />
<br />
Explication des termes deep learning :<br />
<br />
*https://devblogs.nvidia.com/parallelforall/deep-learning-nutshell-core-concepts/<br />
<br />
Exemple simple pour prendre en main Keras :<br />
<br />
*http://machinelearningmastery.com/tutorial-first-neural-network-python-keras/<br />
*http://machinelearningmastery.com/introduction-python-deep-learning-library-keras/<br />
*http://tryhera.com/<br />
<br />
API TMDB :<br />
<br />
*https://developers.themoviedb.org/3/people<br />
<br />
Tuto Django + AngularJS :<br />
<br />
*https://thinkster.io/django-angularjs-tutorial#rendering-post-objects<br />
<br />
DOC2VEC :<br />
<br />
*https://github.com/nisarg64/Sentiment-Analysis-Word2Vec<br />
*https://translate.google.fr/translate?hl=fr&sl=en&u=https://rare-technologies.com/doc2vec-tutorial/&prev=search<br />
*https://translate.google.fr/translate?hl=fr&sl=en&u=http://linanqiu.github.io/2015/10/07/word2vec-sentiment/&prev=search<br />
<br />
Embedding layers : <br />
<br />
*http://stats.stackexchange.com/questions/182775/what-is-an-embedding-layer-in-a-neural-network<br />
*https://github.com/ririw/ririw.github.io/blob/master/assets/Recommending%20movies.ipynb<br />
*http://blog.richardweiss.org/2016/09/25/movie-embeddings.html<br />
<br />
Python API - Flask :<br />
<br />
*http://flask.pocoo.org/docs/0.12/quickstart/#accessing-request-data<br />
<br />
Grid'5000 :<br />
*https://www.grid5000.fr/mediawiki/index.php/Grid5000:Get_an_account</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=SRS_-_Recommandation_intelligente_de_films&diff=33746SRS - Recommandation intelligente de films2017-02-15T09:28:00Z<p>Elsa.Navarro: /* Le but du produit */</p>
<hr />
<div>Voici la fiche SRS du projet Recommandation intelligente de films.<br />
<br />
[[Suggestion_intelligente_des_films_basé_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin<br />
* Hattinguais Julian<br />
* Navarro Elsa<br />
* Dunand Quentin<br />
<br />
=Introduction =<br />
Qui n'a pas rêvé d'avoir une liste de films correspondant exactement à ses goûts cinématographiques ? Beaucoup d'algorithmes ont été conçus pour tenter d'adapter une liste de film en fonction des goûts de l'utilisateur mais manquaient d'efficacité.<br />
Avec l’essor de l'intelligence artificielle et des réseaux neuronaux, de nouveaux outils émergent afin de mieux comprendre le comportement et les goûts humains. Nous avons donc décidé de développer un système capable de comprendre les goûts cinématographiques d'un humain de manière bien plus performante que les algorithmes déjà conçu dans ce but là.<br />
<br />
==But du document ==<br />
Le but de ce document SRS est de fournir une vue d'ensemble détaillée de notre système logiciel, ses paramètres et buts. Ce document décrit le public cible du projet et son interface utilisateur, ainsi que les spécifications du logiciel. Ce document est destiné tant aux utilisateurs qu'aux développeurs du logiciel.<br />
<br />
==Objectif du projet ==<br />
Le but de ce projet est d'explorer les possibilités du Deep Learning sur des données dont les variables sont hétérogènes et multidimensionnelles, ceci au travers de la suggestion intelligente de films s'adaptant aux goûts de l'utilisateur. Grâce à un système de réseaux neuronaux et d'une base de données conséquente de films (TMDb), le site proposera une liste de suggestions de films personnalisée par utilisateur. Le modèle créé sur une base de données statique pourra alors être affiné en temps réel grâce aux nouvelles opinions exprimées par l’utilisateur.<br />
<br />
== Définitions, acronymes et abréviations ==<br />
Deep Learning : ensemble de méthodes d'apprentissage automatiques visant à modéliser avec un haut niveau d’abstraction un ensemble de données.<br />
<br />
== Références ==<br />
Keras<br />
Tensor Flow<br />
En savoir plus sur le DeepLearning<br />
Aide de Mr Amini : site<br />
Angular Material : lien<br />
<br />
==Portée du produit ==<br />
Le produit est destiné aux utilisateurs désireux de générer automatiquement des recommandations de films en fonction de leurs goûts. L'application sera plus efficace sur des cinéphiles car ils pourront annoter un grand nombre de buts, mais elle a aussi la prétention de pouvoir être utile à un internaute lambda sans condition sur ses connaissances cinématographiques.<br />
<br />
=Description générale=<br />
<br />
==Le but du produit==<br />
Le produit doit permettre à l'utilisateur d'obtenir des recommandations intelligentes de films en fonction des films qu'il a appréciés et de ceux qu'il n'a pas appréciés. Cette recommandation doit tenir compte de la proximité des films les uns par rapport aux autres en terme de genre, synopsie, acteurs, réalisateurs, etc. Mais doit également tenir compte de la popularité des films et des tendances actuelles grâce à l'analyse en temps réel des flux Twitter.<br />
<br />
L'apport principal par rapport aux produits concurrents est de réaliser des prédictions personnalisées, grâce à l'utilisation de l'apprentissage automatique et à l'établissement d'un modèle propre à chaque utilisateur. La suggestion devrait donc être plus précise comparée à celles se basant sur la similarité des goûts entre utilisateurs. Deux utilisateurs appréciant un même film, ne sont en effet pas forcés d'apprécier tous les deux un autre film.<br />
<br />
==Description du produit==<br />
<br />
=== Interface système ===<br />
<br />
=== Interface utilisateur ===<br />
<br />
=== Interface hardware ===<br />
<br />
=== Interface software ===<br />
<br />
=== Contraintes mémoires ===<br />
<br />
==Fonctionnalités==<br />
Le site est conçu pour un utilisateur et ne sauvegarde que temporairement les choix de celui-ci.<br />
<br />
*Il proposera tout d'abord une liste de films représentative de tous les genres, réalisateurs, acteurs... du cinéma. L'utilisateur pourra pour chaque film, dire s'il aime, n'aime pas ou n'a pas d'opinions sur ce film.<br />
*Ensuite, en fonction des réponses de l'utilisateur, le site prédira grâce à un système de Deep Learning les films pouvant potentiellement plaire à l'utilisateur et les affichera avec leurs détails.<br />
*L'utilisateur pourra ensuite noter ces nouveaux films s'il le souhaite, et une nouvelle liste de films se générera afin de mieux s'adapter aux goûts de l'utilisateur.<br />
<br />
==Caractéristiques utilisateurs==<br />
Les utilisateurs doivent posséder une certaine culture cinématographique pour constituer une base d'apprentissage, en fonction des films qu'ils ont préalablement visionnés et de leur avis sur ceux-ci. En revanche, aucune compétence informatique spécifique n'est requise, de sorte qu'un utilisateur novice puisse utiliser l'application. L'interface doit donc être intuitive et extrêmement simple d'utilisation.<br />
<br />
==Cas d'utilisations==<br />
Le site web réalisé permettra à l'utilisateur d'explorer de nouvelles possibilités cinématiques, et par la suite d'accéder à son compte pour avoir des suggestions de films rapidement.<br />
<br />
<br />
'''TODO : A changer à la fin du projet'''<br />
<br />
==Contraintes générales==<br />
*Avoir une connexion internet.<br />
*Avoir un niveau basique de connaissances informatiques (savoir s'inscrire sur un site internet...).<br />
* L'apprentissage machine doit reposer sur TensorFlow (Keras)<br />
* Les données en entrées proviennent de l'API TMDB et des API Twitter (API REST 1.1 pour les données historiques ou API Streaming pour les données temps réelles)<br />
* l'API TDMBSimple limite le nombre de requêtes à la base de données à 40 par seconde. Peut potentiellement énormément ralentir les services.<br />
*Le modèle de prédiction doit être assez fiable pour prédire correctement un nombre conséquent de films pouvant potentiellemennt plaire à l'utilisateur (70%-80%).<br />
<br />
==Dépendances==<br />
* API de la base de donnée de film TMDB : https://developers.themoviedb.org/3/people<br />
* API REST 1.1 : https://dev.twitter.com/rest/public<br />
* API STREAMING : https://dev.twitter.com/streaming/overview<br />
<br />
==Evolutions potentielles du produit==<br />
*Multi utilisateurs : Une session de préférence par utilisateur. De plus, les goûts des utilisateurs seront sauvegardés afin qu'à la prochaine connexion, le modèle de Deep Learning soit prêt à prédire des films correspondant au goût de l'utilisateur concerné.<br />
*Prédire les films "tendance" du moment en priorité. Le site affichera en priorité les films les plus populaire du moment et correspondant aux goûts de *l'utilisateur. Pour cela, il scannera les tweets de Tweeter en temps réel et cherchera une correspondance entre les tweets de films populaires et ceux prédis par le modèle pour l'utilisateur concerné. <br />
*Utiliser des systèmes distribués afin d'améliorer les performances d'apprentissage du modèle de Deep Learning et de l'analyse en temps réel de Tweeter.<br />
<br />
=Specific requirements=<br />
<br />
==Conception du frontend du site==<br />
<br />
'''TODO : Mettre des screens du site à la fin du projet'''<br />
<br />
=Appendices=<br />
<br />
==Structure du SRS==<br />
The document is based on template of the Software Requirements Specification (SRS) inspired of the IEEE/ANSI 830-1998 Standard.<br />
<br />
'''References:'''<br />
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx<br />
* http://en.wikipedia.org/wiki/Software_requirements_specification<br />
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]<br />
<br />
=Bibliographie=<br />
<br />
Articles sur les systèmes de recommendation<br />
<br />
*spotify - http://benanne.github.io/2014/08/05/spotify-cnns.html#contentbased<br />
*youtube - https://static.googleusercontent.com/media/research.google.com/fr//pubs/archive/45530.pdf<br />
*https://www.atala.org/IMG/pdf/1-Poirier-TAL51-3.pdf<br />
<br />
Explication des termes deep learning :<br />
<br />
*https://devblogs.nvidia.com/parallelforall/deep-learning-nutshell-core-concepts/<br />
<br />
Exemple simple pour prendre en main Keras :<br />
<br />
*http://machinelearningmastery.com/tutorial-first-neural-network-python-keras/<br />
*http://machinelearningmastery.com/introduction-python-deep-learning-library-keras/<br />
*http://tryhera.com/<br />
<br />
API TMDB :<br />
<br />
*https://developers.themoviedb.org/3/people<br />
<br />
Tuto Django + AngularJS :<br />
<br />
*https://thinkster.io/django-angularjs-tutorial#rendering-post-objects<br />
<br />
DOC2VEC :<br />
<br />
*https://github.com/nisarg64/Sentiment-Analysis-Word2Vec<br />
*https://translate.google.fr/translate?hl=fr&sl=en&u=https://rare-technologies.com/doc2vec-tutorial/&prev=search<br />
*https://translate.google.fr/translate?hl=fr&sl=en&u=http://linanqiu.github.io/2015/10/07/word2vec-sentiment/&prev=search<br />
<br />
Embedding layers : <br />
<br />
*http://stats.stackexchange.com/questions/182775/what-is-an-embedding-layer-in-a-neural-network<br />
*https://github.com/ririw/ririw.github.io/blob/master/assets/Recommending%20movies.ipynb<br />
*http://blog.richardweiss.org/2016/09/25/movie-embeddings.html<br />
<br />
Python API - Flask :<br />
<br />
*http://flask.pocoo.org/docs/0.12/quickstart/#accessing-request-data<br />
<br />
Grid'5000 :<br />
*https://www.grid5000.fr/mediawiki/index.php/Grid5000:Get_an_account</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=SRS_-_Recommandation_intelligente_de_films&diff=33745SRS - Recommandation intelligente de films2017-02-15T09:26:01Z<p>Elsa.Navarro: /* Introduction */</p>
<hr />
<div>Voici la fiche SRS du projet Recommandation intelligente de films.<br />
<br />
[[Suggestion_intelligente_des_films_basé_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin<br />
* Hattinguais Julian<br />
* Navarro Elsa<br />
* Dunand Quentin<br />
<br />
=Introduction =<br />
Qui n'a pas rêvé d'avoir une liste de films correspondant exactement à ses goûts cinématographiques ? Beaucoup d'algorithmes ont été conçus pour tenter d'adapter une liste de film en fonction des goûts de l'utilisateur mais manquaient d'efficacité.<br />
Avec l’essor de l'intelligence artificielle et des réseaux neuronaux, de nouveaux outils émergent afin de mieux comprendre le comportement et les goûts humains. Nous avons donc décidé de développer un système capable de comprendre les goûts cinématographiques d'un humain de manière bien plus performante que les algorithmes déjà conçu dans ce but là.<br />
<br />
==But du document ==<br />
Le but de ce document SRS est de fournir une vue d'ensemble détaillée de notre système logiciel, ses paramètres et buts. Ce document décrit le public cible du projet et son interface utilisateur, ainsi que les spécifications du logiciel. Ce document est destiné tant aux utilisateurs qu'aux développeurs du logiciel.<br />
<br />
==Objectif du projet ==<br />
Le but de ce projet est d'explorer les possibilités du Deep Learning sur des données dont les variables sont hétérogènes et multidimensionnelles, ceci au travers de la suggestion intelligente de films s'adaptant aux goûts de l'utilisateur. Grâce à un système de réseaux neuronaux et d'une base de données conséquente de films (TMDb), le site proposera une liste de suggestions de films personnalisée par utilisateur. Le modèle créé sur une base de données statique pourra alors être affiné en temps réel grâce aux nouvelles opinions exprimées par l’utilisateur.<br />
<br />
== Définitions, acronymes et abréviations ==<br />
Deep Learning : ensemble de méthodes d'apprentissage automatiques visant à modéliser avec un haut niveau d’abstraction un ensemble de données.<br />
<br />
== Références ==<br />
Keras<br />
Tensor Flow<br />
En savoir plus sur le DeepLearning<br />
Aide de Mr Amini : site<br />
Angular Material : lien<br />
<br />
==Portée du produit ==<br />
Le produit est destiné aux utilisateurs désireux de générer automatiquement des recommandations de films en fonction de leurs goûts. L'application sera plus efficace sur des cinéphiles car ils pourront annoter un grand nombre de buts, mais elle a aussi la prétention de pouvoir être utile à un internaute lambda sans condition sur ses connaissances cinématographiques.<br />
<br />
=Description générale=<br />
<br />
==Le but du produit==<br />
Le produit doit permettre à l'utilisateur d'obtenir des recommandations intelligentes de films en fonction des films qu'il a appréciés et de ceux qu'il n'a pas appréciés. Cette recommandation doit tenir compte de la proximité des films les uns par rapport aux autres en terme de genre, synopsie, acteurs, réalisateurs, etc. Mais doit également tenir compte de la popularité des films et des tendances actuelles grâce à l'analyse en temps réel des flux Twitter.<br />
<br />
L'apport principal par rapport aux produits concurrents est de réaliser des prédictions personnalisées, grâce à l'utilisation de l'apprentissage automatique et à l'établissement d'un modèle propre à chaque utilisateur. La suggestion devrait donc être plus précise comparée à celles se basant sur la similarité des goûts entre utilisateurs. Deux utilisateurs appréciant un même film, ne sont en effet pas forcés d'apprécier tous les deux un autre film.<br />
<br />
=== Interface système ===<br />
<br />
=== Interface utilisateur ===<br />
<br />
=== Interface hardware ===<br />
<br />
=== Interface software ===<br />
<br />
=== Contraintes mémoires ===<br />
<br />
==Fonctionnalités==<br />
Le site est conçu pour un utilisateur et ne sauvegarde que temporairement les choix de celui-ci.<br />
<br />
*Il proposera tout d'abord une liste de films représentative de tous les genres, réalisateurs, acteurs... du cinéma. L'utilisateur pourra pour chaque film, dire s'il aime, n'aime pas ou n'a pas d'opinions sur ce film.<br />
*Ensuite, en fonction des réponses de l'utilisateur, le site prédira grâce à un système de Deep Learning les films pouvant potentiellement plaire à l'utilisateur et les affichera avec leurs détails.<br />
*L'utilisateur pourra ensuite noter ces nouveaux films s'il le souhaite, et une nouvelle liste de films se générera afin de mieux s'adapter aux goûts de l'utilisateur.<br />
<br />
==Caractéristiques utilisateurs==<br />
Les utilisateurs doivent posséder une certaine culture cinématographique pour constituer une base d'apprentissage, en fonction des films qu'ils ont préalablement visionnés et de leur avis sur ceux-ci. En revanche, aucune compétence informatique spécifique n'est requise, de sorte qu'un utilisateur novice puisse utiliser l'application. L'interface doit donc être intuitive et extrêmement simple d'utilisation.<br />
<br />
==Cas d'utilisations==<br />
Le site web réalisé permettra à l'utilisateur d'explorer de nouvelles possibilités cinématiques, et par la suite d'accéder à son compte pour avoir des suggestions de films rapidement.<br />
<br />
<br />
'''TODO : A changer à la fin du projet'''<br />
<br />
==Contraintes générales==<br />
*Avoir une connexion internet.<br />
*Avoir un niveau basique de connaissances informatiques (savoir s'inscrire sur un site internet...).<br />
* L'apprentissage machine doit reposer sur TensorFlow (Keras)<br />
* Les données en entrées proviennent de l'API TMDB et des API Twitter (API REST 1.1 pour les données historiques ou API Streaming pour les données temps réelles)<br />
* l'API TDMBSimple limite le nombre de requêtes à la base de données à 40 par seconde. Peut potentiellement énormément ralentir les services.<br />
*Le modèle de prédiction doit être assez fiable pour prédire correctement un nombre conséquent de films pouvant potentiellemennt plaire à l'utilisateur (70%-80%).<br />
<br />
==Dépendances==<br />
* API de la base de donnée de film TMDB : https://developers.themoviedb.org/3/people<br />
* API REST 1.1 : https://dev.twitter.com/rest/public<br />
* API STREAMING : https://dev.twitter.com/streaming/overview<br />
<br />
==Evolutions potentielles du produit==<br />
*Multi utilisateurs : Une session de préférence par utilisateur. De plus, les goûts des utilisateurs seront sauvegardés afin qu'à la prochaine connexion, le modèle de Deep Learning soit prêt à prédire des films correspondant au goût de l'utilisateur concerné.<br />
*Prédire les films "tendance" du moment en priorité. Le site affichera en priorité les films les plus populaire du moment et correspondant aux goûts de *l'utilisateur. Pour cela, il scannera les tweets de Tweeter en temps réel et cherchera une correspondance entre les tweets de films populaires et ceux prédis par le modèle pour l'utilisateur concerné. <br />
*Utiliser des systèmes distribués afin d'améliorer les performances d'apprentissage du modèle de Deep Learning et de l'analyse en temps réel de Tweeter.<br />
<br />
=Specific requirements=<br />
<br />
==Conception du frontend du site==<br />
<br />
'''TODO : Mettre des screens du site à la fin du projet'''<br />
<br />
=Appendices=<br />
<br />
==Structure du SRS==<br />
The document is based on template of the Software Requirements Specification (SRS) inspired of the IEEE/ANSI 830-1998 Standard.<br />
<br />
'''References:'''<br />
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx<br />
* http://en.wikipedia.org/wiki/Software_requirements_specification<br />
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]<br />
<br />
=Bibliographie=<br />
<br />
Articles sur les systèmes de recommendation<br />
<br />
*spotify - http://benanne.github.io/2014/08/05/spotify-cnns.html#contentbased<br />
*youtube - https://static.googleusercontent.com/media/research.google.com/fr//pubs/archive/45530.pdf<br />
*https://www.atala.org/IMG/pdf/1-Poirier-TAL51-3.pdf<br />
<br />
Explication des termes deep learning :<br />
<br />
*https://devblogs.nvidia.com/parallelforall/deep-learning-nutshell-core-concepts/<br />
<br />
Exemple simple pour prendre en main Keras :<br />
<br />
*http://machinelearningmastery.com/tutorial-first-neural-network-python-keras/<br />
*http://machinelearningmastery.com/introduction-python-deep-learning-library-keras/<br />
*http://tryhera.com/<br />
<br />
API TMDB :<br />
<br />
*https://developers.themoviedb.org/3/people<br />
<br />
Tuto Django + AngularJS :<br />
<br />
*https://thinkster.io/django-angularjs-tutorial#rendering-post-objects<br />
<br />
DOC2VEC :<br />
<br />
*https://github.com/nisarg64/Sentiment-Analysis-Word2Vec<br />
*https://translate.google.fr/translate?hl=fr&sl=en&u=https://rare-technologies.com/doc2vec-tutorial/&prev=search<br />
*https://translate.google.fr/translate?hl=fr&sl=en&u=http://linanqiu.github.io/2015/10/07/word2vec-sentiment/&prev=search<br />
<br />
Embedding layers : <br />
<br />
*http://stats.stackexchange.com/questions/182775/what-is-an-embedding-layer-in-a-neural-network<br />
*https://github.com/ririw/ririw.github.io/blob/master/assets/Recommending%20movies.ipynb<br />
*http://blog.richardweiss.org/2016/09/25/movie-embeddings.html<br />
<br />
Python API - Flask :<br />
<br />
*http://flask.pocoo.org/docs/0.12/quickstart/#accessing-request-data<br />
<br />
Grid'5000 :<br />
*https://www.grid5000.fr/mediawiki/index.php/Grid5000:Get_an_account</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=SRS_-_Recommandation_intelligente_de_films&diff=33744SRS - Recommandation intelligente de films2017-02-15T09:15:33Z<p>Elsa.Navarro: /* Description générale */</p>
<hr />
<div>Voici la fiche SRS du projet Recommandation intelligente de films.<br />
<br />
[[Suggestion_intelligente_des_films_basé_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin<br />
* Hattinguais Julian<br />
* Navarro Elsa<br />
* Dunand Quentin<br />
<br />
=Introduction =<br />
Qui n'a pas rêvé d'avoir une liste de films correspondant exactement à ses goûts cinématographiques ? Beaucoup d'algorithmes ont été conçus pour tenter d'adapter une liste de film en fonction des goûts de l'utilisateur mais manquaient d'efficacité.<br />
Avec l’essor de l'intelligence artificielle et des réseaux neuronaux, de nouveaux outils émergent afin de mieux comprendre le comportement et les goûts humains. Nous avons donc décidé de développer un système capable de comprendre les goûts cinématographiques d'un humain de manière bien plus performante que les algorithmes déjà conçu dans ce but là.<br />
<br />
==But du document ==<br />
Le but de ce document SRS est de fournir une vue d'ensemble détaillée de notre système logiciel, ses paramètres et buts. Ce document décrit le public cible du projet et son interface utilisateur, ainsi que les spécifications du logiciel. Ce document est destiné tant aux utilisateurs qu'aux développeurs du logiciel.<br />
<br />
==Objectif du projet ==<br />
Le but de ce projet est d'explorer les possibilités du Deep Learning sur des données dont les variables sont hétérogènes et multidimensionnelles, ceci au travers de la suggestion intelligente de films s'adaptant aux goûts de l'utilisateur. Grâce à un système de réseaux neuronaux et d'une base de données conséquente de films (TMDb), le site proposera une liste de suggestions de films personnalisée par utilisateur. Le modèle créé sur une base de données statique pourra alors être affiné en temps réel grâce aux nouvelles opinions exprimées par l’utilisateur.<br />
<br />
==Portée du produit ==<br />
Le produit est destiné aux utilisateurs désireux de générer automatiquement des recommandations de films en fonction de leurs goûts. L'application sera plus efficace sur des cinéphiles car ils pourront annoter un grand nombre de buts, mais elle a aussi la prétention de pouvoir être utile à un internaute lambda sans condition sur ses connaissances cinématographiques.<br />
<br />
== Définitions ==<br />
<br />
=Description générale=<br />
<br />
==Le but du produit==<br />
Le produit doit permettre à l'utilisateur d'obtenir des recommandations intelligentes de films en fonction des films qu'il a appréciés et de ceux qu'il n'a pas appréciés. Cette recommandation doit tenir compte de la proximité des films les uns par rapport aux autres en terme de genre, synopsie, acteurs, réalisateurs, etc. Mais doit également tenir compte de la popularité des films et des tendances actuelles grâce à l'analyse en temps réel des flux Twitter.<br />
<br />
L'apport principal par rapport aux produits concurrents est de réaliser des prédictions personnalisées, grâce à l'utilisation de l'apprentissage automatique et à l'établissement d'un modèle propre à chaque utilisateur. La suggestion devrait donc être plus précise comparée à celles se basant sur la similarité des goûts entre utilisateurs. Deux utilisateurs appréciant un même film, ne sont en effet pas forcés d'apprécier tous les deux un autre film.<br />
<br />
=== Interface système ===<br />
<br />
=== Interface utilisateur ===<br />
<br />
=== Interface hardware ===<br />
<br />
=== Interface software ===<br />
<br />
=== Contraintes mémoires ===<br />
<br />
==Fonctionnalités==<br />
Le site est conçu pour un utilisateur et ne sauvegarde que temporairement les choix de celui-ci.<br />
<br />
*Il proposera tout d'abord une liste de films représentative de tous les genres, réalisateurs, acteurs... du cinéma. L'utilisateur pourra pour chaque film, dire s'il aime, n'aime pas ou n'a pas d'opinions sur ce film.<br />
*Ensuite, en fonction des réponses de l'utilisateur, le site prédira grâce à un système de Deep Learning les films pouvant potentiellement plaire à l'utilisateur et les affichera avec leurs détails.<br />
*L'utilisateur pourra ensuite noter ces nouveaux films s'il le souhaite, et une nouvelle liste de films se générera afin de mieux s'adapter aux goûts de l'utilisateur.<br />
<br />
==Caractéristiques utilisateurs==<br />
Les utilisateurs doivent posséder une certaine culture cinématographique pour constituer une base d'apprentissage, en fonction des films qu'ils ont préalablement visionnés et de leur avis sur ceux-ci. En revanche, aucune compétence informatique spécifique n'est requise, de sorte qu'un utilisateur novice puisse utiliser l'application. L'interface doit donc être intuitive et extrêmement simple d'utilisation.<br />
<br />
==Cas d'utilisations==<br />
Le site web réalisé permettra à l'utilisateur d'explorer de nouvelles possibilités cinématiques, et par la suite d'accéder à son compte pour avoir des suggestions de films rapidement.<br />
<br />
<br />
'''TODO : A changer à la fin du projet'''<br />
<br />
==Contraintes générales==<br />
*Avoir une connexion internet.<br />
*Avoir un niveau basique de connaissances informatiques (savoir s'inscrire sur un site internet...).<br />
* L'apprentissage machine doit reposer sur TensorFlow (Keras)<br />
* Les données en entrées proviennent de l'API TMDB et des API Twitter (API REST 1.1 pour les données historiques ou API Streaming pour les données temps réelles)<br />
* l'API TDMBSimple limite le nombre de requêtes à la base de données à 40 par seconde. Peut potentiellement énormément ralentir les services.<br />
*Le modèle de prédiction doit être assez fiable pour prédire correctement un nombre conséquent de films pouvant potentiellemennt plaire à l'utilisateur (70%-80%).<br />
<br />
==Dépendances==<br />
* API de la base de donnée de film TMDB : https://developers.themoviedb.org/3/people<br />
* API REST 1.1 : https://dev.twitter.com/rest/public<br />
* API STREAMING : https://dev.twitter.com/streaming/overview<br />
<br />
==Evolutions potentielles du produit==<br />
*Multi utilisateurs : Une session de préférence par utilisateur. De plus, les goûts des utilisateurs seront sauvegardés afin qu'à la prochaine connexion, le modèle de Deep Learning soit prêt à prédire des films correspondant au goût de l'utilisateur concerné.<br />
*Prédire les films "tendance" du moment en priorité. Le site affichera en priorité les films les plus populaire du moment et correspondant aux goûts de *l'utilisateur. Pour cela, il scannera les tweets de Tweeter en temps réel et cherchera une correspondance entre les tweets de films populaires et ceux prédis par le modèle pour l'utilisateur concerné. <br />
*Utiliser des systèmes distribués afin d'améliorer les performances d'apprentissage du modèle de Deep Learning et de l'analyse en temps réel de Tweeter.<br />
<br />
=Specific requirements=<br />
<br />
==Conception du frontend du site==<br />
<br />
'''TODO : Mettre des screens du site à la fin du projet'''<br />
<br />
=Appendices=<br />
<br />
==Structure du SRS==<br />
The document is based on template of the Software Requirements Specification (SRS) inspired of the IEEE/ANSI 830-1998 Standard.<br />
<br />
'''References:'''<br />
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx<br />
* http://en.wikipedia.org/wiki/Software_requirements_specification<br />
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]<br />
<br />
=Bibliographie=<br />
<br />
Articles sur les systèmes de recommendation<br />
<br />
*spotify - http://benanne.github.io/2014/08/05/spotify-cnns.html#contentbased<br />
*youtube - https://static.googleusercontent.com/media/research.google.com/fr//pubs/archive/45530.pdf<br />
*https://www.atala.org/IMG/pdf/1-Poirier-TAL51-3.pdf<br />
<br />
Explication des termes deep learning :<br />
<br />
*https://devblogs.nvidia.com/parallelforall/deep-learning-nutshell-core-concepts/<br />
<br />
Exemple simple pour prendre en main Keras :<br />
<br />
*http://machinelearningmastery.com/tutorial-first-neural-network-python-keras/<br />
*http://machinelearningmastery.com/introduction-python-deep-learning-library-keras/<br />
*http://tryhera.com/<br />
<br />
API TMDB :<br />
<br />
*https://developers.themoviedb.org/3/people<br />
<br />
Tuto Django + AngularJS :<br />
<br />
*https://thinkster.io/django-angularjs-tutorial#rendering-post-objects<br />
<br />
DOC2VEC :<br />
<br />
*https://github.com/nisarg64/Sentiment-Analysis-Word2Vec<br />
*https://translate.google.fr/translate?hl=fr&sl=en&u=https://rare-technologies.com/doc2vec-tutorial/&prev=search<br />
*https://translate.google.fr/translate?hl=fr&sl=en&u=http://linanqiu.github.io/2015/10/07/word2vec-sentiment/&prev=search<br />
<br />
Embedding layers : <br />
<br />
*http://stats.stackexchange.com/questions/182775/what-is-an-embedding-layer-in-a-neural-network<br />
*https://github.com/ririw/ririw.github.io/blob/master/assets/Recommending%20movies.ipynb<br />
*http://blog.richardweiss.org/2016/09/25/movie-embeddings.html<br />
<br />
Python API - Flask :<br />
<br />
*http://flask.pocoo.org/docs/0.12/quickstart/#accessing-request-data<br />
<br />
Grid'5000 :<br />
*https://www.grid5000.fr/mediawiki/index.php/Grid5000:Get_an_account</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=SRS_-_Recommandation_intelligente_de_films&diff=33743SRS - Recommandation intelligente de films2017-02-15T09:07:57Z<p>Elsa.Navarro: /* Introduction */</p>
<hr />
<div>Voici la fiche SRS du projet Recommandation intelligente de films.<br />
<br />
[[Suggestion_intelligente_des_films_basé_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin<br />
* Hattinguais Julian<br />
* Navarro Elsa<br />
* Dunand Quentin<br />
<br />
=Introduction =<br />
Qui n'a pas rêvé d'avoir une liste de films correspondant exactement à ses goûts cinématographiques ? Beaucoup d'algorithmes ont été conçus pour tenter d'adapter une liste de film en fonction des goûts de l'utilisateur mais manquaient d'efficacité.<br />
Avec l’essor de l'intelligence artificielle et des réseaux neuronaux, de nouveaux outils émergent afin de mieux comprendre le comportement et les goûts humains. Nous avons donc décidé de développer un système capable de comprendre les goûts cinématographiques d'un humain de manière bien plus performante que les algorithmes déjà conçu dans ce but là.<br />
<br />
==But du document ==<br />
Le but de ce document SRS est de fournir une vue d'ensemble détaillée de notre système logiciel, ses paramètres et buts. Ce document décrit le public cible du projet et son interface utilisateur, ainsi que les spécifications du logiciel. Ce document est destiné tant aux utilisateurs qu'aux développeurs du logiciel.<br />
<br />
==Objectif du projet ==<br />
Le but de ce projet est d'explorer les possibilités du Deep Learning sur des données dont les variables sont hétérogènes et multidimensionnelles, ceci au travers de la suggestion intelligente de films s'adaptant aux goûts de l'utilisateur. Grâce à un système de réseaux neuronaux et d'une base de données conséquente de films (TMDb), le site proposera une liste de suggestions de films personnalisée par utilisateur. Le modèle créé sur une base de données statique pourra alors être affiné en temps réel grâce aux nouvelles opinions exprimées par l’utilisateur.<br />
<br />
==Portée du produit ==<br />
Le produit est destiné aux utilisateurs désireux de générer automatiquement des recommandations de films en fonction de leurs goûts. L'application sera plus efficace sur des cinéphiles car ils pourront annoter un grand nombre de buts, mais elle a aussi la prétention de pouvoir être utile à un internaute lambda sans condition sur ses connaissances cinématographiques.<br />
<br />
== Définitions ==<br />
<br />
=Description générale=<br />
==Le but du produit==<br />
Le produit doit permettre à l'utilisateur d'obtenir des recommandations intelligentes de films en fonction des films qu'il a appréciés et de ceux qu'il n'a pas appréciés. Cette recommandation doit tenir compte de la proximité des films les uns par rapport aux autres en terme de genre, synopsie, acteurs, réalisateurs, etc. Mais doit également tenir compte de la popularité des films et des tendances actuelles grâce à l'analyse en temps réel des flux Twitter.<br />
<br />
L'apport principal par rapport aux produits concurrents est de réaliser des prédictions personnalisées, grâce à l'utilisation de l'apprentissage automatique et à l'établissement d'un modèle propre à chaque utilisateur. La suggestion devrait donc être plus précise comparée à celles se basant sur la similarité des goûts entre utilisateurs. Deux utilisateurs appréciant un même film, ne sont en effet pas forcés d'apprécier tous les deux un autre film.<br />
<br />
==Fonctionnalités==<br />
Le site est conçu pour un utilisateur et ne sauvegarde que temporairement les choix de celui-ci.<br />
<br />
*Il proposera tout d'abord une liste de films représentative de tous les genres, réalisateurs, acteurs... du cinéma. L'utilisateur pourra pour chaque film, dire s'il aime, n'aime pas ou n'a pas d'opinions sur ce film.<br />
*Ensuite, en fonction des réponses de l'utilisateur, le site prédira grâce à un système de Deep Learning les films pouvant potentiellement plaire à l'utilisateur et les affichera avec leurs détails.<br />
*L'utilisateur pourra ensuite noter ces nouveaux films s'il le souhaite, et une nouvelle liste de films se générera afin de mieux s'adapter aux goûts de l'utilisateur.<br />
<br />
==Caractéristiques utilisateurs==<br />
Les utilisateurs doivent posséder une certaine culture cinématographique pour constituer une base d'apprentissage, en fonction des films qu'ils ont préalablement visionnés et de leur avis sur ceux-ci. En revanche, aucune compétence informatique spécifique n'est requise, de sorte qu'un utilisateur novice puisse utiliser l'application. L'interface doit donc être intuitive et extrêmement simple d'utilisation.<br />
<br />
==Cas d'utilisations==<br />
Le site web réalisé permettra à l'utilisateur d'explorer de nouvelles possibilités cinématiques, et par la suite d'accéder à son compte pour avoir des suggestions de films rapidement.<br />
<br />
<br />
'''TODO : A changer à la fin du projet'''<br />
<br />
==Contraintes générales==<br />
*Avoir une connexion internet.<br />
*Avoir un niveau basique de connaissances informatiques (savoir s'inscrire sur un site internet...).<br />
* L'apprentissage machine doit reposer sur TensorFlow (Keras)<br />
* Les données en entrées proviennent de l'API TMDB et des API Twitter (API REST 1.1 pour les données historiques ou API Streaming pour les données temps réelles)<br />
* l'API TDMBSimple limite le nombre de requêtes à la base de données à 40 par seconde. Peut potentiellement énormément ralentir les services.<br />
*Le modèle de prédiction doit être assez fiable pour prédire correctement un nombre conséquent de films pouvant potentiellemennt plaire à l'utilisateur (70%-80%).<br />
<br />
==Dépendances==<br />
* API de la base de donnée de film TMDB : https://developers.themoviedb.org/3/people<br />
* API REST 1.1 : https://dev.twitter.com/rest/public<br />
* API STREAMING : https://dev.twitter.com/streaming/overview<br />
<br />
==Evolutions potentielles du produit==<br />
*Multi utilisateurs : Une session de préférence par utilisateur. De plus, les goûts des utilisateurs seront sauvegardés afin qu'à la prochaine connexion, le modèle de Deep Learning soit prêt à prédire des films correspondant au goût de l'utilisateur concerné.<br />
*Prédire les films "tendance" du moment en priorité. Le site affichera en priorité les films les plus populaire du moment et correspondant aux goûts de *l'utilisateur. Pour cela, il scannera les tweets de Tweeter en temps réel et cherchera une correspondance entre les tweets de films populaires et ceux prédis par le modèle pour l'utilisateur concerné. <br />
*Utiliser des systèmes distribués afin d'améliorer les performances d'apprentissage du modèle de Deep Learning et de l'analyse en temps réel de Tweeter.<br />
<br />
=Specific requirements=<br />
<br />
==Conception du frontend du site==<br />
<br />
'''TODO : Mettre des screens du site à la fin du projet'''<br />
<br />
=Appendices=<br />
<br />
==Structure du SRS==<br />
The document is based on template of the Software Requirements Specification (SRS) inspired of the IEEE/ANSI 830-1998 Standard.<br />
<br />
'''References:'''<br />
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx<br />
* http://en.wikipedia.org/wiki/Software_requirements_specification<br />
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]<br />
<br />
=Bibliographie=<br />
<br />
Articles sur les systèmes de recommendation<br />
<br />
*spotify - http://benanne.github.io/2014/08/05/spotify-cnns.html#contentbased<br />
*youtube - https://static.googleusercontent.com/media/research.google.com/fr//pubs/archive/45530.pdf<br />
*https://www.atala.org/IMG/pdf/1-Poirier-TAL51-3.pdf<br />
<br />
Explication des termes deep learning :<br />
<br />
*https://devblogs.nvidia.com/parallelforall/deep-learning-nutshell-core-concepts/<br />
<br />
Exemple simple pour prendre en main Keras :<br />
<br />
*http://machinelearningmastery.com/tutorial-first-neural-network-python-keras/<br />
*http://machinelearningmastery.com/introduction-python-deep-learning-library-keras/<br />
*http://tryhera.com/<br />
<br />
API TMDB :<br />
<br />
*https://developers.themoviedb.org/3/people<br />
<br />
Tuto Django + AngularJS :<br />
<br />
*https://thinkster.io/django-angularjs-tutorial#rendering-post-objects<br />
<br />
DOC2VEC :<br />
<br />
*https://github.com/nisarg64/Sentiment-Analysis-Word2Vec<br />
*https://translate.google.fr/translate?hl=fr&sl=en&u=https://rare-technologies.com/doc2vec-tutorial/&prev=search<br />
*https://translate.google.fr/translate?hl=fr&sl=en&u=http://linanqiu.github.io/2015/10/07/word2vec-sentiment/&prev=search<br />
<br />
Embedding layers : <br />
<br />
*http://stats.stackexchange.com/questions/182775/what-is-an-embedding-layer-in-a-neural-network<br />
*https://github.com/ririw/ririw.github.io/blob/master/assets/Recommending%20movies.ipynb<br />
*http://blog.richardweiss.org/2016/09/25/movie-embeddings.html<br />
<br />
Python API - Flask :<br />
<br />
*http://flask.pocoo.org/docs/0.12/quickstart/#accessing-request-data<br />
<br />
Grid'5000 :<br />
*https://www.grid5000.fr/mediawiki/index.php/Grid5000:Get_an_account</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=SRS_-_Recommandation_intelligente_de_films&diff=33742SRS - Recommandation intelligente de films2017-02-15T09:05:44Z<p>Elsa.Navarro: /* Bibliographie */</p>
<hr />
<div>Voici la fiche SRS du projet Recommandation intelligente de films.<br />
<br />
[[Suggestion_intelligente_des_films_basé_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin<br />
* Hattinguais Julian<br />
* Navarro Elsa<br />
* Dunand Quentin<br />
<br />
=Introduction =<br />
Qui n'a pas rêvé d'avoir une liste de films correspondant exactement à ses goûts cinématographiques ? Beaucoup d'algorithmes ont été conçus pour tenter d'adapter une liste de film en fonction des goûts de l'utilisateur mais manquaient d'efficacité.<br />
Avec l’essor de l'intelligence artificielle et des réseaux neuronaux, de nouveaux outils émergent afin de mieux comprendre le comportement et les goûts humains. Nous avons donc décidé de développer un système capable de comprendre les goûts cinématographiques d'un humain de manière bien plus performante que les algorithmes déjà conçu dans ce but là.<br />
<br />
==But du document ==<br />
Le but de ce document SRS est de fournir une vue d'ensemble détaillée de notre système logiciel, ses paramètres et buts. Ce document décrit le public cible du projet et son interface utilisateur, ainsi que les spécifications du logiciel. Ce document est destiné tant aux utilisateurs qu'aux développeurs du logiciel.<br />
<br />
==Objectif du projet ==<br />
Le but de ce projet est d'explorer les possibilités du Deep Learning sur des données dont les variables sont hétérogènes et multidimensionnelles, ceci au travers de la suggestion intelligente de films s'adaptant aux goûts de l'utilisateur. Grâce à un système de réseaux neuronaux et d'une base de données conséquente de films (TMDb), le site proposera une liste de suggestions de films personnalisée par utilisateur. Le modèle créé sur une base de données statique pourra alors être affiné en temps réel grâce aux nouvelles opinions exprimées par l’utilisateur.<br />
<br />
==Portée du produit ==<br />
Le produit est destiné aux utilisateurs désireux de générer automatiquement des recommandations de films en fonction de leurs goûts. L'application sera plus efficace sur des cinéphiles car ils pourront annoter un grand nombre de buts, mais elle a aussi la prétention de pouvoir être utile à un internaute lambda sans condition sur ses connaissances cinématographiques.<br />
<br />
=Description générale=<br />
==Le but du produit==<br />
Le produit doit permettre à l'utilisateur d'obtenir des recommandations intelligentes de films en fonction des films qu'il a appréciés et de ceux qu'il n'a pas appréciés. Cette recommandation doit tenir compte de la proximité des films les uns par rapport aux autres en terme de genre, synopsie, acteurs, réalisateurs, etc. Mais doit également tenir compte de la popularité des films et des tendances actuelles grâce à l'analyse en temps réel des flux Twitter.<br />
<br />
L'apport principal par rapport aux produits concurrents est de réaliser des prédictions personnalisées, grâce à l'utilisation de l'apprentissage automatique et à l'établissement d'un modèle propre à chaque utilisateur. La suggestion devrait donc être plus précise comparée à celles se basant sur la similarité des goûts entre utilisateurs. Deux utilisateurs appréciant un même film, ne sont en effet pas forcés d'apprécier tous les deux un autre film.<br />
<br />
==Fonctionnalités==<br />
Le site est conçu pour un utilisateur et ne sauvegarde que temporairement les choix de celui-ci.<br />
<br />
*Il proposera tout d'abord une liste de films représentative de tous les genres, réalisateurs, acteurs... du cinéma. L'utilisateur pourra pour chaque film, dire s'il aime, n'aime pas ou n'a pas d'opinions sur ce film.<br />
*Ensuite, en fonction des réponses de l'utilisateur, le site prédira grâce à un système de Deep Learning les films pouvant potentiellement plaire à l'utilisateur et les affichera avec leurs détails.<br />
*L'utilisateur pourra ensuite noter ces nouveaux films s'il le souhaite, et une nouvelle liste de films se générera afin de mieux s'adapter aux goûts de l'utilisateur.<br />
<br />
==Caractéristiques utilisateurs==<br />
Les utilisateurs doivent posséder une certaine culture cinématographique pour constituer une base d'apprentissage, en fonction des films qu'ils ont préalablement visionnés et de leur avis sur ceux-ci. En revanche, aucune compétence informatique spécifique n'est requise, de sorte qu'un utilisateur novice puisse utiliser l'application. L'interface doit donc être intuitive et extrêmement simple d'utilisation.<br />
<br />
==Cas d'utilisations==<br />
Le site web réalisé permettra à l'utilisateur d'explorer de nouvelles possibilités cinématiques, et par la suite d'accéder à son compte pour avoir des suggestions de films rapidement.<br />
<br />
<br />
'''TODO : A changer à la fin du projet'''<br />
<br />
==Contraintes générales==<br />
*Avoir une connexion internet.<br />
*Avoir un niveau basique de connaissances informatiques (savoir s'inscrire sur un site internet...).<br />
* L'apprentissage machine doit reposer sur TensorFlow (Keras)<br />
* Les données en entrées proviennent de l'API TMDB et des API Twitter (API REST 1.1 pour les données historiques ou API Streaming pour les données temps réelles)<br />
* l'API TDMBSimple limite le nombre de requêtes à la base de données à 40 par seconde. Peut potentiellement énormément ralentir les services.<br />
*Le modèle de prédiction doit être assez fiable pour prédire correctement un nombre conséquent de films pouvant potentiellemennt plaire à l'utilisateur (70%-80%).<br />
<br />
==Dépendances==<br />
* API de la base de donnée de film TMDB : https://developers.themoviedb.org/3/people<br />
* API REST 1.1 : https://dev.twitter.com/rest/public<br />
* API STREAMING : https://dev.twitter.com/streaming/overview<br />
<br />
==Evolutions potentielles du produit==<br />
*Multi utilisateurs : Une session de préférence par utilisateur. De plus, les goûts des utilisateurs seront sauvegardés afin qu'à la prochaine connexion, le modèle de Deep Learning soit prêt à prédire des films correspondant au goût de l'utilisateur concerné.<br />
*Prédire les films "tendance" du moment en priorité. Le site affichera en priorité les films les plus populaire du moment et correspondant aux goûts de *l'utilisateur. Pour cela, il scannera les tweets de Tweeter en temps réel et cherchera une correspondance entre les tweets de films populaires et ceux prédis par le modèle pour l'utilisateur concerné. <br />
*Utiliser des systèmes distribués afin d'améliorer les performances d'apprentissage du modèle de Deep Learning et de l'analyse en temps réel de Tweeter.<br />
<br />
=Specific requirements=<br />
<br />
==Conception du frontend du site==<br />
<br />
'''TODO : Mettre des screens du site à la fin du projet'''<br />
<br />
=Appendices=<br />
<br />
==Structure du SRS==<br />
The document is based on template of the Software Requirements Specification (SRS) inspired of the IEEE/ANSI 830-1998 Standard.<br />
<br />
'''References:'''<br />
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx<br />
* http://en.wikipedia.org/wiki/Software_requirements_specification<br />
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]<br />
<br />
=Bibliographie=<br />
<br />
Articles sur les systèmes de recommendation<br />
<br />
*spotify - http://benanne.github.io/2014/08/05/spotify-cnns.html#contentbased<br />
*youtube - https://static.googleusercontent.com/media/research.google.com/fr//pubs/archive/45530.pdf<br />
*https://www.atala.org/IMG/pdf/1-Poirier-TAL51-3.pdf<br />
<br />
Explication des termes deep learning :<br />
<br />
*https://devblogs.nvidia.com/parallelforall/deep-learning-nutshell-core-concepts/<br />
<br />
Exemple simple pour prendre en main Keras :<br />
<br />
*http://machinelearningmastery.com/tutorial-first-neural-network-python-keras/<br />
*http://machinelearningmastery.com/introduction-python-deep-learning-library-keras/<br />
*http://tryhera.com/<br />
<br />
API TMDB :<br />
<br />
*https://developers.themoviedb.org/3/people<br />
<br />
Tuto Django + AngularJS :<br />
<br />
*https://thinkster.io/django-angularjs-tutorial#rendering-post-objects<br />
<br />
DOC2VEC :<br />
<br />
*https://github.com/nisarg64/Sentiment-Analysis-Word2Vec<br />
*https://translate.google.fr/translate?hl=fr&sl=en&u=https://rare-technologies.com/doc2vec-tutorial/&prev=search<br />
*https://translate.google.fr/translate?hl=fr&sl=en&u=http://linanqiu.github.io/2015/10/07/word2vec-sentiment/&prev=search<br />
<br />
Embedding layers : <br />
<br />
*http://stats.stackexchange.com/questions/182775/what-is-an-embedding-layer-in-a-neural-network<br />
*https://github.com/ririw/ririw.github.io/blob/master/assets/Recommending%20movies.ipynb<br />
*http://blog.richardweiss.org/2016/09/25/movie-embeddings.html<br />
<br />
Python API - Flask :<br />
<br />
*http://flask.pocoo.org/docs/0.12/quickstart/#accessing-request-data<br />
<br />
Grid'5000 :<br />
*https://www.grid5000.fr/mediawiki/index.php/Grid5000:Get_an_account</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=SRS_-_Recommandation_intelligente_de_films&diff=33741SRS - Recommandation intelligente de films2017-02-15T09:05:27Z<p>Elsa.Navarro: /* Conception du frontend du site */</p>
<hr />
<div>Voici la fiche SRS du projet Recommandation intelligente de films.<br />
<br />
[[Suggestion_intelligente_des_films_basé_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin<br />
* Hattinguais Julian<br />
* Navarro Elsa<br />
* Dunand Quentin<br />
<br />
=Introduction =<br />
Qui n'a pas rêvé d'avoir une liste de films correspondant exactement à ses goûts cinématographiques ? Beaucoup d'algorithmes ont été conçus pour tenter d'adapter une liste de film en fonction des goûts de l'utilisateur mais manquaient d'efficacité.<br />
Avec l’essor de l'intelligence artificielle et des réseaux neuronaux, de nouveaux outils émergent afin de mieux comprendre le comportement et les goûts humains. Nous avons donc décidé de développer un système capable de comprendre les goûts cinématographiques d'un humain de manière bien plus performante que les algorithmes déjà conçu dans ce but là.<br />
<br />
==But du document ==<br />
Le but de ce document SRS est de fournir une vue d'ensemble détaillée de notre système logiciel, ses paramètres et buts. Ce document décrit le public cible du projet et son interface utilisateur, ainsi que les spécifications du logiciel. Ce document est destiné tant aux utilisateurs qu'aux développeurs du logiciel.<br />
<br />
==Objectif du projet ==<br />
Le but de ce projet est d'explorer les possibilités du Deep Learning sur des données dont les variables sont hétérogènes et multidimensionnelles, ceci au travers de la suggestion intelligente de films s'adaptant aux goûts de l'utilisateur. Grâce à un système de réseaux neuronaux et d'une base de données conséquente de films (TMDb), le site proposera une liste de suggestions de films personnalisée par utilisateur. Le modèle créé sur une base de données statique pourra alors être affiné en temps réel grâce aux nouvelles opinions exprimées par l’utilisateur.<br />
<br />
==Portée du produit ==<br />
Le produit est destiné aux utilisateurs désireux de générer automatiquement des recommandations de films en fonction de leurs goûts. L'application sera plus efficace sur des cinéphiles car ils pourront annoter un grand nombre de buts, mais elle a aussi la prétention de pouvoir être utile à un internaute lambda sans condition sur ses connaissances cinématographiques.<br />
<br />
=Description générale=<br />
==Le but du produit==<br />
Le produit doit permettre à l'utilisateur d'obtenir des recommandations intelligentes de films en fonction des films qu'il a appréciés et de ceux qu'il n'a pas appréciés. Cette recommandation doit tenir compte de la proximité des films les uns par rapport aux autres en terme de genre, synopsie, acteurs, réalisateurs, etc. Mais doit également tenir compte de la popularité des films et des tendances actuelles grâce à l'analyse en temps réel des flux Twitter.<br />
<br />
L'apport principal par rapport aux produits concurrents est de réaliser des prédictions personnalisées, grâce à l'utilisation de l'apprentissage automatique et à l'établissement d'un modèle propre à chaque utilisateur. La suggestion devrait donc être plus précise comparée à celles se basant sur la similarité des goûts entre utilisateurs. Deux utilisateurs appréciant un même film, ne sont en effet pas forcés d'apprécier tous les deux un autre film.<br />
<br />
==Fonctionnalités==<br />
Le site est conçu pour un utilisateur et ne sauvegarde que temporairement les choix de celui-ci.<br />
<br />
*Il proposera tout d'abord une liste de films représentative de tous les genres, réalisateurs, acteurs... du cinéma. L'utilisateur pourra pour chaque film, dire s'il aime, n'aime pas ou n'a pas d'opinions sur ce film.<br />
*Ensuite, en fonction des réponses de l'utilisateur, le site prédira grâce à un système de Deep Learning les films pouvant potentiellement plaire à l'utilisateur et les affichera avec leurs détails.<br />
*L'utilisateur pourra ensuite noter ces nouveaux films s'il le souhaite, et une nouvelle liste de films se générera afin de mieux s'adapter aux goûts de l'utilisateur.<br />
<br />
==Caractéristiques utilisateurs==<br />
Les utilisateurs doivent posséder une certaine culture cinématographique pour constituer une base d'apprentissage, en fonction des films qu'ils ont préalablement visionnés et de leur avis sur ceux-ci. En revanche, aucune compétence informatique spécifique n'est requise, de sorte qu'un utilisateur novice puisse utiliser l'application. L'interface doit donc être intuitive et extrêmement simple d'utilisation.<br />
<br />
==Cas d'utilisations==<br />
Le site web réalisé permettra à l'utilisateur d'explorer de nouvelles possibilités cinématiques, et par la suite d'accéder à son compte pour avoir des suggestions de films rapidement.<br />
<br />
<br />
'''TODO : A changer à la fin du projet'''<br />
<br />
==Contraintes générales==<br />
*Avoir une connexion internet.<br />
*Avoir un niveau basique de connaissances informatiques (savoir s'inscrire sur un site internet...).<br />
* L'apprentissage machine doit reposer sur TensorFlow (Keras)<br />
* Les données en entrées proviennent de l'API TMDB et des API Twitter (API REST 1.1 pour les données historiques ou API Streaming pour les données temps réelles)<br />
* l'API TDMBSimple limite le nombre de requêtes à la base de données à 40 par seconde. Peut potentiellement énormément ralentir les services.<br />
*Le modèle de prédiction doit être assez fiable pour prédire correctement un nombre conséquent de films pouvant potentiellemennt plaire à l'utilisateur (70%-80%).<br />
<br />
==Dépendances==<br />
* API de la base de donnée de film TMDB : https://developers.themoviedb.org/3/people<br />
* API REST 1.1 : https://dev.twitter.com/rest/public<br />
* API STREAMING : https://dev.twitter.com/streaming/overview<br />
<br />
==Evolutions potentielles du produit==<br />
*Multi utilisateurs : Une session de préférence par utilisateur. De plus, les goûts des utilisateurs seront sauvegardés afin qu'à la prochaine connexion, le modèle de Deep Learning soit prêt à prédire des films correspondant au goût de l'utilisateur concerné.<br />
*Prédire les films "tendance" du moment en priorité. Le site affichera en priorité les films les plus populaire du moment et correspondant aux goûts de *l'utilisateur. Pour cela, il scannera les tweets de Tweeter en temps réel et cherchera une correspondance entre les tweets de films populaires et ceux prédis par le modèle pour l'utilisateur concerné. <br />
*Utiliser des systèmes distribués afin d'améliorer les performances d'apprentissage du modèle de Deep Learning et de l'analyse en temps réel de Tweeter.<br />
<br />
=Specific requirements=<br />
<br />
==Conception du frontend du site==<br />
<br />
'''TODO : Mettre des screens du site à la fin du projet'''<br />
<br />
=Appendices=<br />
<br />
==Structure du SRS==<br />
The document is based on template of the Software Requirements Specification (SRS) inspired of the IEEE/ANSI 830-1998 Standard.<br />
<br />
'''References:'''<br />
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx<br />
* http://en.wikipedia.org/wiki/Software_requirements_specification<br />
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]<br />
<br />
==Bibliographie==<br />
<br />
Articles sur les systèmes de recommendation<br />
<br />
*spotify - http://benanne.github.io/2014/08/05/spotify-cnns.html#contentbased<br />
*youtube - https://static.googleusercontent.com/media/research.google.com/fr//pubs/archive/45530.pdf<br />
*https://www.atala.org/IMG/pdf/1-Poirier-TAL51-3.pdf<br />
<br />
Explication des termes deep learning :<br />
<br />
*https://devblogs.nvidia.com/parallelforall/deep-learning-nutshell-core-concepts/<br />
<br />
Exemple simple pour prendre en main Keras :<br />
<br />
*http://machinelearningmastery.com/tutorial-first-neural-network-python-keras/<br />
*http://machinelearningmastery.com/introduction-python-deep-learning-library-keras/<br />
*http://tryhera.com/<br />
<br />
API TMDB :<br />
<br />
*https://developers.themoviedb.org/3/people<br />
<br />
Tuto Django + AngularJS :<br />
<br />
*https://thinkster.io/django-angularjs-tutorial#rendering-post-objects<br />
<br />
DOC2VEC :<br />
<br />
*https://github.com/nisarg64/Sentiment-Analysis-Word2Vec<br />
*https://translate.google.fr/translate?hl=fr&sl=en&u=https://rare-technologies.com/doc2vec-tutorial/&prev=search<br />
*https://translate.google.fr/translate?hl=fr&sl=en&u=http://linanqiu.github.io/2015/10/07/word2vec-sentiment/&prev=search<br />
<br />
Embedding layers : <br />
<br />
*http://stats.stackexchange.com/questions/182775/what-is-an-embedding-layer-in-a-neural-network<br />
*https://github.com/ririw/ririw.github.io/blob/master/assets/Recommending%20movies.ipynb<br />
*http://blog.richardweiss.org/2016/09/25/movie-embeddings.html<br />
<br />
Python API - Flask :<br />
<br />
*http://flask.pocoo.org/docs/0.12/quickstart/#accessing-request-data<br />
<br />
Grid'5000 :<br />
*https://www.grid5000.fr/mediawiki/index.php/Grid5000:Get_an_account</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=SRS_-_Recommandation_intelligente_de_films&diff=33740SRS - Recommandation intelligente de films2017-02-15T09:05:13Z<p>Elsa.Navarro: /* Evolutions potentielles du produit */</p>
<hr />
<div>Voici la fiche SRS du projet Recommandation intelligente de films.<br />
<br />
[[Suggestion_intelligente_des_films_basé_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin<br />
* Hattinguais Julian<br />
* Navarro Elsa<br />
* Dunand Quentin<br />
<br />
=Introduction =<br />
Qui n'a pas rêvé d'avoir une liste de films correspondant exactement à ses goûts cinématographiques ? Beaucoup d'algorithmes ont été conçus pour tenter d'adapter une liste de film en fonction des goûts de l'utilisateur mais manquaient d'efficacité.<br />
Avec l’essor de l'intelligence artificielle et des réseaux neuronaux, de nouveaux outils émergent afin de mieux comprendre le comportement et les goûts humains. Nous avons donc décidé de développer un système capable de comprendre les goûts cinématographiques d'un humain de manière bien plus performante que les algorithmes déjà conçu dans ce but là.<br />
<br />
==But du document ==<br />
Le but de ce document SRS est de fournir une vue d'ensemble détaillée de notre système logiciel, ses paramètres et buts. Ce document décrit le public cible du projet et son interface utilisateur, ainsi que les spécifications du logiciel. Ce document est destiné tant aux utilisateurs qu'aux développeurs du logiciel.<br />
<br />
==Objectif du projet ==<br />
Le but de ce projet est d'explorer les possibilités du Deep Learning sur des données dont les variables sont hétérogènes et multidimensionnelles, ceci au travers de la suggestion intelligente de films s'adaptant aux goûts de l'utilisateur. Grâce à un système de réseaux neuronaux et d'une base de données conséquente de films (TMDb), le site proposera une liste de suggestions de films personnalisée par utilisateur. Le modèle créé sur une base de données statique pourra alors être affiné en temps réel grâce aux nouvelles opinions exprimées par l’utilisateur.<br />
<br />
==Portée du produit ==<br />
Le produit est destiné aux utilisateurs désireux de générer automatiquement des recommandations de films en fonction de leurs goûts. L'application sera plus efficace sur des cinéphiles car ils pourront annoter un grand nombre de buts, mais elle a aussi la prétention de pouvoir être utile à un internaute lambda sans condition sur ses connaissances cinématographiques.<br />
<br />
=Description générale=<br />
==Le but du produit==<br />
Le produit doit permettre à l'utilisateur d'obtenir des recommandations intelligentes de films en fonction des films qu'il a appréciés et de ceux qu'il n'a pas appréciés. Cette recommandation doit tenir compte de la proximité des films les uns par rapport aux autres en terme de genre, synopsie, acteurs, réalisateurs, etc. Mais doit également tenir compte de la popularité des films et des tendances actuelles grâce à l'analyse en temps réel des flux Twitter.<br />
<br />
L'apport principal par rapport aux produits concurrents est de réaliser des prédictions personnalisées, grâce à l'utilisation de l'apprentissage automatique et à l'établissement d'un modèle propre à chaque utilisateur. La suggestion devrait donc être plus précise comparée à celles se basant sur la similarité des goûts entre utilisateurs. Deux utilisateurs appréciant un même film, ne sont en effet pas forcés d'apprécier tous les deux un autre film.<br />
<br />
==Fonctionnalités==<br />
Le site est conçu pour un utilisateur et ne sauvegarde que temporairement les choix de celui-ci.<br />
<br />
*Il proposera tout d'abord une liste de films représentative de tous les genres, réalisateurs, acteurs... du cinéma. L'utilisateur pourra pour chaque film, dire s'il aime, n'aime pas ou n'a pas d'opinions sur ce film.<br />
*Ensuite, en fonction des réponses de l'utilisateur, le site prédira grâce à un système de Deep Learning les films pouvant potentiellement plaire à l'utilisateur et les affichera avec leurs détails.<br />
*L'utilisateur pourra ensuite noter ces nouveaux films s'il le souhaite, et une nouvelle liste de films se générera afin de mieux s'adapter aux goûts de l'utilisateur.<br />
<br />
==Caractéristiques utilisateurs==<br />
Les utilisateurs doivent posséder une certaine culture cinématographique pour constituer une base d'apprentissage, en fonction des films qu'ils ont préalablement visionnés et de leur avis sur ceux-ci. En revanche, aucune compétence informatique spécifique n'est requise, de sorte qu'un utilisateur novice puisse utiliser l'application. L'interface doit donc être intuitive et extrêmement simple d'utilisation.<br />
<br />
==Cas d'utilisations==<br />
Le site web réalisé permettra à l'utilisateur d'explorer de nouvelles possibilités cinématiques, et par la suite d'accéder à son compte pour avoir des suggestions de films rapidement.<br />
<br />
<br />
'''TODO : A changer à la fin du projet'''<br />
<br />
==Contraintes générales==<br />
*Avoir une connexion internet.<br />
*Avoir un niveau basique de connaissances informatiques (savoir s'inscrire sur un site internet...).<br />
* L'apprentissage machine doit reposer sur TensorFlow (Keras)<br />
* Les données en entrées proviennent de l'API TMDB et des API Twitter (API REST 1.1 pour les données historiques ou API Streaming pour les données temps réelles)<br />
* l'API TDMBSimple limite le nombre de requêtes à la base de données à 40 par seconde. Peut potentiellement énormément ralentir les services.<br />
*Le modèle de prédiction doit être assez fiable pour prédire correctement un nombre conséquent de films pouvant potentiellemennt plaire à l'utilisateur (70%-80%).<br />
<br />
==Dépendances==<br />
* API de la base de donnée de film TMDB : https://developers.themoviedb.org/3/people<br />
* API REST 1.1 : https://dev.twitter.com/rest/public<br />
* API STREAMING : https://dev.twitter.com/streaming/overview<br />
<br />
==Evolutions potentielles du produit==<br />
*Multi utilisateurs : Une session de préférence par utilisateur. De plus, les goûts des utilisateurs seront sauvegardés afin qu'à la prochaine connexion, le modèle de Deep Learning soit prêt à prédire des films correspondant au goût de l'utilisateur concerné.<br />
*Prédire les films "tendance" du moment en priorité. Le site affichera en priorité les films les plus populaire du moment et correspondant aux goûts de *l'utilisateur. Pour cela, il scannera les tweets de Tweeter en temps réel et cherchera une correspondance entre les tweets de films populaires et ceux prédis par le modèle pour l'utilisateur concerné. <br />
*Utiliser des systèmes distribués afin d'améliorer les performances d'apprentissage du modèle de Deep Learning et de l'analyse en temps réel de Tweeter.<br />
<br />
=Specific requirements=<br />
<br />
=Conception du frontend du site=<br />
<br />
'''TODO : Mettre des screens du site à la fin du projet'''<br />
<br />
=Appendices=<br />
<br />
==Structure du SRS==<br />
The document is based on template of the Software Requirements Specification (SRS) inspired of the IEEE/ANSI 830-1998 Standard.<br />
<br />
'''References:'''<br />
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx<br />
* http://en.wikipedia.org/wiki/Software_requirements_specification<br />
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]<br />
<br />
==Bibliographie==<br />
<br />
Articles sur les systèmes de recommendation<br />
<br />
*spotify - http://benanne.github.io/2014/08/05/spotify-cnns.html#contentbased<br />
*youtube - https://static.googleusercontent.com/media/research.google.com/fr//pubs/archive/45530.pdf<br />
*https://www.atala.org/IMG/pdf/1-Poirier-TAL51-3.pdf<br />
<br />
Explication des termes deep learning :<br />
<br />
*https://devblogs.nvidia.com/parallelforall/deep-learning-nutshell-core-concepts/<br />
<br />
Exemple simple pour prendre en main Keras :<br />
<br />
*http://machinelearningmastery.com/tutorial-first-neural-network-python-keras/<br />
*http://machinelearningmastery.com/introduction-python-deep-learning-library-keras/<br />
*http://tryhera.com/<br />
<br />
API TMDB :<br />
<br />
*https://developers.themoviedb.org/3/people<br />
<br />
Tuto Django + AngularJS :<br />
<br />
*https://thinkster.io/django-angularjs-tutorial#rendering-post-objects<br />
<br />
DOC2VEC :<br />
<br />
*https://github.com/nisarg64/Sentiment-Analysis-Word2Vec<br />
*https://translate.google.fr/translate?hl=fr&sl=en&u=https://rare-technologies.com/doc2vec-tutorial/&prev=search<br />
*https://translate.google.fr/translate?hl=fr&sl=en&u=http://linanqiu.github.io/2015/10/07/word2vec-sentiment/&prev=search<br />
<br />
Embedding layers : <br />
<br />
*http://stats.stackexchange.com/questions/182775/what-is-an-embedding-layer-in-a-neural-network<br />
*https://github.com/ririw/ririw.github.io/blob/master/assets/Recommending%20movies.ipynb<br />
*http://blog.richardweiss.org/2016/09/25/movie-embeddings.html<br />
<br />
Python API - Flask :<br />
<br />
*http://flask.pocoo.org/docs/0.12/quickstart/#accessing-request-data<br />
<br />
Grid'5000 :<br />
*https://www.grid5000.fr/mediawiki/index.php/Grid5000:Get_an_account</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=SRS_-_Recommandation_intelligente_de_films&diff=33739SRS - Recommandation intelligente de films2017-02-15T08:51:40Z<p>Elsa.Navarro: /* Portée du produit */</p>
<hr />
<div>Voici la fiche SRS du projet Recommandation intelligente de films.<br />
<br />
[[Suggestion_intelligente_des_films_basé_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin<br />
* Hattinguais Julian<br />
* Navarro Elsa<br />
* Dunand Quentin<br />
<br />
=Introduction =<br />
Qui n'a pas rêvé d'avoir une liste de films correspondant exactement à ses goûts cinématographiques ? Beaucoup d'algorithmes ont été conçus pour tenter d'adapter une liste de film en fonction des goûts de l'utilisateur mais manquaient d'efficacité.<br />
Avec l’essor de l'intelligence artificielle et des réseaux neuronaux, de nouveaux outils émergent afin de mieux comprendre le comportement et les goûts humains. Nous avons donc décidé de développer un système capable de comprendre les goûts cinématographiques d'un humain de manière bien plus performante que les algorithmes déjà conçu dans ce but là.<br />
<br />
==But du document ==<br />
Le but de ce document SRS est de fournir une vue d'ensemble détaillée de notre système logiciel, ses paramètres et buts. Ce document décrit le public cible du projet et son interface utilisateur, ainsi que les spécifications du logiciel. Ce document est destiné tant aux utilisateurs qu'aux développeurs du logiciel.<br />
<br />
==Objectif du projet ==<br />
Le but de ce projet est d'explorer les possibilités du Deep Learning sur des données dont les variables sont hétérogènes et multidimensionnelles, ceci au travers de la suggestion intelligente de films s'adaptant aux goûts de l'utilisateur. Grâce à un système de réseaux neuronaux et d'une base de données conséquente de films (TMDb), le site proposera une liste de suggestions de films personnalisée par utilisateur. Le modèle créé sur une base de données statique pourra alors être affiné en temps réel grâce aux nouvelles opinions exprimées par l’utilisateur.<br />
<br />
==Portée du produit ==<br />
Le produit est destiné aux utilisateurs désireux de générer automatiquement des recommandations de films en fonction de leurs goûts. L'application sera plus efficace sur des cinéphiles car ils pourront annoter un grand nombre de buts, mais elle a aussi la prétention de pouvoir être utile à un internaute lambda sans condition sur ses connaissances cinématographiques.<br />
<br />
=Description générale=<br />
==Le but du produit==<br />
Le produit doit permettre à l'utilisateur d'obtenir des recommandations intelligentes de films en fonction des films qu'il a appréciés et de ceux qu'il n'a pas appréciés. Cette recommandation doit tenir compte de la proximité des films les uns par rapport aux autres en terme de genre, synopsie, acteurs, réalisateurs, etc. Mais doit également tenir compte de la popularité des films et des tendances actuelles grâce à l'analyse en temps réel des flux Twitter.<br />
<br />
L'apport principal par rapport aux produits concurrents est de réaliser des prédictions personnalisées, grâce à l'utilisation de l'apprentissage automatique et à l'établissement d'un modèle propre à chaque utilisateur. La suggestion devrait donc être plus précise comparée à celles se basant sur la similarité des goûts entre utilisateurs. Deux utilisateurs appréciant un même film, ne sont en effet pas forcés d'apprécier tous les deux un autre film.<br />
<br />
==Fonctionnalités==<br />
Le site est conçu pour un utilisateur et ne sauvegarde que temporairement les choix de celui-ci.<br />
<br />
*Il proposera tout d'abord une liste de films représentative de tous les genres, réalisateurs, acteurs... du cinéma. L'utilisateur pourra pour chaque film, dire s'il aime, n'aime pas ou n'a pas d'opinions sur ce film.<br />
*Ensuite, en fonction des réponses de l'utilisateur, le site prédira grâce à un système de Deep Learning les films pouvant potentiellement plaire à l'utilisateur et les affichera avec leurs détails.<br />
*L'utilisateur pourra ensuite noter ces nouveaux films s'il le souhaite, et une nouvelle liste de films se générera afin de mieux s'adapter aux goûts de l'utilisateur.<br />
<br />
==Caractéristiques utilisateurs==<br />
Les utilisateurs doivent posséder une certaine culture cinématographique pour constituer une base d'apprentissage, en fonction des films qu'ils ont préalablement visionnés et de leur avis sur ceux-ci. En revanche, aucune compétence informatique spécifique n'est requise, de sorte qu'un utilisateur novice puisse utiliser l'application. L'interface doit donc être intuitive et extrêmement simple d'utilisation.<br />
<br />
==Cas d'utilisations==<br />
Le site web réalisé permettra à l'utilisateur d'explorer de nouvelles possibilités cinématiques, et par la suite d'accéder à son compte pour avoir des suggestions de films rapidement.<br />
<br />
<br />
'''TODO : A changer à la fin du projet'''<br />
<br />
==Contraintes générales==<br />
*Avoir une connexion internet.<br />
*Avoir un niveau basique de connaissances informatiques (savoir s'inscrire sur un site internet...).<br />
* L'apprentissage machine doit reposer sur TensorFlow (Keras)<br />
* Les données en entrées proviennent de l'API TMDB et des API Twitter (API REST 1.1 pour les données historiques ou API Streaming pour les données temps réelles)<br />
* l'API TDMBSimple limite le nombre de requêtes à la base de données à 40 par seconde. Peut potentiellement énormément ralentir les services.<br />
*Le modèle de prédiction doit être assez fiable pour prédire correctement un nombre conséquent de films pouvant potentiellemennt plaire à l'utilisateur (70%-80%).<br />
<br />
==Dépendances==<br />
* API de la base de donnée de film TMDB : https://developers.themoviedb.org/3/people<br />
* API REST 1.1 : https://dev.twitter.com/rest/public<br />
* API STREAMING : https://dev.twitter.com/streaming/overview<br />
<br />
=Evolutions potentielles du produit=<br />
*Multi utilisateurs : Une session de préférence par utilisateur. De plus, les goûts des utilisateurs seront sauvegardés afin qu'à la prochaine connexion, le modèle de Deep Learning soit prêt à prédire des films correspondant au goût de l'utilisateur concerné.<br />
*Prédire les films "tendance" du moment en priorité. Le site affichera en priorité les films les plus populaire du moment et correspondant aux goûts de *l'utilisateur. Pour cela, il scannera les tweets de Tweeter en temps réel et cherchera une correspondance entre les tweets de films populaires et ceux prédis par le modèle pour l'utilisateur concerné. <br />
*Utiliser des systèmes distribués afin d'améliorer les performances d'apprentissage du modèle de Deep Learning et de l'analyse en temps réel de Tweeter.<br />
<br />
=Conception du frontend du site=<br />
<br />
'''TODO : Mettre des screens du site à la fin du projet'''<br />
<br />
=Appendices=<br />
<br />
==Structure du SRS==<br />
The document is based on template of the Software Requirements Specification (SRS) inspired of the IEEE/ANSI 830-1998 Standard.<br />
<br />
'''References:'''<br />
* http://www.cs.st-andrews.ac.uk/~ifs/Books/SE9/Presentations/PPTX/Ch4.pptx<br />
* http://en.wikipedia.org/wiki/Software_requirements_specification<br />
* [http://www.cse.msu.edu/~chengb/RE-491/Papers/IEEE-SRS-practice.pdf IEEE Recommended Practice for Software Requirements Specifications IEEE Std 830-1998]<br />
<br />
==Bibliographie==<br />
<br />
Articles sur les systèmes de recommendation<br />
<br />
*spotify - http://benanne.github.io/2014/08/05/spotify-cnns.html#contentbased<br />
*youtube - https://static.googleusercontent.com/media/research.google.com/fr//pubs/archive/45530.pdf<br />
*https://www.atala.org/IMG/pdf/1-Poirier-TAL51-3.pdf<br />
<br />
Explication des termes deep learning :<br />
<br />
*https://devblogs.nvidia.com/parallelforall/deep-learning-nutshell-core-concepts/<br />
<br />
Exemple simple pour prendre en main Keras :<br />
<br />
*http://machinelearningmastery.com/tutorial-first-neural-network-python-keras/<br />
*http://machinelearningmastery.com/introduction-python-deep-learning-library-keras/<br />
*http://tryhera.com/<br />
<br />
API TMDB :<br />
<br />
*https://developers.themoviedb.org/3/people<br />
<br />
Tuto Django + AngularJS :<br />
<br />
*https://thinkster.io/django-angularjs-tutorial#rendering-post-objects<br />
<br />
DOC2VEC :<br />
<br />
*https://github.com/nisarg64/Sentiment-Analysis-Word2Vec<br />
*https://translate.google.fr/translate?hl=fr&sl=en&u=https://rare-technologies.com/doc2vec-tutorial/&prev=search<br />
*https://translate.google.fr/translate?hl=fr&sl=en&u=http://linanqiu.github.io/2015/10/07/word2vec-sentiment/&prev=search<br />
<br />
Embedding layers : <br />
<br />
*http://stats.stackexchange.com/questions/182775/what-is-an-embedding-layer-in-a-neural-network<br />
*https://github.com/ririw/ririw.github.io/blob/master/assets/Recommending%20movies.ipynb<br />
*http://blog.richardweiss.org/2016/09/25/movie-embeddings.html<br />
<br />
Python API - Flask :<br />
<br />
*http://flask.pocoo.org/docs/0.12/quickstart/#accessing-request-data<br />
<br />
Grid'5000 :<br />
*https://www.grid5000.fr/mediawiki/index.php/Grid5000:Get_an_account</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=Projets_2016-2017&diff=33719Projets 2016-20172017-02-14T13:00:11Z<p>Elsa.Navarro: /* Projet */</p>
<hr />
<div><<[[Projets 2015-2016]] | [[Projets]] | [[Projets 2017-2018]]>><br />
=RICM=<br />
==RICM3==<br />
<br />
==RICM4==<br />
===Projet Semestre S8===<br />
<br />
Enseignants responsables : Olivier Richard, Didier Donsez<br />
<br />
Dates : Lundi 9/01/2017 au 29/03/2017<br />
Lancement: 9/01/2017 après-midi<br />
Soutenance: le 3/04/2017 matin et après-midi<br />
Soutenance à mi-parcours: A définir<br />
<br />
* '''Evaluation à mi-parcours le lundi/mardi ???''': Format: 10min (5min de présentation 3 slides au plus, 5min de discussion). Cette évaluation sera prise en compte dans la note finale.<br />
<br />
'''Consignes générales:'''<br />
<br />
* '''Vous devez être pro-actifs !!!''': Si des points sont pas ou mals spécifiés, vous le faîtes et vous justifiez vos choix. Pour les problèmes techniques éventuels vous pouvez: creuser la question, contacter l'auteur du code si il y a lieu, écrire un rapport de bug ('''Attention:''' ca se prépare !), soumettre un patch/pull request, contacter l'enseignant ou la personne référente du projet.<br />
<br />
* '''Vous devez maintenir une fiche de suivi de projet''': elle doit être mise à jour chaque semaine, elle rassemble les élements essentiels du projet, elle <br />
indique les évolutions du projet et présente sa feuille de route. '''Note:''' le nom de la fiche doit être composé du nom du projet et suffixé par ricm4_2015_2016. '''Cette fiche compte pour la note finale'''<br />
<br />
* '''Vous devez utiliser un logiciel de gestion de version''' pour vos développements comme [http://en.wikipedia.org/wiki/Git_%28software%29 git ] et nous vous conseillons d'utiliser le site [https://github.com github] pour l'hébergement de votre dépôt public.<br />
<br />
* Les document public (exemple sur github) doivent être rédigés en anglais (README, documentation, commentaires de code, nom de variables et de fonctions). Une bonnification sera accordée si le rapport et les transparents sont en anglais (la soutenance sera en francais).<br />
<br />
{|class="wikitable alternance"<br />
|+ Affectation des projets RICM4 2016-2017<br />
|-<br />
|<br />
!scope="col"| Sujet<br />
!scope="col"| Etudiants<br />
!scope="col"| Enseignant(s)<br />
!scope="col"| Fiche de suivi<br />
!scope="col"| Dépot git<br />
|-<br />
<br />
!scope="row"| 1<br />
| [[Ruche connectée LoRa]] <br />
| MOREAU, LESAGE, <br />
| Palix, Richard<br />
| [[RICM4_2016_2017_-_Ruche_Connectee| '''Fiche''']] - [[RICM4_2016_2017_-_Ruche_Connectee_/_SRS|'''SRS''']]<br />
| [https://github.com/ '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation]]<br />
|-<br />
<br />
<br />
!scope="row"| 2<br />
| [[Serres connectées]]<br />
| BOISADAM, DALLE<br />
| Palix<br />
| [[Projets-2016-2017-Serres_connectées| '''Fiche''']] - [[Projet-2016-2017-Serres_connectées_-_SRS| '''SRS''']]<br />
| [https://github.com/igreenhouse '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation]]<br />
|-<br />
<br />
!scope="row"| 3<br />
| [[I-Greenhouse]] : [[Serre connectée aquaponie]]<br />
| MARCHAND, PELLICER<br />
| Palix, Donsez<br />
| [[Projets-2016-2017-I-Greenhouse : Serre connectée aquaponie | '''Fiche''']] - [[Projets-2015-2016-I-Greenhouse : Serre connectée aquaponie/UML_Diagrams | '''UML''']] - [[Projets-2015-2016-I-Greenhouse : Serre connectée aquaponie/SRS | '''SRS''']]<br />
| [https://github.com/igreenhouse '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation]]<br />
|-<br />
<br />
!scope="row"| 4<br />
| [[Station de pompage connectée]]<br />
| FERNANDES, CHEVALIER, FU <br />
| Palix, Donsez, Richard<br />
| [[Projets-2016-2017-Station de pompage connectée| '''Fiche''']] - [[Projets-2016-2017-Station de pompage connectée - SRS| '''SRS''']] - [[Projets-2016-2017-Station de pompage connectée - UML| '''UML''']]<br />
| [https://github.com/ '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation]]<br />
|-<br />
<br />
!scope="row"| 5<br />
| Géolocation Indoor basée sur les [[Beacon]]s BLE <br />
| COCHINHO, GAMBRO<br />
| Donsez<br />
| [[Projets-2016-2017-IndoorGeoloc| '''Fiche''']] - [[Projets-2016-2017-IndoorGeoloc-UML | '''UML''']] - [[Proj-2016-2017-IndoorGeoloc/SRS|SRS]]<br />
| [https://github.com/LouisCochinho/Geoloc_Indoor '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation]]<br />
|-<br />
<br />
!scope="row"| 6<br />
| [[Application de suivi de colis avec RFID UHF (EPC Global)]],<br />
| AMODRU-FAVIN, DELISE <br />
| Donsez<br />
| [[Projets-2016-2017-SuiviColisRFID| '''Fiche''']] - [[Proj-2016-2017-ColisMatter/SRS|SRS]]<br />
| [https://github.com/delisea/ColisMatter '''github''']]<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation]]<br />
|-<br />
<br />
!scope="row"| 7<br />
| [[StartAIR 2017]]<br />
| ODIEVRE, CHAMBONNET<br />
| Palix<br />
| [[Projets-2016-2017-StartAir| '''Fiche''']] - [[Projets-2016-2017-StartAir-UML| '''UML''']] - [[Projets-2016-2017-StartAir-SRS| '''SRS''']]<br />
| [https://github.com/s6mon/StartAir2017.git '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation]]<br />
|-<br />
<br />
!scope="row"| 8<br />
| [[SmartSelfService]] <br />
| ABONNENC, BONHOURE<br />
| Donsez<br />
| [[Projets-2016-2017-SmartSelfService| '''Fiche''']] - [[Projets-2016-2017-SmartSelfService/SRS | '''SRS''']] - [[Projets-2016-2017-SmartSelfService/UML | '''UML''' ]]<br />
| [https://github.com/RICM4SmartSelfService/RICM4_Projet_SmartSelfService '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation]]<br />
|-<br />
<br />
!scope="row"| 9<br />
| [[Interface de contrôle "Photo" pour OpenHAB]]<br />
| LACHARTRE, SAVARY <br />
| Donsez<br />
| [[Projets-2016-2017 - Interface de contrôle "Photo" pour OpenHAB| '''Fiche''']]- [[Projets-2016-2017 - Interface de contrôle "Photo" pour OpenHAB/SRS| '''SRS''']]<br />
| [https://github.com/ '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation]]<br />
|-<br />
<br />
!scope="row"| 10<br />
| [[UltraTeam|UltraTeam: Application Mobile pour les Ultra-trailers et les randonneurs]],<br />
| ROUQUIER, GEOURJON<br />
| Donsez<br />
| [[Projets-2016-2017-UltraTeamBest| '''Fiche''']]- [[Projets-2016-2017-UltraTeamBest/SRS| '''SRS''']]<br />
| [https://github.com/ultratrail '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation]]<br />
|-<br />
<br />
!scope="row"| 10<br />
| [[UltraTeam|UltraTeam: Application Mobile pour les Ultra-trailers et les randonneurs]],<br />
| GALLIER, FERRERA<br />
| Donsez<br />
| [[Projets-2016-2017-UltraTeam| '''Fiche''']]- [[Projet-2016-2017-UltraTeam/SRS| '''SRS''']] - [[Projet-2016-2017-UltraTeam/UML | '''UML''' ]]<br />
| [https://github.com/ultratrail '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation]]<br />
|-<br />
<br />
!scope="row"| 11<br />
| [[Plateforme d'analyse de données IoT]] <br />
| ALLARD, ROCHER<br />
| Palix, Richard<br />
| [[Projets-2016-2017-Plateform_Analyse_Données_IOT| '''Fiche''']] [[Projets-2016-2017-Plateform_Analyse_Données_IOT/SRS| '''SRS''']] [[Projets-2016-2017-Plateform_Analyse_Données_IOT/UML| '''UML''']]<br />
| [https://github.com/ '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation]]<br />
|-<br />
<br />
!scope="row"| 13<br />
| [[IRock : Surveillance Géotechnique LoRa|iRock]]<br />
| SIEST, VEGREVILLE<br />
| Donsez<br />
| [[Projets-2016-2017-Projet_IRock| '''Fiche''']]<br />
| [https://github.com/Shadsa/IRock '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation]]<br />
|-<br />
<br />
!scope="row"| 14<br />
| [[GrenobloisFuté]]<br />
| VIAL, GUERRY<br />
| Palix<br />
| [[Projets-2016-2017-| '''Fiche''']]<br />
| [https://github.com/ '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation]]<br />
|-<br />
<br />
!scope="row"| 15<br />
| [[GeoDiff]]<br />
| AMAURIN, BECHER, BROCHIER<br />
| Palix<br />
| [[Projets-2016-2017-GeoDiff| '''Fiche''']] - [[Projets-2016-2017-GeoDiff/SRS| '''SRS''']] - [[Projets-2016-2017-GeoDiff/UML| '''UML''']]<br />
| [https://github.com/Hbecher/GeoDiff '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation]]<br />
|-<br />
<br />
!scope="row"| 16<br />
| [[floatingimage UPnP feed]] <br />
| FUSTES, DEREYMEZ<br />
| Palix, Donsez<br />
| [[Projets-2016-2017-floatingimageUPnP| '''Fiche''']] - [[Projets-2016-2017-floatingimageUPnP/SRS | '''SRS''']] - [[Projets-2016-2017-floatingimageUPnP/UML | '''UML''' ]]<br />
| [https://github.com/ '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation]]<br />
|-<br />
<br />
!scope="row"| 17<br />
| Webconférence [[Google VR]]<br />
| RIVOAL, ZENNOUCHE <br />
| Donsez<br />
| [[Projets-2016-2017-VideoConference| '''Fiche''']] - [[Projets-2016-2017-UML| '''UML''']]<br />
| [https://github.com/ '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation]]<br />
|-<br />
<br />
!scope="row"| 18<br />
| [[NixOsTegraX1 | NixOS for Tegra X1]]<br />
| NASSIK, TURRIN<br />
| Richard<br />
| [[Projets-2016-2017-NixosTegraX1| '''Fiche''']] - [[NixosTegraX1/SRS| '''SRS''']]<br />
| [https://github.com/ '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation]]<br />
|-<br />
<br />
!scope="row"| 20<br />
| [[ExperimentControl | Experiment Control]] <br />
| HOMBERG, LEMAIRE<br />
| Richard<br />
| [[Proj-2016-2017-ExperimentControl| '''Fiche''']] - [[ExperimentControl/SRS| '''SRS''']]<br />
| [https://github.com/ '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation]]<br />
|-<br />
<br />
!scope="row"| 23<br />
| Intégration de caméras UPnP dans [[OpenHAB]] <br />
| BLANC, LAW<br />
| Donsez<br />
| [[Projets-2016-2017-UPnP Cameras integration into OpenHAB | '''Fiche''']] - [[Projets-2016-2017-UPnP Cameras integration into OpenHAB/SRS | '''SRS''']]<br />
| [https://github.com/ '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation]]<br />
|-<br />
<br />
|}<br />
<br />
'''Propositions de projets:'''<br />
<br />
# [[Ruche connectée LoRa]] (OpenHab) , Didier Donsez, Denis Jongmann, Olivier Richard<br />
# [[Serres connectées]] (OpenHab) Surveillance des serres d'une exploitation agricole. Nicolas Palix, Michaël Périn et Vincent Hibon ("Les jardins du Coteau").<br />
# [[I-Greenhouse]] : [[Serre connectée aquaponie]] (OpenHab). Nicolas Palix, Didier Donsez (2 groupes)<br />
# [[Station de pompage connectée]]. Nicolas Palix<br />
# Géolocation Indoor basée sur les [[Beacon]]s BLE (iBeacon, AltBeacon, Eddystone). Utilisation d'algorithmes de trigonalisation ([https://github.com/jpias/beacon-pfilter-simulation/wiki lien]), (Didier Donsez, Vivien Quéma)<br />
# [[Application de suivi de colis avec RFID UHF (EPC Global)]], Didier Donsez<br />
# Projet [[StartAIR 2017]] : interface tablette de tableau de bord d'ULM, fiabilisation du réflecteur Flight Simulator (Fabrice Dubois, Nicolas Palix)<br />
# [[SmartSelfService]] (Didier Donsez, François Portet) en collaboration avec PHELMA.<br />
# [[Interface de contrôle "Photo"]] pour [[OpenHAB]] : éventuelle contribution à la fondation Eclipse (Didier Donsez)<br />
# [[UltraTeam|UltraTeam: Application Mobile pour les Ultra-trailers et les randonneurs]] (Didier Donsez, Vivien Quéma)<br />
# [[Plateforme d'analyse de données IoT]] (Nicolas Palix)<br />
# Extension de [[Swagger]] pour [[CoAP]] : Application avec [[Californium]] (Contribution à une communauté open-source), (Didier Donsez)<br />
# [[IRock : Surveillance Géotechnique LoRa|iRock]]: Plateforme Ubilitics pour la surveillance des risques naturelles (déploiement grande échelle de capteurs [[LoRa]] sur le terrain pour l'observation de glissement de terrain) en commun avec Geotech (à confirmer) : Didier Donsez, Sandrine Caroly, Denis Jongmans.<br />
# [[GrenobloisFuté]] Couche trafic sur OsmAnd avec un greffon. Données dynamique de la métro. Dvp Android. Nicolas Palix.<br />
# [[GeoDiff]] Production, visualisation, fusion de variations (diff) sur de l'information géocodée : Nicolas Palix (Multimédia)<br />
# [[floatingimage UPnP feed]] Cadre photos connecté à Kodi. Dvp Android. Nicolas Palix, Didier Donsez<br />
# Webconférence WebRTC stereoscopique avec [[Google VR]] SDK for Android (Jérôme Maisonnasse, Didier Donsez)<br />
# [[NixOsTegraX1 | NixOS for Tegra X1]]: (Olivier Richard)<br />
# [[LittleJump | Little Jump]]: Inventer un blablacar pour les petits trajets (Olivier Richard)<br />
# [[ExperimentControl | Experiment Control]] Développer un moteur de conduite d'expérience pour les systèmes distribués (Olivier Richard) <br />
# [[CrystalLanguageMicrocontroller | Crystal Language for Microcontroller]] (Olivier Richard)<br />
# Questionnaires automatiques, (Pierre Gillois, Didier Donsez)<br />
# Intégration de caméras UPnP dans [[OpenHAB]] (Didier Donsez)<br />
Moins prioritaires:<br />
# [[OwnPOI]] ownCloud plugin and osmand plugin to share POI and favorite positions. Dvp Android. Nicolas Palix.<br />
# [[OwnList]] ownCloud plugin and Android app to share a TODO list. Nicolas Palix.<br />
# [[Osmand-Auto]] Support Android Auto sur [[OsmAnd]] Nicolas Palix,<br />
# [[OCR de composition d'étiquettes alimentaires pour la base Open Food Facts]] (Nicolas Palix, Didier Donsez)<br />
Sous réserve de matériel<br />
# Reconstruction 3D d'images thermiques provenant des réseaux de caméras thermiques [[Flir One]] : application au sport connecté(Didier DONSEZ)<br />
# Géolocation Indoor basée sur [[Decaware]]. Utilisation d'algorithmes de trigonalisation ([https://github.com/jpias/beacon-pfilter-simulation/wiki lien]), (Didier Donsez, Vivien Quéma)<br />
<br />
==RICM5==<br />
===Projet Semestre S10===<br />
<br />
Enseignants responsables : Didier Donsez<br />
<br />
====Calendrier====<br />
<br />
le projet commence le 23/01 et se termine le 17/03.<br />
<br />
Réunion de présentation : 23/01 à 8H00 (RdV Salle AIR).<br />
<br />
Soutenance à mi-parcours : Date: Vendredi 17/02 de 08:00-11:00 (Salle P257)<br />
<br />
Soutenance (puis Pot de la fin): A DEFINIR (Provisoirement le 16/03 après-midi)<br />
<br />
====Projet====<br />
<br />
<br />
<br />
{|class="wikitable alternance"<br />
|+ Affectation des projets RICM5 2016-2017<br />
|-<br />
|<br />
!scope="col"| Sujet<br />
!scope="col"| Etudiants<br />
!scope="col"| Enseignant(s)<br />
!scope="col"| Fiche de suivi<br />
!scope="col"| Dépot git<br />
!scope="col"| Supports<br />
|-<br />
<br />
!scope="row"| 1<br />
| [[RealTimeSubtitle - 2016/17 - RICM5| Sous-titre d'un cours en temps réel]] <br />
| BRUEL, BUI, LECHEVALLIER, MATHIEU, MOURET, <br />
| Laurent Besacier, Didier Donsez, Marie-Paule Balicco, Jérôme Maisonnasse<br />
| [[RICM5_2016_2017_-_RealTimeSubtitle| '''Fiche''']] - [[RICM5_2016_2017_-_RealTimeSubtitle/SRS|'''SRS''']]<br />
| [https://github.com/ '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation intermédiaire]] - [[Media:presentation.pdf|Presentation]] - Video - Photos<br />
|-<br />
<br />
!scope="row"| 2<br />
| [[Réalité virtuelle et Augmentée pour la maintenance d'usines]] <br />
| BERTRAND-DALECHAMPS, POPEK, ZAHO, SUN, NDIAYE, HAMMOUTI, <br />
| Didier Donsez, Georges-Pierre Bonneau<br />
| [[RICM5_2016_2017_-_Usine4.0| '''Fiche''']] - [[RICM5_2016_2017_-_Usine4.0/SRS|'''SRS''']]<br />
| [https://github.com/ '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation intermédiaire]] - [[Media:presentation.pdf|Presentation]] - Video - Photos<br />
|-<br />
<br />
!scope="row"| 3<br />
| [[CoCass|CoCass : CaaS Docker collaboratif]] <br />
| ARRADA, FAURE, FOUNAS, HALLAL, MEDEWOU, VOUTAT, <br />
| Didier Donsez<br />
| [[RICM5_2016_2017_-_CoCass| '''Fiche''']] - [[RICM5_2016_2017_-_CoCass/SRS|'''SRS''']]<br />
| [https://github.com/ '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation intermédiaire]] - [[Media:presentation.pdf|Presentation]] - Video - Photos<br />
|-<br />
<br />
<br />
!scope="row"| 4<br />
| [[Projet 2017 : Gestionnaire de packages Polytech| '''Gestion des images systèmes pour les supports à Polytech Grenoble''']] <br />
| GATTAZ, LECORPS, NOUGUIER, RAMEL, <br />
| Didier Donsez<br />
| [[RICM5_2016_2017_-_DebPack| '''Fiche''']] - [[RICM5_2016_2017_-_DebPack/SRS|'''SRS''']]<br />
| [https://github.com/ '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation intermédiaire]] - [[Media:presentation.pdf|Presentation]] - Video - Photos<br />
|-<br />
<br />
<br />
!scope="row"| 5<br />
| [[Suggestion_intelligente_de_films_basée_sur_TensorFlow | Suggestion intelligente de films basée sur TensorFlow]] <br />
| DUNAND, HATTINGUAIS, NAVARRO, NIOGRET, RACHEX, <br />
| Didier Donsez<br />
| [[Fiche_de_suivi_-_Recommandation_intelligente_de_films| '''Fiche''']] - [[SRS_-_Recommandation_intelligente_de_films|'''SRS''']]<br />
| [https://github.com/DeepLearningMoviesProject '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:presentation.pdf|Presentation intermédiaire]] - [[Media:presentation.pdf|Presentation]]<br />
|-<br />
<br />
!scope="row"| 6<br />
| [[Projet Startup]] <br />
| LUCIDARME, DELAPORTE, <br />
| Didier Donsez<br />
| [[RICM5_2016_2017_-_Startup| '''Fiche''']] - [[RICM5_2016_2017_-_Startup/SRS|'''SRS''']]<br />
| [https://github.com/ '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation intermédiaire]] - [[Media:presentation.pdf|Presentation]] - Video - Photos<br />
|-<br />
<br />
<br />
!scope="row"| 7<br />
| [[Contributions à RIOT OS]] autour de [[LoRa]] <br />
| Taquyeddine ZEGAOUI, <br />
| Didier Donsez<br />
| [[RICM5_2016_2017_-_RIOTOSLoRa| '''Fiche''']] - [[RICM5_2016_2017_-_RIOTOSLoRa/SRS|'''SRS''']]<br />
| [https://github.com/ '''github''']<br />
| [[Media:test.pdf|Rapport]] - [[Media:slides.pdf|Transparents]] - [[Media:Flyer.pdf|Flyer]] - [[Media:rapport.pdf|Rapport]] - [[Media:presentation.pdf|Presentation intermédiaire]] - [[Media:presentation.pdf|Presentation]] - Video - Photos<br />
|-<br />
<br />
|}<br />
<br />
<br />
Projets non choisi:<br />
# Borne d'accueil handicap : Didier Donsez, Marie-Paule Balicco, Jérôme Maisonnasse<br />
# [[Plateforme IoT du LIG basé sur Walt]] : Bernard Tourancheau, Franck Rousseau, Etienne Dublé<br />
<br />
====Soutenance à mi-parcours====<br />
Date: Vendredi 17/02 de 08:00-11:00 (Salle P257)<br />
# 08H00-08H25: [[RealTimeSubtitle - 2016/17 - RICM5| Sous-titre d'un cours en temps réel]]<br />
# 08H25-08H50: [[Réalité virtuelle et Augmentée pour la maintenance d'usines]] (avec [[Unity 3D]] et [[Google VR]] SDK for Android, caméra Flir One, [[WebRTC]])<br />
# 08H50-09H15: [[CoCass|CoCass : CaaS Docker collaboratif]] : Didier Donsez (ARRADA, FAURE, FOUNAS, HALLAL, MEDEWOU, VOUTAT)<br />
# 09H15-09H40: [[Projet 2017 : Gestionnaire de packages Polytech| '''Gestion des images systèmes pour les supports à Polytech Grenoble''']]<br />
# 09H40-10H05: [[Suggestion_intelligente_de_films_basée_sur_TensorFlow | Suggestion intelligente de films basée sur TensorFlow]]<br />
# 10H05-10H30: Projet Startup<br />
# 10H30-11H00:[[Contributions à RIOT OS]] autour de [[LoRa]]<br />
<br />
Instructions:<br />
* 10 minutes de présentation + démonstration.<br />
* 10 minutes de questions<br />
<br />
(7 transparents maximum pour résumer l'organisation et l'avancement du projet)<br />
<br />
====Soutenance (puis Pot de la fin)====<br />
A DEFINIR (Provisoirement le 16/03 après-midi)<br />
<br />
====Séances Suivi:====<br />
* Lundi 30/01 - 08:00-11:00<br />
* Mardi 31/01 - 10:00-12:00<br />
* Lundi 06/02 - 08:00-10:00<br />
* Lundi 13/02 - 08:00-10:00<br />
* Lundi 27/02 - 08:00-10:00<br />
* Lundi 06/03 - 08:00-10:00<br />
* Lundi 13/03 - 08:00-09:45<br />
<br />
====Séances MPI:====<br />
* Jeudi 26 janvier matin (Stéphanie Diligent)<br />
* Jeudi 2 février matin (Stéphanie Diligent)<br />
* Lundi 6 février matin (Emmanuelle Tréhoust)<br />
* Mardi 14 février matin (Emmanuelle Tréhoust)<br />
* Lundi 6 mars après midi (Stéphanie Diligent et Emmanuelle Tréhoust)<br />
<br />
<br />
====Bonus track====<br />
Remarque: [http://snowcamp.io/2017/fr/welcome Netbeans Days 2017], 7 Février 2017, Bâtiment IMAG. Pensez à vous inscrire!<br />
<br />
Remarque: [https://wiki.eclipse.org/Eclipse_IoT_Day_Grenoble_2017 Eclipse IoT Days 2017], 9-10 Mars 2017, Bâtiment IMAG. Pensez à vous inscrire!<br />
<br />
=Année à définir=<br />
<br />
* [[Non linear MKV Editor]] : Nicolas Palix<br />
* [[Smart campus augmenté et contributif]]<br />
* [[Intégration OpenHAB / OpenTele]]<br />
* [[Client MQTT pour OBD]] sur Android<br />
* [[Sommeilomètre]] (Michael Perin, Didier Donsez)<br />
* [[Open DynDNS]]<br />
* [[IllumiRoom]]<br />
* [[Emergency mobile app]] Dvp Android. Nicolas Palix pour TIS, PRI et RICM<br />
* [[Kodi Reflexive Remote]] Dynamic remote control for Kodi. Nicolas Palix.<br />
* [http://intgat.tigress.co.uk/rmy/uml/index.html Zerofree] Portage de zerofree pour d'autres systèmes de fichiers que ext2/3/4 (notamment Unix FS). Voir également la page [http://packages.qa.debian.org/z/zerofree.html QA de Debian]. Nicolas Palix.<br />
* [[Bracelet électronique de monitoriing de l'alcoolémie]]<br />
* [[Oxymètre DIY]]<br />
* [[PinSound]]<br />
* [[Extension du support STM32Fx-Discovery dans libopencm3]] : Olivier Richard<br />
* [[Arduino et libopencm3]] : Olivier Richard<br />
* [[Data Acquisition System et Stm32f4-Discovery]] : Olivier Richard<br />
* [[Distributed Data Storage System]] : Olivier Richard<br />
* [[Dashboard based on w2ui]]<br />
* [[Environnement logiciel pour FabLab]] : Olivier Richard<br />
* [[Environnement logiciel pour le Live Programming]] : Olivier Richard<br />
* [[VirtualPinball]]<br />
* Tondeuse dessinatrice<br />
* [[ImmersiveDog]] Nicolas Glade, Didier Donsez<br />
* Projet avec [[OpenROV]] ???? : Didier Donsez<br />
* [[Sphero]] malin (Michael Périn) (2 etudiants)<br />
* [[Drone paramoteur]] ???<br />
* [[Optimisation de l'énergie pour cyclotouriste électrique]]<br />
* [[SmartSelfService|Smart Self-Service 2015]] Didier Donsez & Vivien Quema<br />
* [[Station Météo LoRa]] : contribution au projet [[LoRA-Fabian]] (Didier Donsez)<br />
<br />
=Réserve (boite à idées)=<br />
<br />
# [[Tag et Paint Ball en réalité augmentée]] (Michaël Périn) <br />
# [[Passe moi ton fichier]] (Michaël Périn) <br />
# [[Extensions à Fab Server]] (Jean-Michel Molenaar) sous reserve (CM ou SR)<br />
# [[Table multijeux de café 2.0]]<br />
# [[ GPIO_Qemu_RasPI| Emulation des GPIO dans QEMU pour le carte Raspberry Pi]] (Olivier Richard)<br />
# [[ Qemu et STM32F0-Discovery ]] (Olivier Richard)<br />
# [[Serrure à clé MIDI multifactorielle]] (Didier Donsez)<br />
# [[Table interactive musicale]] (Didier Donsez)<br />
# [[iMailbox]] (Didier Donsez)<br />
# [[AmILight]] (eclairage d'ambience intelligent) (Didier Donsez)<br />
# [[PDAmeetPDA]] (synchronisation d'agenda) (Michaël Périn)<br />
# [[1 000 000 VMs]] (expérimentation d'application distribuée à très grande échelle) (Olivier Richard) (2-3 RICM4)<br />
# [[Multiple Kinect]] (utilisation simultanée de plusieurs Kinect) (Olivier Richard) (RICM ou 3I)<br />
# [[Kinect musicale]] (Didier Donsez) (RICM)<br />
# [[Ktechlab Simavr Arduino | Ktechlab et integration de Simavr(Arduino)]] (Olivier Richard) (2-3 RICM4-SR)<br />
# Ocaml on AVR (Arduino)<br />
# Ocaml on Cortex-M3<br />
# [[Arduino on STM32 Discovery]]<br />
# [[Reverse Geocache Puzzle Box]]<br />
# [[OSGi ME]] (Didier Donsez)<br />
# [[Affichage Etudiant à Polytech]]<br />
# Synthèse 3D + motion capture Kinect<br />
# Logiciel d'[[apprentissage du calcul]] sur tablette Android (reconnaissance de chiffres manuscrits)<br />
# Plancher de verre (saint gobain) à la [http://www.wat.tv/video/mickael-jackson-billie-jean-oewj_2ey2h_.html Mickael Jackson dans Billie Jean] ! woo<br />
# [[Ktechlab Simavr Arduino | Ktechlab et integration de Simavr(Arduino)]] (Olivier Richard) (2-3 RICM4-SR)<br />
# [[CNC]]<br />
# [[Idées en Vrac]]<br />
# Scheme Everywhere (Olivier Richard) (2-3 RICM4-SR)<br />
# [[Projet Station Météo]]<br />
# Ocaml on AVR (Arduino)<br />
# [[Table interactive musicale]] (Didier Donsez)<br />
# [[AmILight]] (eclairage d'amnbience intelligent) (Didier Donsez)<br />
# [[Cube pointeur]] d'activité ingénieur<br />
# [http://www.instructables.com/id/Puppeteer-Motion-Capture-Costume/ Puppeteer Motion-Capture Costume]<br />
# [[Musical Staircase]] @ Polytech (Didier Donsez, 1 RICM4 + 1 3I4)<br />
# [[Total Recall]] (Didier Donsez)<br />
# [[SoundMachine]]<br />
# [[IGN-OSM|Importation de données IGN publiques dans OSM]]<br />
# [[Speed-limit-OSM|Analyse de traces GPX pour déterminer les limitations de vitesse]]<br />
# [[Multi perceptual cameras]] (Didier Donsez)<br />
# [[Photomaton 3D]] (Didier Donsez)<br />
# [[ArduCopter]]<br />
# [[Parking Intelligent]]</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=Fiche_de_suivi_-_Recommandation_intelligente_de_films&diff=33689Fiche de suivi - Recommandation intelligente de films2017-02-13T15:11:38Z<p>Elsa.Navarro: /* Lundi */</p>
<hr />
<div>Voici la Fiche de suivi du projet de fin d'études DeepMovies 2016-2017<br />
<br />
[[Suggestion_intelligente_de_films_basée_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin (Responsable innovation)<br />
* Hattinguais Julian (Responsable qualité)<br />
* Navarro Elsa (Responsable communication, Médiatrice)<br />
* Dunand Quentin (Responsable des deadlines,Responsable du front-end)<br />
<br />
= Avancée du projet =<br />
Le scrumboard utilisé pour le projet est visible dans l'onglet Projet de l'organisation DeepLearningMovies que nous avons créé sur Github. Chaque tâche est réalisée par un ou plusieurs membre(s) de l'équipe et testée par un autre membre de l'équipe.<br />
<br />
== Sprint 0 ==<br />
<br />
===Sprint dédié aux travaux préparatoires du projet===<br />
* Debriefing autour du projet<br />
* Renseignements sur les technologies et principaux défis techniques<br />
* Maquette de tests sur la faisabilité du projet (recherche de solutions pour les principaux problèmes techniques afin de guider nos choix technologiques et choix de fonctionnalités) <br />
* Choix technologiques<br />
* Préparation des environnements<br />
* Établissement de la liste des exigences fonctionnelles et non fonctionnelles<br />
<br />
<br />
[[File:Sprint0-Semaine1.jpg|1400px|middle]]<br />
<br />
=== Semaine 1 : 23/01 - 29/01 ===<br />
* Mise en place du wiki (Edwin)<br />
* Recherche sur les technologies et les problèmes techniques (Tous)<br />
* Prise RDV avec Massih-Reza Amini pour renseignements (Coralie)<br />
* Mise en place d'un agenda pour le suivi du projet (Coralie)<br />
* Comment lier l'API au front-end ? AngularJS ou Polymer ? ... (Quentin)<br />
<br />
* Mise en place de l'architecture (Tous) avant de faire un prototype comme prévu.<br />
* Installation, compréhension et manipulation de Keras (Tous)<br />
* Recherche mise en place API-REST Python pour le back-end (Julian)<br />
* Mise en place du front-end - première requêtes - choix Angular pour communiquer avec une API-REST (Quentin)<br />
* Traitement de données simple en se basant juste sur le vote des utilisateurs de TMDb sur les films (Edwin, Coralie, Elsa)<br />
* Mise en place d'un prototype capable de récolter grâce à l'API de TMDB les informations de films ciblés. Puis construction d'un modèle de Deep Learning capable de prédire si une personne va aimer un film ou non en fonction de sa note. (Edwin, Coralie)<br />
* Recherche de la transformation de texte en valeurs numériques (String to Float) et plus généralement du prétraitement des données (Elsa, Coralie, Quentin) : découvertes de Word2Vec et de [http://nlp.stanford.edu/projects/glove/ GloVe].<br />
<br />
<br />
* Rendez-vous avec Massih-Reza Amini pour éclaircir le sujet, notamment au sujet du pré-traitement du texte. (Tous)<br />
* Premiers scripts Python pour le prétraitement des données : import depuis un script JSON (Julian) et transformation sous forme de vecteur moyen pour un film donné (Elsa), recherche d'une méthode plus approfondie pour traiter le Résumé (Coralie).<br />
* Réflexion sur les choix des différents layers de traitement des données et sur l'étape d'embedding des données (premier traitement) (Edwin).<br />
* Mise en place d'un système de notation fonctionnel qui permet d'enregistrer les données à partir du front (Quentin).<br />
<br />
== Sprint 1 ==<br />
<br />
===Tâches du Sprint1===<br />
* T1. Établissement des vues principales côté client (recherche et annotation de films)<br />
* T2. Mise en place du processus de pré-traitement des données (titre, mots clés, résumé, note, artiste, producteur)<br />
* T3. Mise en place du réseau neuronal (réseau neuronal simple)<br />
* T4. Mise en place de la structure de test du réseau neuronal (former les corpus de données, cross validation, test de précision)<br />
* T5. Mise en place de l'environnement système (Docker)<br />
<br />
=== Semaine 2 : 30/01 - 05/02 ===<br />
<br />
[[File:Sprint1-Semaine2.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Préparation du premier sprint :<br />
** Mise au point sur le travail réalisé la semaine passée et sur le travail à réaliser durant le sprint<br />
** Établissement d'une liste de fonctionnalités, avec une estimation de l'importance et du temps de réalisation de chaque tâche<br />
** Sélection des fonctionnalités à réaliser au cours du Sprint, remplissage du Scrumboard<br />
* Mise au point sur l'arborescence du git / architecture du projet<br />
* Installation d'une version GPU pour Keras et Tensor-Flow sur les machines équipées d'un bon GPU<br />
<br />
====Mardi====<br />
<br />
* Réunion avec Didier Donsez : <br />
** Technologies : storm, spark, flint (temps réel) pour Twitter<br />
** Distribution : préparer un déploiement sur GRID5000, contacter Olivier Richard et préparer un container Docker<br />
** Utiliser Github pour héberger le site web<br />
<br />
* T1. -> Vues "recherche de films", "annotation de film" et "consultation des films annotés" (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** prétraitement des mots via Glove (Elsa, Edwin, Julian)<br />
** récupération des données (Julian)<br />
** mise en place de l'embedding (Edwin)<br />
** mise en place d'une librairie pour le pré-traitement des données envoyées aux classifieur (Julian)<br />
** Import des modules (Julian)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Chargement des images de films côté client (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" + Ajout "genre" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** extraction des données JSON via l'API (Elsa)<br />
** prétraitement des genres (Julian)<br />
** prétraitement général (mise en forme de la matrice de données) (Edwin)<br />
** revue de code (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur sous Keras - Elephas ? (Coralie)<br />
<br />
====Jeudi====<br />
<br />
* Cours de MPI - travail sur la communication au sein d'un groupe<br />
* T1. -> Pagination et chargement d'images (Quentin)<br />
* T3. -> Création d'une première version du classifieur (Elsa, Edwin)<br />
* T4. -> Validation croisée pour pouvoir tester le classifieur correctement (Edwin & Elsa)<br />
* T5. -> Installation version GPU sur PC (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur Keras - Elephas (Coralie)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Déploiement sur github.io (Quentin)<br />
* T3. -> Insertion de Doc2Vec dans le classifieur (Julian)<br />
* T3. -> Revue du classifieur pour obtenir une meilleure précision (Elsa & Edwin)<br />
* T4. -> Mise en place d'un système de test du classifieur automatisé avec k validations croisées pour les films enregistrés dans un fichier JSON (Elsa)<br />
* T4. -> Annotation de films pour constituer la base d'apprentissage/test (Tous)<br />
* T5. -> Auto-formation sur Docker (Coralie, Edwin)<br />
<br />
=== Semaine 3 : 06/02 - 12/02 ===<br />
<br />
[[File:Sprint1-Semaine3.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Cours de MPI - gestion de projet<br />
* T1. -> Ajout d'un boite de dialogue permettant de visualiser les infos d'un film (Quentin)<br />
* T2. -> Fix de bugs dans preprocessing (Julian)<br />
* T4. -> Recherche sur la mise en place de tests avec Python (Elsa)<br />
* T5. -> Mise en place de l'image Docker avec Python, Keras et Tensorflow en partant d'un Ubuntu 14 (Edwin)<br />
* T5. -> Mise en place de l'image Docker avec Spark en partant d'un Ubuntu 14 (Coralie)<br />
<br />
====Mardi====<br />
<br />
* Rendez-vous avec Mr. Amini<br />
* T1. -> Amélioration de la boîte de dialogue pour les infos (Quentin)<br />
* T2. -> Preprocessing des acteurs et des realisateurs et ajout des fonction de test associées (Julian)<br />
* T2. -> Test le modèle D2V sur un analyseur de sentiment de tweets, beaucoup plus objectif que les gouts utilisateurs vis à vis des films (Coralie).<br />
* T2. -> Mise en place de modules de test unitaires dans MovieProject/tests/unit et suppression de fichiers inutiles dans MovieProject/tests (Elsa)<br />
* T4. -> Ajout de nouveaux fichiers de tests (json) et évaluation du classifieur de façon générique sur les fichiers json dans MovieProject/resources/evaluation (Elsa)<br />
* T4. -> Evaluation du classifieur avec la méthode Doc2Vec (Elsa)<br />
* T5. -> Finalisation de l'image Docker avec Python, Keras et Tensorflow (Edwin)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Début de la mise en place des différents modèles d'apprentissage en vue de leur comparaison : <br />
** Réseau neuronal avec Keras (Elsa)<br />
** Perceptron (Coralie)<br />
** Modification du prétraitement afin de pouvoir récupérer les matrices de chacune des variables caractérisant un film (Julian)<br />
* T5. -> Ajout de Spark à l'image Docker (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* T1. -> Poursuite de la création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Poursuite des tests de performance :<br />
** Test de l'influence de chaque variable des films sur le modèle du perceptron, afin de ne sélectionner que les variables pertinentes (Coralie)<br />
** Test du réseau neuronal (Elsa)<br />
** Mise en place d'un SVM pour concurrencer les performances des deux autres modèles (Julian)<br />
* T5. -> Test de l'image Docker (Edwin)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Visualisation des statistiques + explications sur la page d'accueil (Quentin)<br />
* T4. -> Finalisation perceptron + intégration dans evaluation (Coralie)<br />
* T4. -> Finalisation SVM + intégration dans evaluation (Julian)<br />
* T4. -> Mise en place du module evaluation et intégration des modifications de classifieur & preprocessing (Elsa)<br />
* T5. -> Documentation sur Spark (Edwin & Coralie)<br />
<br />
===État du scrumboard en fin du Sprint1===<br />
<br />
[[File:Sprint1-end-Scrumboard.png|1080px|middle]]<br />
<br />
== Sprint 2 ==<br />
<br />
===Tâches du Sprint1===<br />
<br />
*T1.2. Amélioration du front-end (mise en cache, etc.)<br />
*T2.2. Ajout de descripteurs (durée, budget, année de production, compagnie de production, appartenance à une sage) en vue d'améliorer notre modèle d'apprentissage.<br />
*T3.2 Amélioration du réseau neuronal (comparaison avec Perceptron simple, SVM, RN Convolutif)<br />
*T4. Mise en place de la suggestion de films (vue côté front-end et logique côté back-end)<br />
*T5. Distribution de l'apprentissage sur plusieurs machines (Docker - Spark - Mesos - Elephas)<br />
<br />
=== Semaine 4 : 13/02 - 19/02 ===<br />
<br />
====Lundi====<br />
<br />
* Réunion de fin de sprint1 et de début de sprint0 : discussion autour des avancées, difficultés, retards & établissement fonctionnalités à implémenter au cours du sprint2<br />
*T1.2 -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T2.2. -> Revue de la structure du code (Julian)<br />
*T3.2. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T4. -> Amélioration de la prédiction de film (Elsa)<br />
*T5. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
=== Semaine 5 : 20/02 - 26/02 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
== Sprint 3 ==<br />
=== Semaine 6 : 27/02 - 05/03 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
=== Semaine 7 : 06/03 - 12/03 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====</div>Elsa.Navarrohttps://air.imag.fr/index.php?title=Fiche_de_suivi_-_Recommandation_intelligente_de_films&diff=33682Fiche de suivi - Recommandation intelligente de films2017-02-13T14:29:14Z<p>Elsa.Navarro: /* Lundi */</p>
<hr />
<div>Voici la Fiche de suivi du projet de fin d'études DeepMovies 2016-2017<br />
<br />
[[Suggestion_intelligente_de_films_basée_sur_TensorFlow| '''Page d'accueil du projet''']]<br />
<br />
= Équipe =<br />
* Rachex Coralie (Chef de projet - Scrum Master)<br />
* Niogret Edwin (Responsable innovation)<br />
* Hattinguais Julian (Responsable qualité)<br />
* Navarro Elsa (Responsable communication, Médiatrice)<br />
* Dunand Quentin (Responsable des deadlines,Responsable du front-end)<br />
<br />
= Avancée du projet =<br />
== Sprint 0 ==<br />
===Sprint dédié aux travaux préparatoires du projet===<br />
* Debriefing autour du projet<br />
* Renseignements sur les technologies et principaux défis techniques<br />
* Maquette de tests sur la faisabilité du projet (recherche de solutions pour les principaux problèmes techniques afin de guider nos choix technologiques et choix de fonctionnalités) <br />
* Choix technologiques<br />
* Préparation des environnements<br />
* Établissement de la liste des exigences fonctionnelles et non fonctionnelles<br />
<br />
<br />
[[File:Sprint0-Semaine1.jpg|1400px|middle]]<br />
<br />
=== Semaine 1 : 23/01 - 29/01 ===<br />
* Mise en place du wiki (Edwin)<br />
* Recherche sur les technologies et les problèmes techniques (Tous)<br />
* Prise RDV avec Massih-Reza Amini pour renseignements (Coralie)<br />
* Mise en place d'un agenda pour le suivi du projet (Coralie)<br />
* Comment lier l'API au front-end ? AngularJS ou Polymer ? ... (Quentin)<br />
<br />
* Mise en place de l'architecture (Tous) avant de faire un prototype comme prévu.<br />
* Installation, compréhension et manipulation de Keras (Tous)<br />
* Recherche mise en place API-REST Python pour le back-end (Julian)<br />
* Mise en place du front-end - première requêtes - choix Angular pour communiquer avec une API-REST (Quentin)<br />
* Traitement de données simple en se basant juste sur le vote des utilisateurs de TMDb sur les films (Edwin, Coralie, Elsa)<br />
* Mise en place d'un prototype capable de récolter grâce à l'API de TMDB les informations de films ciblés. Puis construction d'un modèle de Deep Learning capable de prédire si une personne va aimer un film ou non en fonction de sa note. (Edwin, Coralie)<br />
* Recherche de la transformation de texte en valeurs numériques (String to Float) et plus généralement du prétraitement des données (Elsa, Coralie, Quentin) : découvertes de Word2Vec et de [http://nlp.stanford.edu/projects/glove/ GloVe].<br />
<br />
<br />
* Rendez-vous avec Massih-Reza Amini pour éclaircir le sujet, notamment au sujet du pré-traitement du texte. (Tous)<br />
* Premiers scripts Python pour le prétraitement des données : import depuis un script JSON (Julian) et transformation sous forme de vecteur moyen pour un film donné (Elsa), recherche d'une méthode plus approfondie pour traiter le Résumé (Coralie).<br />
* Réflexion sur les choix des différents layers de traitement des données et sur l'étape d'embedding des données (premier traitement) (Edwin).<br />
* Mise en place d'un système de notation fonctionnel qui permet d'enregistrer les données à partir du front (Quentin).<br />
<br />
== Sprint 1 ==<br />
Le scrumboard utilisé pour le projet est visible dans l'onglet Projet de l'organisation DeepLearningMovies que nous avons créé sur Github. Chaque tâche est réalisée par un ou plusieurs membre(s) de l'équipe et testée par un autre membre de l'équipe.<br />
<br />
===Tâches du Sprint1===<br />
* T1. Établissement des vues principales côté client (recherche et annotation de films)<br />
* T2. Mise en place du processus de pré-traitement des données (titre, mots clés, résumé, note, artiste, producteur)<br />
* T3. Mise en place du réseau neuronal (réseau neuronal simple)<br />
* T4. Mise en place de la structure de test du réseau neuronal (former les corpus de données, cross validation, test de précision)<br />
* T5. Mise en place de l'environnement système (Docker)<br />
<br />
=== Semaine 2 : 30/01 - 05/02 ===<br />
<br />
[[File:Sprint1-Semaine2.jpg|1400px|middle]]<br />
<br />
====Lundi====<br />
<br />
* Préparation du premier sprint :<br />
** Mise au point sur le travail réalisé la semaine passée et sur le travail à réaliser durant le sprint<br />
** Établissement d'une liste de fonctionnalités, avec une estimation de l'importance et du temps de réalisation de chaque tâche<br />
** Sélection des fonctionnalités à réaliser au cours du Sprint, remplissage du Scrumboard<br />
* Mise au point sur l'arborescence du git / architecture du projet<br />
* Installation d'une version GPU pour Keras et Tensor-Flow sur les machines équipées d'un bon GPU<br />
<br />
====Mardi====<br />
<br />
* Réunion avec Didier Donsez : <br />
** Technologies : storm, spark, flint (temps réel) pour Twitter<br />
** Distribution : préparer un déploiement sur GRID5000, contacter Olivier Richard et préparer un container Docker<br />
** Utiliser Github pour héberger le site web<br />
<br />
* T1. -> Vues "recherche de films", "annotation de film" et "consultation des films annotés" (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** prétraitement des mots via Glove (Elsa, Edwin, Julian)<br />
** récupération des données (Julian)<br />
** mise en place de l'embedding (Edwin)<br />
** mise en place d'une librairie pour le pré-traitement des données envoyées aux classifieur (Julian)<br />
** Import des modules (Julian)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Chargement des images de films côté client (Quentin)<br />
* T2. -> Prétraitement des données "titre", "mots clés", "résumé", "notes" + Ajout "genre" (Edwin, Elsa, Coralie, Julian)<br />
** prétraitement des textes via Doc2Vec (Coralie)<br />
** extraction des données JSON via l'API (Elsa)<br />
** prétraitement des genres (Julian)<br />
** prétraitement général (mise en forme de la matrice de données) (Edwin)<br />
** revue de code (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur sous Keras - Elephas ? (Coralie)<br />
<br />
====Jeudi====<br />
<br />
* Cours de MPI - travail sur la communication au sein d'un groupe<br />
* T1. -> Pagination et chargement d'images (Quentin)<br />
* T3. -> Création d'une première version du classifieur (Elsa, Edwin)<br />
* T4. -> Validation croisée pour pouvoir tester le classifieur correctement (Edwin & Elsa)<br />
* T5. -> Installation version GPU sur PC (Julian)<br />
* T5. -> Recherche d'un moyen de distribuer le classifieur Keras - Elephas (Coralie)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Déploiement sur github.io (Quentin)<br />
* T3. -> Insertion de Doc2Vec dans le classifieur (Julian)<br />
* T3. -> Revue du classifieur pour obtenir une meilleure précision (Elsa & Edwin)<br />
* T4. -> Mise en place d'un système de test du classifieur automatisé avec k validations croisées pour les films enregistrés dans un fichier JSON (Elsa)<br />
* T4. -> Annotation de films pour constituer la base d'apprentissage/test (Tous)<br />
* T5. -> Auto-formation sur Docker (Coralie, Edwin)<br />
<br />
=== Semaine 3 : 06/02 - 12/02 ===<br />
<br />
====Lundi====<br />
<br />
* Cours de MPI - gestion de projet<br />
* T1. -> Ajout d'un boite de dialogue permettant de visualiser les infos d'un film (Quentin)<br />
* T2. -> Fix de bugs dans preprocessing (Julian)<br />
* T4. -> Recherche sur la mise en place de tests avec Python (Elsa)<br />
* T5. -> Mise en place de l'image Docker avec Python, Keras et Tensorflow en partant d'un Ubuntu 14 (Edwin)<br />
* T5. -> Mise en place de l'image Docker avec Spark en partant d'un Ubuntu 14 (Coralie)<br />
<br />
====Mardi====<br />
<br />
* Rendez-vous avec Mr. Amini<br />
* T1. -> Amélioration de la boîte de dialogue pour les infos (Quentin)<br />
* T2. -> Preprocessing des acteurs et des realisateurs et ajout des fonction de test associées (Julian)<br />
* T2. -> Test le modèle D2V sur un analyseur de sentiment de tweets, beaucoup plus objectif que les gouts utilisateurs vis à vis des films (Coralie).<br />
* T2. -> Mise en place de modules de test unitaires dans MovieProject/tests/unit et suppression de fichiers inutiles dans MovieProject/tests (Elsa)<br />
* T4. -> Ajout de nouveaux fichiers de tests (json) et évaluation du classifieur de façon générique sur les fichiers json dans MovieProject/resources/evaluation (Elsa)<br />
* T4. -> Evaluation du classifieur avec la méthode Doc2Vec (Elsa)<br />
* T5. -> Finalisation de l'image Docker avec Python, Keras et Tensorflow (Edwin)<br />
<br />
====Mercredi====<br />
<br />
* T1. -> Création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Début de la mise en place des différents modèles d'apprentissage en vue de leur comparaison : <br />
** Réseau neuronal avec Keras (Elsa)<br />
** Perceptron (Coralie)<br />
** Modification du prétraitement afin de pouvoir récupérer les matrices de chacune des variables caractérisant un film (Julian)<br />
* T5. -> Ajout de Spark à l'image Docker (Edwin)<br />
<br />
====Jeudi====<br />
<br />
* T1. -> Poursuite de la création de statistiques sur les goûts utilisateurs côté client (Quentin)<br />
* T4. -> Poursuite des tests de performance :<br />
** Test de l'influence de chaque variable des films sur le modèle du perceptron, afin de ne sélectionner que les variables pertinentes (Coralie)<br />
** Test du réseau neuronal (Elsa)<br />
** Mise en place d'un SVM pour concurrencer les performances des deux autres modèles (Julian)<br />
* T5. -> Test de l'image Docker (Edwin)<br />
<br />
====Vendredi====<br />
<br />
* T1. -> Visualisation des statistiques + explications sur la page d'accueil (Quentin)<br />
* T4. -> Finalisation perceptron + intégration dans evaluation (Coralie)<br />
* T4. -> Finalisation SVM + intégration dans evaluation (Julian)<br />
* T4. -> Mise en place du module evaluation et intégration des modifications de classifieur & preprocessing (Elsa)<br />
* T5. -> Documentation sur Spark (Edwin & Coralie)<br />
<br />
<br />
===État du scrumboard en fin du Sprint1===<br />
<br />
[[File:Sprint1-end-Scrumboard.png|1080px|middle]]<br />
<br />
== Sprint 2 ==<br />
<br />
===Tâches du Sprint1===<br />
<br />
*T1. Mise en place de la suggestion de films (vue côté front-end et logique côté back-end)<br />
*T2. Amélioration du front-end (mise en cache, etc.)<br />
*T3. Distribution de l'apprentissage sur plusieurs machines (Docker - Spark - Mesos - Elephas)<br />
*T4. Amélioration du réseau neuronal (comparaison avec Perceptron simple, SVM, RN Convolutif)<br />
*T5. Ajout de descripteurs (durée, budget, année de production, compagnie de production, appartenance à une sage) en vue d'améliorer notre modèle d'apprentissage.<br />
<br />
=== Semaine 4 : 13/02 - 19/02 ===<br />
====Lundi====<br />
* Revue du Sprint précédent + établissement des tâches à effectuer au cours de celui-ci<br />
*T1. -> Amélioration de la prédiction de film (Elsa)<br />
*T2. -> Mise en place d'un cache local côté front pour éviter de faire trop de requêtes à l'API TMDB (Quentin)<br />
*T3. -> Mise en place d'un cluster Spark via Mesos (Edwin)<br />
*T4. -> Mise en place d'un réseau neuronal de convolution (Coralie)<br />
*T5. -> Revue de la structure du pre-processing (Julian)<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
=== Semaine 5 : 20/02 - 26/02 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
== Sprint 3 ==<br />
=== Semaine 6 : 27/02 - 05/03 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====<br />
<br />
=== Semaine 7 : 06/03 - 12/03 ===<br />
====Lundi====<br />
<br />
====Mardi====<br />
<br />
====Mercredi====<br />
<br />
====Jeudi====<br />
<br />
====Vendredi====</div>Elsa.Navarro