Skip to content

plorgue/assistant-messenger

Repository files navigation

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/

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published