{"word_count": 1691, "character_count": 11654}
Le travail décrit dans cet article porte sur l'utilisation des URL en tant que marqueur de fils de publications dans Twitter. Ce travail fait suite à une investigation conduite en 2018 sur les images tweetées et présentées dans le cadre du colloque MARAMIJM Francony, P Mulhem, F Andreacola, L Goeuriot, G Quénot. (2018) : « Détection de détournements coordonnés de hashtags et messages-images pour l'analyse des fils d'actualités sur les réseaux sociaux. » Modèles et analyse des réseaux : approches mathématiques et informatiques. Oct 2018, Avignon, France. ⟨hal-01915150⟩Le contexte de travail est celui de la chaire- hydrogène initiée par la fondation UGA. Dans ce contexte, nous réalisons un enregistrement continu de Twitter sur la thématique de la transition énergétique et de l'hydrogène.Présentation généraleL'une des fonctions d'un Tweet consiste à signaler une publication sur le Web ou un autre média social au moyen d'une URL. Cette fonctionnalité repose sur le principe originel de Twitter d'assurer la diffusion de cours messages écrits. Une URL, n'étant rien d'autre qu'une chaîne de caractère, aucun mécanisme additionnel n'a été nécessaire pour répondre à ce besoin de communication qui s'est installé naturellement. Cependant, la longueur d'une URL pouvant être importante, l'utilisation d'un service de réduction d'URL s'est imposé pour ne pas trop entamer la réserve des 140 caractères historiques.Le principe d'un service de réduction d'URL s'est imposé dès le début des années 2000 afin de faciliter l'écriture des posts dans les forums. La conception proposée par Kevin Gilbertson  (TinyURL.com) repose sur la mise en oeuvre d'une fonction de hashage supportée par un service tiers, qui assure une traduction univoque d'une forme longue dans une forme courte et réciproquement. Afin d'optimiser la taille de l'URL, les noms de domaine choisis pour ces services sont eux-mêmes très courts:La liste (non exhaustive) des services utilisés dans le projet: ['t.co','lnkd.in','db.tt','qr.ae','adf.ly','goo.gl','bitly.com','cur.lv','ow.ly','ity.im','q.gs','is.gd','po.st','bc.vc','u.to','j.mp','cutt.us','u.bb','x.co','qr.net','1url.com','v.gd','tr.im','bit.ly','buff.ly','qoo.ly','znia.ly','weav.pw','snip.ly','hubs.ly','ift.tt','dld.bz','wu.to','cnet.co','dlvr.it','bit.do']Il est a noter que Twitter dispose de son propre service de réduction d'URL (t.co) mais que celui-ci n'est pas exclusif. Sur le principe, il est tout à fait possible (et attesté) qu'au cours de sa diffusion, une URL soit réduite plusieurs fois suivant différents services. Dans ce cas, la forme originelle se retrouve par rebonds successifs.Dans la représentation du Tweet délivrée par les API de Twitter, les URL du message sont regroupées avec d'autres entités remarquables. On trouve ainsi, à différents niveaux d'imbrication ( retweeted-status, extended_Tweet, quoted_status), des listes de structures de données d'URL.La distribution des URL diffusées dans ces différents niveaux d'imbrication, n'est pas évidente à comprendre. Visiblement plusieurs arrangements sont possibles (attesté). Par prudence, il est préférable de balayer systématiquement toutes ces structures en filtrant les éventuels doublons.Dans la structure de données de l'URL, L'attribut 'expanded_url' est susceptible de contenir la version expansée de 'url' si celle-ci est raccourcie. Mais cela n'est pas toujours le cas. Il s'avère donc nécessaire de procéder à l'expansion des URL condensées.URL = {'url': &#60;string&#62;, 'expanded_url': &#60;string&#62;, 'display_url':&#60;string&#62;, 'indices': [&#60;2elements&#62;]}Publication d'URLLa publication d'un Tweet que celui-ci soit une publication originale ou une republication, peut associer des URL de plusieurs manières.  Il peut s'agir d'une ou de plusieurs urls produites par l'auteur du message diffusé ou rediffusé. Cette ou ces urls réduites sont présentes dans le corps du message. d'autres urls de nature structurelle peuvent également figurer parmi les urls associées. Ce type d'url supporte les messages longs ou les rediffusions commentées. L'exemple suivant illustre ce cas de figure. URL associées à la rediffusion d'un Tweet longRésolution d'une URL réduiteLa résolution d'une url consiste à adresser suivant l'un des protocoles HTTP ou HTTPS le serveur associé au domaine afin de lui soumettre l'url. Cette soumission répond à deux problèmes que l'url brute porte : elle lève l'indirection et résout la réduction apportée par le service.Si la soumission aboutit, le serveur fournit la forme résolue dans sa réponse à moins que celle-ci ne soit encore réduite. On trouve en effet des réductions-redirections en cascade, suivant différentes plateformes de services.La méthode consiste à résoudre récursivement l’url jusqu’à ce qu’une convergence soit observée dans la forme résolue, c’est-à-dire lorsque les domaines de deux résolutions consécutives sont identiques. Pour se prémunir de résolutions non convergentes, on contrôle l’apparition de cycles durant les résolutions successives tout en contrôlant la durée maximale de résolution (trigger).Suivant un principe de courtoisie qui impose un temps de garde entre deux sollicitations d’un même serveur, la récursion est monitorée pour maintenir des pauses entre les résolutions successives.Pour ces raisons, l’estimation du temps de résolution globale selon le paramétrage retenu est d’environ 30mn par milliers d’url.Par la suite, la forme raccourcie et redirigée sera notée en minuscule (url) alors que la forme totalement résolue sera notée en majuscule (URL).publication et diffusion d'URLDans Twitter, on peut schématiser le mécanisme de diffusion des URL de la manière suivante :Diffusion des URL dans Twitter.A partir de la collection de Tweets (Collection hydrogène), les url (réduites) uniques sont ainsi extraites, résolues et agrégées dans une collection d'URL uniques (on atteint dans cet exemple environ 20% de réduction de volume).Tweets (non retweets)AuteursAuteurs PubURL TweetéesURL Résolues209 560102 85472 469205 082167 515Etat de collection HYDROGENE servant de testLe nombre d'URL référençant un message de Twitter est important (plus de 60% dans le cas de la collection H2). le mécanisme de co-référence dans ce cas peut être représenté de la manière suivante :Ce schéma traduit l'existence possible de références internes (ici URL1) à un Tweet. On peut alors être en présence d'une récursion appelant à une résolution (web) en plusieurs pas, voire de cycles de références croisées. Un mécanisme de parcours ad hoc permet de résoudre ce genre de référence et de réduire le nombre d'enregistrements d'url dans la base de données. Du fait de l'étude en cours, l'activité de publication est représentée à partir d'une collection de données de PUBLICATION associant URL et AUTEUR. Le schéma de données est de ce fait le suivant :structure de données spécifique à la publication d'URLMatrice de publicationA partir de la collection de publication on extrait la matrice binaire (1/0) de publication d'une URL par un AUTEUR. On part avec les comptes ayant publié plus d'une dizaine d'URL. Cette matrice creuse fait l'objet d'une heuristique d'érosion  qui consiste à éliminer les publications isolées (outliers).  L'objectif de l'érosion est de réduire le coût des traitements ultérieurs ainsi que la complexité de l'analyse des résultats. Ainsi, au fil de l'érosion,  une URL qui ne serait publiée plus qu'une fois est éliminée de même qu'un auteur qui n'aurait publié qu'une URL. Cette heuristique fonctionne en cycles de deux étapes associées respectivement au traitement des colonnes et des lignes de la matrice de publication (AUTEUR x URL). Pour chacune des dimensions de la matrice on calcule la somme des valeurs et on ne conserve pour l’étape suivante que les lignes ou colonnes dont la somme est supérieure à 1.  Le cycle s’arrête lorsque l’érosion n’a plus d’effet sur la matrice.illustration de l'effet d'érosion sur une matrice binaire.dans le cas de la collection test, l’extraction de la matrice originelle, c’est-à-dire telle qu’un auteur publie (Tweet) au moins deux URL, concerne 36 609 enregistrements (50.5 %). La matrice originelle est composée de 20 923 lignes (users) et de 10 809 colonnes (urls). La construction de la matrice réalise la première étape d’érosion (42.85 % Auteurs). Par la suite, en relançant l’érosion et après 5 cycles, on obtient une matrice de 7183 colonnes (URLs) et 6954 lignes, soit un ratio de 9.6 % des auteurs.Co-clusteringLe co-clustering (ou bi-clustering) est une technique de clustering mobilisant les deux dimensions de la matrice (auteur x url). On utilise par la suite le module python3 Coclust développé par le laboratoire LIPADE. L'algorithme utilisé est celui du coclustmod() : avec maximisation directe de la modularité du graphe.Le Co-clustering est mis en œuvre sur la matrice réduite. Pour déterminer la segmentation, on procède en incrémentant le nombre de classes dans une plage de valeurs. Celle-ci est définie par hypothèse comme l’ensemble des valeurs entières dans l’intervalle : [2, min( ǁAuteurǁ //2, ǁURLǁ //2, 50)].Dans ces conditions, le nombre de classes retenu est la plus grande valeur optimisant la mesure de modularité. Ici la valeur de modularité 0.61 est atteinte avec 45 classes. Cette valeur est donc retenue dans la recherche du coclustering. La clusterisation concerne au final 6947 auteurs et 7178 URLs.distribution des clustersA suivre...Matrices d'adjacenceA partir de la matrice érodée M et de sa transposée MT, on produit les deux matrices d'adjacence : MMT et MTM apportant respectivement une lecture des co-publications (auteurs) et des co-références (URL). Les graphes non orientés associés sont construits à partir des 1/2 matrices supérieures (symétrie) excluant la diagonale, c'est-à-dire les liens réflexifs sans intérêts. Ces graphes ont comme caractéristiques de comporter de très nombreux liens. Pour conduire une analyse, il convient de réduire cette densité de liens en mettant en place des filtrages. Parmi les hypothèses de filtrage, on définit le rebond comme une co-référence entre URLs de même domaine. Le rebond peut être associé à différentes formes de publications associées par exemple à une activité de veille récurrente ou de valorisation  (push) systématique d'un site. En filtrant sur ce critère (sans rebond) on espère se concentrer sur des bouquets d'URL plus diversifiés. Un autre filtrage peut également s'avérer intéressant dans l'étude d'une méthode de clustering. Il s'agit de l'appartenance ou non au même cluster. On distingue ainsi les relations in (intra-cluster) ou out (inter-cluster). Co-référenceLa matrice des co-références apporte une lecture différente de celles privilégiant la rediffusion entre auteurs, généralement pratiquées dans le cadre d'études sur Twitter. Dans le cas présent, le point de vue est plutôt de nature informationnel et documentaire. On distingue par la suite les co-références externes, selon les différents domaines du Web, ou internes à Twitter. De cette manière on sépare deux espaces référentiels néanmoins liés. ci-après graphes de Co-références Web, associés au filtrage de liens "out" sans "rebonds" suivant respectivement l'une des techniques de clustering, simple (gauche) double (droite). La coloration est associée aux clusters. Le clustering simple (gauche) amène une forte réduction du nombre de liens (reste 30%) mais le graphe résultant est très intriqué. L'analyse du graphe atteint ses limites.  Le clustering double (droite) au contraire apporte certes une faible réduction du nombre de liens (reste 90%) mais maintient une segmentation résiduelle exploitable. à suivre...