title: How to figure out rising words (or words which are becoming more popular from a list)
body: <p>I was wondering how I can figure out rising words (sort of similar to reddit's rising threads sort option). What I mean by rising is, what is <strong>becoming</strong> popular. What's rising to the top the fastest. Example:</p>
  
  <p>PS: the <code>-</code>, <code>^</code> and <code>v</code> are just how the words moved. Also the <code>(a)</code> and <code>(b)</code> are not part of the word. I am just showing their uniqueness this way</p>
  
  <p>At 10:00am I have this list, in this rank</p>
  
  <pre><code>1. Cool    (a)  -
  2. Best         -
  3. Cool    (b)  -
  4. Radical (a)  -
  5. Sweet   (a)  -
  6. Sweet   (b)  -
  7. Radical (b)  -
  </code></pre>
  
  <hr>
  
  <p>Then at 10:15am (15 minutes later), the order of the list changed. </p>
  
  <pre><code>1. Best         ^
  2. Cool    (a)  v
  3. Radical (a)  ^
  4. Sweet   (a)  ^
  5. Cool    (b)  v
  6. Radical (b)  ^
  7. Sweet   (b)  v
  </code></pre>
  
  <hr>
  
  <p>Then at 10:30am (15 minutes later), the order of the list changes again.</p>
  
  <pre><code>1. Best         -
  2. Radical (a)  ^
  3. Sweet   (a)  ^
  4. Cool    (a)  v
  5. Radical (b)  ^
  6. Sweet   (b)  ^
  7. Cool    (b)  v
  </code></pre>
  
  <hr>
  
  <p>As you can see, the word <code>Cool</code> as a whole is clearly the dropping in popularity. Currently my algorithm (I feel, is fairly stupid, but I can't think of any other way).</p>
  
  <p>The way I am doing it now is:</p>
  
  <ol>
  <li>For every word on the list, I count how many ranks it moved up (<code>+ num</code>) or down (<code>- num</code>) or if it didn't move <code>0</code>. This technically gives me a rate. <code>Ranks moved per 15 minutes</code></li>
  <li>Then if that same word exists twice (like the word <code>Cool</code>), then I average the rate.</li>
  <li>Then I sort it from highest to lowest and I have my rising words.</li>
  </ol>
  
  <p>Though I feel this isn't very good (or even makes any sense). It surely doesn't take into account any historical data either, only the new data it receives every 15 minutes.</p>
  
  <p>My question is, how can I figure out the top rising word, bottom rising word and all the words in between.</p>