Analyse de tweets d’Elon Musk en Python – IA facile

Ça ne vous aura pas échappé, chaque tweets d’Elon Musk a le pouvoir de chambouler les prix du marché. Alors comment coder une IA capable de les analyser rapidement ?

Les fans d’Elon Musk l’ont compris, quand il tweet à propos d’une crypto-monnaie, les cours s’affolent !

De l’autre côté du terrain, on a des IA de NLP (traitement de texte) qui sont de plus en plus performantes. Certaine allant même jusqu’à pouvoir engager des discussions avec vous.

Les plus crypto-compatibles des Data-Scientists auront compris qu’il y a un coup à jouer en fusionnant l’IA à l’analyse de tweets.

Ça tombe bien ! C’est le tutoriel qu’on vous propose dans cet article…

Première étape : Récupérer les tweets

🐦 Le problème Twitter

En Python il existe des librairies de Web Scraping.

Ces librairies permettent de récupérer les textes de pages internet.

Idéal pour l’algorithme que nous voulons créer !

Le problème, c’est que Twitter ne laisse pas n’importe qui regarder le contenu de ses pages internet.

En fait, pour extraire des tweets, il nous faut avoir accès à l’API twitter. C’est-à-dire avoir des identifiants unique et utilisable uniquement par une personne.

Mais nous, on veut un algorithme facilement utilisable et qui ne nous pose aucun problème à rallonge.

On va donc contourner ce problème d’API…

🥷 Contourner Twitter

Pour contourner l’API Twitter, on va devoir être plus malin que l’oiseau bleu.

Sur internet, il existe des sites qui reproduisent exactement le contenu de Twitter.

C’est ce qu’on appelle des Viewers et ça existe pour de nombreux autres réseaux sociaux.

Eh bien, la solution est simple ! Au lieu de faire du Web Scraping directement sur Twitter, on va le contourner en se focalisant sur un site Viewer qui lui, nous laissera accéder à son contenu.

