La programmation dans Node-RED

La programmation dans Node-RED

Les outils Node-RED

Pour pouvoir réaliser notre projet, nous avons décidé d’utiliser l’environnement de développement graphique open source Node-RED d’IBM qui offre une interface simple pour connecter les APIs d’IBM et en particulier la récupération des tweets, leur stockage et analyse. Qu’est-ce que Node-RED ? C’est l’oeuvre de deux chercheurs, Nick O’Leary et Dave Conway-Jones, qui, à la base, cherchaient un outil pour eux et qui l’ont ensuite offert en open source. C’est une interface graphique pour créer des « flows » formés de composants de traitement, les « nodes » qu’on interconnecte visuellement. On peut également programmer des fonctions en Javascript dans un node function qui possède son propre éditeur. Node-RED se base sur Node.js qui est le côté serveur de Javascript. Grâce à Node.js nous pouvons faire des fonctions en Javascript directement sur notre interface Node-RED. La puissance de Node-RED vient de la combinaison de deux facteurs principaux :

– C’est une méthodologie de programmation visuelle qui se base sur des nodes et des flows (nous verrons plus en détails ces deux notions dans la suite de ce document).

– La variété et la puissance des nodes proposés dans la palette pour la création de flows et qui sont en lien avec le monde réel, comme par exemple le node de Twitter. Pourquoi utiliser Node-RED ? Node-RED permet de réunir et de connecter les composants nécessaires à notre application sous forme de « nodes », en particulier les node-modules des APIs d’IBM Watson. La facilité d’utilisation de cet environnement nous a permis de tester facilement les différents APIs afin de déterminer celui qui correspond le mieux à nos attentes. La programmation dans Node-RED Les nodes Node-RED considère un node comme une boite noire, c’est un composant du flow qui a un but défini. Il reçoit des données, exécute une action précise et transmet les données traitées au node suivant dans le flow. Lorsqu’on installe Node-RED on dispose d’une palette de base relativement complète avec les principaux nodes, mais il est possible d’ajouter des nodes-modules supplémentaires développés par la communauté Node-RED.

Propriétés de base des messages Tous les nodes ont une propriété commune : les messages. Grâce aux messages transmis d’un node à un autre, nous pouvons construire un flow complet. Le node de type « inject » permet d’introduire de l’information dans le système. Pour faire passer un message d’un node à un autre, il faut les relier graphiquement pour créer un flow. La caractéristique principale d’un node est de consommer un message en input et de produire un message en output. Ces messages transmettent l’information dans le flow d’un node à un autre et ce sont ces messages qui vont être traités et analysés. Ces messages sont des objets en Javascript qui ont trois propriétés de base :

– Un message topic C’est-à-dire le « titre » du message. Dans le cas de Twitter, le message topic sera « tweet/ » et le pseudo de l’internaute qui a tweeté.

– Un payload C’est le coeur du message. C’est la partie que l’on analyse dans notre cas.

– Une identification interne C’est une identification qui est mise par Node-RED. : Dans la partie « tweet », on retrouve en plus des informations sur le user, les hashtags, une indication si c’est un retweet, la date de création du tweet et encore d’autres informations. Les différents types de nodes Il existe trois principaux différents types de nodes :

1. Les Input Nodes Ces nodes injectent de la data dans notre flow.

Conclusion des résultats obtenus

Les scores sont dans la plupart des cas attribués correctement. Le node « Sentiment Analysis » peut être considéré comme fiable et permet une vraie notation du sentiment globale du tweet. Le problème est que trop de bruit passe depuis Twitter et les scores attribués sont parfois positifs ou négatifs même si une grande partie reste neutre. Il y a un effet en chaîne lors d’un retweet publicitaire qui a un score positif ou négatif qui peut influencer nos résultats. Le node Twitter ne possède pas un filtre adéquat pour garder uniquement les tweets « intéressants ». Ce node devrait avoir un filtre plus fin. Une amélioration possible serait de pouvoir écrire les mots-clefs des tweets que nous ne voulons pas récupérer. Nous avons pu constater que les tweets publicitaires contenaient souvent l’expression « sign up », en éliminant seulement les tweets contenants ces mots, nous pourrions déjà obtenir des résultats plus intéressants pour notre analyse. Notre source de données n’est finalement pas assez fiable pour pouvoir faire une analyse entre nos résultats et le cours réel du Bitcoin.

Durant ce projet, nous avons appris à utiliser de nouveaux outils et des nodes des APIs cognitifs d’IBM Watson pour créer une application qui nous permettrait de répondre à notre besoin qui est de savoir si les spéculations émises sur le cours du Bitcoin peuvent avoir une corrélation avec le cours réel de cette cryptomonnaie. En utilisant les nodes-modules disponibles, nous avons pu récupérer les tweets selon les paramètres que nous avions définis selon les mots-clefs pertinents à notre besoin, les stocker dans une base de données NoSQL grâce au node-module de MongoDB et les analyser grâce à celui d’IBM Watson, « Sentiment Analysis ». Malgré les résultats non concluants de ce projet, Node-RED s’avère être intéressant pour la création d’application. Son interface visuelle facilite les traitements et nous a permis de construire l’architecture nécessaire à ce travail et peut devenir une révolution dans le domaine de création d’application. Nous pouvons en conclure que notre hypothèse de spéculation concernant le cours du Bitcoin grâce aux avis émis sur Twitter pourrait s’avérer vraie si nous pouvions récupérer uniquement les tweets « intéressants » à notre besoin.

Le rapport de stage ou le pfe est un document d’analyse, de synthèse et d’évaluation de votre apprentissage, c’est pour cela rapport gratuit propose le téléchargement des modèles gratuits de projet de fin d’étude, rapport de stage, mémoire, pfe, thèse, pour connaître la méthodologie à avoir et savoir comment construire les parties d’un projet de fin d’étude.

Table des matières

Déclaration
Remerciements
Résumé
Introduction
Démarrage du projet et recherches
Différentes étapes de recherches
Récupération des tweets – Recherches des différentes APIs de Twitter
Analyse des messages : APIs d’IBM Watson
Les outils
Node-RED
Qu’est-ce que Node-RED ?
Pourquoi utiliser Node-RED ?
La programmation dans Node-RED
Les nodes
Propriétés de base des messages
Les différents types de nodes
Node Function
Context et Global Context dans un node function
Les interactions entre les différents nodes pour former un flow
MongoDB
Qu’est-ce que MongoDB ?
Pourquoi utiliser une base de données NoSQL ?
Architecture
Mise en place du projet
Node Twitter
Node MongoDB
Node Sentiment Analysis
Node Switch
Node Counter
Node Function
Node Mongo
Node Debug
Résultat du projet
Analyse des scores
Conclusion des résultats obtenus
Conclusion
Sites internet
Vidéos
Images
Annexe 1 : Guide d’installation
Annexe 2 : Document de vision

Rapport PFE, mémoire et thèse PDFTélécharger le rapport complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *