Class Projects - Spring 2014

Tweet Talk

Tweet Talk is a browser extension that allows readers to see tweets, expert opinion, links related to the article they’re currently reading.

This is "Tweet Talk" by Northwestern U. Knight Lab on Vimeo, the home for high quality videos and the people who love them.
What it does

To use Tweet Talk, the user downloads the extension from the Google Chrome app store ( While reading an article, the user activates Tweet Talk by clicking on the extension icon in their menu bar. The extension instantly presents the user with a pop-up of tweets related to the article from experts in the field.

How it works

When the user clicks on tweet talk extension icon, the front end JavaScript makes an AJAX call to the ‘tweetResult’ RESTful method declared in Node.js server. The RESTful method receives the url of the current web page and searches for that url in the Firebase database, which stores information tweets related to pre-processed articles, thus serving like a cache. If the news article is found in Firebase and has been processed within the last 2 days, the stored tweets are returned to the front end, where the JavaScript modifies the HTML to display the tweets.

Otherwise, Alchemy API pulls the content of the webpage and designates a list of keywords, listed in terms of their relevance to the article. Then eight queries, using the top 8 keywords, are used to pull tweets with Twitter’s Streaming API. The optional parameter ‘result-type’ is set as ‘popular’ to retrieve tweets which Twitter thinks to be important, based on number of retweets and ‘favorites’.

Once the tweets are pulled, they are immediately sent to a filtering process. First, TweetTalk checks if the tweet is from an organization by comparing names with a blacklist of organization-related words. The function also checks if the tweet is from someone with less than 10,000 followers or more than 1,000,000 followers; it is usually relevant only within that range. All of the tweets that pass those tests are then ranked based on their relevance to the article. Weight is assigned based on several factors: the number of matching (non-stop listed) strings between the article and the tweet; the placement of each matching string (the higher the string, the more important it is); and the relevance value, between 0.0 and 1.0, assigned by Alchemy API. Finally, the tweets are sorted by relevance and stored in Firebase along with the article’s url, and then returned to the front end to be displayed to the user.

Next Steps
  • Cross-browser compatibility
  • Improve search functionality to include Twitter names, not just handles.
  • Add ability to create a custom list of experts, or the ability to ‘favorite’ experts so they are more prominent in the list for all users.
  • Better ascertain whether certain users are actual “experts” in a field, perhaps using Wikipedia as a cross reference.


Student team: Ran Li, Ashwin Shanmugasundaram, Dane Stier, Britt Vogel

Faculty guidance: Larry Birnbaum and Rich Gordon