<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>EDA | Kishan Mistri</title><link>https://deploy-preview-6--kishan-mistri.netlify.app/category/eda/</link><atom:link href="https://deploy-preview-6--kishan-mistri.netlify.app/category/eda/index.xml" rel="self" type="application/rss+xml"/><description>EDA</description><generator>Wowchemy (https://wowchemy.com)</generator><language>en-us</language><lastBuildDate>Thu, 06 Oct 2022 08:35:01 +0000</lastBuildDate><image><url>https://deploy-preview-6--kishan-mistri.netlify.app/media/icon_huc7c9dc13e82656c337473117c97a25ad_25328_512x512_fill_lanczos_center_3.png</url><title>EDA</title><link>https://deploy-preview-6--kishan-mistri.netlify.app/category/eda/</link></image><item><title>Real-time Trends Insights from Tweet Data</title><link>https://deploy-preview-6--kishan-mistri.netlify.app/post/real-time-trends-insights-from-tweet-data/</link><pubDate>Thu, 06 Oct 2022 08:35:01 +0000</pubDate><guid>https://deploy-preview-6--kishan-mistri.netlify.app/post/real-time-trends-insights-from-tweet-data/</guid><description>&lt;h2 id="1-local-and-global-thought-patterns">1. Local and global thought patterns&lt;/h2>
&lt;p>While we might not be Twitter fans, we have to admit that it has a huge influence on the world (who doesn't know about Trump's tweets). Twitter data is not only gold in terms of insights, but &lt;strong>&lt;em>Twitter-storms are available for analysis in near real-time&lt;/em>&lt;/strong>. This means we can learn about the big waves of thoughts and moods around the world as they arise. &lt;/p>
&lt;p>As any place filled with riches, Twitter has &lt;em>security guards&lt;/em> blocking us from laying our hands on the data right away ⛔️ Some authentication steps (really straightforward) are needed to call their APIs for data collection. Since our goal today is learning to extract insights from data, we have already gotten a green-pass from security ✅ Our data is ready for usage in the datasets folder — we can concentrate on the fun part! 🕵️‍♀️🌎
&lt;br>
&lt;br>
&lt;img src="featured.png" style="width: 300px">
&lt;hr>
&lt;br>Twitter provides both global and local trends. Let's load and inspect data for topics that were hot worldwide (WW) and in the United States (US) at the moment of query — snapshot of JSON response from the call to Twitter's &lt;i>GET trends/place&lt;/i> API.&lt;/p>
&lt;p>&lt;i>&lt;b>Note&lt;/b>: &lt;a href="https://developer.twitter.com/en/docs/trends/trends-for-location/api-reference/get-trends-place.html">Here&lt;/a> is the documentation for this call, and &lt;a href="https://developer.twitter.com/en/docs/api-reference-index.html">here&lt;/a> a full overview on Twitter's APIs.&lt;/i>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Loading json module&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">json&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Load WW_trends and US_trends data into the the given variables respectively&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">WW_trends&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">json&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">loads&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">open&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;datasets/WWTrends.json&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">read&lt;/span>&lt;span class="p">())&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">US_trends&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">json&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">loads&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">open&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;datasets/USTrends.json&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">read&lt;/span>&lt;span class="p">())&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Our data was hard to read! Luckily, we can resort to the &lt;i>json.dumps()&lt;/i> method to have it formatted as a pretty JSON string.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Pretty-printing the results. First WW and then US trends.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;WW trends:&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">json&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">dumps&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">WW_trends&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">indent&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;details>
&lt;summary>Expand Output&lt;/summary>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-js" data-lang="js">&lt;span class="line">&lt;span class="cl">&lt;span class="nx">WW&lt;/span> &lt;span class="nx">trends&lt;/span>&lt;span class="o">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">[&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;trends&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">[&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;name&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s2">&amp;#34;#BeratKandili&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;url&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s2">&amp;#34;http://twitter.com/search?q=%23BeratKandili&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;promoted_content&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="kc">null&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;query&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s2">&amp;#34;%23BeratKandili&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;tweet_volume&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="mi">46373&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">},&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;name&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s2">&amp;#34;#GoodFriday&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;url&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s2">&amp;#34;http://twitter.com/search?q=%23GoodFriday&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;promoted_content&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="kc">null&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;query&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s2">&amp;#34;%23GoodFriday&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;tweet_volume&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="mi">81891&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">},&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">...&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">},&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;name&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s2">&amp;#34;#JunquerasACN&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;url&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s2">&amp;#34;http://twitter.com/search?q=%23JunquerasACN&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;promoted_content&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="kc">null&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;query&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s2">&amp;#34;%23JunquerasACN&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;tweet_volume&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="kc">null&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">],&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;as_of&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s2">&amp;#34;2019-04-19T08:43:43Z&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;created_at&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s2">&amp;#34;2019-04-19T08:39:15Z&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;locations&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">[&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;name&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s2">&amp;#34;Worldwide&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;woeid&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/details>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;US trends:&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">json&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">dumps&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">US_trends&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">indent&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;details>
&lt;summary>Expand Output&lt;/summary>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-js" data-lang="js">&lt;span class="line">&lt;span class="cl">&lt;span class="nx">US&lt;/span> &lt;span class="nx">trends&lt;/span>&lt;span class="o">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">[&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;trends&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">[&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;name&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s2">&amp;#34;#WeLoveTheEarth&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;url&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s2">&amp;#34;http://twitter.com/search?q=%23WeLoveTheEarth&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;promoted_content&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="kc">null&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;query&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s2">&amp;#34;%23WeLoveTheEarth&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;tweet_volume&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="mi">159698&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">},&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;name&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s2">&amp;#34;#DragRace&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;url&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s2">&amp;#34;http://twitter.com/search?q=%23DragRace&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;promoted_content&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="kc">null&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;query&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s2">&amp;#34;%23DragRace&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;tweet_volume&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="mi">37166&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">},&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">...&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">},&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;name&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s2">&amp;#34;#WeirdDateStories&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;url&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s2">&amp;#34;http://twitter.com/search?q=%23WeirdDateStories&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;promoted_content&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="kc">null&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;query&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s2">&amp;#34;%23WeirdDateStories&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;tweet_volume&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="kc">null&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">},&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;name&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s2">&amp;#34;#HustleAndSoul&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;url&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s2">&amp;#34;http://twitter.com/search?q=%23HustleAndSoul&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;promoted_content&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="kc">null&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;query&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s2">&amp;#34;%23HustleAndSoul&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;tweet_volume&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="kc">null&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">},&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;name&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s2">&amp;#34;#fridaymotivation&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;url&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s2">&amp;#34;http://twitter.com/search?q=%23fridaymotivation&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;promoted_content&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="kc">null&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;query&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s2">&amp;#34;%23fridaymotivation&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;tweet_volume&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="kc">null&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">],&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;as_of&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s2">&amp;#34;2019-04-19T08:43:43Z&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;created_at&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s2">&amp;#34;2019-04-19T08:39:15Z&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;locations&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">[&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;name&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s2">&amp;#34;United States&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;woeid&amp;#34;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="mi">23424977&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/details>
&lt;h2 id="3--finding-common-trends">3. Finding common trends&lt;/h2>
&lt;p>🕵️‍♀️ From the pretty-printed results (output of the previous task), we can observe that:&lt;/p>
&lt;ul>
&lt;li>&lt;p>We have an array of trend objects having: the name of the trending topic, the query parameter that can be used to search for the topic on Twitter-Search, the search URL and the volume of tweets for the last 24 hours, if available. (The trends get updated every 5 mins.)&lt;/p>&lt;/li>
&lt;li>&lt;p>At query time &lt;b>&lt;i>#BeratKandili, #GoodFriday&lt;/i>&lt;/b> and &lt;b>&lt;i>#WeLoveTheEarth&lt;/i>&lt;/b> were trending WW.&lt;/p>&lt;/li>
&lt;li>&lt;p>&lt;i>"tweet_volume"&lt;/i> tell us that &lt;i>#WeLoveTheEarth&lt;/i> was the most popular among the three.&lt;/p>&lt;/li>
&lt;li>&lt;p>Results are not sorted by &lt;i>"tweet_volume"&lt;/i>. &lt;/p>&lt;/li>
&lt;li>&lt;p>There are some trends which are unique to the US.&lt;/p>&lt;/li>
&lt;/ul>
&lt;hr>
&lt;p>It’s easy to skim through the two sets of trends and spot common trends, but let's not do "manual" work. We can use Python’s &lt;strong>set&lt;/strong> data structure to find common trends — we can iterate through the two trends objects, cast the lists of names to sets, and call the intersection method to get the common names between the two sets.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Extracting all the WW trend names from WW_trends&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">world_trends&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">set&lt;/span>&lt;span class="p">([&lt;/span>&lt;span class="n">WW_trends&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">][&lt;/span>&lt;span class="s1">&amp;#39;trends&amp;#39;&lt;/span>&lt;span class="p">][&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">][&lt;/span>&lt;span class="s1">&amp;#39;name&amp;#39;&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="nb">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">len&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">WW_trends&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">][&lt;/span>&lt;span class="s1">&amp;#39;trends&amp;#39;&lt;/span>&lt;span class="p">]))])&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Extracting all the US trend names from US_trends&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">us_trends&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">set&lt;/span>&lt;span class="p">([&lt;/span>&lt;span class="n">US_trends&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">][&lt;/span>&lt;span class="s1">&amp;#39;trends&amp;#39;&lt;/span>&lt;span class="p">][&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">][&lt;/span>&lt;span class="s1">&amp;#39;name&amp;#39;&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="nb">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">len&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">US_trends&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">][&lt;/span>&lt;span class="s1">&amp;#39;trends&amp;#39;&lt;/span>&lt;span class="p">]))])&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Getting the intersection of the two sets of trends&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">common_trends&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">world_trends&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">intersection&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">us_trends&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Inspecting the data&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">world_trends&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;details>
&lt;summary>Expand Output&lt;/summary>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-js" data-lang="js">&lt;span class="line">&lt;span class="cl"> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;#195TLdenTTVerilir&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#19aprile&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#AFLNorthDons&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#BLACKPINKxCorden&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#BeratKandili&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#CHIvLIO&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#ConCalmaRemix&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#DinahJane1&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#DragRace&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#DuyguAsena&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#GoodFriday&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#HanumanJayanti&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#HardikPatel&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#HayırlıCumalar&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#HayırlıKandiller&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#IndonesianElectionHeroes&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#Jersey&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#JunquerasACN&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#Karfreitag&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#KpuJanganCurang&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#NRLBulldogsSouths&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#NikahUmurBerapa&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#Ontas&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#ProtestoEdiyorum&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#ShivSena&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#TheJudasInMyLife&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#ViernesSanto&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#WeLoveTheEarth&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#اغلاق_BBM&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#يوم_الجمعه&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;Berat Kandilimiz&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;Derrick White&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;Derry&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;Hemant Karkare&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;Lil Dicky&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;Lyra McKee&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;Priyanka Chaturvedi&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;Shiv Sena&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;örgütdeğil arkadaşgrubu&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;グレア&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;プリウス&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;免許返納&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;刀ステ&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;十二国記&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;東京・池袋衝突事故&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;歩行者&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;池袋の事故&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;重体の女性と女児&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;高齢者&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;브이알&amp;#39;&lt;/span>&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/details>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="n">us_trends&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;details>
&lt;summary>Expand Output&lt;/summary>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-js" data-lang="js">&lt;span class="line">&lt;span class="cl"> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;&amp;#34;Earth&amp;#34;&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#AFLNorthDons&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#BLACKPINKxCorden&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#CUZILOVEYOU&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#ConCalmaRemix&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#CriticalRoleSpoilers&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#DinahJane1&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#DontChangeOutNow&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#DragRace&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#Earth&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#FridayFeeling&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#GSWvsLAC&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#GossipShouldBe&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#HustleAndSoul&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#LilDicky&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#MakeAMovieSensual&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#MyDrunkUncleSays&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#MyInnerDemonSaid&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#NRLBulldogsSouths&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#RPDR&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#StarTrekDiscovery&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#TheLegendOfVoxMachina&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#TimeToImpeach&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#WGAMIX&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#WeLoveTheEarth&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#WeirdDateStories&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#WhatStopsYouFromGoingHome&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#WorldofWarcraftMains&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#fridaymotivation&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;#rupaulsdragrace&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;David Fletcher&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;Derrick White&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;Derry&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;Gallant&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;Game 6&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;George Conway&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;Kazuo Koike&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;Kevin Durant&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;Lil Dicky&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;Lone Wolf and Cub&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;Lyra McKee&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;Mike Anderson&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;Oshie&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;Servais&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;Seth Abramson&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;Shy Glizzy&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;Silky&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;Tomas Hertl&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;WE LOVE THE EARTH&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;Yvie&amp;#39;&lt;/span>&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/details>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="nb">len&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">common_trends&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="s2">&amp;#34;common trends:&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">common_trends&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;details>
&lt;summary>Expand Output&lt;/summary>
&lt;p>\&lt;code>\\&lt;/code>\&lt;code> 11 common trends: {'#ConCalmaRemix', '#BLACKPINKxCorden', 'Derry', 'Lil Dicky', 'Derrick White', '#WeLoveTheEarth', '#DragRace', '#AFLNorthDons', 'Lyra McKee', '#NRLBulldogsSouths', '#DinahJane1'} \\&lt;/code>\&lt;code>\\&lt;/code>&lt;/p>
&lt;/details>
&lt;h2 id="4-exploring-the-hot-trend">4. Exploring the hot trend&lt;/h2>
&lt;p>🕵️‍♀️ From the intersection (last output) we can see that, out of the two sets of trends (each of size 50), we have 11 overlapping topics. In particular, there is one common trend that sounds very interesting: &lt;i>&lt;b>#WeLoveTheEarth&lt;/b>&lt;/i> — so good to see that &lt;em>Twitteratis&lt;/em> are unanimously talking about loving Mother Earth! 💚 &lt;/p>
&lt;p>&lt;i>&lt;b>Note&lt;/b>: We could have had no overlap or a much higher overlap; when we did the query for getting the trends, people in the US could have been on fire obout topics only relevant to them.&lt;/i>
&lt;br>
&lt;img src="earth.jpg" style="width: 500px">&lt;/p>
&lt;div style="text-align: center;">&lt;i>Image Source:Official Music Video Cover: https://welovetheearth.org/video/&lt;/i>&lt;/div>
&lt;hr>
&lt;p>We have found a hot-trend, #WeLoveTheEarth. Now let's see what story it is screaming to tell us! &lt;br>
If we query Twitter's search API with this hashtag as query parameter, we get back actual tweets related to it. We have the response from the search API stored in the datasets folder as &lt;i>'WeLoveTheEarth.json'&lt;/i>. So let's load this dataset and do a deep dive in this trend.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Loading the data&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">tweets&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">json&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">loads&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">open&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;datasets/WeLoveTheEarth.json&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">read&lt;/span>&lt;span class="p">())&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Inspecting some tweets&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">tweets&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;details>
&lt;summary>Expand Output&lt;/summary>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-js" data-lang="js">&lt;span class="line">&lt;span class="cl"> &lt;span class="p">[{&lt;/span>&lt;span class="s1">&amp;#39;created_at&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;Fri Apr 19 08:46:48 +0000 2019&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;id&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="mi">1119160405270523904&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;id_str&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;1119160405270523904&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;text&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;RT @lildickytweets: 🌎 out now #WeLoveTheEarth https://t.co/L22XsoT5P1&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;truncated&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;entities&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;hashtags&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">[{&lt;/span>&lt;span class="s1">&amp;#39;text&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;WeLoveTheEarth&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;indices&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="mi">30&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">45&lt;/span>&lt;span class="p">]}],&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;symbols&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">[],&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;user_mentions&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">[{&lt;/span>&lt;span class="s1">&amp;#39;screen_name&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;lildickytweets&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;name&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;LD&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;id&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="mi">1209516660&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;id_str&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;1209516660&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;indices&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">18&lt;/span>&lt;span class="p">]}],&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;urls&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">[{&lt;/span>&lt;span class="s1">&amp;#39;url&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;https://t.co/L22XsoT5P1&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;expanded_url&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;https://youtu.be/pvuN_WvF1to&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;display_url&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;youtu.be/pvuN_WvF1to&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;indices&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="mi">46&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">69&lt;/span>&lt;span class="p">]}]},&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;metadata&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;iso_language_code&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;en&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;result_type&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;recent&amp;#39;&lt;/span>&lt;span class="p">},&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;source&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;&amp;lt;a href=&amp;#34;http://twitter.com/download/android&amp;#34; rel=&amp;#34;nofollow&amp;#34;&amp;gt;Twitter for Android&amp;lt;/a&amp;gt;&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;in_reply_to_status_id&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">None&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;in_reply_to_status_id_str&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">None&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;in_reply_to_user_id&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">None&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;in_reply_to_user_id_str&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">None&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;in_reply_to_screen_name&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">None&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;user&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;id&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="mi">212375312&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;id_str&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;212375312&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;name&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;fake smile&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;screen_name&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;Pati95Poland&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;location&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;SWAGLAND &amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;description&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s2">&amp;#34;&amp;#39;&amp;#39;you just got knocked the fuck out&amp;#39;&amp;#39;&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;url&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;https://t.co/nxzlSyYZSK&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;entities&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;url&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;urls&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">[{&lt;/span>&lt;span class="s1">&amp;#39;url&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;https://t.co/nxzlSyYZSK&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;expanded_url&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;http://loveeeujdb.tumblr.com/&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;display_url&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;loveeeujdb.tumblr.com&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;indices&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">23&lt;/span>&lt;span class="p">]}]},&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;description&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;urls&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">[]}},&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;protected&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;followers_count&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="mi">2306&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;friends_count&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="mi">697&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;listed_count&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="mi">28&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;created_at&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;Fri Nov 05 22:25:29 +0000 2010&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;favourites_count&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="mi">5552&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;utc_offset&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">None&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;time_zone&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">None&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;geo_enabled&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">True&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;verified&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;statuses_count&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="mi">185750&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;lang&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;pl&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;contributors_enabled&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;is_translator&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;is_translation_enabled&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;profile_background_color&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;FFFFFF&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;profile_background_image_url&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;http://abs.twimg.com/images/themes/theme18/bg.gif&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;profile_background_image_url_https&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;https://abs.twimg.com/images/themes/theme18/bg.gif&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;profile_background_tile&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;profile_image_url&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;http://pbs.twimg.com/profile_images/1093929135183937537/hQuxtwKq_normal.jpg&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;profile_image_url_https&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;https://pbs.twimg.com/profile_images/1093929135183937537/hQuxtwKq_normal.jpg&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;profile_banner_url&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;https://pbs.twimg.com/profile_banners/212375312/1522705183&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;profile_link_color&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;ABB8C2&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;profile_sidebar_border_color&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;FFFFFF&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;profile_sidebar_fill_color&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;F6F6F6&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;profile_text_color&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;333333&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;profile_use_background_image&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">True&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;has_extended_profile&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">True&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;default_profile&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;default_profile_image&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;following&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;follow_request_sent&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;notifications&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;translator_type&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;regular&amp;#39;&lt;/span>&lt;span class="p">},&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;geo&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">None&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;coordinates&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">None&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;place&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">None&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;contributors&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">None&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;retweeted_status&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;created_at&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;Fri Apr 19 04:22:29 +0000 2019&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;id&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="mi">1119093888524754946&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;id_str&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;1119093888524754946&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;text&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;🌎 out now #WeLoveTheEarth https://t.co/L22XsoT5P1&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;truncated&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;entities&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;hashtags&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">[{&lt;/span>&lt;span class="s1">&amp;#39;text&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;WeLoveTheEarth&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;indices&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">25&lt;/span>&lt;span class="p">]}],&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;symbols&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">[],&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;user_mentions&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">[],&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;urls&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">[{&lt;/span>&lt;span class="s1">&amp;#39;url&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;https://t.co/L22XsoT5P1&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;expanded_url&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;https://youtu.be/pvuN_WvF1to&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;display_url&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;youtu.be/pvuN_WvF1to&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;indices&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="mi">26&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">49&lt;/span>&lt;span class="p">]}]},&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;metadata&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;iso_language_code&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;en&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;result_type&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;recent&amp;#39;&lt;/span>&lt;span class="p">},&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;source&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;&amp;lt;a href=&amp;#34;http://twitter.com&amp;#34; rel=&amp;#34;nofollow&amp;#34;&amp;gt;Twitter Web Client&amp;lt;/a&amp;gt;&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;in_reply_to_status_id&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">None&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;in_reply_to_status_id_str&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">None&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;in_reply_to_user_id&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">None&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;in_reply_to_user_id_str&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">None&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;in_reply_to_screen_name&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">None&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;user&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;id&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="mi">1209516660&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;id_str&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;1209516660&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;name&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;LD&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;screen_name&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;lildickytweets&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;location&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;Earth&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;description&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;Rapper/Actor/Comedian/Model #WeLoveTheEarth&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;url&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;https://t.co/aFrPkkJKqs&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;entities&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;url&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;urls&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">[{&lt;/span>&lt;span class="s1">&amp;#39;url&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;https://t.co/aFrPkkJKqs&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;expanded_url&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;https://LilDicky.lnk.to/Earth&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;display_url&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;LilDicky.lnk.to/Earth&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;indices&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">23&lt;/span>&lt;span class="p">]}]},&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;description&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;urls&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">[]}},&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;protected&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;followers_count&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="mi">503111&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;friends_count&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="mi">945&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;listed_count&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="mi">657&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;created_at&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;Fri Feb 22 19:06:15 +0000 2013&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;favourites_count&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="mi">7696&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;utc_offset&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">None&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;time_zone&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">None&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;geo_enabled&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;verified&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">True&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;statuses_count&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="mi">14430&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;lang&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;en&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;contributors_enabled&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;is_translator&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;is_translation_enabled&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;profile_background_color&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;000000&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;profile_background_image_url&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;http://abs.twimg.com/images/themes/theme14/bg.gif&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;profile_background_image_url_https&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;https://abs.twimg.com/images/themes/theme14/bg.gif&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;profile_background_tile&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;profile_image_url&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;http://pbs.twimg.com/profile_images/1119087366679846912/XSa4fpQA_normal.png&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;profile_image_url_https&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;https://pbs.twimg.com/profile_images/1119087366679846912/XSa4fpQA_normal.png&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;profile_banner_url&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;https://pbs.twimg.com/profile_banners/1209516660/1555646206&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;profile_link_color&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;858585&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;profile_sidebar_border_color&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;FFFFFF&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;profile_sidebar_fill_color&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;DDEEF6&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;profile_text_color&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;333333&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;profile_use_background_image&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">True&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;has_extended_profile&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;default_profile&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;default_profile_image&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;following&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;follow_request_sent&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;notifications&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;translator_type&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;none&amp;#39;&lt;/span>&lt;span class="p">},&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;geo&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">None&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;coordinates&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">None&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;place&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">None&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;contributors&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">None&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;is_quote_status&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;retweet_count&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="mi">7482&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;favorite_count&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="mi">13317&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;favorited&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;retweeted&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;possibly_sensitive&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;lang&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;en&amp;#39;&lt;/span>&lt;span class="p">},&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;is_quote_status&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;retweet_count&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="mi">7482&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;favorite_count&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;favorited&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;retweeted&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;possibly_sensitive&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;lang&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;en&amp;#39;&lt;/span>&lt;span class="p">},&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;created_at&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;Fri Apr 19 08:46:48 +0000 2019&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;id&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="mi">1119160404876206080&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;id_str&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;1119160404876206080&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;text&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;💚🌎💚 #WeLoveTheEarth 👇🏼&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;truncated&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;entities&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;hashtags&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">[{&lt;/span>&lt;span class="s1">&amp;#39;text&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;WeLoveTheEarth&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;indices&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">20&lt;/span>&lt;span class="p">]}],&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;symbols&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">[],&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;user_mentions&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">[],&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;urls&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">[]},&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;metadata&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;iso_language_code&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;und&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;result_type&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;recent&amp;#39;&lt;/span>&lt;span class="p">},&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;source&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;&amp;lt;a href=&amp;#34;http://twitter.com/download/iphone&amp;#34; rel=&amp;#34;nofollow&amp;#34;&amp;gt;Twitter for iPhone&amp;lt;/a&amp;gt;&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;in_reply_to_status_id&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">None&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;in_reply_to_status_id_str&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">None&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;in_reply_to_user_id&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">None&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;in_reply_to_user_id_str&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">None&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;in_reply_to_screen_name&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">None&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;user&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;id&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="mi">72150460&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;id_str&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;72150460&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;name&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;Alfonsina del Mar (Dianishka Prietishka)&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;screen_name&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;Diana____X&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;location&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;México&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;description&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;☸︎ ⚓︎ 👩🏻\u200d✈️ ★★★★ ♒︎&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;url&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">None&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;entities&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;description&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">{&lt;/span>&lt;span class="s1">&amp;#39;urls&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="p">[]}},&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;protected&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;followers_count&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="mi">223&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;friends_count&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="mi">513&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;listed_count&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;created_at&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;Sun Sep 06 23:26:24 +0000 2009&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;favourites_count&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="mi">750&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;utc_offset&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">None&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;time_zone&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">None&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;geo_enabled&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">True&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;verified&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;statuses_count&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="mi">1668&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;lang&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;es&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;contributors_enabled&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;is_translator&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;is_translation_enabled&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;profile_background_color&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;642D8B&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;profile_background_image_url&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;http://abs.twimg.com/images/themes/theme10/bg.gif&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;profile_background_image_url_https&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;https://abs.twimg.com/images/themes/theme10/bg.gif&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;profile_background_tile&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">True&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;profile_image_url&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;http://pbs.twimg.com/profile_images/1072296818531278848/tgn0e2h4_normal.jpg&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;profile_image_url_https&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;https://pbs.twimg.com/profile_images/1072296818531278848/tgn0e2h4_normal.jpg&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;profile_banner_url&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;https://pbs.twimg.com/profile_banners/72150460/1545198367&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;profile_link_color&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;8400FF&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;profile_sidebar_border_color&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;65B0DA&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;profile_sidebar_fill_color&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;7AC3EE&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;profile_text_color&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;3D1957&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;profile_use_background_image&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">True&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;has_extended_profile&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">True&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;default_profile&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;default_profile_image&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;following&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;follow_request_sent&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;notifications&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;translator_type&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;none&amp;#39;&lt;/span>&lt;span class="p">},&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;geo&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">None&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;coordinates&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">None&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;place&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">None&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;contributors&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">None&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;is_quote_status&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;retweet_count&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;favorite_count&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;favorited&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;retweeted&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="nx">False&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;lang&amp;#39;&lt;/span>&lt;span class="o">:&lt;/span> &lt;span class="s1">&amp;#39;und&amp;#39;&lt;/span>&lt;span class="p">}]&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/details>
&lt;h2 id="5-digging-deeper">5. Digging deeper&lt;/h2>
&lt;p>🕵️‍♀️ Printing the first two tweet items makes us realize that there’s a lot more to a tweet than what we normally think of as a tweet — there is a lot more than just a short text!&lt;/p>
&lt;hr>
&lt;p>But hey, let's not get overwhemled by all the information in a tweet object! Let's focus on a few interesting fields and see if we can find any hidden insights there. &lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Extracting the text of all the tweets from the tweet object&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">texts&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">tweet&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s1">&amp;#39;text&amp;#39;&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">tweet&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">tweets&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Extracting screen names of users tweeting about #WeLoveTheEarth&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">names&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">user_mentions&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s1">&amp;#39;screen_name&amp;#39;&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">tweet&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">tweets&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">user_mentions&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">tweet&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s1">&amp;#39;entities&amp;#39;&lt;/span>&lt;span class="p">][&lt;/span>&lt;span class="s1">&amp;#39;user_mentions&amp;#39;&lt;/span>&lt;span class="p">]]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Extracting all the hashtags being used when talking about this topic&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">hashtags&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">hashtag&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s1">&amp;#39;text&amp;#39;&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">tweet&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">tweets&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">hashtag&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">tweet&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s1">&amp;#39;entities&amp;#39;&lt;/span>&lt;span class="p">][&lt;/span>&lt;span class="s1">&amp;#39;hashtags&amp;#39;&lt;/span>&lt;span class="p">]]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Inspecting the first 10 results&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">json&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">dumps&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">texts&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">],&lt;/span> &lt;span class="n">indent&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">),&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;details>
&lt;summary>Expand Output&lt;/summary>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-js" data-lang="js">&lt;span class="line">&lt;span class="cl"> &lt;span class="p">[&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;RT @lildickytweets: \ud83c\udf0e out now #WeLoveTheEarth https://t.co/L22XsoT5P1&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;\ud83d\udc9a\ud83c\udf0e\ud83d\udc9a #WeLoveTheEarth \ud83d\udc47\ud83c\udffc&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;RT @cabeyoomoon: Ta piosenka to bop, wpada w ucho i dochody z niej id\u0105 na dobry cel, warto s\u0142ucha\u0107 w k\u00f3\u0142ko i w k\u00f3\u0142ko gdziekolwiek si\u0119 ty\u2026&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;#WeLoveTheEarth \nCzemu ja si\u0119 pop\u0142aka\u0142am&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;RT @Spotify: This is epic. @lildickytweets got @justinbieber, @arianagrande, @halsey, @sanbenito, @edsheeran, @SnoopDogg, @ShawnMendes, @Kr\u2026&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;RT @biebercentineo: Justin : are we gonna die? \nLil dicky: you know bieber we might die \n\nBTCH IM CRYING #EARTH #WeLoveTheEarth #WELOVEEART\u2026&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;RT @dreamsiinflate: #WeLoveTheEarth \u201ci am a fat fucking pig\u201d okay brendon urie https://t.co/FdJmq31xZc&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;Literally no one:\n\nMe in the past 4 hours:\n\nI&amp;#39;m a koala and I sleep all the time, so what, it&amp;#39;s cute \ud83c\udfb6\n\n#WeLoveTheEarth #EdSheeranTheKoala&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;RT @Yuuupthatsme: Mia\u0142e\u015b by\u0107 \u017cyraf\u0105 #WeLoveTheEarth https://t.co/0kNCpU8o6q&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;RT @jaguareffects: eu prestando aten\u00e7\u00e3o no \u00e1udio pra identificar cada artista\n\n#WeLoveTheEarth https://t.co/0cDtiV2t1E&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/details>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="n">json&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">dumps&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">names&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">],&lt;/span> &lt;span class="n">indent&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;details>
&lt;summary>Expand Output&lt;/summary>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-js" data-lang="js">&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;[\n &amp;#34;lildickytweets&amp;#34;,\n &amp;#34;cabeyoomoon&amp;#34;,\n &amp;#34;Spotify&amp;#34;,\n &amp;#34;lildickytweets&amp;#34;,\n &amp;#34;justinbieber&amp;#34;,\n &amp;#34;ArianaGrande&amp;#34;,\n &amp;#34;halsey&amp;#34;,\n &amp;#34;sanbenito&amp;#34;,\n &amp;#34;edsheeran&amp;#34;,\n &amp;#34;SnoopDogg&amp;#34;\n]&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/details>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="n">json&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">dumps&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">hashtags&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">0&lt;/span>&lt;span class="p">:&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">],&lt;/span> &lt;span class="n">indent&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;details>
&lt;summary>Expand Output&lt;/summary>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-js" data-lang="js">&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;[\n &amp;#34;WeLoveTheEarth&amp;#34;,\n &amp;#34;WeLoveTheEarth&amp;#34;,\n &amp;#34;WeLoveTheEarth&amp;#34;,\n &amp;#34;EARTH&amp;#34;,\n &amp;#34;WeLoveTheEarth&amp;#34;,\n &amp;#34;WeLoveTheEarth&amp;#34;,\n &amp;#34;WeLoveTheEarth&amp;#34;,\n &amp;#34;EdSheeranTheKoala&amp;#34;,\n &amp;#34;WeLoveTheEarth&amp;#34;,\n &amp;#34;WeLoveTheEarth&amp;#34;\n]&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/details>
&lt;h2 id="6-frequency-analysis">6. Frequency analysis&lt;/h2>
&lt;p>🕵️‍♀️ Just from the first few results of the last extraction, we can deduce that:&lt;/p>
&lt;ul>
&lt;li>We are talking about a song about loving the Earth.&lt;/li>
&lt;li>A lot of big artists are the forces behind this Twitter wave, especially Lil Dicky.&lt;/li>
&lt;li>Ed Sheeran was some cute koala in the song — "EdSheeranTheKoala" hashtag! 🐨&lt;/li>
&lt;/ul>
&lt;hr>
&lt;p>Observing the first 10 items of the interesting fields gave us a sense of the data. We can now take a closer look by doing a simple, but very useful, exercise — computing frequency distributions. Starting simple with frequencies is generally a good approach; it helps in getting ideas about how to proceed further.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Importing modules&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">collections&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">Counter&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Counting occcurrences/ getting frequency dist of all names and hashtags&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">for&lt;/span> &lt;span class="n">item&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">names&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">hashtags&lt;/span>&lt;span class="p">]:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">c&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Counter&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">item&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Inspecting the 10 most common items in c&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="n">c&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">most_common&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="se">\n&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;details>
&lt;summary>Expand Output&lt;/summary>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-js" data-lang="js">&lt;span class="line">&lt;span class="cl"> &lt;span class="p">[(&lt;/span>&lt;span class="s1">&amp;#39;lildickytweets&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">102&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;LeoDiCaprio&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">44&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;ShawnMendes&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">33&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;halsey&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">31&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;ArianaGrande&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">30&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;justinbieber&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">29&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;Spotify&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">26&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;edsheeran&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">26&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;sanbenito&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">25&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;SnoopDogg&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">25&lt;/span>&lt;span class="p">)]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">[(&lt;/span>&lt;span class="s1">&amp;#39;WeLoveTheEarth&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">313&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;4future&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">12&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;19aprile&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">12&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;EARTH&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">11&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;fridaysforfuture&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">10&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;EarthMusicVideo&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">3&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;ConCalmaRemix&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">3&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;Earth&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">3&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;aliens&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;AvengersEndgame&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="p">)]&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/details>
&lt;h2 id="7-activity-around-the-trend">7. Activity around the trend&lt;/h2>
&lt;p>🕵️‍♀️ Based on the last frequency distributions we can further build-up on our deductions:&lt;/p>
&lt;ul>
&lt;li>We can more safely say that this was a music video about Earth (hashtag 'EarthMusicVideo') by Lil Dicky. &lt;/li>
&lt;li>DiCaprio is not a music artist, but he was involved as well &lt;em>(Leo is an environmentalist so not a surprise to see his name pop up here)&lt;/em>. &lt;/li>
&lt;li>We can also say that the video was released on a Friday; very likely on April 19th. &lt;/li>
&lt;/ul>
&lt;p>&lt;em>We have been able to extract so many insights. Quite powerful, isn't it?!&lt;/em>&lt;/p>
&lt;hr>
&lt;p>Let's further analyze the data to find patterns in the activity around the tweets — &lt;b>did all retweets occur around a particular tweet? &lt;/b>&lt;br>&lt;/p>
&lt;p>If a tweet has been retweeted, the &lt;i>'retweeted_status'&lt;/i> field gives many interesting details about the original tweet itself and its author. &lt;/p>
&lt;p>We can measure a tweet's popularity by analyzing the &lt;b>&lt;i>retweet&lt;em>count&lt;/em>&lt;/i>&lt;/b> and &lt;b>&lt;i>favoritecount&lt;/i>&lt;/b> fields. But let's also extract the number of followers of the tweeter — we have a lot of celebs in the picture, so &lt;b>can we tell if their advocating for #WeLoveTheEarth influenced a significant proportion of their followers?&lt;/b>&lt;/p>
&lt;hr>
&lt;p>&lt;i>&lt;b>Note&lt;/b>: The retweet_count gives us the total number of times the original tweet was retweeted. It should be the same in both the original tweet and all the next retweets. Tinkering around with some sample tweets and the official documentaiton are the way to get your head around the mnay fields.&lt;/i>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Extracting useful information from retweets&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># tweets[0][&amp;#39;text&amp;#39;]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">retweets&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[(&lt;/span>&lt;span class="n">tweet&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s1">&amp;#39;retweet_count&amp;#39;&lt;/span>&lt;span class="p">],&lt;/span> &lt;span class="n">tweet&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s1">&amp;#39;retweeted_status&amp;#39;&lt;/span>&lt;span class="p">][&lt;/span>&lt;span class="s1">&amp;#39;favorite_count&amp;#39;&lt;/span>&lt;span class="p">],&lt;/span> &lt;span class="n">tweet&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s1">&amp;#39;retweeted_status&amp;#39;&lt;/span>&lt;span class="p">][&lt;/span>&lt;span class="s1">&amp;#39;user&amp;#39;&lt;/span>&lt;span class="p">][&lt;/span>&lt;span class="s1">&amp;#39;followers_count&amp;#39;&lt;/span>&lt;span class="p">],&lt;/span> &lt;span class="n">tweet&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s1">&amp;#39;retweeted_status&amp;#39;&lt;/span>&lt;span class="p">][&lt;/span>&lt;span class="s1">&amp;#39;user&amp;#39;&lt;/span>&lt;span class="p">][&lt;/span>&lt;span class="s1">&amp;#39;screen_name&amp;#39;&lt;/span>&lt;span class="p">],&lt;/span> &lt;span class="n">tweet&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s1">&amp;#39;text&amp;#39;&lt;/span>&lt;span class="p">])&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">tweet&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">tweets&lt;/span> &lt;span class="k">if&lt;/span> &lt;span class="s1">&amp;#39;retweeted_status&amp;#39;&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">tweet&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">retweets&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;details>
&lt;summary>Expand Output&lt;/summary>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-js" data-lang="js">&lt;span class="line">&lt;span class="cl"> &lt;span class="p">[(&lt;/span>&lt;span class="mi">7482&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mi">13317&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mi">503111&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;lildickytweets&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;RT @lildickytweets: 🌎 out now #WeLoveTheEarth https://t.co/L22XsoT5P1&amp;#39;&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">(&lt;/span>&lt;span class="mi">9&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mi">23&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mi">7732&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;cabeyoomoon&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;RT @cabeyoomoon: Ta piosenka to bop, wpada w ucho i dochody z niej idą na dobry cel, warto słuchać w kółko i w kółko gdziekolwiek się ty…&amp;#39;&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">(&lt;/span>&lt;span class="mi">4288&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mi">9488&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mi">2973277&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;Spotify&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;RT @Spotify: This is epic. @lildickytweets got @justinbieber, @arianagrande, @halsey, @sanbenito, @edsheeran, @SnoopDogg, @ShawnMendes, @Kr…&amp;#39;&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">(&lt;/span>&lt;span class="mi">517&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mi">1185&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mi">4038&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;biebercentineo&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;RT @biebercentineo: Justin : are we gonna die? \nLil dicky: you know bieber we might die \n\nBTCH IM CRYING #EARTH #WeLoveTheEarth #WELOVEEART…&amp;#39;&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">(&lt;/span>&lt;span class="mi">369&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mi">1142&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mi">3045&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;dreamsiinflate&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;RT @dreamsiinflate: #WeLoveTheEarth “i am a fat fucking pig” okay brendon urie https://t.co/FdJmq31xZc&amp;#39;&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">(&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mi">56&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mi">669&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;Yuuupthatsme&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;RT @Yuuupthatsme: Miałeś być żyrafą #WeLoveTheEarth https://t.co/0kNCpU8o6q&amp;#39;&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">(&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">...&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">(&lt;/span>&lt;span class="mi">493&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mi">2095&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mi">39726&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;MendesNotified&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;RT @MendesNotified: shawn reading his line for the song #WeLoveTheEarth: https://t.co/dcWJFDlVMd&amp;#39;&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">(&lt;/span>&lt;span class="mi">3&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mi">6&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mi">9693&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;TJOfficial_&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;RT @TJOfficial_: We love the earth it is our planet 🌍 🎶 #WeLoveTheEarth It’s so beautiful.&amp;#39;&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">(&lt;/span>&lt;span class="mi">89&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mi">121&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="mi">2124&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;kingoftheclout&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s1">&amp;#39;RT @kingoftheclout: STOP SCROLLING AND WATCH THIS VIDEO‼️ please take some time out of your day to watch this video &amp;amp;amp; possibly share it. it…&amp;#39;&lt;/span>&lt;span class="p">)]&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/details>
&lt;h2 id="8-a-table-that-speaks-a-1000-words">8. A table that speaks a 1000 words&lt;/h2>
&lt;p>Let's manipulate the data further and visualize it in a better and richer way — &lt;em>"looks matter!"&lt;/em>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Importing modules&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">matplotlib.pyplot&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="nn">plt&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">pandas&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="nn">pd&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Create a DataFrame and visualize the data in a pretty and insightful format&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">df&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">pd&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">DataFrame&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">retweets&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">columns&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s1">&amp;#39;Retweets&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s1">&amp;#39;Favorites&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;Followers&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;ScreenName&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;Text&amp;#39;&lt;/span>&lt;span class="p">])&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">df&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">df&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">groupby&lt;/span>&lt;span class="p">([&lt;/span>&lt;span class="s1">&amp;#39;ScreenName&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s1">&amp;#39;Text&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s1">&amp;#39;Followers&amp;#39;&lt;/span>&lt;span class="p">])&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">sum&lt;/span>&lt;span class="p">()&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">sort_values&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">by&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="s1">&amp;#39;Followers&amp;#39;&lt;/span>&lt;span class="p">],&lt;/span>&lt;span class="n">ascending&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="kc">False&lt;/span>&lt;span class="p">])&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">df&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">style&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">background_gradient&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;details>
&lt;summary>Expand Output&lt;/summary>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Tweets Object&lt;/th>
&lt;th>Retweets&lt;/th>
&lt;th>Favorites&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>(&amp;lsquo;katyperry&amp;rsquo;, &amp;lsquo;RT @katyperry: Sure, the Mueller report is out, but @lildickytweets’ &amp;ldquo;Earth&amp;rdquo; but will be too tonight. Don't say I never tried to save the w…&amp;rsquo;, 107195569)&lt;/td>
&lt;td>2338&lt;/td>
&lt;td>10557&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;katyperry&amp;rsquo;, &amp;lsquo;RT @katyperry: Sure, the Mueller report is out, but @lildickytweets’ &amp;ldquo;Earth&amp;rdquo; but will be too tonight. Don't say I never tried to save the w…&amp;rsquo;, 107195568)&lt;/td>
&lt;td>2338&lt;/td>
&lt;td>10556&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;TheEllenShow&amp;rsquo;, &amp;lsquo;RT @TheEllenShow: .@lildickytweets, @justinbieber, @MileyCyrus, @katyperry, @ArianaGrande and more, all in one music video. My head might e…&amp;rsquo;, 77474826)&lt;/td>
&lt;td>2432&lt;/td>
&lt;td>10086&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;LeoDiCaprio&amp;rsquo;, &amp;lsquo;RT @LeoDiCaprio: The @dicapriofdn partners that will benefit from this collaboration include @SharkRayFund, @SolutionsProj, @GreengrantsFun…&amp;rsquo;, 18988898)&lt;/td>
&lt;td>28505&lt;/td>
&lt;td>78137&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;LeoDiCaprio&amp;rsquo;, &amp;lsquo;RT @LeoDiCaprio: Thank you to @lildickytweets and all the artists that came together to make this happen. Net profits from the song, video,…&amp;rsquo;, 18988898)&lt;/td>
&lt;td>149992&lt;/td>
&lt;td>416018&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;halsey&amp;rsquo;, &amp;lsquo;RT @halsey: 🐯🐯🐯 meeeeeeeow 👅 #WeLoveTheEarth &lt;a href="https://t.co/JJr6vmKG7U%27" target="_blank" rel="noopener">https://t.co/JJr6vmKG7U'&lt;/a>, 10564842)&lt;/td>
&lt;td>7742&lt;/td>
&lt;td>69684&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;halsey&amp;rsquo;, &amp;lsquo;RT @halsey: 🐯🐯🐯 meeeeeeeow 👅 #WeLoveTheEarth &lt;a href="https://t.co/JJr6vmKG7U%27" target="_blank" rel="noopener">https://t.co/JJr6vmKG7U'&lt;/a>, 10564841)&lt;/td>
&lt;td>7742&lt;/td>
&lt;td>69682&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;scooterbraun&amp;rsquo;, &amp;lsquo;RT @scooterbraun: Watch #EARTH NOW! #WeLoveTheEarth — &lt;a href="https://t.co/OtRfIgcSZL%27" target="_blank" rel="noopener">https://t.co/OtRfIgcSZL'&lt;/a>, 3885179)&lt;/td>
&lt;td>5925&lt;/td>
&lt;td>14635&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;Spotify&amp;rsquo;, &amp;lsquo;RT @Spotify: This is epic. @lildickytweets got @justinbieber, @arianagrande, @halsey, @sanbenito, @edsheeran, @SnoopDogg, @ShawnMendes, @Kr…&amp;rsquo;, 2973277)&lt;/td>
&lt;td>107222&lt;/td>
&lt;td>237259&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;TomHall&amp;rsquo;, &amp;lsquo;RT @TomHall: 🐆\n\nLook Out!\n\n🐆\n\n#Cheetah @LeoDiCaprio #FridayFeeling #WeLoveTheEarth \n\nhttps://t.co/w1O1NyTbwX&amp;rsquo;, 590841)&lt;/td>
&lt;td>82&lt;/td>
&lt;td>252&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;rsquo;lildickytweets&amp;rsquo;, &amp;lsquo;RT @lildickytweets: Earth. 4/18 at 9PM PST. #WeLoveTheEarth pre-save link in my bio &lt;a href="https://t.co/7HD2xlSFYQ%27" target="_blank" rel="noopener">https://t.co/7HD2xlSFYQ'&lt;/a>, 503112)&lt;/td>
&lt;td>25098&lt;/td>
&lt;td>90974&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;rsquo;lildickytweets&amp;rsquo;, &amp;lsquo;RT @lildickytweets: 🌎 out now #WeLoveTheEarth &lt;a href="https://t.co/L22XsoT5P1%27" target="_blank" rel="noopener">https://t.co/L22XsoT5P1'&lt;/a>, 503112)&lt;/td>
&lt;td>112230&lt;/td>
&lt;td>199773&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;rsquo;lildickytweets&amp;rsquo;, &amp;lsquo;RT @lildickytweets: 🌎 out now #WeLoveTheEarth &lt;a href="https://t.co/L22XsoT5P1%27" target="_blank" rel="noopener">https://t.co/L22XsoT5P1'&lt;/a>, 503111)&lt;/td>
&lt;td>119712&lt;/td>
&lt;td>213072&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;greenpeacefr&amp;rsquo;, &amp;lsquo;RT @greenpeacefr: Happening NOW in France : today, to show how much #WeLoveTheEarth, more than 2000 citizens are blocking the headquarters…&amp;rsquo;, 420789)&lt;/td>
&lt;td>128&lt;/td>
&lt;td>192&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;rlthingy&amp;rsquo;, &amp;lsquo;RT @rlthingy: /rlt/ YO GUYS LISTEN TO THIS SONGGGGG #WeLoveTheEarth &lt;a href="https://t.co/trUgRG7QBH%27" target="_blank" rel="noopener">https://t.co/trUgRG7QBH'&lt;/a>, 225977)&lt;/td>
&lt;td>11&lt;/td>
&lt;td>23&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;SB_Projects&amp;rsquo;, &amp;lsquo;RT @SB_Projects: #WeLoveTheEarth out now with @lildickytweets, @justinbieber, @ArianaGrande, @zacbrownband, and 25+ of your other faves htt…&amp;rsquo;, 98418)&lt;/td>
&lt;td>271&lt;/td>
&lt;td>730&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;biebernovidade&amp;rsquo;, &amp;lsquo;RT @biebernovidade: Rio de Janeiro: PRESENTE! #WeLoveTheEarth &lt;a href="https://t.co/IJrypKqzSf%27" target="_blank" rel="noopener">https://t.co/IJrypKqzSf'&lt;/a>, 83281)&lt;/td>
&lt;td>651&lt;/td>
&lt;td>1499&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;MendesCrewInfo&amp;rsquo;, &amp;lsquo;RT @MendesCrewInfo: .@ShawnMendes represents rhinos in the ‘Earth’ music video and feature. His line, “We’re just some rhinos, horny as hec…&amp;rsquo;, 61015)&lt;/td>
&lt;td>2815&lt;/td>
&lt;td>9599&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;shawnxniallx&amp;rsquo;, &amp;lsquo;RT @shawnxniallx: La gente piensa que el calentamiento global no es real, ya abran los ojos y actuemos de una manera real, dime ¿qué te cue…&amp;rsquo;, 53713)&lt;/td>
&lt;td>812&lt;/td>
&lt;td>1254&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;shawnxniallx&amp;rsquo;, &amp;lsquo;RT @shawnxniallx: La humanidad es un asco y nunca me cansaré de decirlos ¿no creen que es momento de cambiar? Salvemos nuestro planeta, sal…&amp;rsquo;, 53713)&lt;/td>
&lt;td>604&lt;/td>
&lt;td>1034&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;shawnxniallx&amp;rsquo;, &amp;lsquo;RT @shawnxniallx: Vengo a recomendarles a todos esta miniserie que realizó Netflix, en la cual nos muestra cada parte de las especies, lo q…&amp;rsquo;, 53713)&lt;/td>
&lt;td>138&lt;/td>
&lt;td>299&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;shawnxniallx&amp;rsquo;, &amp;lsquo;RT @shawnxniallx: Espero que con este video se pueda crear un poco más de conciencia propia, simeplemnte estamos acabando con nuestro plane…&amp;rsquo;, 53713)&lt;/td>
&lt;td>300&lt;/td>
&lt;td>494&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;SMendesQandA&amp;rsquo;, &amp;lsquo;RT @SMendesQandA: #WeLoveTheEarth &lt;a href="https://t.co/KDIKYVHFWU%27" target="_blank" rel="noopener">https://t.co/KDIKYVHFWU'&lt;/a>, 53282)&lt;/td>
&lt;td>56&lt;/td>
&lt;td>339&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;SMendesQandA&amp;rsquo;, &amp;lsquo;RT @SMendesQandA: Let’s help save the Earth. We’re the ones with the power of change. 🌍 #WeLoveTheEarth&amp;rsquo;, 53282)&lt;/td>
&lt;td>122&lt;/td>
&lt;td>343&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;SMendesQandA&amp;rsquo;, &amp;lsquo;RT @SMendesQandA: So you can basically say you have a song with many of the artists we have asked you to collaborate with&amp;hellip;smart move mend…&amp;rsquo;, 53282)&lt;/td>
&lt;td>116&lt;/td>
&lt;td>717&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;SMendesQandA&amp;rsquo;, &amp;lsquo;RT @SMendesQandA: “We’re just some rhinos, horny as heck” — Shawn’s part on #WeLoveTheEarth&amp;rsquo;, 53282)&lt;/td>
&lt;td>244&lt;/td>
&lt;td>1420&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;SMendesQandA&amp;rsquo;, &amp;lsquo;RT @SMendesQandA: “We’re just some rhinos horny as heck” — Shawn Mendes #WeLoveTheEarth &lt;a href="https://t.co/URnHb0DTWN%27" target="_blank" rel="noopener">https://t.co/URnHb0DTWN'&lt;/a>, 53282)&lt;/td>
&lt;td>768&lt;/td>
&lt;td>3309&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;ShawnUpdatesSA&amp;rsquo;, &amp;ldquo;RT @ShawnUpdatesSA: Shawn Mendes: rinocerontes.\n#WeLoveTheEarth\n\n&amp;rsquo;La población de rinocerontes negros está casi extinta, y las otras cuatro…&amp;rdquo;, 52424)&lt;/td>
&lt;td>850&lt;/td>
&lt;td>1807&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;gtbriel&amp;rsquo;, &amp;lsquo;RT @gtbriel: vimos o cu do justin bieber\n\nlogo em seguida a ariana sair do cu do justin \n\ne logo em seguuda a ariana sendo morta pela halse…&amp;rsquo;, 49215)&lt;/td>
&lt;td>581&lt;/td>
&lt;td>970&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;MileySmilerNews&amp;rsquo;, &amp;lsquo;RT @MileySmilerNews: Miley’s cameo in the Earth song is so cute #WeLoveTheEarth &lt;a href="https://t.co/Byk9rkhMpG%27" target="_blank" rel="noopener">https://t.co/Byk9rkhMpG'&lt;/a>, 47840)&lt;/td>
&lt;td>15&lt;/td>
&lt;td>116&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;ArianatorFallen&amp;rsquo;, &amp;lsquo;RT @ArianatorFallen: Ariana vocals had saved the earth . This song is so important #WeLoveTheEarth &lt;a href="https://t.co/Lg9jsPRD5z%27" target="_blank" rel="noopener">https://t.co/Lg9jsPRD5z'&lt;/a>, 44426)&lt;/td>
&lt;td>84&lt;/td>
&lt;td>258&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;MendesNotified&amp;rsquo;, &amp;lsquo;RT @MendesNotified: Rhinos - Shawn Mendes🦏🖤\n“The black rhino population is nearly extinct, and the four other species of rhinos found in Af…&amp;rsquo;, 39726)&lt;/td>
&lt;td>258&lt;/td>
&lt;td>858&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;MendesNotified&amp;rsquo;, &amp;lsquo;RT @MendesNotified: shawn reading his line for the song #WeLoveTheEarth: &lt;a href="https://t.co/dcWJFDlVMd%27" target="_blank" rel="noopener">https://t.co/dcWJFDlVMd'&lt;/a>, 39726)&lt;/td>
&lt;td>2465&lt;/td>
&lt;td>10475&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;badweputation&amp;rsquo;, &amp;lsquo;RT @badweputation: n adianta vcs comentarem sobre a importância da preservação hj e amanhã já esquecerem e tbm lembrando q o atual presiden…&amp;rsquo;, 38787)&lt;/td>
&lt;td>119&lt;/td>
&lt;td>183&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;isbreakls&amp;rsquo;, &amp;lsquo;RT @isbreakls: Queria dizer que na música do Lil Dicky tem 28 artistas incríveis mais quem eu amo mesmo é um babuíno chamado Justin Bieber.…&amp;rsquo;, 37473)&lt;/td>
&lt;td>95&lt;/td>
&lt;td>215&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;isbreakls&amp;rsquo;, &amp;lsquo;RT @isbreakls: A música e o clipe tá incrível vamos espalhar o verdadeiro motivo da música que é fazer com que as pessoas pensem nos seus a…&amp;rsquo;, 37473)&lt;/td>
&lt;td>684&lt;/td>
&lt;td>1068&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;NoticiasSmilers&amp;rsquo;, &amp;lsquo;RT @NoticiasSmilers: Soy un elefante, tengo basura en mi trompa. -Pequeño cameo de Miley en la canción Earth de Lil Dicky- #WeLoveTheEarth…&amp;rsquo;, 32649)&lt;/td>
&lt;td>7&lt;/td>
&lt;td>4&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;ThrowbacksBTS&amp;rsquo;, &amp;lsquo;RT @ThrowbacksBTS: Friendly reminder to use less plastic, recycle and contribute in some way to benefit humanity. The world is dying we nee…&amp;rsquo;, 32498)&lt;/td>
&lt;td>370&lt;/td>
&lt;td>816&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;btsargento&amp;rsquo;, &amp;lsquo;RT @btsargento: ▪ estas son varias cosas que podemos hacer para construir un planeta mejor, sin contaminación y un lugar donde todos aporte…&amp;rsquo;, 31453)&lt;/td>
&lt;td>67&lt;/td>
&lt;td>143&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;biebersmaniabrs&amp;rsquo;, &amp;lsquo;RT @biebersmaniabrs: SAIU! Ouçam e assistam “Earth”, música de Lil Dicky com Justin Bieber e mais 29 artistas. 🌏🎶\n\nVideo: &lt;a href="https://t.co/oHRR" target="_blank" rel="noopener">https://t.co/oHRR&lt;/a>…&amp;rsquo;, 26097)&lt;/td>
&lt;td>341&lt;/td>
&lt;td>463&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;rsquo;landsrauhl&amp;rsquo;, &amp;lsquo;RT @landsrauhl: I loved what lil dicky did. There’s so many popular artists on the track which hopefully means more of a variety of people…&amp;rsquo;, 25071)&lt;/td>
&lt;td>128&lt;/td>
&lt;td>306&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;biebsrell&amp;rsquo;, &amp;lsquo;RT @biebsrell: J: ¿Vamos a morir?\nL: ¿Sabes qué, Bieber? Podríamos morir. No voy a mentirte. Quiero decir, hay mucha gente ahí afuera que n…&amp;rsquo;, 23301)&lt;/td>
&lt;td>730&lt;/td>
&lt;td>1344&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;ShawnNewsPoland&amp;rsquo;, &amp;lsquo;RT @ShawnNewsPoland: “We’re just some rhinos, horny as heck” — Shawna tekst w piosence #WeLoveTheEarth &lt;a href="https://t.co/NsOmYfoe7u%27" target="_blank" rel="noopener">https://t.co/NsOmYfoe7u'&lt;/a>, 22067)&lt;/td>
&lt;td>97&lt;/td>
&lt;td>523&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;ShawnNewsPoland&amp;rsquo;, &amp;lsquo;RT @ShawnNewsPoland: Wyjaśnienie tekstu Shawna #WeLoveTheEarth &lt;a href="https://t.co/NiShcC8WGW%27" target="_blank" rel="noopener">https://t.co/NiShcC8WGW'&lt;/a>, 22067)&lt;/td>
&lt;td>105&lt;/td>
&lt;td>440&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;ShawnNewsPoland&amp;rsquo;, &amp;lsquo;RT @ShawnNewsPoland: Słuchajcie wszędzie gdzie się da! #WeLoveTheEarth dochód z piosenki zostanie przekazany fundacji założonej przez DiCap…&amp;rsquo;, 22067)&lt;/td>
&lt;td>4410&lt;/td>
&lt;td>8720&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;NLiddle16&amp;rsquo;, &amp;lsquo;RT @NLiddle16: #Earth isn’t supposed to break records or chart. This song is to bring awareness. We have to change now. We have to love mor…&amp;rsquo;, 21180)&lt;/td>
&lt;td>27&lt;/td>
&lt;td>134&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;ArianaRenewsFR&amp;rsquo;, &amp;lsquo;RT @ArianaRenewsFR: #WeLoveTheEarth est maintenant disponible sur toutes les plateformes ! \n\nYouTube : &lt;a href="https://t.co/zSpCdE74lV" target="_blank" rel="noopener">https://t.co/zSpCdE74lV&lt;/a>\n\niTunes : ht…&amp;rsquo;, 20794)&lt;/td>
&lt;td>5&lt;/td>
&lt;td>20&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;iBeliebersMx&amp;rsquo;, &amp;lsquo;RT @iBeliebersMx: Justin: ¿Vamos a morir?\n\nLil Dicky: &amp;ldquo;Sabes Bieber&amp;hellip; podemos morir. No te voy a mentir a ti, hay muchas personas que pien…&amp;rsquo;, 19745)&lt;/td>
&lt;td>2236&lt;/td>
&lt;td>3872&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;JBCrewdotcom&amp;rsquo;, &amp;lsquo;RT @JBCrewdotcom: #WeLoveTheEarth Merchandise available to purchase with proceeds going to The Leonardo DiCaprio Foundation dedicated to th…&amp;rsquo;, 17812)&lt;/td>
&lt;td>89&lt;/td>
&lt;td>186&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;dimplecabello&amp;rsquo;, &amp;lsquo;RT @dimplecabello: “¿Que vamos a defender? El amor. Y nosotros amamos la tierra.” Este video es precioso, últimamente estamos dañando tanto…&amp;rsquo;, 17590)&lt;/td>
&lt;td>286&lt;/td>
&lt;td>445&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;TeamAGPoland&amp;rsquo;, &amp;lsquo;RT @TeamAGPoland: Utwór &amp;ldquo;Earth&amp;rdquo; jest już dostępny! Ariana wcieliła się w postać zebry, a cały dochód ze sprzedaży utworu zostanie przekazan…&amp;rsquo;, 17157)&lt;/td>
&lt;td>44&lt;/td>
&lt;td>142&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;bieberpakiss&amp;rsquo;, &amp;lsquo;RT @bieberpakiss: HI IM A BABOON IM LIKE A MAN JUST LESS ADVANCED AND MY ANUS IS HUGE #WeLoveTheEarth &lt;a href="https://t.co/tqhfvv7PKf%27" target="_blank" rel="noopener">https://t.co/tqhfvv7PKf'&lt;/a>, 16288)&lt;/td>
&lt;td>148&lt;/td>
&lt;td>286&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;yourbiebernews&amp;rsquo;, &amp;lsquo;RT @yourbiebernews: Justin Bieber: Baboon\n\n#WeLoveTheEarth &lt;a href="https://t.co/dlvl1M28Mg%27" target="_blank" rel="noopener">https://t.co/dlvl1M28Mg'&lt;/a>, 14121)&lt;/td>
&lt;td>198&lt;/td>
&lt;td>404&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;bizzleslovej&amp;rsquo;, &amp;lsquo;RT @bizzleslovej: Parliamo di Leo DiCaprio che entra in scena sulla nave del Titanic stile Jack #WeLoveTheEarth &lt;a href="https://t.co/VxZscAiOhZ%27" target="_blank" rel="noopener">https://t.co/VxZscAiOhZ'&lt;/a>, 13151)&lt;/td>
&lt;td>5&lt;/td>
&lt;td>8&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;holdtightlive&amp;rsquo;, &amp;lsquo;RT @holdtightlive: THIS SONG IS SO BEAUTIFUL THE VIDEO IS ABSOLUTELY AMAZING AND IT’S FOR A GOOD CAUSE SO LETS GOOO STREAM IT BUY IT WATCH…&amp;rsquo;, 10331)&lt;/td>
&lt;td>35&lt;/td>
&lt;td>83&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;rsquo;needyellie&amp;rsquo;, &amp;lsquo;RT @needyellie: please keep steaming this song, all proceeds go to an extremely important cause. save planet earth!!\n#WeLoveTheEarth https:…&amp;rsquo;, 10319)&lt;/td>
&lt;td>1240&lt;/td>
&lt;td>2884&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;gladwithmyidols&amp;rsquo;, &amp;lsquo;RT @gladwithmyidols: So&amp;hellip; Halsey killed Ariana #WeLoveTheEarth &lt;a href="https://t.co/Qquu4YfgzE%27" target="_blank" rel="noopener">https://t.co/Qquu4YfgzE'&lt;/a>, 9987)&lt;/td>
&lt;td>23&lt;/td>
&lt;td>91&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;TJOfficial*&amp;rsquo;, &amp;lsquo;RT @TJOfficial*: We love the earth it is our planet 🌍 🎶 #WeLoveTheEarth It’s so beautiful.&amp;rsquo;, 9693)&lt;/td>
&lt;td>6&lt;/td>
&lt;td>12&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;MCyrus&lt;strong>forever&amp;rsquo;, &amp;lsquo;RT @MCyrus&lt;/strong>forever: Cały dochód z tej piosenki trafi do fundacji Leonardo DiCaprio, poświęconej ochronie i dobrobytowi wszystkich mieszkań…&amp;rsquo;, 9680)&lt;/td>
&lt;td>46&lt;/td>
&lt;td>79&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;MCyrus&lt;strong>forever&amp;rsquo;, &amp;lsquo;RT @MCyrus&lt;/strong>forever: Ten teledysk jest świetny, a piosenka ma naprawdę bardzo ważne przesłanie 🌎🌱 #WeLoveTheEarth&amp;rsquo;, 9680)&lt;/td>
&lt;td>1&lt;/td>
&lt;td>5&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;justinxrespect&amp;rsquo;, &amp;lsquo;RT @justinxrespect: “are we gonna die” ay loco. #WeLoveTheEarth &lt;a href="https://t.co/zwof29P4Uw%27" target="_blank" rel="noopener">https://t.co/zwof29P4Uw'&lt;/a>, 9257)&lt;/td>
&lt;td>9&lt;/td>
&lt;td>21&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;cyruseyes*&amp;rsquo;, &amp;lsquo;RT @cyruseyes*: Qui non stiamo parlando abbastanza di Leonardo DiCaprio e di questa scena \n#WeLoveTheEarth &lt;a href="https://t.co/zUfOWBy7ct%27" target="_blank" rel="noopener">https://t.co/zUfOWBy7ct'&lt;/a>, 9148)&lt;/td>
&lt;td>22&lt;/td>
&lt;td>148&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;cyruseyes*&amp;rsquo;, &amp;lsquo;RT @cyruseyes*: Questo video deve diventare un film. Il messaggio arriverebbe veramente a tutti. @ Disney sai cosa fare \n#WeLoveTheEarth ht…&amp;rsquo;, 9148)&lt;/td>
&lt;td>10&lt;/td>
&lt;td>52&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;ChartBTS&amp;rsquo;, &amp;lsquo;RT @ChartBTS: &amp;ldquo;We love the earth it is our planet \nWe love the earth it is our home&amp;rdquo; \n\nARMYs, support this important cause, it is our home…&amp;rsquo;, 8527)&lt;/td>
&lt;td>705&lt;/td>
&lt;td>1731&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;MileyDimension&amp;rsquo;, &amp;lsquo;RT @MileyDimension: I think everyone should see this! \nIt is about time to do something. #WeLoveTheEarth \nhttps://t.co/WmMDhsBq19&amp;rsquo;, 7745)&lt;/td>
&lt;td>645&lt;/td>
&lt;td>969&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;cabeyoomoon&amp;rsquo;, &amp;lsquo;RT @cabeyoomoon: Ta piosenka to bop, wpada w ucho i dochody z niej idą na dobry cel, warto słuchać w kółko i w kółko gdziekolwiek się ty…&amp;rsquo;, 7732)&lt;/td>
&lt;td>9&lt;/td>
&lt;td>23&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;stonyproud&amp;rsquo;, &amp;lsquo;RT @stonyproud: agora que percebi que o clipe todo foi no cu do Justin pqp que cu arrombado #WeLoveTheEarth &lt;a href="https://t.co/I2edu6J9be%27" target="_blank" rel="noopener">https://t.co/I2edu6J9be'&lt;/a>, 7728)&lt;/td>
&lt;td>49&lt;/td>
&lt;td>115&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;hoe4exhoee&amp;rsquo;, &amp;ldquo;RT @hoe4exhoee: Lil Dicky - Earth (Official Music Video) &lt;a href="https://t.co/XT4xdm9XoN" target="_blank" rel="noopener">https://t.co/XT4xdm9XoN&lt;/a> \n\nKRIS WU&amp;rsquo;s PART IS ON 5:43. It is short but I&amp;rsquo;m so glad…&amp;rdquo;, 6870)&lt;/td>
&lt;td>10&lt;/td>
&lt;td>8&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;KCUnidosBR&amp;rsquo;, &amp;lsquo;RT @KCUnidosBR: Quem diria em KatyCats? 2 músicas no mesmo dia #ConCalmaRemix #WeLoveTheEarth &lt;a href="https://t.co/FF7Be15lhz%27" target="_blank" rel="noopener">https://t.co/FF7Be15lhz'&lt;/a>, 6458)&lt;/td>
&lt;td>59&lt;/td>
&lt;td>96&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;Ari_grandeJP&amp;rsquo;, &amp;lsquo;RT @Ari_grandeJP: . @lildickytweets の\n新曲 #EARTH が公開されました💙🌏\n\nアリアナはシマウマとして参加してます！👀💗✨\n\n #WeLoveTheEarth &lt;a href="https://t.co/5g1clvAZoO%27" target="_blank" rel="noopener">https://t.co/5g1clvAZoO'&lt;/a>, 6141)&lt;/td>
&lt;td>44&lt;/td>
&lt;td>306&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;becauseihadyou&amp;rsquo;, &amp;lsquo;RT @becauseihadyou: Don’t know why people are being nasty about ‘Earth’. It’s not a song meant to chart or break records, it’s to raise awa…&amp;rsquo;, 5647)&lt;/td>
&lt;td>2484&lt;/td>
&lt;td>6444&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;biebersmybro&amp;rsquo;, &amp;lsquo;RT @biebersmybro: beliebers are promoting the song the hardest lol wbk we are the best fandom ever #WeLoveTheEarth&amp;rsquo;, 5314)&lt;/td>
&lt;td>14&lt;/td>
&lt;td>49&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;biebersmybro&amp;rsquo;, &amp;lsquo;RT @biebersmybro: WE FINALLY HEARD JUSTIN AND ARIANA IN ONE SONG #WeLoveTheEarth &lt;a href="https://t.co/RqHTRButmx%27" target="_blank" rel="noopener">https://t.co/RqHTRButmx'&lt;/a>, 5314)&lt;/td>
&lt;td>350&lt;/td>
&lt;td>996&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;imagiwation&amp;rsquo;, &amp;lsquo;RT @imagiwation: entre tanta coisa ruim e tóxica que tá tendo ultimamente a gente tem a chance de se unir por uma causa boa, então não vamo…&amp;rsquo;, 5208)&lt;/td>
&lt;td>88&lt;/td>
&lt;td>129&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;rsquo;triedsadlonel&amp;rsquo;, &amp;lsquo;RT @triedsadlonel: piosenka mega mi sie podoba,taka fajna wesoła(pod katem melodii) natomiast calosc mnie hitnela mocno,bo to serio jest pr…&amp;rsquo;, 4941)&lt;/td>
&lt;td>10&lt;/td>
&lt;td>34&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;rsquo;triedsadlonel&amp;rsquo;, &amp;lsquo;RT @triedsadlonel: kiedy kazdy byl przekonany ze Shawn bedzie żyrafa a tu jeb nosorożcem #WeLoveTheEarth&amp;rsquo;, 4941)&lt;/td>
&lt;td>1&lt;/td>
&lt;td>10&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;rsquo;neznayuchtotut&amp;rsquo;, &amp;lsquo;RT @neznayuchtotut: вау, так много артистов объединились, чтобы поднять насущную проблему нашей планеты о том, что ее нужно защищать и люби…&amp;rsquo;, 4621)&lt;/td>
&lt;td>8&lt;/td>
&lt;td>150&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;demisfakesmile&amp;rsquo;, &amp;lsquo;RT @demisfakesmile: stream. stream. stream this song. its for a good cause, let’s save the earth 🌍 💙💚 #WeLoveTheEarth &lt;a href="https://t.co/vgABUfce" target="_blank" rel="noopener">https://t.co/vgABUfce&lt;/a>…&amp;rsquo;, 4421)&lt;/td>
&lt;td>504&lt;/td>
&lt;td>984&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;SoundOfSeries&amp;rsquo;, &amp;ldquo;RT @SoundOfSeries: #INFOSOS : \n&amp;rsquo;WeLoveTheEarth&amp;rsquo; est disponible sur YouTube. Le but de cette chanson n’est pas de devenir le tube de l’été,…&amp;rdquo;, 4393)&lt;/td>
&lt;td>80&lt;/td>
&lt;td>72&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;carawcciolo&amp;rsquo;, &amp;lsquo;RT @carawcciolo: Halsey zjada Ariane na śniadanie (koloryzowane) 😅 #WeLoveTheEarth &lt;a href="https://t.co/FV4MZSOXlu%27" target="_blank" rel="noopener">https://t.co/FV4MZSOXlu'&lt;/a>, 4246)&lt;/td>
&lt;td>63&lt;/td>
&lt;td>194&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;gcldendays&amp;rsquo;, &amp;lsquo;RT @gcldendays: Be careful who you call ugly in middle school 😉\n#WeLoveTheEarth &lt;a href="https://t.co/4jvr8Xn397%27" target="_blank" rel="noopener">https://t.co/4jvr8Xn397'&lt;/a>, 4122)&lt;/td>
&lt;td>394&lt;/td>
&lt;td>1698&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;gcldendays&amp;rsquo;, &amp;lsquo;RT @gcldendays: No one: \nNot even a soul:\n\nMe:\n#WeLoveTheEarth &lt;a href="https://t.co/i4BxsXBwny%27" target="_blank" rel="noopener">https://t.co/i4BxsXBwny'&lt;/a>, 4122)&lt;/td>
&lt;td>408&lt;/td>
&lt;td>1189&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;biebercentineo&amp;rsquo;, &amp;lsquo;RT @biebercentineo: Justin : are we gonna die? \nLil dicky: you know bieber we might die \n\nBTCH IM CRYING #EARTH #WeLoveTheEarth #WELOVEEART…&amp;rsquo;, 4038)&lt;/td>
&lt;td>1551&lt;/td>
&lt;td>3555&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;biebercentineo&amp;rsquo;, &amp;lsquo;RT @biebercentineo: THIS SONG IS SO GOOD 😭 #EARTH #WeLoveTheEarth &lt;a href="https://t.co/3hM7ZU2eYh%27" target="_blank" rel="noopener">https://t.co/3hM7ZU2eYh'&lt;/a>, 4038)&lt;/td>
&lt;td>79&lt;/td>
&lt;td>215&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;Bizzbiebsz&amp;rsquo;, &amp;lsquo;RT @Bizzbiebsz: So after so many years we finally got Justin x Arina collab and they even gave us zebra and baboon\n\nStream #WeloveTheEarth…&amp;rsquo;, 3889)&lt;/td>
&lt;td>297&lt;/td>
&lt;td>879&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;jvkejams&amp;rsquo;, &amp;lsquo;RT @jvkejams: I feel like the song will showcase the animals in a very comedic way (bc its how most lil dicky’s songs are) to raise awarene…&amp;rsquo;, 3861)&lt;/td>
&lt;td>20&lt;/td>
&lt;td>104&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;rsquo;larryxcolours&amp;rsquo;, &amp;lsquo;RT @larryxcolours: ¿Cómo pueden ayudar a la organización? \n-Compren la mercancia, las ganancias irán directamente para ayudar a la tierra.…&amp;rsquo;, 3766)&lt;/td>
&lt;td>330&lt;/td>
&lt;td>612&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;sitevolts&amp;rsquo;, &amp;lsquo;RT @sitevolts: CROSSOVER MAIOR QUE VINGADORES 😵 Justin Bieber, Ariana Grande, Katy Perry, Halsey, Sia, Ed Sheeran, Meghan Trainor e Miley C…&amp;rsquo;, 3707)&lt;/td>
&lt;td>130&lt;/td>
&lt;td>366&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;JDBieberPol&amp;rsquo;, &amp;lsquo;RT @JDBieberPol: Gwiazdy jako zwierzęta w teledysku #Earth #WeLoveTheEarth &lt;a href="https://t.co/3aA4mE56Y3%27" target="_blank" rel="noopener">https://t.co/3aA4mE56Y3'&lt;/a>, 3475)&lt;/td>
&lt;td>34&lt;/td>
&lt;td>99&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;rsquo;nervous_taste&amp;rsquo;, &amp;lsquo;RT @nervous_taste: Have u thought that we will have:\n\nSHAWN MENDES FT ARIANA GRANDE \nSHAWN MENDES FT JUSTIN BIEBER \nSHAWN MENDES FT HALSEY…&amp;rsquo;, 3283)&lt;/td>
&lt;td>2&lt;/td>
&lt;td>9&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;rsquo;nervous_taste&amp;rsquo;, &amp;lsquo;RT @nervous_taste: Shawn isn’t the giraffe \n\n#WeLoveTheEarth &lt;a href="https://t.co/0PJdZnkP87%27" target="_blank" rel="noopener">https://t.co/0PJdZnkP87'&lt;/a>, 3283)&lt;/td>
&lt;td>2&lt;/td>
&lt;td>0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;rsquo;nopromisesv&amp;rsquo;, &amp;lsquo;RT @nopromisesv: A ogólnie sam teledysk jest świetny, nie spodziewałam się tego #WeLoveTheEarth&amp;rsquo;, 3283)&lt;/td>
&lt;td>7&lt;/td>
&lt;td>77&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;INLOVEWITHDS&amp;rsquo;, &amp;lsquo;RT @INLOVEWITHDS: Questo video è semplicemente spettacolare e il messaggio che vuole trasmettere è bellissimo\nwow non ho parole\nTutti gli a…&amp;rsquo;, 3153)&lt;/td>
&lt;td>14&lt;/td>
&lt;td>49&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;agbkissy&amp;rsquo;, &amp;lsquo;RT @agbkissy: all of yall saying earth is a bad song are immature&amp;hellip; its not supposed to be the next big hit, it was made to spread awarene…&amp;rsquo;, 3098)&lt;/td>
&lt;td>584&lt;/td>
&lt;td>1356&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;dreamsiinflate&amp;rsquo;, &amp;lsquo;RT @dreamsiinflate: #WeLoveTheEarth “i am a fat fucking pig” okay brendon urie &lt;a href="https://t.co/FdJmq31xZc%27" target="_blank" rel="noopener">https://t.co/FdJmq31xZc'&lt;/a>, 3045)&lt;/td>
&lt;td>1107&lt;/td>
&lt;td>3426&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;dreamsiinflate&amp;rsquo;, &amp;lsquo;RT @dreamsiinflate: #WeLoveTheEarth they are all these informative cards on the website which are pretty cool &lt;a href="https://t.co/qq0GWJ0q0G%27" target="_blank" rel="noopener">https://t.co/qq0GWJ0q0G'&lt;/a>, 3045)&lt;/td>
&lt;td>208&lt;/td>
&lt;td>840&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;SMendesMedia&amp;rsquo;, &amp;lsquo;RT @SMendesMedia: . @ShawnMendes’ part on l “Earth” 🌎 \n\n#WeLoveTheEarth (@lildickytweets)\n• &lt;a href="https://t.co/XrpJbZ6zY7" target="_blank" rel="noopener">https://t.co/XrpJbZ6zY7&lt;/a> &lt;a href="https://t.co/o2dO7V5cz4%27" target="_blank" rel="noopener">https://t.co/o2dO7V5cz4'&lt;/a>, 2815)&lt;/td>
&lt;td>238&lt;/td>
&lt;td>1120&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;kyzztin&amp;rsquo;, &amp;lsquo;RT @kyzztin: The whole concept of this is super dope. lil dicky really got so many huge artists to be part of this amazing project and give…&amp;rsquo;, 2641)&lt;/td>
&lt;td>21&lt;/td>
&lt;td>79&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;kyzztin&amp;rsquo;, &amp;lsquo;RT @kyzztin: same energy #WeloveTheEarth &lt;a href="https://t.co/YfTTS6BRiC%27" target="_blank" rel="noopener">https://t.co/YfTTS6BRiC'&lt;/a>, 2641)&lt;/td>
&lt;td>10&lt;/td>
&lt;td>27&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;xKittyMendes&amp;rsquo;, &amp;lsquo;RT @xKittyMendes: SHAWN JEST NOSOROŻCEM\nJego od razu poznałam, bo z innymi miałam problem XD #WeLoveTheEarth &lt;a href="https://t.co/21ICMTDdmn%27" target="_blank" rel="noopener">https://t.co/21ICMTDdmn'&lt;/a>, 2597)&lt;/td>
&lt;td>48&lt;/td>
&lt;td>426&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;xKittyMendes&amp;rsquo;, &amp;lsquo;RT @xKittyMendes: Nie sądziłam, że potrzebuję usłyszeć z ust Shawna słowa horny XDD #WeLoveTheEarth &lt;a href="https://t.co/TkMA07iNj5%27" target="_blank" rel="noopener">https://t.co/TkMA07iNj5'&lt;/a>, 2597)&lt;/td>
&lt;td>326&lt;/td>
&lt;td>1074&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;kajagafelgaja&amp;rsquo;, &amp;lsquo;RT @kajagafelgaja: macie tu moją przemowe #WeLoveTheEarth &lt;a href="https://t.co/1KKrPIRllX%27" target="_blank" rel="noopener">https://t.co/1KKrPIRllX'&lt;/a>, 2526)&lt;/td>
&lt;td>1&lt;/td>
&lt;td>0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;kajagafelgaja&amp;rsquo;, &amp;lsquo;RT @kajagafelgaja: czy to Was nie dociera że ta piosenka nie ma być dobra, tylko prosta, trafiająca do wszystkich i wpadająca w ucho? i moż…&amp;rsquo;, 2526)&lt;/td>
&lt;td>30&lt;/td>
&lt;td>32&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;rsquo;luvmyburito&amp;rsquo;, &amp;ldquo;RT @luvmyburito: głosy ariany i justina tak do siebie pasują ze i&amp;rsquo;m in shook\n#WeLoveTheEarth &lt;a href="https://t.co/MLmyex9t1t%22" target="_blank" rel="noopener">https://t.co/MLmyex9t1t"&lt;/a>, 2520)&lt;/td>
&lt;td>90&lt;/td>
&lt;td>405&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;rsquo;lordefurler&amp;rsquo;, &amp;lsquo;RT @lordefurler: Sia did that! #WeLoveTheEarth &lt;a href="https://t.co/aETvluquXM%27" target="_blank" rel="noopener">https://t.co/aETvluquXM'&lt;/a>, 2488)&lt;/td>
&lt;td>4&lt;/td>
&lt;td>26&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;sinsnvices&amp;rsquo;, &amp;lsquo;RT @sinsnvices: utożsamiam się z brendonem #WeLoveTheEarth &lt;a href="https://t.co/bSLoyWD4hd%27" target="_blank" rel="noopener">https://t.co/bSLoyWD4hd'&lt;/a>, 2478)&lt;/td>
&lt;td>1646&lt;/td>
&lt;td>3466&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;kingoftheclout&amp;rsquo;, &amp;lsquo;RT @kingoftheclout: STOP SCROLLING AND WATCH THIS VIDEO‼️ please take some time out of your day to watch this video &amp;amp; possibly share it. it…&amp;rsquo;, 2124)&lt;/td>
&lt;td>178&lt;/td>
&lt;td>242&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;izrnsrdn&amp;rsquo;, &amp;lsquo;RT @izrnsrdn: Justin Drew Bieber as a baboon \n#WeLoveTheEarth &lt;a href="https://t.co/Wz8YK6r21q%27" target="_blank" rel="noopener">https://t.co/Wz8YK6r21q'&lt;/a>, 2034)&lt;/td>
&lt;td>223&lt;/td>
&lt;td>615&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;marquezduo&amp;rsquo;, &amp;lsquo;RT @marquezduo: jakby ktoś się zastanawiał jak wygląda moje życie #WeLoveTheEarth &lt;a href="https://t.co/SLvLE6eY0V%27" target="_blank" rel="noopener">https://t.co/SLvLE6eY0V'&lt;/a>, 1906)&lt;/td>
&lt;td>582&lt;/td>
&lt;td>1389&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;5SecOfMendess&amp;rsquo;, &amp;lsquo;RT @5SecOfMendess: Ejjj ale mi się ta piosenka serio podoba i ma genialne przesłanie!💕\n#WeLoveTheEarth&amp;rsquo;, 1870)&lt;/td>
&lt;td>8&lt;/td>
&lt;td>35&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;JBwakeup&amp;rsquo;, &amp;lsquo;RT @JBwakeup: Ogolnie to serio glos Justina i Ariany pasuja do siebie.. chce ich colab #WeLoveTheEarth&amp;rsquo;, 1842)&lt;/td>
&lt;td>14&lt;/td>
&lt;td>58&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;MNotifiedMedia&amp;rsquo;, &amp;lsquo;RT @MNotifiedMedia: Shawn Mendes the Rhino🦏 #WeLoveTheEarth &lt;a href="https://t.co/Y2plDHsIsL%27" target="_blank" rel="noopener">https://t.co/Y2plDHsIsL'&lt;/a>, 1805)&lt;/td>
&lt;td>93&lt;/td>
&lt;td>416&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;MNotifiedMedia&amp;rsquo;, &amp;lsquo;RT @MNotifiedMedia: “we’re just some rhinos horny as heck” THE RHINOS ARE SO CUTE🦏 #WeLoveTheEarth &lt;a href="https://t.co/vvkaO2U7qj%27" target="_blank" rel="noopener">https://t.co/vvkaO2U7qj'&lt;/a>, 1805)&lt;/td>
&lt;td>175&lt;/td>
&lt;td>647&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;DOLANVVY&amp;rsquo;, &amp;lsquo;RT @DOLANVVY: Rozjebał mnie snoop dog jako marihuana, rola idealna dla niego\n #WeLoveTheEarth&amp;rsquo;, 1803)&lt;/td>
&lt;td>44&lt;/td>
&lt;td>140&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;justinsbicep&amp;rsquo;, &amp;ldquo;RT @justinsbicep: I signed the petition. And you should too. Stream, donate and spread the message. Let&amp;rsquo;s save the earth. #WeLoveTheEarth h…&amp;rdquo;, 1772)&lt;/td>
&lt;td>58&lt;/td>
&lt;td>101&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;purpxs3bizzle&amp;rsquo;, &amp;lsquo;RT @purpxs3bizzle: &amp;ldquo;O homem destrói a natureza com desculpa de sobreviver, a natureza luta para sobreviver para garantir a sobrevivência do…&amp;rsquo;, 1716)&lt;/td>
&lt;td>144&lt;/td>
&lt;td>224&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;kba_yankee21&amp;rsquo;, &amp;lsquo;RT @kba_yankee21: Never thought I would tear up because of a Lil Dicky song. But here I am crying in a cool way. Feel free to visit https:/…&amp;rsquo;, 1674)&lt;/td>
&lt;td>4&lt;/td>
&lt;td>6&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;beth_powell1&amp;rsquo;, &amp;lsquo;RT @beth_powell1: LETS SAVE THE PLANET #WeLoveTheEarth&amp;rsquo;, 1629)&lt;/td>
&lt;td>1&lt;/td>
&lt;td>0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;piggzyneedy&amp;rsquo;, &amp;lsquo;RT @piggzyneedy: i see so many people tweeting about saving the planet but i bet my whole life the majority of those people are only tweeti…&amp;rsquo;, 1577)&lt;/td>
&lt;td>1&lt;/td>
&lt;td>2&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;particularangel&amp;rsquo;, &amp;lsquo;RT @particularangel: i mean we should all listen to this part specifically #WeLoveTheEarth &lt;a href="https://t.co/tgGZKRgXV2%27" target="_blank" rel="noopener">https://t.co/tgGZKRgXV2'&lt;/a>, 1511)&lt;/td>
&lt;td>1147&lt;/td>
&lt;td>2259&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;avisbelieberboy&amp;rsquo;, &amp;lsquo;RT @avisbelieberboy: De lo mejor que va del año #WeLoveTheEarth &lt;a href="https://t.co/vN7wPOGork%27" target="_blank" rel="noopener">https://t.co/vN7wPOGork'&lt;/a>, 1367)&lt;/td>
&lt;td>3&lt;/td>
&lt;td>4&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;biebrforro&amp;rsquo;, &amp;lsquo;RT @biebrforro: justin y ariana cantando juntos es lo mejor que puede existir #WeLoveTheEarth &lt;a href="https://t.co/Dilro999ds%27" target="_blank" rel="noopener">https://t.co/Dilro999ds'&lt;/a>, 1352)&lt;/td>
&lt;td>292&lt;/td>
&lt;td>626&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;shawnnsbabyy&amp;rsquo;, &amp;lsquo;RT @shawnnsbabyy: Il rinoceronte con la voce più bella del mondo🥰\n\n#WeLoveTheEarth &lt;a href="https://t.co/aSQgvumgKl%27" target="_blank" rel="noopener">https://t.co/aSQgvumgKl'&lt;/a>, 1314)&lt;/td>
&lt;td>2&lt;/td>
&lt;td>6&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;br_atd&amp;rsquo;, &amp;lsquo;RT @br_atd: O melhor porco gordo do universo !!!\n\n #WeLoveTheEarth &lt;a href="https://t.co/lJfZkgnkWI%27" target="_blank" rel="noopener">https://t.co/lJfZkgnkWI'&lt;/a>, 1249)&lt;/td>
&lt;td>1&lt;/td>
&lt;td>1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;moarjustln&amp;rsquo;, &amp;ldquo;RT @moarjustln: can&amp;rsquo;t believe we listened to justin&amp;rsquo;s voice after months and I still in love \n#WeLoveTheEarth &lt;a href="https://t.co/JhFRENhOH3%22" target="_blank" rel="noopener">https://t.co/JhFRENhOH3"&lt;/a>, 1216)&lt;/td>
&lt;td>58&lt;/td>
&lt;td>158&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;AGPLOfficial&amp;rsquo;, &amp;lsquo;RT @AGPLOfficial: Nawet gdy jest zebrą, Ariana zawsze serwuje wokal! 🎶 #WeLoveTheEarth \n\nPosłuchaj utworu “Earth” z Arianą Grande i plejadą…&amp;rsquo;, 1152)&lt;/td>
&lt;td>52&lt;/td>
&lt;td>166&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;xmendesly&amp;rsquo;, &amp;lsquo;RT @xmendesly: stream earth by lil dicky\n#WeLoveTheEarth&amp;rsquo;, 1129)&lt;/td>
&lt;td>1&lt;/td>
&lt;td>0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;sourdieselzain&amp;rsquo;, &amp;lsquo;RT @sourdieselzain: “I’m a fat fucking pig” no ja się tu poplacze zaraz \n#WeLoveTheEarth #EarthMusicVideo &lt;a href="https://t.co/tpBQZeRQEh%27" target="_blank" rel="noopener">https://t.co/tpBQZeRQEh'&lt;/a>, 1048)&lt;/td>
&lt;td>34&lt;/td>
&lt;td>99&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;MrtummyV&amp;rsquo;, &amp;lsquo;RT @MrtummyV: This is so cute!! aslskfjdkskskkskak\n#WeLoveTheEarth\n\n &lt;a href="https://t.co/ZKKKNFQ1Wf%27" target="_blank" rel="noopener">https://t.co/ZKKKNFQ1Wf'&lt;/a>, 1005)&lt;/td>
&lt;td>10&lt;/td>
&lt;td>45&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;ringsofmendes&amp;rsquo;, &amp;lsquo;RT @ringsofmendes: głos ari tutaj &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;\n#WeLoveTheEarth &lt;a href="https://t.co/QDBVWZ0aom%27" target="_blank" rel="noopener">https://t.co/QDBVWZ0aom'&lt;/a>, 1005)&lt;/td>
&lt;td>22&lt;/td>
&lt;td>119&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;chimmybby&amp;rsquo;, &amp;lsquo;RT @chimmybby: We Also Love The Sun 🌞\n#WeLoveTheEarth &lt;a href="https://t.co/mh9gfO6Z30%27" target="_blank" rel="noopener">https://t.co/mh9gfO6Z30'&lt;/a>, 1004)&lt;/td>
&lt;td>34&lt;/td>
&lt;td>129&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;PManice&amp;rsquo;, &amp;lsquo;RT @PManice: “I’m a koala and I sleep all the time. So what? It’s cute.” 😍 #WeLoveTheEarth &lt;a href="https://t.co/vyOvLY4bSE%27" target="_blank" rel="noopener">https://t.co/vyOvLY4bSE'&lt;/a>, 979)&lt;/td>
&lt;td>33&lt;/td>
&lt;td>107&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;awanasghena&amp;rsquo;, &amp;lsquo;RT @awanasghena: KATY IN TENDENZA IN ITALIA. PIANGO😭🔥❤️\n#ConCalmaRemix #WeLoveTheEarth &lt;a href="https://t.co/CGnsmSd1gM%27" target="_blank" rel="noopener">https://t.co/CGnsmSd1gM'&lt;/a>, 895)&lt;/td>
&lt;td>7&lt;/td>
&lt;td>14&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;opssmymendes&amp;rsquo;, &amp;lsquo;RT @opssmymendes: bardzo mi się podoba to, że można kupić merch i pieniądze z tego idą na ratowanie naszej planety #WeLoveTheEarth&amp;rsquo;, 849)&lt;/td>
&lt;td>1&lt;/td>
&lt;td>2&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;opssmymendes&amp;rsquo;, &amp;lsquo;RT @opssmymendes: warto sobie wejść na stronę &lt;a href="https://t.co/JyL7e4jrbv" target="_blank" rel="noopener">https://t.co/JyL7e4jrbv&lt;/a> i poczytać o co chodzi z każdym zwierzęciem #WeLoveTheEarth&amp;rsquo;, 849)&lt;/td>
&lt;td>84&lt;/td>
&lt;td>112&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;rsquo;&lt;em>Sunfflower&lt;/em>&amp;rsquo;, &amp;lsquo;RT @&lt;em>Sunfflower&lt;/em>: TA PIOSENKA TO ZŁOTO I DIAMENTY\nOby jej przekaz nie skończył się tylko tylko na tym, że ludzie będą ją kojarzyli, bo spok…&amp;rsquo;, 784)&lt;/td>
&lt;td>164&lt;/td>
&lt;td>480&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;jaguareffects&amp;rsquo;, &amp;lsquo;RT @jaguareffects: eu prestando atenção no áudio pra identificar cada artista\n\n#WeLoveTheEarth &lt;a href="https://t.co/0cDtiV2t1E%27" target="_blank" rel="noopener">https://t.co/0cDtiV2t1E'&lt;/a>, 771)&lt;/td>
&lt;td>253&lt;/td>
&lt;td>380&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;cerberusgrande&amp;rsquo;, &amp;lsquo;RT @cerberusgrande: wszyscy mówią jak bardzo chcieliby usłyszeć biebera i ariane (same), ale ja bym chciała usłyszeć ariana x halsey, którą…&amp;rsquo;, 759)&lt;/td>
&lt;td>3&lt;/td>
&lt;td>7&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;suplisamanobal&amp;rsquo;, &amp;lsquo;RT @suplisamanobal: Not blackpink related but Lil dicky x justin bieber, ft ariana grande, and shawn mendes, also charlie puth, and sia and…&amp;rsquo;, 740)&lt;/td>
&lt;td>2&lt;/td>
&lt;td>6&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;Yuuupthatsme&amp;rsquo;, &amp;lsquo;RT @Yuuupthatsme: Jestem pod wrażeniem, że lil dicky był w stanie pokazać tak poważny problem w taki przyjemny sposób\n#WeLoveTheEarth&amp;rsquo;, 669)&lt;/td>
&lt;td>464&lt;/td>
&lt;td>1256&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;Yuuupthatsme&amp;rsquo;, &amp;lsquo;RT @Yuuupthatsme: TEGO SIĘ NIE SPODZIEWAŁAM XD\n#WeLoveTheEarth &lt;a href="https://t.co/VuhRNdhcV7%27" target="_blank" rel="noopener">https://t.co/VuhRNdhcV7'&lt;/a>, 669)&lt;/td>
&lt;td>70&lt;/td>
&lt;td>316&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;Yuuupthatsme&amp;rsquo;, &amp;lsquo;RT @Yuuupthatsme: Miałeś być żyrafą #WeLoveTheEarth &lt;a href="https://t.co/0kNCpU8o6q%27" target="_blank" rel="noopener">https://t.co/0kNCpU8o6q'&lt;/a>, 669)&lt;/td>
&lt;td>8&lt;/td>
&lt;td>56&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;rsquo;thremptyworlds&amp;rsquo;, &amp;lsquo;RT @thremptyworlds: piosenka jest cudowna, tylko brakuje mi takiego momentu w ktorym wszyscy razem zaspiewaliby refren&amp;hellip; #WeLoveTheEarth&amp;rsquo;, 629)&lt;/td>
&lt;td>55&lt;/td>
&lt;td>215&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;rsquo;typicalbizzzle&amp;rsquo;, &amp;lsquo;RT @typicalbizzzle: This song and music video had such a powerful and great message it. It’s a wake up call for the whole woltd to get the…&amp;rsquo;, 601)&lt;/td>
&lt;td>694&lt;/td>
&lt;td>1116&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;rsquo;liveforshawn02&amp;rsquo;, &amp;lsquo;RT @liveforshawn02: This is one of the most beautiful concepts for a video ever! I’m so proud and thankful of @shawnmendes❤️ @lildickytweet…&amp;rsquo;, 578)&lt;/td>
&lt;td>1&lt;/td>
&lt;td>3&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;aurelialmao&amp;rsquo;, &amp;lsquo;RT @aurelialmao: Uważam, że tą piosenkę powinni znać wszyscy, bo może wtedy kogoś ruszy stan naszej planety #EarthMusicVideo #WeLoveTheEarth&amp;rsquo;, 572)&lt;/td>
&lt;td>1&lt;/td>
&lt;td>2&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;jaileystation&amp;rsquo;, &amp;lsquo;RT @jaileystation: PERO USTEDES ESCUCHARON A ED SHEERAN SIENDO EL KOALA MAS TIERNO QUE EXISTE #WeLoveTheEarth &lt;a href="https://t.co/UvmXmy5E1C%27" target="_blank" rel="noopener">https://t.co/UvmXmy5E1C'&lt;/a>, 546)&lt;/td>
&lt;td>332&lt;/td>
&lt;td>852&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;athenajasvier&amp;rsquo;, &amp;lsquo;RT @athenajasvier: lil dicky is amazing #WeLoveTheEarth&amp;rsquo;, 546)&lt;/td>
&lt;td>2&lt;/td>
&lt;td>0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;rsquo;llostinmyouth&amp;rsquo;, &amp;lsquo;RT @llostinmyouth: Ed versione koala è il mio stile di vita dal lunedì alla domenica #WeLoveTheEarth &lt;a href="https://t.co/MbhaMaVaRD%27" target="_blank" rel="noopener">https://t.co/MbhaMaVaRD'&lt;/a>, 520)&lt;/td>
&lt;td>11&lt;/td>
&lt;td>34&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;MercurySimons&amp;rsquo;, &amp;ldquo;RT @MercurySimons: everybody should be listening to this masterpiece, the planet really needs our help and it shouldn&amp;rsquo;t take a song with a…&amp;rdquo;, 516)&lt;/td>
&lt;td>275&lt;/td>
&lt;td>489&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;realestbeach&amp;rsquo;, &amp;lsquo;RT @realestbeach: if y’all love the earth, start acting like it. pollution is real and y’all need to start taking it seriously!! #WeLoveTh…&amp;rsquo;, 504)&lt;/td>
&lt;td>354&lt;/td>
&lt;td>681&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;Piatt_Futuro&amp;rsquo;, &amp;lsquo;RT @Piatt_Futuro: Edilizia motore di rigenerazione urbana. #4future #19aprile #fridaysforfuture ☀️ #WeLoveTheEarth\nhttps://t.co/TdVCrj86L8&amp;rsquo;, 427)&lt;/td>
&lt;td>4&lt;/td>
&lt;td>5&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;Piatt_Futuro&amp;rsquo;, &amp;lsquo;RT @Piatt_Futuro: Il nostro &amp;ldquo;ius soli&amp;rdquo;:\xa0 terra, suolo e prodotti agricoli 🇮🇹 nel mondo. #4future #19aprile #fridaysforfuture ☀️ #WeLoveTheE…&amp;rsquo;, 427)&lt;/td>
&lt;td>2&lt;/td>
&lt;td>4&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;Piatt_Futuro&amp;rsquo;, &amp;ldquo;RT @Piatt_Futuro: L&amp;rsquo;ambiente è la leva dello sviluppo economico. #4future #19aprile #fridaysforfuture\n#WeLoveTheEarth\nhttps://t.co/TdVCrj86…&amp;rdquo;, 427)&lt;/td>
&lt;td>5&lt;/td>
&lt;td>5&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;Piatt_Futuro&amp;rsquo;, &amp;ldquo;RT @Piatt_Futuro: La persona al centro, l&amp;rsquo;ambiente intorno. #4future #19aprile ☀️ #fridaysforfuture #WeLoveTheEarth\nhttps://t.co/TdVCrj86L8&amp;rdquo;, 427)&lt;/td>
&lt;td>4&lt;/td>
&lt;td>6&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;Piatt_Futuro&amp;rsquo;, &amp;lsquo;RT @Piatt_Futuro: Meno gomma, più ferro: trasporti veloci sicuri e non inquinanti. #4future #19aprile #fridaysforfuture ☀️ #WeLoveTheEarth…&amp;rsquo;, 427)&lt;/td>
&lt;td>5&lt;/td>
&lt;td>6&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;Piatt_Futuro&amp;rsquo;, &amp;lsquo;RT @Piatt_Futuro: Riscaldamento globale: soluzioni, non fake news! #4future #19aprile #fridaysforfuture ☀️ #WeLoveTheEarth\nhttps://t.co/TdV…&amp;rsquo;, 427)&lt;/td>
&lt;td>12&lt;/td>
&lt;td>12&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;Piatt_Futuro&amp;rsquo;, &amp;ldquo;RT @Piatt_Futuro: Più mercato e concorrenza per l&amp;rsquo;accesso di tutti\xa0 all&amp;rsquo;acqua, meno sprechi e inefficienze. #4future #19aprile #fridaysforf…&amp;rdquo;, 427)&lt;/td>
&lt;td>1&lt;/td>
&lt;td>1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;Piatt_Futuro&amp;rsquo;, &amp;ldquo;RT @Piatt_Futuro: Un grande sconto fiscale per l&amp;rsquo;ambiente! #4future #19aprile #fridaysforfuture ☀️ #WeLoveTheEarth\nhttps://t.co/TdVCrj86L8&amp;rdquo;, 427)&lt;/td>
&lt;td>4&lt;/td>
&lt;td>6&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;Piatt_Futuro&amp;rsquo;, &amp;lsquo;RT @Piatt_Futuro: Riciclo riuso e termocombustori: Italia pulita, meno malavita. #4future #19aprile #fridaysforfuture ☀️\n#WeLoveTheEarth\nht…&amp;rsquo;, 427)&lt;/td>
&lt;td>4&lt;/td>
&lt;td>8&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;vanessaibanez*&amp;rsquo;, &amp;lsquo;RT @vanessaibanez*: artists using their platform to spread awareness, kudos!! stream the song #WeLoveTheEarth &lt;a href="https://t.co/nID21ksupN%27" target="_blank" rel="noopener">https://t.co/nID21ksupN'&lt;/a>, 416)&lt;/td>
&lt;td>1&lt;/td>
&lt;td>1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;Adryelli_Godoi&amp;rsquo;, &amp;lsquo;RT @Adryelli_Godoi: Justin/ Babuíno: Nós vamos morrer?!\nLil Dicky: Sabe, Bieber nós podemos morrer. Eu não vou mentir pra você. Há muitas p…&amp;rsquo;, 387)&lt;/td>
&lt;td>629&lt;/td>
&lt;td>1095&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;fayessflatline&amp;rsquo;, &amp;lsquo;RT @fayessflatline: This is some true shit #WeLoveTheEarth &lt;a href="https://t.co/MLYY7v3JAL%27" target="_blank" rel="noopener">https://t.co/MLYY7v3JAL'&lt;/a>, 381)&lt;/td>
&lt;td>8220&lt;/td>
&lt;td>16514&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;brian_prism&amp;rsquo;, &amp;lsquo;RT @brian_prism: #ConCalmaRemix &amp;amp; #WeLoveTheEarth\xa0 Tonight🔥 &lt;a href="https://t.co/EjQbaYZYmu%27" target="_blank" rel="noopener">https://t.co/EjQbaYZYmu'&lt;/a>, 348)&lt;/td>
&lt;td>16&lt;/td>
&lt;td>22&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;Clausbelieberj&amp;rsquo;, &amp;lsquo;RT @Clausbelieberj: progetto meraviglioso, vederlo mi ha emozionata.\ncoinvolgere così tanti artisti per un buona causa è una cosa bellissim…&amp;rsquo;, 337)&lt;/td>
&lt;td>14&lt;/td>
&lt;td>68&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;ver0017&amp;rsquo;, &amp;lsquo;RT @ver0017: oni doskonale wiedzą, że handwritten przyczyniło się do uratowania naszej planety #WeLoveTheEarth &lt;a href="https://t.co/XF0JvxrerA%27" target="_blank" rel="noopener">https://t.co/XF0JvxrerA'&lt;/a>, 288)&lt;/td>
&lt;td>9&lt;/td>
&lt;td>42&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;ver0017&amp;rsquo;, &amp;lsquo;RT @ver0017: ciekawi mnie na jakiej podstawie dobierali zwierzęta do artystów 😂🤔 #WeLoveTheEarth&amp;rsquo;, 288)&lt;/td>
&lt;td>1&lt;/td>
&lt;td>2&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;dsakrv&amp;rsquo;, &amp;lsquo;RT @dsakrv: Lil Dicky - Earth (Official Music Video) &lt;a href="https://t.co/M5TtrumWYQ" target="_blank" rel="noopener">https://t.co/M5TtrumWYQ&lt;/a> via @YouTube #WeLoveTheEarth&amp;rsquo;, 239)&lt;/td>
&lt;td>1&lt;/td>
&lt;td>1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;CelebrityArticl&amp;rsquo;, &amp;lsquo;RT @CelebrityArticl: #ArianaGrande Opens Up About the Darkish Facet of Performing Her New #music “It Is Hell” #Singer #CelebrityNews #WeLov…&amp;rsquo;, 217)&lt;/td>
&lt;td>3&lt;/td>
&lt;td>2&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;Ws_Vinicius&amp;rsquo;, &amp;lsquo;RT @Ws_Vinicius: O Brasil não foi esquecido no churrasco, Rio representando manooo, com os vocais da Ariana de fundo. QUE HINOOOOOOOO EU AM…&amp;rsquo;, 215)&lt;/td>
&lt;td>224&lt;/td>
&lt;td>516&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;sevenyearsbiebs&amp;rsquo;, &amp;lsquo;RT @sevenyearsbiebs: oby wiadomość zawarta w piosence trafiła do dużej ilości osób, może dzięki temu świat zacznie się zmieniać na lepsze…&amp;rsquo;, 214)&lt;/td>
&lt;td>546&lt;/td>
&lt;td>1083&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;ShawnDailyJP&amp;rsquo;, &amp;lsquo;RT @ShawnDailyJP: Lil Dickyの新曲・チャリティーソング「Earth」\nアリアナ・ジャスティン・カニエら名だたるアーティスト達と共にショーンも参加してます。\n是非聴いてみて下さい。\n#WeLoveTheEarth \nhttps://t.co/CKUtq0…&amp;rsquo;, 199)&lt;/td>
&lt;td>1&lt;/td>
&lt;td>6&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;Joprojekt&amp;rsquo;, &amp;ldquo;RT @Joprojekt: #WeLoveTheEarth Dire que #LinkinPark a écrit deux albums magnifiques sur l&amp;rsquo;environnement (pas seulement) #AThousandSuns et #…&amp;rdquo;, 182)&lt;/td>
&lt;td>1&lt;/td>
&lt;td>3&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;justinsmiIxs&amp;rsquo;, &amp;lsquo;RT @justinsmiIxs: &amp;ldquo;Ya sé que no todos somos iguales, pero vivimos en la misma tierra&amp;rdquo; \n&amp;rdquo;¿Vamos a morir?&amp;rdquo; \n&amp;quot;Sabes Bieber? No te voy a menti…&amp;rsquo;, 171)&lt;/td>
&lt;td>530&lt;/td>
&lt;td>762&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;jujustinbieeber&amp;rsquo;, &amp;lsquo;RT @jujustinbieeber: Que la canción y el video no se quede solo un momento y creamos conciencia del daño que hacemos a los animales, al pla…&amp;rsquo;, 167)&lt;/td>
&lt;td>115&lt;/td>
&lt;td>178&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;sgxjbstylesoft&amp;rsquo;, &amp;lsquo;RT @sgxjbstylesoft: la voz de todos esos artistas tan talentosos ha quedado perfecta, amo que se hayan juntando para dejar ese mensaje tan…&amp;rsquo;, 156)&lt;/td>
&lt;td>2&lt;/td>
&lt;td>1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;jestemzajeta&amp;rsquo;, &amp;lsquo;RT @jestemzajeta: uzbierane pieniądze trafiają na fundację Leonardo DiCaprio, która ratuje naszą planetę \n#WeLoveTheEarth&amp;rsquo;, 143)&lt;/td>
&lt;td>504&lt;/td>
&lt;td>1218&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;jestemzajeta&amp;rsquo;, &amp;lsquo;RT @jestemzajeta: Shawn jest nosorożecem\nHalsey lwiątkiem\nCharlie Puth żyrafą\nEd Sheeran koalą\nSia kangurem \nmiley słoniem \nAriana zebrą \nK…&amp;rsquo;, 143)&lt;/td>
&lt;td>126&lt;/td>
&lt;td>408&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;itszGabbs&amp;rsquo;, &amp;lsquo;RT @itszGabbs: OUÇAM EARTH! O clipe é o incrível, a música mais ainda e todo dinheiro arrecadado com a música será doado para a instituição…&amp;rsquo;, 105)&lt;/td>
&lt;td>72&lt;/td>
&lt;td>105&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;Clem_rocher&amp;rsquo;, &amp;lsquo;RT @Clem_rocher: Justin Bieber, Ariana Grande, Wiz Khalifa, Shawn Mendes, Ed Sheeran, Rita Ora&amp;hellip; de nombreux artistes se mobilisent autour…&amp;rsquo;, 99)&lt;/td>
&lt;td>30&lt;/td>
&lt;td>54&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;OursPooh&amp;rsquo;, &amp;lsquo;RT @OursPooh: we love the earth, it is our planet\nwe love the earth, it is our home #WeLoveTheEarth &lt;a href="https://t.co/NXUhU758uQ%27" target="_blank" rel="noopener">https://t.co/NXUhU758uQ'&lt;/a>, 98)&lt;/td>
&lt;td>85&lt;/td>
&lt;td>263&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;soulsfiend&amp;rsquo;, &amp;lsquo;RT @soulsfiend: mais les gens qui sont là à se plaindre «\xa0gngngn j’aime pas la chanson\xa0» vous pouvez connecter vos 2 neurones 2 secondes ?…&amp;rsquo;, 82)&lt;/td>
&lt;td>24&lt;/td>
&lt;td>35&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;introandrew&amp;rsquo;, &amp;lsquo;RT @introandrew: #WeLoveTheEarth é un progetto molto importante,oltre ad essere una canzone,vuole lanciare un messaggio,il SALVARE LA TERRA…&amp;rsquo;, 81)&lt;/td>
&lt;td>53&lt;/td>
&lt;td>119&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;rsquo;twentysevenmoon&amp;rsquo;, &amp;lsquo;RT @twentysevenmoon: i recommend you guys go watch Our Planet on netflix. it made me cry and i hope it motivates you to take action on savi…&amp;rsquo;, 75)&lt;/td>
&lt;td>106&lt;/td>
&lt;td>274&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;camillazambett2&amp;rsquo;, &amp;lsquo;RT @camillazambett2: Spero che con questa collaborazione arrivi a tutti il messaggio di salvare la Terra!🌍❤️\n #WeLoveTheEarth &lt;a href="https://t.co/" target="_blank" rel="noopener">https://t.co/&lt;/a>…&amp;rsquo;, 74)&lt;/td>
&lt;td>3&lt;/td>
&lt;td>0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;bemybizzle*&amp;rsquo;, &amp;ldquo;RT @bemybizzle*: Justin and Ariana they both sounds so damn good it&amp;rsquo;s just wow !!!!\n#WeLoveTheEarth &lt;a href="https://t.co/9aRwrD6i9J%22" target="_blank" rel="noopener">https://t.co/9aRwrD6i9J"&lt;/a>, 67)&lt;/td>
&lt;td>762&lt;/td>
&lt;td>1911&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;xjbtalentedx&amp;rsquo;, &amp;lsquo;RT @xjbtalentedx: Yo podría ver y ver éste vídeo nunca me aburriría&amp;hellip; ♡\n\n#WeLoveTheEarth &lt;a href="https://t.co/HdLb55CNcA%27" target="_blank" rel="noopener">https://t.co/HdLb55CNcA'&lt;/a>, 58)&lt;/td>
&lt;td>63&lt;/td>
&lt;td>171&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;rsquo;&lt;strong>alfredo30&lt;/strong>&amp;rsquo;, &amp;lsquo;RT @&lt;strong>alfredo30&lt;/strong>: Questa canzone è bellissima.\nSperiamo riesca a sensibilizzare più persone possibili su questo enorme pericolo 🌍\n#WeLoveT…&amp;rsquo;, 55)&lt;/td>
&lt;td>4&lt;/td>
&lt;td>7&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;protectmayne&amp;rsquo;, &amp;lsquo;RT @protectmayne: Earth se tornou minha música preferida junto com o clipe \nisso simplesmente por passar uma mensagem forte pra gente, eu e…&amp;rsquo;, 40)&lt;/td>
&lt;td>294&lt;/td>
&lt;td>562&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;fabiannn&lt;em>&lt;strong>29&amp;rsquo;, &amp;lsquo;RT @fabiannn&lt;/strong>&lt;/em>29: Me encantaría tanto que esta canción fuera #1 no solo en USA o UK si no en muchos países del mundo. Ojalá que le den el…&amp;rsquo;, 37)&lt;/td>
&lt;td>5&lt;/td>
&lt;td>8&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;4miraizat&amp;rsquo;, &amp;lsquo;RT @4miraizat: ed sheeran(and koala) is my spirit animal #WeLoveTheEarth &lt;a href="https://t.co/VYTPuAajM6%27" target="_blank" rel="noopener">https://t.co/VYTPuAajM6'&lt;/a>, 28)&lt;/td>
&lt;td>68&lt;/td>
&lt;td>181&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;LILG96958980&amp;rsquo;, &amp;lsquo;RT @LILG96958980: Me on my way to save the earth after bobbing to the song for a straight hour \n#WeLoveTheEarth &lt;a href="https://t.co/94g0N2SLBM%27" target="_blank" rel="noopener">https://t.co/94g0N2SLBM'&lt;/a>, 24)&lt;/td>
&lt;td>1224&lt;/td>
&lt;td>3448&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;KeyNarumi&amp;rsquo;, &amp;lsquo;RT @KeyNarumi: Ini keren sumpah. Pesannya tuh bener bikin lo mikir apa aja yg udah lo lakuin untuk Bumi Kita dengan visual yang menyenangka…&amp;rsquo;, 18)&lt;/td>
&lt;td>1&lt;/td>
&lt;td>0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;Yuberli_Rosario&amp;rsquo;, &amp;lsquo;RT @Yuberli_Rosario: “Todos estos tiroteos, la contaminación. Nos atacamos a nosotros mismos. Vamos a relajarnos, respeta lo que construimo…&amp;rsquo;, 17)&lt;/td>
&lt;td>24&lt;/td>
&lt;td>54&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;bieber_najaFC&amp;rsquo;, &amp;lsquo;RT @bieber_najaFC: Com o coração quentinho depois de ver que realmente tem pessoas que se importam com o nosso planeta. #WeLoveTheEarth htt…&amp;rsquo;, 14)&lt;/td>
&lt;td>26&lt;/td>
&lt;td>69&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;khaliqhaiqal*&amp;rsquo;, &amp;lsquo;RT @khaliqhaiqal*: Marvel : &amp;ldquo;Avengers Endgame is gonna be the most ambitious crossover event in history&amp;rdquo;\n\nLil Dicky : &lt;em>hold my beer&lt;/em>\n@lildi…&amp;rsquo;, 13)&lt;/td>
&lt;td>2151&lt;/td>
&lt;td>5487&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;martyydg&amp;rsquo;, &amp;lsquo;RT @martyydg: Semplicemente MERAVIGLIOSO #WeLoveTheEarth &lt;a href="https://t.co/m6I2J2soEe%27" target="_blank" rel="noopener">https://t.co/m6I2J2soEe'&lt;/a>, 12)&lt;/td>
&lt;td>2&lt;/td>
&lt;td>2&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;biebermylife946&amp;rsquo;, &amp;lsquo;RT @biebermylife946: Salviamo il posto in cui viviamo,acquistando la canzone daremo una speranza. #WeLoveTheEarth &lt;a href="https://t.co/6OmM8oAvhG%27" target="_blank" rel="noopener">https://t.co/6OmM8oAvhG'&lt;/a>, 12)&lt;/td>
&lt;td>2&lt;/td>
&lt;td>2&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>(&amp;lsquo;Malikjvvd&amp;rsquo;, &amp;lsquo;RT @Malikjvvd: Uwuuu uwuuuuuu\n#WeLoveTheEarth &lt;a href="https://t.co/WtVzUrVJW1%27" target="_blank" rel="noopener">https://t.co/WtVzUrVJW1'&lt;/a>, 1)&lt;/td>
&lt;td>64&lt;/td>
&lt;td>208&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/details>
&lt;h2 id="9-analyzing-used-languages">9. Analyzing used languages&lt;/h2>
&lt;p>🕵️‍♀️ Our table tells us that:&lt;/p>
&lt;ul>
&lt;li>Lil Dicky's followers reacted the most — 42.4% of his followers liked his first tweet. &lt;/li>
&lt;li>Even if celebrities like Katy Perry and Ellen have a huuge Twitter following, their followers hardly reacted, e.g., only 0.0098% of Katy's followers liked her tweet. &lt;/li>
&lt;li>While Leo got the most likes and retweets in terms of counts, his first tweet was only liked by 2.19% of his followers. &lt;/li>
&lt;/ul>
&lt;p>The large differences in reactions could be explained by the fact that this was Lil Dicky's music video. Leo still got more traction than Katy or Ellen because he played some major role in this initiative.&lt;/p>
&lt;hr>
&lt;p>Can we find some more interesting patterns in the data? From the text of the tweets, we could spot different languages, so let's create a frequency distribution for the languages.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Extracting language for each tweet and appending it to the list of languages&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">tweets_languages&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">for&lt;/span> &lt;span class="n">tweet&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">tweets&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">tweets_languages&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">append&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">tweet&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s1">&amp;#39;lang&amp;#39;&lt;/span>&lt;span class="p">])&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Plotting the distribution of languages&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">%&lt;/span>&lt;span class="n">matplotlib&lt;/span> &lt;span class="n">inline&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">plt&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">hist&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">tweets_languages&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;details>
&lt;summary>Expand Output&lt;/summary>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-js" data-lang="js">&lt;span class="line">&lt;span class="cl"> &lt;span class="p">(&lt;/span>&lt;span class="nx">array&lt;/span>&lt;span class="p">([&lt;/span>&lt;span class="mf">303.&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mf">107.&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mf">22.&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mf">14.&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mf">36.&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mf">32.&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mf">3.&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mf">2.&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mf">1.&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mf">2.&lt;/span>&lt;span class="p">]),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nx">array&lt;/span>&lt;span class="p">([&lt;/span> &lt;span class="mf">0.&lt;/span> &lt;span class="p">,&lt;/span> &lt;span class="mf">1.3&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mf">2.6&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mf">3.9&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mf">5.2&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mf">6.5&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mf">7.8&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mf">9.1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mf">10.4&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mf">11.7&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mf">13.&lt;/span> &lt;span class="p">]),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">&amp;lt;&lt;/span>&lt;span class="nx">BarContainer&lt;/span> &lt;span class="nx">object&lt;/span> &lt;span class="k">of&lt;/span> &lt;span class="mi">10&lt;/span> &lt;span class="nx">artists&lt;/span>&lt;span class="o">&amp;gt;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/details>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img src="https://user-images.githubusercontent.com/20341930/208673519-9d6a6445-e044-454e-81c8-dd6ed2690fa0.png" alt="png" loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;h2 id="10-final-thoughts">10. Final thoughts&lt;/h2>
&lt;p>🕵️‍♀️ The last histogram tells us that:&lt;/p>
&lt;ul>
&lt;li>Most of the tweets were in English.&lt;/li>
&lt;li>Polish, Italian and Spanish were the next runner-ups. &lt;/li>
&lt;li>There were a lot of tweets with a language alien to Twitter (lang = 'und'). &lt;/li>
&lt;/ul>
&lt;p>Why is this sort of information useful? Because it can allow us to get an understanding of the "category" of people interested in this topic (clustering). &lt;/p>
&lt;p>&lt;img src="languages-world-map.png" style="width: 500px">&lt;/p>
&lt;hr>
&lt;p>&lt;span style="color:#41859e">
What an exciting journey it has been! We started almost clueless, and here we are.. rich in insights. &lt;/span>&lt;/p>
&lt;p>&lt;span style="color:#41859e">
From location based comparisons to analyzing the activity around a tweet to finding patterns from languages and devices, we have covered a lot today — let's give ourselves &lt;b>a well-deserved pat on the back!&lt;/b> ✋
&lt;/span>
&lt;br>&lt;br>&lt;/p>
&lt;div style="text-align: center;color:#41859e">&lt;b>&lt;i>Magic Formula = Data + Python + Creativity + Curiosity&lt;/i>&lt;/b>&lt;/div>
&lt;p>&lt;img src="finish-line.jpg" style="width: 500px">&lt;/p>
&lt;p>&lt;strong>"Does owning an Apple compared to Andorid influences people's propensity towards this trend?"&lt;/strong>&lt;/p>
&lt;li>From the looks of the current tweet trends, we see more tweets from iPhone than Android.&lt;/li>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="n">device_os&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">for&lt;/span> &lt;span class="n">tweet&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">tweets&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="s1">&amp;#39;android&amp;#39;&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">tweet&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s1">&amp;#39;source&amp;#39;&lt;/span>&lt;span class="p">]:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">os&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s1">&amp;#39;Android&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">else&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">os&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s1">&amp;#39;iPhone&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">device_os&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">append&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">os&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Plotting the distribution of languages&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">%&lt;/span>&lt;span class="n">matplotlib&lt;/span> &lt;span class="n">inline&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">d&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">Counter&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">device_os&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">plt&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">bar&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">d&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">keys&lt;/span>&lt;span class="p">(),&lt;/span>&lt;span class="n">d&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">values&lt;/span>&lt;span class="p">())&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img src="https://user-images.githubusercontent.com/20341930/208673533-9a274a0c-7f7b-4912-937b-e1c7ba4c37c6.png" alt="png" loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p></description></item><item><title>Book Recommendations engine from Charles Darwin</title><link>https://deploy-preview-6--kishan-mistri.netlify.app/post/book-recommendations-engine-from-charles-darwin/</link><pubDate>Wed, 28 Sep 2022 13:04:04 +0000</pubDate><guid>https://deploy-preview-6--kishan-mistri.netlify.app/post/book-recommendations-engine-from-charles-darwin/</guid><description>&lt;h2 id="1-darwins-bibliography">1. Darwin&amp;rsquo;s bibliography&lt;/h2>
&lt;p>&lt;img src="charles-darwin.jpg" alt="Charles Darwin" width="300px">&lt;/p>
&lt;p>Charles Darwin is one of the few universal figures of science. His most renowned work is without a doubt his "&lt;em>On the Origin of Species&lt;/em>" published in 1859 which introduced the concept of natural selection. But Darwin wrote many other books on a wide range of topics, including geology, plants or his personal life. In this notebook, we will automatically detect how closely related his books are to each other.&lt;/p>
&lt;p>To this purpose, we will develop the bases of &lt;strong>a content-based book recommendation system&lt;/strong>, which will determine which books are close to each other based on how similar the discussed topics are. The methods we will use are commonly used in text- or documents-heavy industries such as legal, tech or customer support to perform some common task such as text classification or handling search engine queries.&lt;/p>
&lt;p>Let's take a look at the books we'll use in our recommendation system.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Import library&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">glob&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># The books files are contained in this folder&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">folder&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;datasets/&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># List all the .txt files and sort them alphabetically&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">files&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">glob&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">glob&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">folder&lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="s1">&amp;#39;*.txt&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">recursive&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="kc">True&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">files&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;code>﻿`` ['datasets/Autobiography.txt', 'datasets/CoralReefs.txt', 'datasets/DescentofMan.txt', 'datasets/DifferentFormsofFlowers.txt', 'datasets/EffectsCrossSelfFertilization.txt', 'datasets/ExpressionofEmotionManAnimals.txt', 'datasets/FormationVegetableMould.txt', 'datasets/FoundationsOriginofSpecies.txt', 'datasets/GeologicalObservationsSouthAmerica.txt', 'datasets/InsectivorousPlants.txt', 'datasets/LifeandLettersVol1.txt', 'datasets/LifeandLettersVol2.txt', 'datasets/MonographCirripedia.txt', 'datasets/MonographCirripediaVol2.txt', 'datasets/MovementClimbingPlants.txt', 'datasets/OriginofSpecies.txt', 'datasets/PowerMovementPlants.txt', 'datasets/VariationPlantsAnimalsDomestication.txt', 'datasets/VolcanicIslands.txt', 'datasets/VoyageBeagle.txt'] &lt;/code>﻿``&lt;/p>
&lt;h2 id="2-load-the-contents-of-each-book-into-python">2. Load the contents of each book into Python&lt;/h2>
&lt;p>As a first step, we need to load the content of these books into Python and do some basic pre-processing to facilitate the downstream analyses. We call such a collection of texts &lt;strong>a corpus&lt;/strong>. We will also store the titles for these books for future reference and print their respective length to get a gauge for their contents.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Import libraries&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">re&lt;/span>&lt;span class="o">,&lt;/span> &lt;span class="nn">os&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Initialize the object that will contain the texts and titles&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">txts&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">titles&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">T&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kc">True&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">for&lt;/span> &lt;span class="n">n&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">files&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Open each file&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">f&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nb">open&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">encoding&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;utf-8-sig&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Remove all non-alpha-numeric characters&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">filtered&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">re&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">sub&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;[\W_]+&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39; &amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">f&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">read&lt;/span>&lt;span class="p">())&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Store the texts and titles of the books in two separate lists&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">txts&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">append&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">filtered&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">titles&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">append&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">os&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">path&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">basename&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">replace&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;.txt&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;&amp;#34;&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Print the length, in characters, of each book&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">[&lt;/span>&lt;span class="nb">len&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">t&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">t&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">txts&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;code>﻿`` [123231, 496068, 1776539, 617088, 913713, 624232, 335920, 523021, 797401, 901406, 1047518, 1010643, 767492, 1660866, 298319, 916267, 1093567, 1043499, 341447, 1149574] &lt;/code>﻿``&lt;/p>
&lt;h2 id="3-find-on-the-origin-of-species">3. Find &amp;ldquo;On the Origin of Species&amp;rdquo;&lt;/h2>
&lt;p>For the next parts of this analysis, we will often check the results returned by our method for a given book. For consistency, we will refer to Darwin's most famous book: "&lt;em>On the Origin of Species&lt;/em>." Let's find to which index this book is associated.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Browse the list containing all the titles&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># print(titles[:2])&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">ori&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">0&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">for&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="nb">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">len&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">titles&lt;/span>&lt;span class="p">)):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Store the index if the title is &amp;#34;OriginofSpecies&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">titles&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">i&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="s1">&amp;#39;OriginofSpecies&amp;#39;&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ori&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">i&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Print the stored index&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">ori&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-fallback" data-lang="fallback">&lt;span class="line">&lt;span class="cl"> 15
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">`﻿``
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">## 4. Tokenize the corpus
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&amp;lt;p&amp;gt;As a next step, we need to transform the corpus into a format that is easier to deal with for the downstream analyses. We will tokenize our corpus, i.e., transform each text into a list of the individual words (called tokens) it is made of. To check the output of our process, we will print the first 20 tokens of &amp;#34;&amp;lt;em&amp;gt;On the Origin of Species&amp;lt;/em&amp;gt;&amp;#34;.&amp;lt;/p&amp;gt;
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">```python
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># Define a list of stop words
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">stoplist = set(&amp;#39;for a of the and to in to be which some is at that we i who whom show via may my our might as well&amp;#39;.split())
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># Convert the text to lower case
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">txts_lower_case = [txt.lower() for txt in txts]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># Transform the text into tokens
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">txts_split = [txt.split() for txt in txts_lower_case]
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># Remove tokens which are part of the list of stop words
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">texts = []
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">for txts in txts_split:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> temp = []
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> for token in txts:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> if token not in stoplist:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> temp.append(token)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> texts.append(temp)
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"># Print the first 20 tokens for the &amp;#34;On the Origin of Species&amp;#34; book
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">print(texts[ori][:20])
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;code>﻿`` ['on', 'origin', 'species', 'but', 'with', 'regard', 'material', 'world', 'can', 'least', 'go', 'so', 'far', 'this', 'can', 'perceive', 'events', 'are', 'brought', 'about'] &lt;/code>﻿``&lt;/p>
&lt;h2 id="5-stemming-of-the-tokenized-corpus">5. Stemming of the tokenized corpus&lt;/h2>
&lt;p>If you have read &lt;em>On the Origin of Species&lt;/em>, you will have noticed that Charles Darwin can use different words to refer to a similar concept. For example, the concept of selection can be described by words such as &lt;em>selection&lt;/em>, &lt;em>selective&lt;/em>, &lt;em>select&lt;/em> or &lt;em>selects&lt;/em>. This will dilute the weight given to this concept in the book and potentially bias the results of the analysis.&lt;/p>
&lt;p>To solve this issue, it is a common practice to use a &lt;strong>stemming process&lt;/strong>, which will group together the inflected forms of a word so they can be analysed as a single item: &lt;strong>the stem&lt;/strong>. In our &lt;em>On the Origin of Species&lt;/em> example, the words related to the concept of selection would be gathered under the &lt;em>select&lt;/em> stem.&lt;/p>
&lt;p>As we are analysing 20 full books, the stemming algorithm can take several minutes to run and, in order to make the process faster, we will directly load the final results from a pickle file and review the method used to generate it.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">pickle&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Load the Porter stemming function from the nltk package&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># from nltk.stem import PorterStemmer&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Create an instance of a PorterStemmer object&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># porter = PorterStemmer()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># For each token of each text, we generated its stem &lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># texts_stem = [[porter.stem(token) for token in text] for text in texts]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Save to pickle file&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># pickle.dump(texts_stem, open(&amp;#34;datasets/texts_stem.p&amp;#34;, &amp;#34;wb&amp;#34; ))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Load the stemmed tokens list from the pregenerated pickle file&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">texts_stem&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">pickle&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">load&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">open&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;datasets/texts_stem.p&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;rb&amp;#39;&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Print the 20 first stemmed tokens from the &amp;#34;On the Origin of Species&amp;#34; book&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">texts_stem&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">ori&lt;/span>&lt;span class="p">][:&lt;/span>&lt;span class="mi">20&lt;/span>&lt;span class="p">])&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;code>﻿`` ['on', 'origin', 'speci', 'but', 'with', 'regard', 'materi', 'world', 'can', 'least', 'go', 'so', 'far', 'thi', 'can', 'perceiv', 'event', 'are', 'brought', 'about'] &lt;/code>﻿``&lt;/p>
&lt;h2 id="6-building-a-bag-of-words-model">6. Building a bag-of-words model&lt;/h2>
&lt;p>Now that we have transformed the texts into stemmed tokens, we need to build models that will be useable by downstream algorithms.&lt;/p>
&lt;p>First, we need to will create a universe of all words contained in our corpus of Charles Darwin's books, which we call &lt;em>a dictionary&lt;/em>. Then, using the stemmed tokens and the dictionary, we will create &lt;strong>bag-of-words models&lt;/strong> (BoW) of each of our texts. The BoW models will represent our books as a list of all uniques tokens they contain associated with their respective number of occurrences. &lt;/p>
&lt;p>To better understand the structure of such a model, we will print the five first elements of one of the "&lt;em>On the Origin of Species&lt;/em>" BoW model.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Load the functions allowing to create and use dictionaries&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">gensim&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">corpora&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Create a dictionary from the stemmed tokens&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">dictionary&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">corpora&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">Dictionary&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Create a bag-of-words model for each book, using the previously generated dictionary&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">bows&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">dictionary&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">doc2bow&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">doc&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">allow_update&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="kc">True&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">doc&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">texts_stem&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Print the first five elements of the On the Origin of species&amp;#39; BoW model&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">bows&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">ori&lt;/span>&lt;span class="p">][:&lt;/span>&lt;span class="mi">5&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;code>﻿`` [(0, 11), (5, 51), (6, 1), (8, 2), (21, 1)] &lt;/code>﻿``&lt;/p>
&lt;h2 id="7-the-most-common-words-of-a-given-book">7. The most common words of a given book&lt;/h2>
&lt;p>The results returned by the bag-of-words model is certainly easy to use for a computer but hard to interpret for a human. It is not straightforward to understand which stemmed tokens are present in a given book from Charles Darwin, and how many occurrences we can find.&lt;/p>
&lt;p>In order to better understand how the model has been generated and visualize its content, we will transform it into a DataFrame and display the 10 most common stems for the book "&lt;em>On the Origin of Species&lt;/em>".&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Import pandas to create and manipulate DataFrames&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">pandas&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="nn">pd&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Convert the BoW model for &amp;#34;On the Origin of Species&amp;#34; into a DataFrame&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">df_bow_origin&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">pd&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">DataFrame&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">bows&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">ori&lt;/span>&lt;span class="p">])&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Add the column names to the DataFrame&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">df_bow_origin&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">columns&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="s1">&amp;#39;index&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s1">&amp;#39;occurrences&amp;#39;&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Add a column containing the token corresponding to the dictionary index&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">df_bow_origin&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s1">&amp;#39;token&amp;#39;&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">dictionary&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">idx&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">idx&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">df_bow_origin&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s1">&amp;#39;index&amp;#39;&lt;/span>&lt;span class="p">]]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Sort the DataFrame by descending number of occurrences and print the first 10 values&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">df_bow_origin&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">sort_values&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;occurrences&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">ascending&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kc">False&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">head&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div>
&lt;style>
.dataframe thead tr:only-child th {
text-align: right;
}
&lt;pre>&lt;code>.dataframe thead th {
text-align: left;
}
.dataframe tbody tr th {
vertical-align: top;
}
&lt;/code>&lt;/pre>
&lt;p>&lt;/style>&lt;/p>
&lt;table border="1" class="dataframe">
&lt;thead>
&lt;tr style="text-align: right;">
&lt;th>&lt;/th>
&lt;th>index&lt;/th>
&lt;th>occurrences&lt;/th>
&lt;th>token&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;th>748&lt;/th>
&lt;td>1168&lt;/td>
&lt;td>2023&lt;/td>
&lt;td>have&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>1119&lt;/th>
&lt;td>1736&lt;/td>
&lt;td>1558&lt;/td>
&lt;td>on&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>1489&lt;/th>
&lt;td>2288&lt;/td>
&lt;td>1543&lt;/td>
&lt;td>speci&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>892&lt;/th>
&lt;td>1366&lt;/td>
&lt;td>1480&lt;/td>
&lt;td>it&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>239&lt;/th>
&lt;td>393&lt;/td>
&lt;td>1362&lt;/td>
&lt;td>by&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>1128&lt;/th>
&lt;td>1747&lt;/td>
&lt;td>1201&lt;/td>
&lt;td>or&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>125&lt;/th>
&lt;td>218&lt;/td>
&lt;td>1140&lt;/td>
&lt;td>are&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>665&lt;/th>
&lt;td>1043&lt;/td>
&lt;td>1137&lt;/td>
&lt;td>from&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>1774&lt;/th>
&lt;td>2703&lt;/td>
&lt;td>1000&lt;/td>
&lt;td>with&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>1609&lt;/th>
&lt;td>2452&lt;/td>
&lt;td>962&lt;/td>
&lt;td>thi&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;h2 id="8-build-a-tf-idf-model">8. Build a tf-idf model&lt;/h2>
&lt;p>If it wasn't for the presence of the stem "&lt;em>speci&lt;/em>", we would have a hard time to guess this BoW model comes from the &lt;em>On the Origin of Species&lt;/em> book. The most recurring words are, apart from few exceptions, very common and unlikely to carry any information peculiar to the given book. We need to use an additional step in order to determine which tokens are the most specific to a book.&lt;/p>
&lt;p>To do so, we will use a &lt;strong>tf-idf model&lt;/strong> (term frequency–inverse document frequency). This model defines the importance of each word depending on how frequent it is in this text and how infrequent it is in all the other documents. As a result, a high tf-idf score for a word will indicate that this word is specific to this text.&lt;/p>
&lt;p>After computing those scores, we will print the 10 words most specific to the "&lt;em>On the Origin of Species&lt;/em>" book (i.e., the 10 words with the highest tf-idf score).&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Load the gensim functions that will allow us to generate tf-idf models&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">gensim.models&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">TfidfModel&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Generate the tf-idf model&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">model&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">TfidfModel&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">bows&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Print the model for &amp;#34;On the Origin of Species&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">model&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">bows&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">ori&lt;/span>&lt;span class="p">]]&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;code>﻿`` [(8, 0.00020383224047642202), (21, 0.0005716037746542094), (23, 0.0017118699041370883), (27, 0.0006458270601429994), (28, 0.0025678048562056324), (31, 0.0008559349520685442), (35, 0.00101497410751472), (36, 0.00101497410751472), (51, 0.000886740665721021), (54, 0.00202994821502944), (56, 0.0023757190244598344), (57, 0.00010191612023821101), (63, 0.0027544680933525786), (64, 0.000509580601191055), (66, 0.00020383224047642202), (67, 0.0023757190244598344), (68, 0.00202994821502944), (75, 0.0013772340466762893), (76, 0.0004433703328605105), (78, 0.004171843479607349), (80, 0.0020859217398036746), (83, 0.00857405661981314), (84, 0.000509580601191055), (88, 0.002445986885717064), (89, 0.0033632319678609636), (90, 0.000886740665721021), (91, 0.0016747506839411234), (94, 0.000886740665721021), (95, 0.0004433703328605105), (96, 0.003546962662884084), (97, 0.0016306579238113761), (102, 0.037686478293143394), (104, 0.000917245082143899), (106, 0.001417375386254771), (108, 0.0035434384656369273), (109, 0.005299638252386972), (111, 0.0022421546452406423), (114, 0.0015287418035731652), (123, 0.0509769226270304), (125, 0.009580115302391834), (126, 0.004171843479607349), (127, 0.001417375386254771), (137, 0.020026648174904797), (139, 0.007749924721715993), (141, 0.00101916120238211), (143, 0.004751438048919669), (144, 0.0047597336465067894), (154, 0.0010467191774632021), (156, 0.013962508472634907), (165, 0.006781184131501494), (167, 0.000611496721429266), (172, 0.021771758891234606), (176, 0.0033632319678609636), (178, 0.0031035923300235736), (186, 0.009274366941677202), (188, 0.0016747506839411234), (192, 0.006257765219411025), (196, 0.0038749623608579963), (197, 0.0013772340466762893), (198, 0.000886740665721021), (204, 0.0042521261587643135), (207, 0.0022603947105004976), (212, 0.001324909563096743), (214, 0.020395035311583484), (215, 0.021720943436859957), (219, 0.0019374811804289981), (220, 0.004396220545345449), (221, 0.0054618131386103995), (222, 0.0018206043795367997), (223, 0.0007086876931273855), (224, 0.007703414568616897), (226, 0.0030574836071463303), (230, 0.005135609712411265), (231, 0.0027544680933525786), (235, 0.002445986885717064), (236, 0.0012916541202859988), (237, 0.0020934383549264042), (241, 0.0029308136968969663), (242, 0.0015865778821689297), (243, 0.008263404280057736), (245, 0.004520789421000995), (246, 0.003465148088099174), (247, 0.001732574044049587), (249, 0.0018840945194337638), (251, 0.008343686959214698), (252, 0.0030449223225441605), (253, 0.0006458270601429994), (261, 0.001324909563096743), (269, 0.0006458270601429994), (271, 0.0008373753419705617), (276, 0.009921627703783398), (278, 0.0034296226479252566), (280, 0.0021260630793821567), (283, 0.02138147122013851), (285, 0.001417375386254771), (287, 0.0013301109985815313), (288, 0.006886170233381447), (290, 0.0035434384656369273), (291, 0.0018206043795367997), (296, 0.009839160268154101), (298, 0.042694255446964965), (300, 0.0016747506839411234), (301, 0.000611496721429266), (302, 0.0042521261587643135), (303, 0.004171843479607349), (304, 0.0020859217398036746), (311, 0.0016306579238113761), (313, 0.007086876931273855), (323, 0.0047597336465067894), (325, 0.021606217490500734), (327, 0.001732574044049587), (329, 0.01790404260679176), (335, 0.0004433703328605105), (336, 0.0023922081541910096), (338, 0.0020859217398036746), (339, 0.001417375386254771), (344, 0.001417375386254771), (345, 0.011527628654373272), (346, 0.00020383224047642202), (348, 0.0006280315064779214), (349, 0.0006458270601429994), (351, 0.0036412087590735995), (354, 0.007980665991489189), (356, 0.0018840945194337638), (358, 0.013772340466762893), (359, 0.0022603947105004976), (362, 0.00101497410751472), (367, 0.0023922081541910096), (369, 0.19772097392783367), (370, 0.043694505108883196), (371, 0.000509580601191055), (372, 0.0023922081541910096), (373, 0.0016306579238113761), (374, 0.001732574044049587), (375, 0.001936406284526009), (376, 0.006489658900271853), (377, 0.0030449223225441605), (380, 0.0016145676503574987), (387, 0.0007086876931273855), (388, 0.0042521261587643135), (389, 0.0005716037746542094), (391, 0.0023922081541910096), (400, 0.00202994821502944), (406, 0.013772340466762893), (407, 0.0005716037746542094), (409, 0.0035588452033748874), (411, 0.0007086876931273855), (412, 0.004751438048919669), (418, 0.0027544680933525786), (421, 0.0027544680933525786), (424, 0.007538884401734597), (425, 0.00811979286011776), (426, 0.0032291353007149973), (429, 0.000886740665721021), (431, 0.000886740665721021), (432, 0.010149741075147201), (433, 0.0016306579238113761), (434, 0.00405989643005888), (436, 0.0021260630793821567), (442, 0.009212940010656012), (446, 0.004171843479607349), (448, 0.021562415055741965), (449, 0.03291890683694216), (450, 0.0035434384656369273), (453, 0.0011210773226203211), (454, 0.00405989643005888), (456, 0.011301973552502492), (457, 0.0020859217398036746), (458, 0.0003229135300714997), (463, 0.01790404260679176), (464, 0.0027544680933525786), (465, 0.0008559349520685442), (468, 0.00202994821502944), (470, 0.0018206043795367997), (478, 0.010923626277220799), (482, 0.0344479258546676), (484, 0.013772340466762893), (486, 0.0020859217398036746), (489, 0.0054618131386103995), (490, 0.022603947105004983), (491, 0.00405989643005888), (493, 0.0007086876931273855), (497, 0.012839024281028162), (498, 0.0035434384656369273), (502, 0.00637818923814647), (505, 0.011970998987233783), (507, 0.0009687405902144991), (514, 0.0025121260259116855), (520, 0.004280477050004863), (524, 0.0020859217398036746), (526, 0.005716037746542095), (527, 0.0027544680933525786), (529, 0.006318799454769082), (531, 0.003546962662884084), (532, 0.012791353704852355), (534, 0.005320443994326125), (536, 0.0014268256833349542), (541, 0.0011432075493084189), (543, 0.01110604517518251), (544, 0.0031401575323896065), (546, 0.0017148113239626283), (551, 0.004784416308382019), (552, 0.0031731557643378595), (558, 0.0023922081541910096), (559, 0.00020383224047642202), (561, 0.0022421546452406423), (562, 0.005197722132148762), (563, 0.006908346571257135), (564, 0.0011432075493084189), (565, 0.00405989643005888), (566, 0.0013772340466762893), (569, 0.04034670029030646), (573, 0.010630315396910783), (576, 0.0025121260259116855), (578, 0.0028580188732710474), (579, 0.003159399727384541), (582, 0.0035434384656369273), (586, 0.003563578536689751), (590, 0.0017118699041370883), (592, 0.0010467191774632021), (593, 0.0018206043795367997), (594, 0.015898914757160917), (596, 0.0015865778821689297), (598, 0.0023922081541910096), (600, 0.01251553043882205), (601, 0.00202994821502944), (604, 0.05582357591330961), (605, 0.00637818923814647), (606, 0.0005716037746542094), (616, 0.0010467191774632021), (619, 0.00710481875260304), (620, 0.024945049756828264), (626, 0.0013772340466762893), (628, 0.00041868767098528084), (629, 0.004197875890929496), (633, 0.0013301109985815313), (635, 0.004960813851891699), (636, 0.005991544664479809), (641, 0.006346311528675719), (646, 0.0027544680933525786), (649, 0.005763814327186636), (652, 0.000917245082143899), (653, 0.0011432075493084189), (654, 0.0023757190244598344), (655, 0.0016747506839411234), (657, 0.0030449223225441605), (658, 0.007104097661572994), (660, 0.005144433971887885), (662, 0.003563578536689751), (663, 0.0011878595122299172), (665, 0.00101497410751472), (666, 0.006395676852426178), (667, 0.01623958572023552), (668, 0.005669501545019084), (670, 0.011723254787587865), (674, 0.002445986885717064), (675, 0.0450089246309177), (676, 0.061655829302082535), (678, 0.00040766448095284403), (679, 0.005144433971887885), (681, 0.0007134128416674771), (682, 0.0015865778821689297), (685, 0.0020859217398036746), (686, 0.0006458270601429994), (693, 0.0035670642083373855), (698, 0.0022864150986168378), (705, 0.0034237398082741766), (712, 0.0017118699041370883), (713, 0.0013772340466762893), (720, 0.0029308136968969663), (722, 0.005074870537573601), (726, 0.01771719232818464), (727, 0.004396220545345449), (728, 0.0031731557643378595), (729, 0.006089844645088321), (730, 0.01028886794377577), (731, 0.0017148113239626283), (740, 0.008357121859533303), (741, 0.0066990027357644935), (743, 0.006930296176198348), (744, 0.01033323296228799), (745, 0.006257765219411025), (748, 0.017254559827750243), (750, 0.07127157073379503), (752, 0.1459896647842414), (753, 0.06980942681543291), (758, 0.004197875890929496), (769, 0.0017118699041370883), (770, 0.0010467191774632021), (771, 0.0007134128416674771), (776, 0.00020934383549264042), (783, 0.006346311528675719), (784, 0.004171843479607349), (785, 0.002834750772509542), (786, 0.004171843479607349), (787, 0.006930296176198348), (788, 0.002955567486908119), (789, 0.003546962662884084), (793, 0.014208195323145987), (797, 0.004197875890929496), (798, 0.024359378580353284), (803, 0.010149741075147201), (805, 0.0034237398082741766), (806, 0.02571547930590961), (810, 0.0011878595122299172), (811, 0.006886170233381447), (815, 0.0018840945194337638), (816, 0.0012560630129558428), (817, 0.0015865778821689297), (819, 0.0026602219971630626), (820, 0.006458270601429995), (821, 0.006207184660047147), (822, 0.0688958517093352), (825, 0.0003229135300714997), (830, 0.001222993442858532), (831, 0.003552048830786497), (832, 0.02256933073236843), (833, 0.01097906002243099), (834, 0.0017118699041370883), (838, 0.001936406284526009), (839, 0.0016306579238113761), (842, 0.0013772340466762893), (848, 0.006886170233381447), (849, 0.0011432075493084189), (851, 0.0020859217398036746), (857, 0.0005716037746542094), (859, 0.008343686959214698), (861, 0.0018840945194337638), (862, 0.001732574044049587), (866, 0.004433703328605105), (867, 0.004784416308382019), (870, 0.0003229135300714997), (873, 0.01886292456358891), (875, 0.0009687405902144991), (878, 0.00202994821502944), (879, 0.005489530011215495), (881, 0.0007086876931273855), (883, 0.0008153289619056881), (885, 0.0023922081541910096), (887, 0.001732574044049587), (891, 0.0006458270601429994), (892, 0.0013772340466762893), (894, 0.002445986885717064), (897, 0.005991544664479809), (898, 0.0011432075493084189), (903, 0.0011878595122299172), (905, 0.0025678048562056324), (909, 0.002649819126193486), (910, 0.005508936186705157), (917, 0.05877026247301295), (919, 0.0017118699041370883), (921, 0.0011210773226203211), (924, 0.0054015543726251836), (925, 0.004784416308382019), (929, 0.013718490591701027), (931, 0.00101497410751472), (935, 0.0026602219971630626), (936, 0.0025121260259116855), (937, 0.0009687405902144991), (939, 0.0016306579238113761), (944, 0.000886740665721021), (945, 0.00710481875260304), (948, 0.0023757190244598344), (951, 0.012692623057351438), (952, 0.006089844645088321), (953, 0.005074870537573601), (956, 0.010149741075147201), (957, 0.0012560630129558428), (958, 0.0008559349520685442), (962, 0.0011432075493084189), (966, 0.12753430785821307), (967, 0.047703783053191846), (971, 0.0019374811804289981), (973, 0.000509580601191055), (975, 0.00040766448095284403), (976, 0.00203832240476422), (980, 0.009502876097839338), (981, 0.016526808560115472), (982, 0.00101497410751472), (985, 0.03886905667648624), (988, 0.004382393170243073), (992, 0.0014268256833349542), (994, 0.007932889410844648), (995, 0.021725146310165012), (996, 0.011527628654373272), (997, 0.0022603947105004976), (998, 0.03014551231094022), (999, 0.009519467293013579), (1000, 0.00010191612023821101), (1004, 0.0011878595122299172), ...] &lt;/code>﻿``&lt;/p>
&lt;h2 id="9-the-results-of-the-tf-idf-model">9. The results of the tf-idf model&lt;/h2>
&lt;p>Once again, the format of those results is hard to interpret for a human. Therefore, we will transform it into a more readable version and display the 10 most specific words for the "&lt;em>On the Origin of Species&lt;/em>" book.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Convert the tf-idf model for &amp;#34;On the Origin of Species&amp;#34; into a DataFrame&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">df_tfidf&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">pd&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">DataFrame&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">model&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">bows&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">ori&lt;/span>&lt;span class="p">]])&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Name the columns of the DataFrame id and score&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">df_tfidf&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">columns&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="s1">&amp;#39;id&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="s1">&amp;#39;score&amp;#39;&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Add the tokens corresponding to the numerical indices for better readability&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">df_tfidf&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s1">&amp;#39;token&amp;#39;&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="n">dictionary&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">idx&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">idx&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">df_tfidf&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">id&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Sort the DataFrame by descending tf-idf score and print the first 10 rows.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">df_tfidf&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">sort_values&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;score&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">ascending&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kc">False&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">head&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div>
&lt;style>
.dataframe thead tr:only-child th {
text-align: right;
}
&lt;pre>&lt;code>.dataframe thead th {
text-align: left;
}
.dataframe tbody tr th {
vertical-align: top;
}
&lt;/code>&lt;/pre>
&lt;p>&lt;/style>&lt;/p>
&lt;table border="1" class="dataframe">
&lt;thead>
&lt;tr style="text-align: right;">
&lt;th>&lt;/th>
&lt;th>id&lt;/th>
&lt;th>score&lt;/th>
&lt;th>token&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;th>878&lt;/th>
&lt;td>2164&lt;/td>
&lt;td>0.327414&lt;/td>
&lt;td>select&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>3106&lt;/th>
&lt;td>10108&lt;/td>
&lt;td>0.203908&lt;/td>
&lt;td>pigeon&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>128&lt;/th>
&lt;td>369&lt;/td>
&lt;td>0.197721&lt;/td>
&lt;td>breed&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2988&lt;/th>
&lt;td>9396&lt;/td>
&lt;td>0.167496&lt;/td>
&lt;td>migrat&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>945&lt;/th>
&lt;td>2325&lt;/td>
&lt;td>0.148186&lt;/td>
&lt;td>steril&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>284&lt;/th>
&lt;td>752&lt;/td>
&lt;td>0.145990&lt;/td>
&lt;td>domest&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>503&lt;/th>
&lt;td>1255&lt;/td>
&lt;td>0.128272&lt;/td>
&lt;td>hybrid&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>370&lt;/th>
&lt;td>966&lt;/td>
&lt;td>0.127534&lt;/td>
&lt;td>fertil&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>3889&lt;/th>
&lt;td>16210&lt;/td>
&lt;td>0.124392&lt;/td>
&lt;td>rtner&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>3540&lt;/th>
&lt;td>12715&lt;/td>
&lt;td>0.121197&lt;/td>
&lt;td>naturalis&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;h2 id="10-compute-distance-between-texts">10. Compute distance between texts&lt;/h2>
&lt;p>The results of the tf-idf algorithm now return stemmed tokens which are specific to each book. We can, for example, see that topics such as selection, breeding or domestication are defining "&lt;em>On the Origin of Species&lt;/em>" (and yes, in this book, Charles Darwin talks quite a lot about pigeons too). Now that we have a model associating tokens to how specific they are to each book, we can measure how related to books are between each other.&lt;/p>
&lt;p>To this purpose, we will use a measure of similarity called &lt;strong>cosine similarity&lt;/strong> and we will visualize the results as a distance matrix, i.e., a matrix showing all pairwise distances between Darwin's books.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Load the library allowing similarity computations&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">gensim&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">similarities&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Compute the similarity matrix (pairwise distance between all texts)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">sims&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">similarities&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">MatrixSimilarity&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">model&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">bows&lt;/span>&lt;span class="p">])&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Transform the resulting list into a dataframe&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">sim_df&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">pd&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">DataFrame&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nb">list&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">sims&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Add the titles of the books as columns and index of the dataframe&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">sim_df&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">index&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">titles&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">sim_df&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">columns&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">titles&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Print the resulting matrix&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">sim_df&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div>
&lt;style>
.dataframe thead tr:only-child th {
text-align: right;
}
&lt;pre>&lt;code>.dataframe thead th {
text-align: left;
}
.dataframe tbody tr th {
vertical-align: top;
}
&lt;/code>&lt;/pre>
&lt;p>&lt;/style>&lt;/p>
&lt;table border="1" class="dataframe">
&lt;thead>
&lt;tr style="text-align: right;">
&lt;th>&lt;/th>
&lt;th>Autobiography&lt;/th>
&lt;th>CoralReefs&lt;/th>
&lt;th>DescentofMan&lt;/th>
&lt;th>DifferentFormsofFlowers&lt;/th>
&lt;th>EffectsCrossSelfFertilization&lt;/th>
&lt;th>ExpressionofEmotionManAnimals&lt;/th>
&lt;th>FormationVegetableMould&lt;/th>
&lt;th>FoundationsOriginofSpecies&lt;/th>
&lt;th>GeologicalObservationsSouthAmerica&lt;/th>
&lt;th>InsectivorousPlants&lt;/th>
&lt;th>LifeandLettersVol1&lt;/th>
&lt;th>LifeandLettersVol2&lt;/th>
&lt;th>MonographCirripedia&lt;/th>
&lt;th>MonographCirripediaVol2&lt;/th>
&lt;th>MovementClimbingPlants&lt;/th>
&lt;th>OriginofSpecies&lt;/th>
&lt;th>PowerMovementPlants&lt;/th>
&lt;th>VariationPlantsAnimalsDomestication&lt;/th>
&lt;th>VolcanicIslands&lt;/th>
&lt;th>VoyageBeagle&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;th>Autobiography&lt;/th>
&lt;td>1.000000&lt;/td>
&lt;td>0.049467&lt;/td>
&lt;td>0.080428&lt;/td>
&lt;td>0.066482&lt;/td>
&lt;td>0.077184&lt;/td>
&lt;td>0.088723&lt;/td>
&lt;td>0.040678&lt;/td>
&lt;td>0.059271&lt;/td>
&lt;td>0.030562&lt;/td>
&lt;td>0.014878&lt;/td>
&lt;td>0.396709&lt;/td>
&lt;td>0.217129&lt;/td>
&lt;td>0.005686&lt;/td>
&lt;td>0.008483&lt;/td>
&lt;td>0.022856&lt;/td>
&lt;td>0.099991&lt;/td>
&lt;td>0.016247&lt;/td>
&lt;td>0.049018&lt;/td>
&lt;td>0.038556&lt;/td>
&lt;td>0.183507&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>CoralReefs&lt;/th>
&lt;td>0.049467&lt;/td>
&lt;td>1.000000&lt;/td>
&lt;td>0.009480&lt;/td>
&lt;td>0.001952&lt;/td>
&lt;td>0.001923&lt;/td>
&lt;td>0.004999&lt;/td>
&lt;td>0.029432&lt;/td>
&lt;td>0.022096&lt;/td>
&lt;td>0.061027&lt;/td>
&lt;td>0.002276&lt;/td>
&lt;td>0.030965&lt;/td>
&lt;td>0.017558&lt;/td>
&lt;td>0.006324&lt;/td>
&lt;td>0.010579&lt;/td>
&lt;td>0.001518&lt;/td>
&lt;td>0.039089&lt;/td>
&lt;td>0.002707&lt;/td>
&lt;td>0.011586&lt;/td>
&lt;td>0.057514&lt;/td>
&lt;td>0.267749&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>DescentofMan&lt;/th>
&lt;td>0.080428&lt;/td>
&lt;td>0.009480&lt;/td>
&lt;td>1.000000&lt;/td>
&lt;td>0.072761&lt;/td>
&lt;td>0.029968&lt;/td>
&lt;td>0.148670&lt;/td>
&lt;td>0.027055&lt;/td>
&lt;td>0.135775&lt;/td>
&lt;td>0.009698&lt;/td>
&lt;td>0.009404&lt;/td>
&lt;td>0.059684&lt;/td>
&lt;td>0.080314&lt;/td>
&lt;td>0.053506&lt;/td>
&lt;td>0.043275&lt;/td>
&lt;td>0.005146&lt;/td>
&lt;td>0.267554&lt;/td>
&lt;td>0.011357&lt;/td>
&lt;td>0.232841&lt;/td>
&lt;td>0.007882&lt;/td>
&lt;td>0.123917&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>DifferentFormsofFlowers&lt;/th>
&lt;td>0.066482&lt;/td>
&lt;td>0.001952&lt;/td>
&lt;td>0.072761&lt;/td>
&lt;td>1.000000&lt;/td>
&lt;td>0.391834&lt;/td>
&lt;td>0.006474&lt;/td>
&lt;td>0.010585&lt;/td>
&lt;td>0.040104&lt;/td>
&lt;td>0.002846&lt;/td>
&lt;td>0.007502&lt;/td>
&lt;td>0.015933&lt;/td>
&lt;td>0.046523&lt;/td>
&lt;td>0.009405&lt;/td>
&lt;td>0.005484&lt;/td>
&lt;td>0.008151&lt;/td>
&lt;td>0.128909&lt;/td>
&lt;td>0.018964&lt;/td>
&lt;td>0.050023&lt;/td>
&lt;td>0.002611&lt;/td>
&lt;td>0.013124&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>EffectsCrossSelfFertilization&lt;/th>
&lt;td>0.077184&lt;/td>
&lt;td>0.001923&lt;/td>
&lt;td>0.029968&lt;/td>
&lt;td>0.391834&lt;/td>
&lt;td>1.000000&lt;/td>
&lt;td>0.006844&lt;/td>
&lt;td>0.032262&lt;/td>
&lt;td>0.040288&lt;/td>
&lt;td>0.002246&lt;/td>
&lt;td>0.006777&lt;/td>
&lt;td>0.019504&lt;/td>
&lt;td>0.046504&lt;/td>
&lt;td>0.003212&lt;/td>
&lt;td>0.002962&lt;/td>
&lt;td>0.014932&lt;/td>
&lt;td>0.146441&lt;/td>
&lt;td>0.039770&lt;/td>
&lt;td>0.055132&lt;/td>
&lt;td>0.002178&lt;/td>
&lt;td>0.017140&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>ExpressionofEmotionManAnimals&lt;/th>
&lt;td>0.088723&lt;/td>
&lt;td>0.004999&lt;/td>
&lt;td>0.148670&lt;/td>
&lt;td>0.006474&lt;/td>
&lt;td>0.006844&lt;/td>
&lt;td>1.000000&lt;/td>
&lt;td>0.020985&lt;/td>
&lt;td>0.047202&lt;/td>
&lt;td>0.005217&lt;/td>
&lt;td>0.011475&lt;/td>
&lt;td>0.064873&lt;/td>
&lt;td>0.048886&lt;/td>
&lt;td>0.016825&lt;/td>
&lt;td>0.029897&lt;/td>
&lt;td>0.005913&lt;/td>
&lt;td>0.062979&lt;/td>
&lt;td>0.011317&lt;/td>
&lt;td>0.083847&lt;/td>
&lt;td>0.005561&lt;/td>
&lt;td>0.098961&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>FormationVegetableMould&lt;/th>
&lt;td>0.040678&lt;/td>
&lt;td>0.029432&lt;/td>
&lt;td>0.027055&lt;/td>
&lt;td>0.010585&lt;/td>
&lt;td>0.032262&lt;/td>
&lt;td>0.020985&lt;/td>
&lt;td>1.000000&lt;/td>
&lt;td>0.021470&lt;/td>
&lt;td>0.067989&lt;/td>
&lt;td>0.035589&lt;/td>
&lt;td>0.027916&lt;/td>
&lt;td>0.023620&lt;/td>
&lt;td>0.019866&lt;/td>
&lt;td>0.023984&lt;/td>
&lt;td>0.038820&lt;/td>
&lt;td>0.049259&lt;/td>
&lt;td>0.040182&lt;/td>
&lt;td>0.033147&lt;/td>
&lt;td>0.059407&lt;/td>
&lt;td>0.097908&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>FoundationsOriginofSpecies&lt;/th>
&lt;td>0.059271&lt;/td>
&lt;td>0.022096&lt;/td>
&lt;td>0.135775&lt;/td>
&lt;td>0.040104&lt;/td>
&lt;td>0.040288&lt;/td>
&lt;td>0.047202&lt;/td>
&lt;td>0.021470&lt;/td>
&lt;td>1.000000&lt;/td>
&lt;td>0.028028&lt;/td>
&lt;td>0.006023&lt;/td>
&lt;td>0.057820&lt;/td>
&lt;td>0.054782&lt;/td>
&lt;td>0.007618&lt;/td>
&lt;td>0.010883&lt;/td>
&lt;td>0.003973&lt;/td>
&lt;td>0.322405&lt;/td>
&lt;td>0.008788&lt;/td>
&lt;td>0.194533&lt;/td>
&lt;td>0.017590&lt;/td>
&lt;td>0.089132&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>GeologicalObservationsSouthAmerica&lt;/th>
&lt;td>0.030562&lt;/td>
&lt;td>0.061027&lt;/td>
&lt;td>0.009698&lt;/td>
&lt;td>0.002846&lt;/td>
&lt;td>0.002246&lt;/td>
&lt;td>0.005217&lt;/td>
&lt;td>0.067989&lt;/td>
&lt;td>0.028028&lt;/td>
&lt;td>1.000000&lt;/td>
&lt;td>0.006879&lt;/td>
&lt;td>0.028551&lt;/td>
&lt;td>0.012104&lt;/td>
&lt;td>0.009687&lt;/td>
&lt;td>0.024738&lt;/td>
&lt;td>0.002043&lt;/td>
&lt;td>0.058046&lt;/td>
&lt;td>0.003491&lt;/td>
&lt;td>0.014389&lt;/td>
&lt;td>0.373249&lt;/td>
&lt;td>0.260141&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>InsectivorousPlants&lt;/th>
&lt;td>0.014878&lt;/td>
&lt;td>0.002276&lt;/td>
&lt;td>0.009404&lt;/td>
&lt;td>0.007502&lt;/td>
&lt;td>0.006777&lt;/td>
&lt;td>0.011475&lt;/td>
&lt;td>0.035589&lt;/td>
&lt;td>0.006023&lt;/td>
&lt;td>0.006879&lt;/td>
&lt;td>1.000000&lt;/td>
&lt;td>0.005967&lt;/td>
&lt;td>0.016518&lt;/td>
&lt;td>0.019214&lt;/td>
&lt;td>0.020023&lt;/td>
&lt;td>0.249814&lt;/td>
&lt;td>0.014961&lt;/td>
&lt;td>0.023056&lt;/td>
&lt;td>0.010522&lt;/td>
&lt;td>0.008544&lt;/td>
&lt;td>0.014776&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>LifeandLettersVol1&lt;/th>
&lt;td>0.396709&lt;/td>
&lt;td>0.030965&lt;/td>
&lt;td>0.059684&lt;/td>
&lt;td>0.015933&lt;/td>
&lt;td>0.019504&lt;/td>
&lt;td>0.064873&lt;/td>
&lt;td>0.027916&lt;/td>
&lt;td>0.057820&lt;/td>
&lt;td>0.028551&lt;/td>
&lt;td>0.005967&lt;/td>
&lt;td>1.000000&lt;/td>
&lt;td>0.885828&lt;/td>
&lt;td>0.005752&lt;/td>
&lt;td>0.012772&lt;/td>
&lt;td>0.005388&lt;/td>
&lt;td>0.097457&lt;/td>
&lt;td>0.009505&lt;/td>
&lt;td>0.055259&lt;/td>
&lt;td>0.026374&lt;/td>
&lt;td>0.171708&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>LifeandLettersVol2&lt;/th>
&lt;td>0.217129&lt;/td>
&lt;td>0.017558&lt;/td>
&lt;td>0.080314&lt;/td>
&lt;td>0.046523&lt;/td>
&lt;td>0.046504&lt;/td>
&lt;td>0.048886&lt;/td>
&lt;td>0.023620&lt;/td>
&lt;td>0.054782&lt;/td>
&lt;td>0.012104&lt;/td>
&lt;td>0.016518&lt;/td>
&lt;td>0.885828&lt;/td>
&lt;td>1.000000&lt;/td>
&lt;td>0.004967&lt;/td>
&lt;td>0.010843&lt;/td>
&lt;td>0.017565&lt;/td>
&lt;td>0.096955&lt;/td>
&lt;td>0.012099&lt;/td>
&lt;td>0.050764&lt;/td>
&lt;td>0.011806&lt;/td>
&lt;td>0.089947&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>MonographCirripedia&lt;/th>
&lt;td>0.005686&lt;/td>
&lt;td>0.006324&lt;/td>
&lt;td>0.053506&lt;/td>
&lt;td>0.009405&lt;/td>
&lt;td>0.003212&lt;/td>
&lt;td>0.016825&lt;/td>
&lt;td>0.019866&lt;/td>
&lt;td>0.007618&lt;/td>
&lt;td>0.009687&lt;/td>
&lt;td>0.019214&lt;/td>
&lt;td>0.005752&lt;/td>
&lt;td>0.004967&lt;/td>
&lt;td>1.000001&lt;/td>
&lt;td>0.522273&lt;/td>
&lt;td>0.012441&lt;/td>
&lt;td>0.029902&lt;/td>
&lt;td>0.018694&lt;/td>
&lt;td>0.023460&lt;/td>
&lt;td>0.010754&lt;/td>
&lt;td>0.014342&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>MonographCirripediaVol2&lt;/th>
&lt;td>0.008483&lt;/td>
&lt;td>0.010579&lt;/td>
&lt;td>0.043275&lt;/td>
&lt;td>0.005484&lt;/td>
&lt;td>0.002962&lt;/td>
&lt;td>0.029897&lt;/td>
&lt;td>0.023984&lt;/td>
&lt;td>0.010883&lt;/td>
&lt;td>0.024738&lt;/td>
&lt;td>0.020023&lt;/td>
&lt;td>0.012772&lt;/td>
&lt;td>0.010843&lt;/td>
&lt;td>0.522273&lt;/td>
&lt;td>1.000000&lt;/td>
&lt;td>0.006802&lt;/td>
&lt;td>0.036755&lt;/td>
&lt;td>0.022376&lt;/td>
&lt;td>0.030669&lt;/td>
&lt;td>0.017952&lt;/td>
&lt;td>0.025047&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>MovementClimbingPlants&lt;/th>
&lt;td>0.022856&lt;/td>
&lt;td>0.001518&lt;/td>
&lt;td>0.005146&lt;/td>
&lt;td>0.008151&lt;/td>
&lt;td>0.014932&lt;/td>
&lt;td>0.005913&lt;/td>
&lt;td>0.038820&lt;/td>
&lt;td>0.003973&lt;/td>
&lt;td>0.002043&lt;/td>
&lt;td>0.249814&lt;/td>
&lt;td>0.005388&lt;/td>
&lt;td>0.017565&lt;/td>
&lt;td>0.012441&lt;/td>
&lt;td>0.006802&lt;/td>
&lt;td>1.000000&lt;/td>
&lt;td>0.008802&lt;/td>
&lt;td>0.104966&lt;/td>
&lt;td>0.011530&lt;/td>
&lt;td>0.002832&lt;/td>
&lt;td>0.012282&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>OriginofSpecies&lt;/th>
&lt;td>0.099991&lt;/td>
&lt;td>0.039089&lt;/td>
&lt;td>0.267554&lt;/td>
&lt;td>0.128909&lt;/td>
&lt;td>0.146441&lt;/td>
&lt;td>0.062979&lt;/td>
&lt;td>0.049259&lt;/td>
&lt;td>0.322405&lt;/td>
&lt;td>0.058046&lt;/td>
&lt;td>0.014961&lt;/td>
&lt;td>0.097457&lt;/td>
&lt;td>0.096955&lt;/td>
&lt;td>0.029902&lt;/td>
&lt;td>0.036755&lt;/td>
&lt;td>0.008802&lt;/td>
&lt;td>1.000000&lt;/td>
&lt;td>0.018266&lt;/td>
&lt;td>0.405333&lt;/td>
&lt;td>0.036014&lt;/td>
&lt;td>0.164661&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>PowerMovementPlants&lt;/th>
&lt;td>0.016247&lt;/td>
&lt;td>0.002707&lt;/td>
&lt;td>0.011357&lt;/td>
&lt;td>0.018964&lt;/td>
&lt;td>0.039770&lt;/td>
&lt;td>0.011317&lt;/td>
&lt;td>0.040182&lt;/td>
&lt;td>0.008788&lt;/td>
&lt;td>0.003491&lt;/td>
&lt;td>0.023056&lt;/td>
&lt;td>0.009505&lt;/td>
&lt;td>0.012099&lt;/td>
&lt;td>0.018694&lt;/td>
&lt;td>0.022376&lt;/td>
&lt;td>0.104966&lt;/td>
&lt;td>0.018266&lt;/td>
&lt;td>1.000000&lt;/td>
&lt;td>0.020589&lt;/td>
&lt;td>0.003819&lt;/td>
&lt;td>0.024149&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>VariationPlantsAnimalsDomestication&lt;/th>
&lt;td>0.049018&lt;/td>
&lt;td>0.011586&lt;/td>
&lt;td>0.232841&lt;/td>
&lt;td>0.050023&lt;/td>
&lt;td>0.055132&lt;/td>
&lt;td>0.083847&lt;/td>
&lt;td>0.033147&lt;/td>
&lt;td>0.194533&lt;/td>
&lt;td>0.014389&lt;/td>
&lt;td>0.010522&lt;/td>
&lt;td>0.055259&lt;/td>
&lt;td>0.050764&lt;/td>
&lt;td>0.023460&lt;/td>
&lt;td>0.030669&lt;/td>
&lt;td>0.011530&lt;/td>
&lt;td>0.405333&lt;/td>
&lt;td>0.020589&lt;/td>
&lt;td>1.000000&lt;/td>
&lt;td>0.012620&lt;/td>
&lt;td>0.114134&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>VolcanicIslands&lt;/th>
&lt;td>0.038556&lt;/td>
&lt;td>0.057514&lt;/td>
&lt;td>0.007882&lt;/td>
&lt;td>0.002611&lt;/td>
&lt;td>0.002178&lt;/td>
&lt;td>0.005561&lt;/td>
&lt;td>0.059407&lt;/td>
&lt;td>0.017590&lt;/td>
&lt;td>0.373249&lt;/td>
&lt;td>0.008544&lt;/td>
&lt;td>0.026374&lt;/td>
&lt;td>0.011806&lt;/td>
&lt;td>0.010754&lt;/td>
&lt;td>0.017952&lt;/td>
&lt;td>0.002832&lt;/td>
&lt;td>0.036014&lt;/td>
&lt;td>0.003819&lt;/td>
&lt;td>0.012620&lt;/td>
&lt;td>1.000000&lt;/td>
&lt;td>0.138323&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>VoyageBeagle&lt;/th>
&lt;td>0.183507&lt;/td>
&lt;td>0.267749&lt;/td>
&lt;td>0.123917&lt;/td>
&lt;td>0.013124&lt;/td>
&lt;td>0.017140&lt;/td>
&lt;td>0.098961&lt;/td>
&lt;td>0.097908&lt;/td>
&lt;td>0.089132&lt;/td>
&lt;td>0.260141&lt;/td>
&lt;td>0.014776&lt;/td>
&lt;td>0.171708&lt;/td>
&lt;td>0.089947&lt;/td>
&lt;td>0.014342&lt;/td>
&lt;td>0.025047&lt;/td>
&lt;td>0.012282&lt;/td>
&lt;td>0.164661&lt;/td>
&lt;td>0.024149&lt;/td>
&lt;td>0.114134&lt;/td>
&lt;td>0.138323&lt;/td>
&lt;td>1.000000&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;h2 id="11-the-book-most-similar-to-on-the-origin-of-species">11. The book most similar to &amp;ldquo;On the Origin of Species&amp;rdquo;&lt;/h2>
&lt;p>We now have a matrix containing all the similarity measures between any pair of books from Charles Darwin! We can now use this matrix to quickly extract the information we need, i.e., the distance between one book and one or several others. &lt;/p>
&lt;p>As a first step, we will display which books are the most similar to "&lt;em>On the Origin of Species&lt;/em>," more specifically we will produce a bar chart showing all books ranked by how similar they are to Darwin's landmark work.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># This is needed to display plots in a notebook&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">%&lt;/span>&lt;span class="n">matplotlib&lt;/span> &lt;span class="n">inline&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Import libraries&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">matplotlib.pyplot&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="nn">plt&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Select the column corresponding to &amp;#34;On the Origin of Species&amp;#34; and &lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">v&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">sim_df&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">iloc&lt;/span>&lt;span class="p">[:,&lt;/span>&lt;span class="n">ori&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Sort by ascending scores&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">v_sorted&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">v&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">sort_values&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">v_sorted&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Plot this data has a horizontal bar plot&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">v_sorted&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">plot&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">kind&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s1">&amp;#39;barh&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Modify the axes labels and plot title for a better readability&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">plt&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">xlabel&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;Score&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">plt&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">ylabel&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;Book&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">plt&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">title&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;Similarity with book &lt;/span>&lt;span class="se">\&amp;#39;&lt;/span>&lt;span class="s2">On the Origin of Species&lt;/span>&lt;span class="se">\&amp;#39;&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;pre>&lt;code>&amp;lt;matplotlib.text.Text at 0x7f65c9dbdfd0&amp;gt;
&lt;/code>&lt;/pre>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img src="https://user-images.githubusercontent.com/20341930/208644817-ccb3e48a-6673-4f5e-86fa-7e4a35f20a5f.png" alt="png" loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;h2 id="12-which-books-have-similar-content">12. Which books have similar content?&lt;/h2>
&lt;p>This turns out to be extremely useful if we want to determine a given book's most similar work. For example, we have just seen that if you enjoyed "&lt;em>On the Origin of Species&lt;/em>," you can read books discussing similar concepts such as "&lt;em>The Variation of Animals and Plants under Domestication&lt;/em>" or "&lt;em>The Descent of Man, and Selection in Relation to Sex&lt;/em>." If you are familiar with Darwin's work, these suggestions will likely seem natural to you. Indeed, &lt;em>On the Origin of Species&lt;/em> has a whole chapter about domestication and &lt;em>The Descent of Man, and Selection in Relation to Sex&lt;/em> applies the theory of natural selection to human evolution. Hence, the results make sense.&lt;/p>
&lt;p>However, we now want to have a better understanding of the big picture and see how Darwin's books are generally related to each other (in terms of topics discussed). To this purpose, we will represent the whole similarity matrix as a dendrogram, which is a standard tool to display such data. &lt;strong>This last approach will display all the information about book similarities at once.&lt;/strong> For example, we can find a book's closest relative but, also, we can visualize which groups of books have similar topics (e.g., the cluster about Charles Darwin personal life with his autobiography and letters). If you are familiar with Darwin's bibliography, the results should not surprise you too much, which indicates the method gives good results. Otherwise, next time you read one of the author's book, you will know which other books to read next in order to learn more about the topics it addressed.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Import libraries&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">scipy.cluster&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">hierarchy&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Compute the clusters from the similarity matrix,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># using the Ward variance minimization algorithm&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">Z&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">hierarchy&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">linkage&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">sim_df&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">values&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">method&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s1">&amp;#39;ward&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Display this result as a horizontal dendrogram&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">plot&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">hierarchy&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">dendrogram&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Z&lt;/span>&lt;span class="p">,&lt;/span>&lt;span class="n">leaf_font_size&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">labels&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">sim_df&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">index&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">orientation&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;left&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img src="https://user-images.githubusercontent.com/20341930/208644829-9f814d50-43ac-4f76-91d2-bb7a80e9ba85.png" alt="png" loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>Dataset is taken from &lt;a href="https://www.datacamp.com/" target="_blank" rel="noopener">DataCamp&lt;/a>&lt;/p></description></item><item><title>Customer Segmentation Report</title><link>https://deploy-preview-6--kishan-mistri.netlify.app/post/customer-segmentation-report/</link><pubDate>Wed, 14 Sep 2022 09:37:32 +0000</pubDate><guid>https://deploy-preview-6--kishan-mistri.netlify.app/post/customer-segmentation-report/</guid><description>&lt;p>Customer segmentation is a way to identify groups of similar customers. Customers can be segmented on a wide variety of characteristics, such as demographic information, purchase behaviour, and attitudes. This template provides an end-to-end report for processing and segmenting customer purchase data using a K-means clustering algorithm. It also includes a snake plot and heatmap to visualize the resulting clusters and feature importance.&lt;/p>
&lt;ul>
&lt;li>Multiple numerical variables that you can use for clustering.&lt;/li>
&lt;li>No NaN/NA values. You can use &lt;a href="https://app.datacamp.com/workspace/templates/recipe-python-impute-missing-data" target="_blank" rel="noopener">this to impute missing values&lt;/a> if needed.&lt;/li>
&lt;/ul>
&lt;p>The dataset consists of customer data, including purchase recency, frequency, and monetary value. Each row represents a different customer with a distinct customer ID.&lt;/p>
&lt;h2 id="1-loading-packages-and-inspecting-the-data">1. Loading packages and Inspecting the Data&lt;/h2>
&lt;p>The code below imports the packages necessary for data manipulation, visualization, pre-processing, and clustering. It also sets up the visualization style and loads in the data.&lt;/p>
&lt;p>Finally, it inspects the data types and missing values with the &lt;a href="https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.info.html" target="_blank" rel="noopener">&lt;code>.info()&lt;/code>&lt;/a> method from &lt;code>pandas&lt;/code>.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Load packages&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">numpy&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="nn">np&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">pandas&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="nn">pd&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">matplotlib.pyplot&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="nn">plt&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">seaborn&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="nn">sns&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">sklearn.preprocessing&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">StandardScaler&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">from&lt;/span> &lt;span class="nn">sklearn.cluster&lt;/span> &lt;span class="kn">import&lt;/span> &lt;span class="n">KMeans&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Set visualization style&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">sns&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">set_style&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;darkgrid&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Load the data and replace with your CSV file path&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">df&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">pd&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">read_csv&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;data/customer_data.csv&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Preview the data&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">df&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div>
&lt;style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
&lt;pre>&lt;code>.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
&lt;/code>&lt;/pre>
&lt;p>&lt;/style>&lt;/p>
&lt;table border="1" class="dataframe">
&lt;thead>
&lt;tr style="text-align: right;">
&lt;th>&lt;/th>
&lt;th>CustomerID&lt;/th>
&lt;th>Recency&lt;/th>
&lt;th>Frequency&lt;/th>
&lt;th>MonetaryValue&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;th>0&lt;/th>
&lt;td>12747&lt;/td>
&lt;td>3&lt;/td>
&lt;td>25&lt;/td>
&lt;td>948.70&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>1&lt;/th>
&lt;td>12748&lt;/td>
&lt;td>1&lt;/td>
&lt;td>888&lt;/td>
&lt;td>7046.16&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2&lt;/th>
&lt;td>12749&lt;/td>
&lt;td>4&lt;/td>
&lt;td>37&lt;/td>
&lt;td>813.45&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>3&lt;/th>
&lt;td>12820&lt;/td>
&lt;td>4&lt;/td>
&lt;td>17&lt;/td>
&lt;td>268.02&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>4&lt;/th>
&lt;td>12822&lt;/td>
&lt;td>71&lt;/td>
&lt;td>9&lt;/td>
&lt;td>146.15&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>...&lt;/th>
&lt;td>...&lt;/td>
&lt;td>...&lt;/td>
&lt;td>...&lt;/td>
&lt;td>...&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>3638&lt;/th>
&lt;td>18280&lt;/td>
&lt;td>278&lt;/td>
&lt;td>2&lt;/td>
&lt;td>38.70&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>3639&lt;/th>
&lt;td>18281&lt;/td>
&lt;td>181&lt;/td>
&lt;td>2&lt;/td>
&lt;td>31.80&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>3640&lt;/th>
&lt;td>18282&lt;/td>
&lt;td>8&lt;/td>
&lt;td>2&lt;/td>
&lt;td>30.70&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>3641&lt;/th>
&lt;td>18283&lt;/td>
&lt;td>4&lt;/td>
&lt;td>152&lt;/td>
&lt;td>432.93&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>3642&lt;/th>
&lt;td>18287&lt;/td>
&lt;td>43&lt;/td>
&lt;td>15&lt;/td>
&lt;td>395.76&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>3643 rows × 4 columns&lt;/p>
&lt;/div>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Check columns for data types and missing values&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">df&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">info&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;pre>&lt;code>&amp;lt;class 'pandas.core.frame.DataFrame'&amp;gt;
RangeIndex: 3643 entries, 0 to 3642
Data columns (total 4 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 CustomerID 3643 non-null int64
1 Recency 3643 non-null int64
2 Frequency 3643 non-null int64
3 MonetaryValue 3643 non-null float64
dtypes: float64(1), int64(3)
memory usage: 114.0 KB
&lt;/code>&lt;/pre>
&lt;h2 id="2-exploring-the-data">2. Exploring the Data&lt;/h2>
&lt;p>Based on the evaluation above, you can select columns you wish to inspect further. In this template, three columns are selected from the four columns. CustomerID is omitted because it is an identifier and not useful for clustering.&lt;/p>
&lt;p>The code below reduces the DataFrame to the columns you wish to cluster on and then prints descriptive statistics using the &lt;a href="https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.describe.html" target="_blank" rel="noopener">&lt;code>describe()&lt;/code>&lt;/a> method from &lt;code>pandas&lt;/code>.&lt;/p>
&lt;p>Printing descriptive statistics is helpful because K-means clustering has several key assumptions that can be revealed via this exploration:&lt;/p>
&lt;ol>
&lt;li>There is no skewness to the data.&lt;/li>
&lt;li>The variables have the same average values.&lt;/li>
&lt;li>The variables have the same variance.&lt;/li>
&lt;/ol>
&lt;p>If you&amp;rsquo;d like to learn more about pre-processing data for K-means clustering, you can refer to this &lt;a href="https://campus.datacamp.com/courses/customer-segmentation-in-python/data-pre-processing-for-clustering?ex=1" target="_blank" rel="noopener">video&lt;/a> from the course Customer Segmentation in Python.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Select columns for clustering&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">columns_for_clustering&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="s2">&amp;#34;Recency&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;Frequency&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;MonetaryValue&amp;#34;&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Create new DataFrame with clustering variables&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">df_features&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">df&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">columns_for_clustering&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Print a summary of descriptive statistics&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">df_features&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">describe&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div>
&lt;style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
&lt;pre>&lt;code>.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
&lt;/code>&lt;/pre>
&lt;p>&lt;/style>&lt;/p>
&lt;table border="1" class="dataframe">
&lt;thead>
&lt;tr style="text-align: right;">
&lt;th>&lt;/th>
&lt;th>Recency&lt;/th>
&lt;th>Frequency&lt;/th>
&lt;th>MonetaryValue&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;th>count&lt;/th>
&lt;td>3643.00000&lt;/td>
&lt;td>3643.000000&lt;/td>
&lt;td>3643.000000&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>mean&lt;/th>
&lt;td>90.43563&lt;/td>
&lt;td>18.714247&lt;/td>
&lt;td>370.694387&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>std&lt;/th>
&lt;td>94.44651&lt;/td>
&lt;td>43.754468&lt;/td>
&lt;td>1347.443451&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>min&lt;/th>
&lt;td>1.00000&lt;/td>
&lt;td>1.000000&lt;/td>
&lt;td>0.650000&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>25%&lt;/th>
&lt;td>19.00000&lt;/td>
&lt;td>4.000000&lt;/td>
&lt;td>58.705000&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>50%&lt;/th>
&lt;td>51.00000&lt;/td>
&lt;td>9.000000&lt;/td>
&lt;td>136.370000&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>75%&lt;/th>
&lt;td>139.00000&lt;/td>
&lt;td>21.000000&lt;/td>
&lt;td>334.350000&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>max&lt;/th>
&lt;td>365.00000&lt;/td>
&lt;td>1497.000000&lt;/td>
&lt;td>48060.350000&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;p>The &lt;a href="https://seaborn.pydata.org/generated/seaborn.FacetGrid.html" target="_blank" rel="noopener">&lt;code>facetgrid()&lt;/code>&lt;/a> function from &lt;code>seaborn&lt;/code> creates a grid of histograms of the data to be clustered. It serves as a further exploration of the data to determine its skew and whether it needs transformation.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Plot the distributions of the selected variables&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">g&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">sns&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">FacetGrid&lt;/span>&lt;span class="p">(&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">df_features&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">melt&lt;/span>&lt;span class="p">(),&lt;/span> &lt;span class="c1"># Reformat the DataFrame for plotting purposes&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">col&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;variable&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="c1"># Split on the &amp;#39;variable&amp;#39; column created by reformating&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">sharey&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="kc">False&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="c1"># Turn off shared y-axis&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">sharex&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="kc">False&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="c1"># Turn off shared x-axis&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Apply a histogram to the facet grid&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">g&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">map&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">sns&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">histplot&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;value&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Adjust the top of the plots to make room for the title&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">g&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">fig&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">subplots_adjust&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">top&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mf">0.8&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Create a title&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">g&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">fig&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">suptitle&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;Unprocessed Variable Distributions&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">fontsize&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">16&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">plt&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">show&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img src="https://user-images.githubusercontent.com/20341930/208640481-c85d002b-1d81-49f2-b8ce-9cd7e2acfc2f.png" alt="png" loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>Before proceeding, it is crucial to ensure that all columns selected for clustering are numeric. The following code iterates through the reduced DataFrame and checks whether each column is numeric. If it returns &lt;code>True&lt;/code>, then you can proceed with the pre-processing.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">all&lt;/span>&lt;span class="p">([&lt;/span>&lt;span class="n">pd&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">api&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">types&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">is_numeric_dtype&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">df_features&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">col&lt;/span>&lt;span class="p">])&lt;/span> &lt;span class="k">for&lt;/span> &lt;span class="n">col&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">columns_for_clustering&lt;/span>&lt;span class="p">])&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;pre>&lt;code>True
&lt;/code>&lt;/pre>
&lt;h2 id="3-pre-processing-the-data">3. Pre-processing the Data&lt;/h2>
&lt;p>Based on the grids above, if there is a skew, you will have to complete this step which removes the skew and center the variables. This is the case for the placeholder dataset used in this template and will likely be the case for your data.&lt;/p>
&lt;ul>
&lt;li>First, a log transformation is applied to the data using the &lt;code>numpy&lt;/code> &lt;a href="https://numpy.org/doc/stable/reference/generated/numpy.log.html" target="_blank" rel="noopener">&lt;code>log()&lt;/code>&lt;/a> function. A log transformation unskews the data in preparation for clustering.&lt;/li>
&lt;li>Next, the &lt;code>StandardScaler()&lt;/code> from &lt;a href="https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.StandardScaler.html" target="_blank" rel="noopener">&lt;code>sklearn.preprocessing&lt;/code>&lt;/a> fits and transforms the log-transformed data. This centers and scales the data in further preparation for clustering.&lt;/li>
&lt;li>Finally, a new DataFrame is created and visualized again to confirm the results.&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Perform a log transformation of the data to unskew the data&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">df_log&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">np&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">log&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">df_features&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Initialize a standard scaler and fit it&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">scaler&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">StandardScaler&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">scaler&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">fit&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">df_log&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Scale and center the data&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">df_normalized&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">scaler&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">transform&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">df_log&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Create a pandas DataFrame of the processed data&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">df_processed&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">pd&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">DataFrame&lt;/span>&lt;span class="p">(&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">data&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">df_normalized&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">index&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">df_features&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">index&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">columns&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">df_features&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">columns&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Plot the distributions of the selected variables&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">g&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">sns&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">FacetGrid&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">df_processed&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">melt&lt;/span>&lt;span class="p">(),&lt;/span> &lt;span class="n">col&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;variable&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">g&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">map&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">sns&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">histplot&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;value&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">g&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">fig&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">subplots_adjust&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">top&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mf">0.8&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">g&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">fig&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">suptitle&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;Preprocessed Variable Distributions&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">fontsize&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">16&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">plt&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">show&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img src="https://user-images.githubusercontent.com/20341930/208640501-9809e47f-9925-4860-998f-2d25d2db0cc0.png" alt="png" loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;h2 id="4-choosing-the-number-of-clusters">4. Choosing the Number of Clusters&lt;/h2>
&lt;p>The next step is to fit a variable number of clusters and plot each cluster&amp;rsquo;s sum-of-squared errors (SSE). The SSE reflects the sum of squared distances from every data point to the cluster center. The aim is to reduce the SSE while still maintaining a reasonable number of clusters.&lt;/p>
&lt;p>By plotting the SSE for each number of clusters, you can identify at what point there are diminishing returns by adding new clusters. This type of plot is called an elbow plot.&lt;/p>
&lt;p>In the code below, you can set the maximum number of clusters you want to plot, and then a loop is used to generate the SSE for each number of clusters. Finally, the &lt;code>seaborn&lt;/code> function &lt;a href="https://seaborn.pydata.org/generated/seaborn.pointplot.html" target="_blank" rel="noopener">&lt;code>pointplot()&lt;/code>&lt;/a> plots a curve with each cluster number and SSE. This allows you to identify the &amp;rsquo;elbow&amp;rsquo; or point where there are only marginal reductions for each additional cluster.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Set the maximum number of clusters to plot&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">max_clusters&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">10&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Initialize empty dictionary to store sum of squared errors&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">sse&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">{}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Fit KMeans and calculate SSE for each k&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">for&lt;/span> &lt;span class="n">k&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="nb">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">max_clusters&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Initialize KMeans with k clusters&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">kmeans&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">KMeans&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n_clusters&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">k&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">random_state&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Fit KMeans on the normalized dataset&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">kmeans&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">fit&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">df_processed&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Assign sum of squared distances to k element of dictionary&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">sse&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">k&lt;/span>&lt;span class="p">]&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">kmeans&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">inertia_&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Initialize a figure of set size&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">plt&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">figure&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">figsize&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">4&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Create an elbow plot of SSE values for each key in the dictionary&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">sns&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">pointplot&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">x&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nb">list&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">sse&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">keys&lt;/span>&lt;span class="p">()),&lt;/span> &lt;span class="n">y&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nb">list&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">sse&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">values&lt;/span>&lt;span class="p">()))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Add labels to the plot&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">plt&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">title&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;Elbow Method Plot&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">fontsize&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">16&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="c1"># Add a title to the plot&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">plt&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">xlabel&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;Number of Clusters&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="c1"># Add x-axis label&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">plt&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">ylabel&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;SSE&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="c1"># Add y-axis label&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Show the plot&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">plt&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">show&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img src="https://user-images.githubusercontent.com/20341930/208640509-b6265b2f-7232-4eee-98b4-3e76c6b76e93.png" alt="png" loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;h2 id="5-clustering-the-data">5. Clustering the Data&lt;/h2>
&lt;p>You can now select an optimal number of clusters based on the elbow plot above by setting &lt;code>k&lt;/code>. In this example, &lt;code>k&lt;/code> is set to 3.&lt;/p>
&lt;p>&lt;a href="https://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html" target="_blank" rel="noopener">&lt;code>KMeans()&lt;/code>&lt;/a> from &lt;code>sklearn.cluster&lt;/code> with &lt;code>k&lt;/code> clusters is then fit to the processed data, and the cluster labels are extracted and assigned back to the original data. This allows you to inspect raw data by cluster in later steps.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Choose number of clusters&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">k&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">3&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Initialize KMeans&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">kmeans&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">KMeans&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">n_clusters&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">k&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">random_state&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Fit k-means clustering on the normalized data set&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">kmeans&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">fit&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">df_processed&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Extract cluster labels&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">cluster_labels&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">kmeans&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">labels_&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Create a new DataFrame by adding a new cluster column to the original data&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">df_clustered&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">df&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">assign&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Cluster&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">cluster_labels&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Preview the clustered DataFrame&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">df_clustered&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div>
&lt;style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
&lt;pre>&lt;code>.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
&lt;/code>&lt;/pre>
&lt;p>&lt;/style>&lt;/p>
&lt;table border="1" class="dataframe">
&lt;thead>
&lt;tr style="text-align: right;">
&lt;th>&lt;/th>
&lt;th>CustomerID&lt;/th>
&lt;th>Recency&lt;/th>
&lt;th>Frequency&lt;/th>
&lt;th>MonetaryValue&lt;/th>
&lt;th>Cluster&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;th>0&lt;/th>
&lt;td>12747&lt;/td>
&lt;td>3&lt;/td>
&lt;td>25&lt;/td>
&lt;td>948.70&lt;/td>
&lt;td>0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>1&lt;/th>
&lt;td>12748&lt;/td>
&lt;td>1&lt;/td>
&lt;td>888&lt;/td>
&lt;td>7046.16&lt;/td>
&lt;td>0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2&lt;/th>
&lt;td>12749&lt;/td>
&lt;td>4&lt;/td>
&lt;td>37&lt;/td>
&lt;td>813.45&lt;/td>
&lt;td>0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>3&lt;/th>
&lt;td>12820&lt;/td>
&lt;td>4&lt;/td>
&lt;td>17&lt;/td>
&lt;td>268.02&lt;/td>
&lt;td>0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>4&lt;/th>
&lt;td>12822&lt;/td>
&lt;td>71&lt;/td>
&lt;td>9&lt;/td>
&lt;td>146.15&lt;/td>
&lt;td>2&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>...&lt;/th>
&lt;td>...&lt;/td>
&lt;td>...&lt;/td>
&lt;td>...&lt;/td>
&lt;td>...&lt;/td>
&lt;td>...&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>3638&lt;/th>
&lt;td>18280&lt;/td>
&lt;td>278&lt;/td>
&lt;td>2&lt;/td>
&lt;td>38.70&lt;/td>
&lt;td>1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>3639&lt;/th>
&lt;td>18281&lt;/td>
&lt;td>181&lt;/td>
&lt;td>2&lt;/td>
&lt;td>31.80&lt;/td>
&lt;td>1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>3640&lt;/th>
&lt;td>18282&lt;/td>
&lt;td>8&lt;/td>
&lt;td>2&lt;/td>
&lt;td>30.70&lt;/td>
&lt;td>1&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>3641&lt;/th>
&lt;td>18283&lt;/td>
&lt;td>4&lt;/td>
&lt;td>152&lt;/td>
&lt;td>432.93&lt;/td>
&lt;td>0&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>3642&lt;/th>
&lt;td>18287&lt;/td>
&lt;td>43&lt;/td>
&lt;td>15&lt;/td>
&lt;td>395.76&lt;/td>
&lt;td>2&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>3643 rows × 5 columns&lt;/p>
&lt;/div>
&lt;h2 id="6-inspecting-the-clusters">6. Inspecting the Clusters&lt;/h2>
&lt;h3 id="6a-visualizing-the-raw-values-by-cluster">6a. Visualizing the Raw Values by Cluster&lt;/h3>
&lt;p>The next step is to analyze the unprocessed data by cluster. The &lt;code>pandas&lt;/code> method &lt;a href="https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.groupby.html" target="_blank" rel="noopener">&lt;code>DataFrame.groupby()&lt;/code>&lt;/a>, combined with the &lt;a href="https://pandas.pydata.org/docs/reference/api/pandas.core.groupby.GroupBy.size.html" target="_blank" rel="noopener">&lt;code>.size()&lt;/code>&lt;/a> method, returns the total number of rows per &lt;code>Cluster&lt;/code>.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Group the data by cluster and calculate the total number of rows per group&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">df_sizes&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">df_clustered&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">groupby&lt;/span>&lt;span class="p">([&lt;/span>&lt;span class="s2">&amp;#34;Cluster&amp;#34;&lt;/span>&lt;span class="p">],&lt;/span> &lt;span class="n">as_index&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="kc">False&lt;/span>&lt;span class="p">)&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">size&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Inspect the row counts&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">df_sizes&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div>
&lt;style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
&lt;pre>&lt;code>.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
&lt;/code>&lt;/pre>
&lt;p>&lt;/style>&lt;/p>
&lt;table border="1" class="dataframe">
&lt;thead>
&lt;tr style="text-align: right;">
&lt;th>&lt;/th>
&lt;th>Cluster&lt;/th>
&lt;th>size&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;th>0&lt;/th>
&lt;td>0&lt;/td>
&lt;td>901&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>1&lt;/th>
&lt;td>1&lt;/td>
&lt;td>1156&lt;/td>
&lt;/tr>
&lt;tr>
&lt;th>2&lt;/th>
&lt;td>2&lt;/td>
&lt;td>1586&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;/div>
&lt;p>Next, the mean values per cluster are visualized. The data is grouped again, and this time, the &lt;code>pandas&lt;/code> method &lt;a href="https://pandas.pydata.org/docs/reference/api/pandas.core.groupby.GroupBy.mean.html" target="_blank" rel="noopener">&lt;code>.mean()&lt;/code>&lt;/a> is used to aggregate the data by cluster and calculate the mean for each variable. Alternatively, the &lt;a href="https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.agg.html" target="_blank" rel="noopener">&lt;code>.agg()&lt;/code>&lt;/a> method can also be used to specify specific aggregations for different columns if necessary. Consult the &lt;a href="https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.agg.html" target="_blank" rel="noopener">documentation&lt;/a> for further information on the types of aggregations possible.&lt;/p>
&lt;p>The &lt;code>seaborn&lt;/code> &lt;a href="https://seaborn.pydata.org/generated/seaborn.catplot.html#seaborn.catplot" target="_blank" rel="noopener">&lt;code>catplot()&lt;/code>&lt;/a> function visualizes the means per cluster.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Calculate the mean of feature columns by cluster&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">df_means&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">df_clustered&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">groupby&lt;/span>&lt;span class="p">([&lt;/span>&lt;span class="s2">&amp;#34;Cluster&amp;#34;&lt;/span>&lt;span class="p">])[&lt;/span>&lt;span class="n">df_features&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">columns&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">mean&lt;/span>&lt;span class="p">()&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">reset_index&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Plot the distributions of the selected variables&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">sns&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">catplot&lt;/span>&lt;span class="p">(&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">data&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">df_means&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">melt&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">id_vars&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;Cluster&amp;#34;&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="c1"># Transform the data to enable plotting&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">col&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;variable&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">x&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;Cluster&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">y&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;value&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">kind&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;bar&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Add a title&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">plt&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">suptitle&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;Average Values by Cluster&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">y&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mf">1.04&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">fontsize&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">16&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Show the plot&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">plt&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">show&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img src="https://user-images.githubusercontent.com/20341930/208640524-c4526195-435a-4e6a-b126-9e3758b213a1.png" alt="png" loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;h3 id="6b-create-a-snake-plot-of-the-clusters">6b. Create a Snake Plot of the Clusters&lt;/h3>
&lt;p>The next step takes the processed data and visualizes the differences between the clusters using a snake plot. This can be helpful in spotting trends or key differences that would not be visible with the raw data.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Assign cluster labels to processed DataFrame&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">df_processed_clustered&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">df_processed&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">assign&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">Cluster&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">cluster_labels&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Melt the normalized DataFrame and reset the index&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">df_processed_melt&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">pd&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">melt&lt;/span>&lt;span class="p">(&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">df_processed_clustered&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">reset_index&lt;/span>&lt;span class="p">(),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Assign the cluster labels as the ID&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">id_vars&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="s1">&amp;#39;Cluster&amp;#39;&lt;/span>&lt;span class="p">],&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Assign clustering variables as values&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">value_vars&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">df_features&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">columns&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Name the variable and value&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">var_name&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;Metric&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">value_name&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;Value&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Change the figure size&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">plt&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">figure&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">figsize&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">10&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">6&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Add label and titles to the plot&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">plt&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">title&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;Snake Plot of Normalized Variables&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">fontsize&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">16&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">plt&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">xlabel&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;Metric&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">plt&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">ylabel&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s1">&amp;#39;Average Normalized Value&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Plot a line for each value of the cluster variable&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">sns&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">lineplot&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">data&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">df_processed_melt&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">x&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;Metric&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">y&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;Value&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">hue&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;Cluster&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">plt&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">show&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img src="https://user-images.githubusercontent.com/20341930/208640535-4c8c2e3a-9862-4335-8dd7-1e60c8bbc5c0.png" alt="png" loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;h3 id="6c-create-a-heatmap-of-relative-importance">6c. Create a Heatmap of Relative Importance&lt;/h3>
&lt;p>Another technique to help visualize how each segment is distinct is to plot the relative importance. The code below achieves this by doing the following:&lt;/p>
&lt;ul>
&lt;li>First, it calculates the average values for each cluster.&lt;/li>
&lt;li>Next, it calculates the average values for the total population.&lt;/li>
&lt;li>It then divides the cluster averages by the population averages and subtracts one.&lt;/li>
&lt;/ul>
&lt;p>This provides a relative importance score for each of the different features used for clustering. The &lt;code>seaborn&lt;/code> &lt;a href="https://seaborn.pydata.org/generated/seaborn.heatmap.html" target="_blank" rel="noopener">&lt;code>heatmap()&lt;/code>&lt;/a> function plots these relative importances on a red-to-blue colour scale to help visualize the relative importance of each attribute to the segments.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Calculate average RFM values for each cluster&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">cluster_avg&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">df_clustered&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">groupby&lt;/span>&lt;span class="p">([&lt;/span>&lt;span class="s2">&amp;#34;Cluster&amp;#34;&lt;/span>&lt;span class="p">])[&lt;/span>&lt;span class="n">columns_for_clustering&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">mean&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Calculate average RFM values for the total customer population&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">population_avg&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">df&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="n">columns_for_clustering&lt;/span>&lt;span class="p">]&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">mean&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Calculate relative importance of cluster&amp;#39;s attribute value compared to the population&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">relative_imp&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">cluster_avg&lt;/span> &lt;span class="o">/&lt;/span> &lt;span class="n">population_avg&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="mi">1&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Change the figure size&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">plt&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">figure&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">figsize&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">8&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">4&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Add the plot title&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">plt&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">title&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;Relative importance of attributes&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">fontsize&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">16&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Plot the heatmap&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">sns&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">heatmap&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">data&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">relative_imp&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">annot&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="kc">True&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">fmt&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;.2f&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">cmap&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">sns&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">diverging_palette&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">20&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">220&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">as_cmap&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="kc">True&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">plt&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">show&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img src="https://user-images.githubusercontent.com/20341930/208640551-382662b5-ee68-4881-97c7-f534e0092e79.png" alt="png" loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;p>This concludes the report! Hope you find it enjoyable &amp;amp; insightful.&lt;/p></description></item></channel></rss>