Follow this link to view project documentation: 👉 click here
The Media Analyzer is a program we built using Django to process a stream of data. The goal of this program is to allow adding new natural language processing modules easily, without refactoring code and changing existing data pipelines. We did so by using an event-driven structure and used a background scheduler to handle events so that the website will always be responsive. Tweets from the stream will first be cached, then it will take each tweet out of the cache, getting results based on activated analyzers synchronously (getting sentiment, detecting language), and put it back into the cache. This process will be scheduled to run again once finished. Meanwhile cleaning the cache will be scheduled to run every 2 sec to clear the cache. When receiving an API call, requested data will be fetched from the cache or database. If the requested data doesn’t exist None will be returned as a promise, and the analyzer will be scheduled to generate the result asynchronously. When the frontend receives data was None, it will request that data again. In this deployment we fine tuned a deep learning on sentiment classification. On the UI, the white tweet indicating no sentiment, gray is netural, green positive and red negative. The overall sentiment is held in a histogram to show the user the normal sentiment over the stream.
Check out the VS Code setup. https://github.com/joshuam1008/media-analyzer/blob/main/docs/VSCode_Setup.md
Follow instructions for running the program as a developer. https://github.com/joshuam1008/media-analyzer/blob/main/INSTALL.md
Steps also listed at https://github.com/joshuam1008/media-analyzer/blob/main/CONTRIBUTING.md
Example word: “sky”
With Twitter and other social media platforms being a powerful tool for users to express their opinions on topics, we believe that marketing teams can use social media as a way to evaluate the public opinion on a product or feature. We believe that a limitation in place is that these marketing teams can only processes a limited number of tweets / posts and the evaluation can be tedious. With this in mind, we designed a tool that processes twitter streams to:
This tool can be built upon to run sentiment on other social media platforms in a similar way and allow for limiting sentiment to specific accounts / topics. It is also highly extensible and possible additional features include filtering by hashtags, mentions of a specific username, verified accounts, and more. Other social media analysis tools exist, but the fact that ours runs in real time sets it apart.