{"id":828,"date":"2012-02-17T13:53:43","date_gmt":"2012-02-17T12:53:43","guid":{"rendered":"http:\/\/visurus.wordpress.com\/?p=828"},"modified":"2013-12-10T10:51:52","modified_gmt":"2013-12-10T10:51:52","slug":"twitter-networks-mechanics","status":"publish","type":"post","link":"https:\/\/www.ralphstraumann.ch\/blog\/2012\/02\/twitter-networks-mechanics\/","title":{"rendered":"Twitter networks \u2013 Mechanics"},"content":{"rendered":"<p>[Deutsch weiter unten]<\/p>\n<p>Recently, I&#8217;ve been working on a Twitter-related project with two friends of mine. As there&#8217;s nothing to present yet, I won&#8217;t go into detail regarding that project. But working on Twitter-related stuff led me to explore the generation, modelling, analysis and visualization of Twitter networks.<\/p>\n<figure id=\"attachment_830\" aria-describedby=\"caption-attachment-830\" style=\"width: 500px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-830 \" title=\"An excerpt from a Twitter network\" alt=\"\" src=\"http:\/\/www.ralphstraumann.ch\/blog\/wp-content\/uploads\/2012\/02\/twitter_journalists_network_excerpt.png\" width=\"500\" height=\"381\" \/><figcaption id=\"caption-attachment-830\" class=\"wp-caption-text\">An excerpt from a Twitter network<\/figcaption><\/figure>\n<p>Then, some weeks back, Swiss journalist\/author\/blogger David Bauer started a <a href=\"https:\/\/docs.google.com\/a\/davidbauer.ch\/spreadsheet\/ccc?key=0Au5EaQXOeZRGdHJfcEJ2S0RHcG9XR2hEaVpWc2dFb1E&amp;hl=en_US#gid=0\">Google Doc to collect Twitter handles<\/a>\u00a0of journalists (read <a href=\"http:\/\/www.davidbauer.ch\/2012\/01\/13\/twitternde-journalistinnen-die-liste\/\">his post here<\/a>, in German). Two weeks later David Bauer&#8217;s list featured 300 accounts from German-speaking, mostly Swiss journalists (as of now there are 360 accounts) \u2013 a nice crowdsourcing success!<\/p>\n<p>I think David Bauer had an interesting idea there. And some people even took to simple analyses such as gender proportions of journalists on Twitter (see below \u2013 it&#8217;s disappointingly biased!).<\/p>\n<figure id=\"attachment_829\" aria-describedby=\"caption-attachment-829\" style=\"width: 307px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.ralphstraumann.ch\/blog\/wp-content\/uploads\/2012\/02\/twitter_stats_journalists.png\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-829  \" title=\"Gender proportion of journalists using Twitter (based on David Bauer's list)\" alt=\"\" src=\"http:\/\/www.ralphstraumann.ch\/blog\/wp-content\/uploads\/2012\/02\/twitter_stats_journalists.png\" width=\"307\" height=\"234\" srcset=\"https:\/\/www.ralphstraumann.ch\/blog\/wp-content\/uploads\/2012\/02\/twitter_stats_journalists.png 751w, https:\/\/www.ralphstraumann.ch\/blog\/wp-content\/uploads\/2012\/02\/twitter_stats_journalists-300x228.png 300w, https:\/\/www.ralphstraumann.ch\/blog\/wp-content\/uploads\/2012\/02\/twitter_stats_journalists-624x475.png 624w\" sizes=\"auto, (max-width: 307px) 100vw, 307px\" \/><\/a><figcaption id=\"caption-attachment-829\" class=\"wp-caption-text\">Gender proportion of journalists using Twitter (based on David Bauer&#8217;s list)<\/figcaption><\/figure>\n<p>Now, I wanted to visualize the network of these tweeting journalists. The tools of trade in this case are:<\/p>\n<ul>\n<li><a href=\"http:\/\/www.python.org\">Python<\/a>\u00a0and some custom modules<\/li>\n<li><a href=\"https:\/\/dev.twitter.com\/\">Twitter REST API<\/a> and<\/li>\n<li><a href=\"http:\/\/www.gephi.org\">Gephi<\/a>.<\/li>\n<\/ul>\n<p>Using the API I could get the User IDs of each journalist (rather than the Twitter handles which can be changed, the User IDs are numerical, stable IDs) and the User IDs of the people who follow them as well as the people they follow. Obviously, as a side-product of this process I also got the current follower numbers for each journalist.<\/p>\n<p>Now, all that was left to do to derive the Twitter network was to find for each pair of journalists, if one of them followed the other or both followed each other or no one followed the other. Using Python with custom modules I could generate this structure and export it to a <a href=\"http:\/\/en.wikipedia.org\/wiki\/GraphML\">GraphML<\/a> file that can be read by Gephi. Using this programme I did some network analysis and created visualizations, <a href=\"http:\/\/visurus.wordpress.com\/2012\/02\/17\/journalists-twitter-network\/\">check them out in this post<\/a>.<\/p>\n<p><strong>[German]<\/strong><\/p>\n<p>In letzter Zeit bin ich daran, mit zwei Freunden eine Art Twitter-Projekt aufzubauen. Es gibt da aber noch nichts zu pr\u00e4sentieren, dieser Post handelt aber von einer Art Spin-Off-Projekt. Ich habe mich n\u00e4mlich vermehrt f\u00fcr die Erzeugung und Modellierung, Analyse und Visualisierung von Twitter-Netzwerken interessiert und in diesen Bereichen einiges ausprobiert.<\/p>\n<figure id=\"attachment_830\" aria-describedby=\"caption-attachment-830\" style=\"width: 500px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-830\" title=\"Auszug aus einem Twitter-Netzwerk\" alt=\"\" src=\"http:\/\/www.ralphstraumann.ch\/blog\/wp-content\/uploads\/2012\/02\/twitter_journalists_network_excerpt.png\" width=\"500\" height=\"381\" \/><figcaption id=\"caption-attachment-830\" class=\"wp-caption-text\">Auszug aus einem Twitter-Netzwerk<\/figcaption><\/figure>\n<p>Dann hat der Schweizer Journalist\/Autor\/Blogger David Bauer vor ein paar Wochen <a href=\"https:\/\/docs.google.com\/a\/davidbauer.ch\/spreadsheet\/ccc?key=0Au5EaQXOeZRGdHJfcEJ2S0RHcG9XR2hEaVpWc2dFb1E&amp;hl=en_US#gid=0\">ein Google Doc er\u00f6ffnet, in dem er die Twitter-Handles<\/a> deutschsprachicher (und mehrheitlich schweizerischen) Journalistinnen und Journalisten per Crowdsourcing sammelt (vgl. auch <a href=\"http:\/\/www.davidbauer.ch\/2012\/01\/13\/twitternde-journalistinnen-die-liste\/\">seinen Post hier<\/a>). Zwei Wochen sp\u00e4ter z\u00e4hlte die Liste bereits 300 Eintr\u00e4ge, aktuell sind es 360 \u2013 also ein sch\u00f6ner Crowdsourcing-Erfolg!<\/p>\n<p>Ich finde David Bauers Idee sehr interessant. Auch andere Leute liessen sich davon begeistern und haben sogar einfache Analysen durchgef\u00fchrt, zum Beispiel des Geschlechterverh\u00e4ltnisses (welches in entt\u00e4uschendem Mass unausgelichen ist):<\/p>\n<figure id=\"attachment_829\" aria-describedby=\"caption-attachment-829\" style=\"width: 307px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.ralphstraumann.ch\/blog\/wp-content\/uploads\/2012\/02\/twitter_stats_journalists.png\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-829  \" title=\"Geschlechterverh\u00e4ltnis der twitternden Journalistinnen und Journalisten (basierend auf David Bauers Liste)\" alt=\"\" src=\"http:\/\/www.ralphstraumann.ch\/blog\/wp-content\/uploads\/2012\/02\/twitter_stats_journalists.png\" width=\"307\" height=\"234\" srcset=\"https:\/\/www.ralphstraumann.ch\/blog\/wp-content\/uploads\/2012\/02\/twitter_stats_journalists.png 751w, https:\/\/www.ralphstraumann.ch\/blog\/wp-content\/uploads\/2012\/02\/twitter_stats_journalists-300x228.png 300w, https:\/\/www.ralphstraumann.ch\/blog\/wp-content\/uploads\/2012\/02\/twitter_stats_journalists-624x475.png 624w\" sizes=\"auto, (max-width: 307px) 100vw, 307px\" \/><\/a><figcaption id=\"caption-attachment-829\" class=\"wp-caption-text\">Geschlechterverh\u00e4ltnis der twitternden Journalistinnen und Journalisten (basierend auf David Bauers Liste)<\/figcaption><\/figure>\n<p>Ich f\u00fcr meinen Teil wollte das Netzwerk der twitternden Journalistinnen und Journalisten sehen. Die Tools, die ich dazu verwendet habe, sind:<\/p>\n<ul>\n<li><a href=\"http:\/\/www.python.org\">Python<\/a>\u00a0und einige spezielle Module<\/li>\n<li>die\u00a0<a href=\"https:\/\/dev.twitter.com\/\">Twitter REST API<\/a>\u00a0und<\/li>\n<li><a href=\"http:\/\/www.gephi.org\">Gephi<\/a>\u00a0f\u00fcr die Visualisierung.<\/li>\n<\/ul>\n<p>Von der Twitter API konnte ich die User-IDs aller Journalistinnen und Journalisten abrufen (diese numerischen IDs sind \u2013 anders als die ver\u00e4nderbaren Twitter-Handles \u2013 \u00fcber die Zeit stabil). Weiter konnte ich die User-IDs der Leute abrufen, die einer Journalistin\/einem Journalisten folgen bzw. denen eine Journalistin\/ein Journalist folgt. Als ein Nebenprodukt erhielt ich dabei nat\u00fcrlich auch die Anzahl Follower jeder Journalistin und jedes Journalisten.<\/p>\n<p>Als letzter Schritt zur Ableitung des Netzwerks von Journalistinnen und Journalisten musste ich f\u00fcr jedes Paar von Personen auf der Liste herausfinden, ob die eine der anderen folgt, sich beide gegenseitig folgen oder sich beide nicht folgen. Mit Python und einem speziellen Modul konnte ich dann das Netzwerk aufbauen und als eine <a href=\"http:\/\/en.wikipedia.org\/wiki\/GraphML\">GraphML<\/a>-Datei exportieren. Diese wiederum konnte ich in Gephi einlesen, um weitere Analysen durchzuf\u00fchren und einige Visualisierungen zu erstellen. Die Resultate <a href=\"http:\/\/visurus.wordpress.com\/2012\/02\/17\/journalists-twitter-network\/\">finden Sie in diesem Post<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>[Deutsch weiter unten] Recently, I&#8217;ve been working on a Twitter-related project with two friends of mine. As there&#8217;s nothing to present yet, I won&#8217;t go into detail regarding that project. But working on Twitter-related stuff led me to explore the generation, modelling, analysis and visualization of Twitter networks. Then, some weeks back, Swiss journalist\/author\/blogger David &hellip; <a href=\"https:\/\/www.ralphstraumann.ch\/blog\/2012\/02\/twitter-networks-mechanics\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Twitter networks \u2013 Mechanics<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":832,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"Twitter networks \u2013 Mechanics","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[8],"tags":[30,68,76,117,125],"class_list":["post-828","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-piece","tag-crowdsourcing","tag-journalists","tag-network","tag-twitter","tag-visualization"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/www.ralphstraumann.ch\/blog\/wp-content\/uploads\/2012\/02\/twitter_journalists_network_excerpt1.png","jetpack_shortlink":"https:\/\/wp.me\/p3pPwF-dm","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.ralphstraumann.ch\/blog\/wp-json\/wp\/v2\/posts\/828","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ralphstraumann.ch\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ralphstraumann.ch\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ralphstraumann.ch\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ralphstraumann.ch\/blog\/wp-json\/wp\/v2\/comments?post=828"}],"version-history":[{"count":2,"href":"https:\/\/www.ralphstraumann.ch\/blog\/wp-json\/wp\/v2\/posts\/828\/revisions"}],"predecessor-version":[{"id":1469,"href":"https:\/\/www.ralphstraumann.ch\/blog\/wp-json\/wp\/v2\/posts\/828\/revisions\/1469"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ralphstraumann.ch\/blog\/wp-json\/wp\/v2\/media\/832"}],"wp:attachment":[{"href":"https:\/\/www.ralphstraumann.ch\/blog\/wp-json\/wp\/v2\/media?parent=828"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ralphstraumann.ch\/blog\/wp-json\/wp\/v2\/categories?post=828"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ralphstraumann.ch\/blog\/wp-json\/wp\/v2\/tags?post=828"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}