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
Post a Comment