Tendances des mots clés des télégrammes
Un outil d'analyse pour explorer l'émergence des discours de haine, de la désinformation et des récits d'intérêt sur la plateforme de chat Telegram. Veuillez utiliser cet outil avec prudence car il ne dispose ni de modération ni de filtrage de contenu. Vous êtes responsable du contenu qui peut être exporté.
En bref, cet outil vous permet de rechercher toutes les chaînes que vous suivez avec une liste de mots-clés/expressions et renvoie tous les résultats correspondants dans différents formats avec des visualisations graphiques. Il télécharge également éventuellement les médias et peut donc être utilisé comme moteur de recherche multimédia (actuellement quelques bugs avec cette fonctionnalité - ne pas utiliser comme outil de recherche multimédia exhaustif).
Capture d'écran de l'outil en action, explorant le discours de haine lors de l'invasion russe à grande échelle de l'Ukraine
Principales fonctionnalités
- Cet outil est conçu pour fonctionner avec des sockpuppets qui suivent de nombreuses chaînes couvrant un sujet particulier.
- Vous pouvez modifier les détails de votre API pour utiliser différents comptes en modifiant le fichier api_values.txt .
- L'outil est conçu pour fonctionner comme Google Trends, affichant le volume quotidien de termes clés et une carte au fil du temps.
- Le filtrage par date vous permet de restreindre une recherche à une période plus courte. S'il est laissé vide, il s'adapte automatiquement à la plage maximale des données.
- L'outil utilise la recherche Telegram, ce qui signifie qu'il est particulièrement adapté aux recherches en russe et gère généralement bien les terminaisons de mots.
- Génère des graphiques individuels pour chaque terme clé.
- Génère un graphique agrégé montrant tous les termes clés dans une recherche sur le même graphique à des fins de comparaison.
- Compile un rapport PDF qui montre les graphiques et imprime le code complet pour l'audit des données et la validation des preuves.
- Produit un résumé du fichier TXT comprenant toutes les statistiques principales, par exemple la date d'exécution, les chaînes recherchées et le volume relatif par chaîne.
- Téléchargement facultatif des médias pour les résultats (cela prolonge massivement (comme vraiment massivement) le temps nécessaire à l'exécution de l'outil)
- Le média téléchargé porte le nom de fichier channelid_postid, il est donc facile de trouver l'original.
Ce script recherche les messages contenant des termes de recherche spécifiés dans les chaînes Telegram dont l'utilisateur est membre. Il exporte les résultats de la recherche aux formats HTML et CSV, génère un rapport et trace le nombre de messages par jour.
Il est conçu pour surveiller les tendances des termes de recherche de la même manière que Google Trends. Cela peut être très utile pour identifier l’émergence de discours de haine ou de discussions/récits suite à certains événements.
Cette version actuelle n'apporte aucun ajustement significatif aux données, par exemple, le graphique n'affiche pas l'incidence des termes ajustés à l'incidence de tous les messages. Cela signifie qu’une analyse plus approfondie doit être menée pour garantir qu’une forte hausse des termes n’est pas confondue avec une forte hausse de l’activité générale. Pour cette raison, le résultat du graphique doit être traité comme une indication de la nécessité de recherches et d’analyses statistiques plus approfondies.
Exemple de résultat explorant le discours de haine lors de l’invasion russe à grande échelle de l’Ukraine
Cette image est un exemple de résultat montrant comment les chaînes soumises à l'enquête ont constaté une augmentation de l'utilisation de termes spécifiques.
Exemple de rapport généré
Cette image est un exemple de résultat du rapport, un document PDF qui décrit le code et imprime le script à la fin. Cela signifie que quels que soient les changements ou la version du script utilisée, le processus exact peut être scruté.
Capture d'écran de certaines informations générées dans le rapport de statistiques txt
Cet outil a été testé sur des termes de recherche en anglais et en russe.
AVERTISSEMENT : cet outil utilise votre liste de groupes suivis comme liste dans laquelle il recherche. Cela peut inclure des discussions/groupes personnels. Dans un souci d'OPSEC, il est recommandé d'utiliser un compte graveur et de suivre uniquement les discussions spécifiques à l'enquête.
Installation
Clonez le référentiel tg-keyword-trends en exécutant la commande suivante dans votre terminal ou votre invite de commande :
git clone https://github.com/thomasjjj/tg-keyword-trends.git
Accédez au répertoire tg-keyword-trends :
cd tg-keyword-trends
Installez les dépendances Python requises à l'aide de pip :
pip install -r requirements.txt
Caractéristiques
- Le graphique ajuste l'échelle aux publications les plus anciennes et les plus récentes.
- CSV généré pour un traitement ultérieur.
- Fichier HTML généré pour l'ouverture des liens.
- Génère un rapport documentant les détails clés du scraping (date, canaux consultés, etc.) pour la vérifiabilité des résultats.
- Téléchargement de médias
Usage:
- Ajoutez les termes de recherche, un par ligne, dans un fichier .txt. Vous serez bientôt invité à saisir l’emplacement du fichier.
- Assurez-vous d'avoir les détails de votre API Telegram prêts [https://my.telegram.org/auth]
- Le script recherchera dans toutes les chaînes dont l'utilisateur est membre.
- Les résultats de la recherche seront exportés sous forme de fichiers HTML et CSV dans un dossier de sortie horodaté.
- Le script générera un rapport contenant les résultats de la recherche pour chaque chaîne.
- Le script tracera le nombre de messages par jour pour chaque terme de recherche dans un graphique et l'enregistrera sous forme d'image.
Fonctions :
- retrieve_api_details : lit les détails de l'API à partir de 'api_details.txt'.
- check_search_terms_file : lisez les termes de recherche à partir de « search_terms.txt » ou invitez l'utilisateur à saisir des termes de recherche.
- create_output_directory : Créez un répertoire horodaté pour stocker les fichiers de sortie.
- print_colored : Imprime le texte dans la couleur spécifiée à l'aide du module colorama.
- render_url : génère du code HTML pour un lien hypertexte à l'aide d'une URL et du texte du message.
- generate_report : Génère un rapport contenant les résultats de recherche pour chaque canal.
- plot_keyword_ Frequency : tracez le nombre de messages par jour pour chaque terme de recherche dans un graphique.
Conseils:
- Grâce à la fonction de filtrage par date, cet outil fonctionne également bien comme moteur de recherche Telegram qui permet des résultats filtrés par date. Exécutez simplement la recherche dans la fenêtre de date nécessaire et ouvrez le fichier HTML de sortie pour une liste des messages qui correspondent et leurs liens.
- L'outil gère automatiquement les fuseaux horaires et s'y adapte. Soyez particulièrement prudent lorsque vous modifiez une section du code relative aux formats d'heure et de date, car cela était difficile à déboguer.
- Il est recommandé de créer un compte Telegram dédié pour chaque sujet. Cela vous permettra de cibler uniquement les chaînes pertinentes et de supprimer le bruit.
- Vous n'avez pas besoin de rechercher séparément les noms au singulier et au pluriel, car cela est géré par la recherche de Telegram (de manière générale, pour l'anglais et le russe).
*Cette image montre l'utilisation des différents noms de lieux pour « Bakmut », y compris les anciens noms soviétiques. Une utilisation de cet outil pourrait être de valider les termes de recherche utilisés dans la recherche OSINT. Comme on peut le voir ici, on peut limiter leur potentiel de collecte s'ils utilisent uniquement le nom officiel actuel de la ville plutôt que des noms passés et controversés. *
Dépendances :
- pandas~=2.0.0
- matplotlib~=3.7.1
- Téléthon~=1.28.2
- colorama~=0.4.6
- Oreiller~=9.5.0
- reportlab~=3.6.12
- numpy~=1.24.2
- pytz~=2023.3
- tqdm~=4.65.0
Version Python : Python 3.11 ou supérieure
FAIRE