GithubHelp home page GithubHelp logo

assistant-messenger's Introduction

Assistant Messenger

Objectifs

1. Récupérer les messages d'une conversation Messenger

Un message correspond au contenu à proprement dit mais aussi aux métadonnées qui l'accompagne: l'auteur, la date et l'horraire de réception ainsi que les réations des autres membres de la conversation.

2 Traiter ces messages et afficher des graphiques sympa

Je mets en avant quelques messages remarquables: celui qui a le plus de réactions, celui qui a le plus de pouces et celui le plus long.

Aussi j'affiche l'évolution de différents critères au cours du temps. On peut visualiser:

  • la fréquence de réception messages,
  • la fréquence de réaction sous les messages dont la part de réactions classées comme "sérieuses"
  • le nombre de message envoyer par chaque personne

3 Analyse du contenu - sentiments

L'analyse du contenu se base sur de l'analyse de sentiments. D'un côté on associe à chaque messages un sentiment positif 1 ou négatif 0 et de l'autre on extrait de chaque message les entités citées (personnes, lieux, objets/concepts marquant). Ainsi on obtient une correspondance sentiment / entité. En comptant le nombre de sentiment positif / négatif associé à chaque entité puis en faisant la différence on peut classer les entités de la plus apprécié à la plus décrié.

Les résultats de cette partie ne sont pas affichés sur le site.

Techniques

La récupération des messages se fait au travers d'une api accessible par un serveur Express qui utilise Puppeteer pour extraire les messages du code HTML du site de Messenger.

L'affichage se fait grace à un site one-page en VueJS. Les graphiques sont dessinés avec la librairie Plotly.

L'analyse de sentiment est développé en Python avec la plateforme TensorFlow. Je me suis inspiré du travail de Theophile Blard pour fine tune un model camembert pré-entrainé. J'ai utilisé différent jeu de données: tweets FR, commentaire allocine L'extraction des entitées des messages et faites grossièrement avec spaCy puis retraité et améliroé à la main.

Captures du site au 16 mars

alt text

alt text

alt text

alt text

Les dossiers

\server contient l'api qui envoit les messages scrapés

\site contient le site VueJS qui traite et affiche ces messages

\sentiements contient les scripts permettant l'analyse de sentiements d'un jeu de messages provenant d'une conversation

Déploiement

Le site

Prérequis :

  • Avoir Node.js installé
  • Avoir un gestionnaire de paquet JS installé, j’utilise NPM
  • Avoir installé VueCLI: npm install -g @vue/cli

Procédure :

  • Cloner le dépôt GitHub
  • Exécuter la commande npm install successivement dans les deux répertoires server/ et site/
  • Pour lancer l’API exécuter : node .\server.js dans le répertoire server/
  • Pour lancer le serveur local permettant de visionner le site Vue exécuter npm run serve dans le répertoire site/
  • Dans un navigateur Edge, Chrome, ou Firefox (il est peu probable que ça fonctionne avec Internet Explorer) entrer l’url : http://localhost:8080

L'analyse de sentiment

Pour exécuter les Notebook sur sa machine :

  • Avoir un environnement Anaconda actif sur lequel est installé le package Jupyter
  • Utiliser un éditeur de texte compatible comme VS Code ou JupyterLab
  • Pour exécuter les notebooks sur GPU il faut installé CUDA et TensorFlow pour GPU. Attention il faut que les versions de Python, CUDA et TensorFlow soit compatible. La documentation TensorFlow explique la procédure d’installation

Pour exécuter les Notebook sur Google Colab :

  • Aller sur ce lien Google Drive
  • Ouvrir les Notebooks avec Google Colab
  • Pour les exécuter il faut modifier la variable chemin_dossier_contenant_projet avec le chemin dans votre Drive du dossier contenant le dossier sentiments/

assistant-messenger's People

Contributors

plorgue avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.