Dans ce premier bout de code, on utilise la librairie request pour Web Scraper notre lien internet (https://twstalker.com/elonmusk) :

import requests

URL = "https://twstalker.com/elonmusk"
page = requests.get(URL)

Maintenant, nous avons la page de tweet d’Elon Musk au format HTML.

Pour parcourir plus facilement cette page HTML, on utilise BeautifulSoup.

C’est une librairie qui nous permet d’extraire facilement du contenu d’une page HTML :

from bs4 import BeautifulSoup

soup = BeautifulSoup(page.content, "html.parser")

Ci-dessus, on a transformé notre page HTML au format BeautifulSoup.

On va ensuite pouvoir chercher uniquement les balises (les éléments de cette page) qui nous intéressent :

job_elements = soup.find_all("p")

Ça y est, nous avons récupérer les tweets au format HTML.

Conseil pour mieux comprendre : N’hésiter pas à afficher les sorties de chaque briques de code. Cela vous aidera à mieux comprendre ce qu’il se passe dans notre algorithme.

Ici, on va extraire seulement le texte de chacun de ces tweets. En fait on passe du format HTML au format string Python :

tweets = []

for job_element in job_elements:
  element = job_element.text
  tweets.append(element)

#remove 'View a Private Twitter Instagram Account' from the list
tweets = tweets[1:]

On a maintenant la liste des 20 derniers tweets d’Elon Musk 🔥

Vous pouvez déjà faire votre propre analyse en les affichant :

print(tweets)

Cependant, les développeurs sont connus pour être flemmard. Déjà qu’on ne veut pas prendre la peine d’aller sur Twitter, on ne veut encore moins prendre le temps de décortiquer chacun des tweets d’Elon Musk.

Non, ce qu’on veut, c’est qu’une IA travaille pour nous !

Photo by Marten Bjork on Unsplash

Deuxième étape : Programmer une IA

🤖 Analyser les tweets

Pour analyser du texte avec Python, une librairie particulièrement efficace existe : NLTK.

Avec elle, on va pouvoir filtrer tous les mots sans intérêt d’un texte pour n’en garder que le meilleur !

On va commencer par importer la librairie et installer les dépendances dont nous avons besoin :


CRÉER TON APPLICATION IA !


Reçois tes 5 JOURS De Formation GRATUITE Pour Apprendre À Créer Ton APPLICATION d’INTELLIGENCE ARTIFICIELLE !


Tous les fondamentaux de la création d’Application IA : les approches, les outils et techniques, les librairies et framework, et bien d'autres !

Découvres étape par étape la création d’application de Deep Learning (tu apprendras même à trouver des idées d’appli !).

En bonus, tu recevras notre Guide Ultime du Deep Learning !


import nltk
nltk.download('averaged_perceptron_tagger')
nltk.download('punkt')

Ensuite, une étape obligatoire dans tout IA traitant du texte : transformer les phrases en tokens.

Actuellement, nous avons des listes de tweets. Pour qu’une IA les analyses, il nous faut des listes de mots.

On va donc transformer chaque tweets en liste de mots. C’est la tokenization :

from nltk.tokenize import word_tokenize

tweets_tokenized = []

for tweet in tweets:
  tokens = nltk.word_tokenize(tweet)
  for token in tokens:
    tweets_tokenized.append(token)

Ca y est, on a une liste qui contient uniquement des tokens.

Dans un projet classique de NLP, il aurait fallut nettoyer ce texte : enlever la ponctuation, les emojis, etc.

Mais après réflexion, on a considéré que ce nettoyage ne doit pas s’appliquer au tweet.

Effectivement, dans le langage internet, pour parler d’une compagnie ou d’une crypto-monnaie, il est fréquent d’utiliser des emojis.

Ainsi, sur Twitter, les smileys ne sont pas forcément indicateur d’une émotion, mais au contraire peuvent être vecteur d’informations importantes… 👻

Du coup, pas de nettoyage de texte pour cet algo !

On utilise ensuite le module tag de NLTK.

Il va nous permettre de comprendre la valeur de chaque mot : adjectif, preposition, nom, etc

from nltk.tag import pos_tag

result = nltk.pos_tag(tweets_tokenized)

🏆 Afficher les résultats

Si vous testez d’afficher la variable result tel quel, il se peut que vous n’ayez aucune idée de ce que vous avez sous les yeux.

Le résultat est une liste de tuples de tokens et de tags.

En fait NLTK, utilise des abréviations, des tags, pour décrire la valeur des mots.

Dans un précédent article nous avons décrit chacune de ces abréviations.

Ici, les tags qui nous intéressent sont les ‘NNP’ et les ‘NNPS’ : les noms propres singuliers et les noms propres pluriels.

On va donc filter le résultat en affichant seulement les ‘NNP’ et les ‘NNPS’ :

[word for (word, pos) in result if pos == 'NNP' or pos == 'NNPS']

Sortie : [‘Doge’, ‘Doge’, ‘Endurance’, ‘Hangar’, ‘Dragon’, ‘Wow’, ‘Tesla’, ‘Starbase’, ‘Tesla’, ‘Bee’, ‘Who’, ‘Truth’, ‘Hertz’, ‘Tesla’, ‘Autopilot’, ‘QA’, ‘Sorry’, ‘Tesla’, ‘FSD’, ‘QA’, ‘’’, ‘Internal’, ‘QA’, ‘Strange’, ‘Tesla’, ‘Wild’, ‘T1mes’]

Le résultat est tout de suite plus compréhensible !

Apparement Elon Musk parle beaucoup d’un certain ‘Doge’ en ce moment… va-t-il prendre de la valeur dans les prochaines minutes ?

Photo by Jeremy Bezanger on Unsplash

Aller plus loin

Pour cette analyse de tweet, on aurait pu utiliser une autre libraire : spacy.

Cette librairie procure une analyse de texte plus détaillée.

Avec elle, on peut notamment extraire plus que les noms propres mais directement les noms d’entreprise.

Spacy est donc une option intéressante mais dans l’analyse de crypto-monnaie ses fonctionnalités ne marcheraient pas.

Ainsi, le mot Bitcoin serait prélevé comme nom de Société, notoriété oblige. Mais une crypto-monnaie comme le Dogecoin n’aurait pas le même traitement et passerait à la trappe.

Notre conseil est d’utiliser l’approche qui vous convient le mieux !

Et surtout n’hésitez pas à améliorer le code que nous venons de voir ensemble.

Pour les curieux du NLP et du traitement de texte en général, nous avons écrit un tutoriel détaillé pour l’analyse de sentiment en Machine Learning. C’est juste ici ! 😉

sources :


CRÉER TON APPLICATION IA !


Reçois tes 5 JOURS De Formation GRATUITE Pour Apprendre À Créer Ton APPLICATION d’INTELLIGENCE ARTIFICIELLE !


Tous les fondamentaux de la création d’Application IA : les approches, les outils et techniques, les librairies et framework, et bien d'autres !

Découvres étape par étape la création d’application de Deep Learning (tu apprendras même à trouver des idées d’appli !).

En bonus, tu recevras notre Guide Ultime du Deep Learning !


Tom Keldenich
Tom Keldenich

Data Engineer & passionné d'Intelligence Artificielle !

Fondateur du site Inside Machine Learning

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.