Inspiration
We were fascinated by the polarizing effects of media echo chambers and believed people deserved to have a more holistic consumption of the news. We also thought readers should be better informed on political leanings, sentiments, and trustworthiness of their articles.
What it does
Dialectic puts together a collection of trending headlines and aggregates relevant articles from various sources with different political leanings. Political leanings and sentiments are displayed under each article title. It also puts together unbiased summaries of each current event after analyzing articles from various sources about the same event.
How we built it
We built the backend in Go and the frontend in Swift. We used News API to source trustworthy articles scattered throughout the political spectrum. We built our own parser to grab content from news articles. We used Python's Natural Language Toolkit library for sentiment analysis on news articles. We used Python's NetworkX library to identity "important common sentences" and generate our summaries.
The text summarization feature was implemented through a text rank. We pulled multiple articles from across the political spectrum for each topic, broke down each article into sentences (which became vectors), compiled all the sentences, and then compared each sentence to every other sentence, giving each sentence a rank based on how similar they are to the other sentences (the edges that connected the vectors). The final generated "objective" summary is the sentences that have the highest similarity rank.
Challenges we ran into
We found Swift development to be frustrating due to the lack of examples and documentation for the features we we're trying to implement.
Accomplishments that we're proud of
Our news aggregating algorithm isn't too bad!
What we learned
Don't try to tackle too many features all at once. And do more research before diving into the development! (We found an API that may have been better for our use case.)
What's next for Dialectic
Sleep
Log in or sign up for Devpost to join the conversation.