From news articles to social media posts, information bias becomes a convoluted world, where people can often find it hard to differentiate between facts and opinions. By understanding the levels of sentiment applied in a given text and using knowledge from research, portions of text can be omitted from a web domain activating the elimination of bias. With more objectivity, the reader can formulate opinions for themselves without being chained to subjectivity.

What It Does

We've created a web browser extension that will display the article with highlights, strike-throughs, or both, in order to display the article with the necessary changes made to show the user what is objective. News Unchained is a Google Chrome extension that uses Natural Language Processing (NLP) to determine levels of sentiment in a body of text. This allows users to form their own opinions based off of their available resources so that they can take into account how opinionated an article really easy. For example, an article like Fox News would be clearly conservative although it still contains some facts. Therefore, the user will be able to see the sentences that are purely factual and those that were clearly written to sway the user's opinion.

Our subjectivity detection algorithm uses two main assertions of natural language:

1. A more polarized sentiment value increases the probability that the selected sentence is subjective (Palshikar, 2016). 2. The number of adjectives in the sentence has a positive correlation with the subjectivity of said sentence (Wiebe et al., 1999), (Hatzivassiloglou and Wiebe, 2000).

The first is an established theory that most current subjectivity classification software is based on. To increase accuracy and provide another quantifiable measure, we have also included the ratio of adjectives to the total number of words in a sentence as a determinant. Utilizing the Google Cloud - Natural Language API, we are able to leverage these theories in analyzing text for subjectivity/objectivity. Google’s API allows us to analyze the sentiment and verb frequency sentence by sentence, creating a statistical representation of the sentence that allows us to predict subjectivity. If given more time, we would base the sentiment and verb to word count ratio scores on control texts, increasing the accuracy of our model.

How We Built It

Using a combination of JavaScript, HTML, CSS, and Python, we were able to create everything from the "News Unchained" logo to the physical edits on the web page based off of the analysis that is done through a Python script. We also had to ensure that the UI of the extension was appealing and that the extension itself was user-friendly and self-explanatory. In addition, we used a combination of JavaScript and HTML to be able to web scrape the website the user was looking at and allow the user to manipulate text to display bias. To add onto that, the Python script has the ability to analyze multiple text files in sequence, allowing for the automated analysis of many/large texts.

Challenges We Ran Into

Being able to manipulate the core text so that it is easily readable, web-scraping the website and turning it into an HTML string in order for it to be processed by Python, which uses Natural Language Processing to analyze text subjectivity based off of the Sentiment Analysis rating were some of the challenges we ran into.

Accomplishments We're Proud of

Designing a creative UI, incorporating all the languages together, and implementing Sentiment Analysis into a situation that is encountered by millions of users on a daily basis.

What We Learned

We learned how to develop an extension using a variety of languages and incorporate it all into a simple drop down menu and button click for the user to see which text is biased.

What's Next for News Unchained

Future work will include testing to increase prediction accuracy, creating independent models to reduce bias and increase efficiency, and research into new predictive factors, such as tense or presence of strongly subjective words.

Built With

Share this project: