Final Project Statement

Final Project Statement

            All the news we consume is controlled. News agencies and organizations decide what is worthy of making the news cycle and allow us to consume that information. We turn to the same news sources for our information – generally, ones that reflect our political beliefs and values. Consequently, we get stuck in an echo chamber. My final project is a dramatization of this experience.
            In my project, I wanted to capture this experience, showing the audience that they do not have control over their surroundings and are passive recipients. A news article is randomly selected from a pre-curated list of news articles. The user enters a wormhole while a computer voice reads the article to the user. The wormhole changes colors as the sentiment of each color changes and the speed that the user enters the wormhole changes as well.
            I made many design decisions as I was making my final project. First, I had to make a decision about a news source. I scraped all the opinions articles from the Brown Daily Herald. Ultimately, I ended up not using them because a) they lacked generality and b) the sentiment change from sentence to sentence was negligible.
Next, I had to consider how accessible the news source was. The news should be up to date, so I decided it should be scraped in real-time. An obstacle with this approach was that it’s difficult to scrape articles in real time due to browser security settings (CORS policies).
Moreover, I considered generating fake articles based on the articles that I scraped from the Brown Daily Herald. I was able to generate headlines, but generating article text proved difficult. I ended up pseudo-randomly choosing a handful of articles from Google News and the Brown Daily Herald and randomly choosing them for the experience. I felt that this best embodied the statement I was trying to make; the user is not given a choice about what they are listening to, which is similar to how we consume our news.
            I also experimented with the level of control that the user had. I ultimately decided that the user shouldn’t have any input or control over the experience because the experience is given meaning if it is passive; it’s indicative of the way we consume our news. We do not have a say in what news is reported to us. I considered allowing the user to input an article, allow them to choose from an assortment of articles, or randomly select an article to be read to the user.
Ultimately, I decided to randomly select an article to be read to the user because it best matches the passive experience I want to create. The second consideration I had was giving the audience time to prepare, so the website would prompt the user to click a button to enter the experience. After trying this idea and asking people for feedback, I decided it was very confusing. Instead, I think it is a better experience to dive right into and figure out what is going on. 
A big consideration for this project was how to determine the sentiment. I first thought about creating my own model using a natural language processing algorithm and deep learning, but decided against it. I figured that training and developing a model might require a lot of computational resources and time; instead, I decided to browse the web for ready made solutions. I wanted to do the sentiment analysis in realtime, so libraries that depended on running on the backend were out of question. I found one tool, VaderSentiment, that aggregated many common words and attached a sentiment to them. The script calculates the frequency of each word and it's placement to determine a composition score, which translates into sentiment. I thought this was the most robust way to do sentiment analysis that involved the least amount of computational effort.
I also changed the program design throughout the project. Before, the program would read the entire article and display the same color spheres. I changed it so as each sentence is read off, the sentiment of the sentence is calculated and the color is changed accordingly - either blue for positive or red for negative. I considered displaying text in the 'wormhole' and other objects.  After playing around with 3D and 2D objects insertion into the experience, I found that the objects took away from the experience. 
            I faced quite a few challenges and obstacles along the way. I found out that implementing text to voice in the browser was more difficult than I originally imagine. I discovered an issue relating to garbage collection with the HTML5 API for text to voice translation in Google Chrome. I found that you can only iterate through the speechutterance object and have it speak if you print the variable out to the console.
Another challenge was designing an experience that doesn’t cause motion sickness. I had to make sure that the rapid movement in the wormhole was not too rapid and nauseating. I experimented with the wormhole speed and acceleration.
Lastly, one of my goals was to provide the user with just enough information so they know what is going on, but nothing else. I did not want to give the user any instruction whatsoever. I wanted my project to be standalone and something that they experienced by interacting with it.
You can view my final project here: http://aanshshah.com/dla_final_project/ and see the code involved in producing the final project here: https://github.com/aanshshah/dla_final_project.

Comments

Popular posts from this blog

Assignment 9

Final Project Update