Inspiration
Younger generations have suffered from years of low turnout in elections, often due to being unable to parse the overwhelming amount of often conflicting information out there. We wanted to create a product that helps energize young people into voting by showing them that there are candidates out there that share their dreams and ideas about the future.
What it does
Votermatch matches online users with candidates in an election of their choosing, be it Senate, Governor, or House race. It uses Natural Language Processing to find candidates whose views are as similar as possible to the user by conducting a semantic similarity analysis between the voter's self-stated views and a candidate's online campaign website
How we built it
We built the front end of our project using Python and Flask. It consists of a website that gives users space to input their views on 5 political issues. Our model then runs on that data and outputs a ranking of potential candidates that align with them based on our semantic similarity analysis results. On the backend, our semantic analysis utilizes the ROBERTA Natural Language Processing algorithm to train on a 160 GB dataset to provide the most accurate word similarity metrics. We also used Python to develop a web scraper that put the text data from the "policy" or similar page from a candidate's website onto a text file that could be inputted into the model.
Challenges we ran into
We did initially struggle with the front end, as building a website using Python proved trick initially. However, we found HTML and CSS to both be helpful in doing so, and learned a great deal about both languages in the process. We also struggled with the complexity of preprocessing and postprocessing such large multidimensional data.
Accomplishments that we're proud of
We are proud that our model is highly accurate in what it does. We inputted a sample user with clearly Republican views--views, in fact, that closely aligned in meaning with those on Brian Kemp's website--and found that the user had a very high NLP similarity metric with Kemp on nearly all issues. We are also proud of being able to provide proof that our product works to the user-by selecting lines directly from the candidate's website that closely match with the user's views, we show them that our model works as intended and allow them to see how closely their views match with certain candidates.
What we learned
We learned that it's important to put effort into every aspect of a programming project, be it backend or frontend, as each part is crucial to developing a complete successful project. We also learned the importance of collaboration and teamwork, and were glad to have learned from each other's strengths as we put our minds towards a challenging task.
What's next for VoterMatch
We hope to expand VoterMatch's flexibility so users can enter as many or as few political opinions as they choose. We also hope to expand to local elections, as we currently only have functionality for US Congressional races and Governor races. We also hope to add more functionality to our website to better engage users.
Log in or sign up for Devpost to join the conversation.