Fake news has been especially prevalent during the COVID-19 pandemic. With one-tap forwarding functions, fact checking will always be an after-thought when using online messaging apps. The older generation is more susceptible to such manipulation because they are not used to reading fake news. They are sharing the message out of kindness, but is backfired due to lack of information. We hope more people can join the fight against fake news, and for everyone to be responsible before forwarding messages.
What it does
To prevent the widespread of falsehood, we are introducing a message verification bot. Users will forward suspicious messages to the bot, and the bot will return:
- Relevant links from reputable websites
- Percentage of how likely the message is fake news
- Option for the user to vote if the message he or she sent is fake news
With this bot, we hope users will have second thoughts before forwarding messages from unreliable sources.
How we built it
Front end python-telegram-bot, a bot API for building Telegram bots, was used to build the bot and the user interface, to receive user input and interact with the back-end API.
Back-end Python Flask API was used and hosted on a separate server. These API endpoints allow us to serve different platforms in the future such as web (chrome extensions). Upon obtaining the text, we used Spacy package in Python to pre-process the text. We then applied TextRank to perform Natural Language Processing on the text and extract keywords. The text is further processed before converting it into a search query. Utilising the SequenceMatcher algorithm, we grouped similar queries together in our database. Using a Google search api and it’s features, we made google search queries and scanned through the results. Links that match with pre-determined trustworthy sites (such as moh.gov.sg will then be returned to the user. The percentage of how likely the message is fake news is collated from other users' votes who have sent the same message to the bot.
Challenges we ran into
Initially we wanted to use a binary text classification to determine the likelihood of fake news. However, we realise that static models are not able to keep up with the new updates in this pandemic. Everyday there are many new terms and facts discovered, thus our app requires our algorithm to have access to a dynamic and live source.
Accomplishments that we're proud of
We asked our parents to use the bot on some of the messages they received from unreliable sources. We are proud that the bot managed to help them detect Fake News.
What we learned
We find this project especially fulfilling because it attempts to solve a prevalent societal problem. During our ideation phase, we also identified many problems which we hope to solve. We learnt about the many gaps that has arose from the pandemic, and we hope to solve them soon.
What's next for FakeNewsBuster
We want to continue improving the app by collaborating with relevant government agencies. One other improvement would be to give a higher weightage of vote from reliable users. The reliability of users will be determined by their track record of discerning whether a message is fake or not.