Inspiration

False information has been on the rise in the recent years all over the world. It's been used increasingly by people with vested interest to divide society and further their message of hatred. WhatsApp is one of the most widely used platform in countries like India where it is very easy to spread fake news and very difficult to regulate it. There is a large population that can be be easily swayed and one example of that is the lyching incidents that happened in India. The Corona virus pandemic has sent many of these WhatsApp fake news generators on overdrive. Some of the messages circulated range from being harmless to downright malicious. The people at the receiving end of these messages are either too ignorant to know that it may be fake or have some idea, but are unable to verify the authenticity of the messages they receive. It is the latter population that my solution aims to help.

Even the most newbie user to WhatsApp is comfortable in forwarding messages (that's how the fake news spreads in the first place). My idea is to create a WhatsApp service which can be added as a contact to the users address book to provide a quick fact check.

I hope this will reduce the spread of fake news which causes real harm in society.

What it does

This will provide a phone number that WhatsApp users can add to their contacts. If there is any forward of general nature that the user is not sure of, it can be forwarded to this number. Once the message is received, the backend will dip through its local database, sourced from IFCN, and respond to the user if this is a fake news or a fact. For cases where the information cannot be found, it will create a Google link with appropriate key words that users can click and do a search themselves. Please note that this project does not work end to end and has been simulated in the video by sending a hard-coded response from Twilio user interface. At present there is a single feed handler which gets tweets from a single fact checking provider (@FactCheckIndia) and stores it in the database.

How I built it

The project is divided into 3 parts:

  • The FeedHandlers
    • These are responsible for connecting to various information sources like IFCN vetted websites and twitter handles, populating a local database of fake news, with the result - if it's fake news or real, along with link to the source.
  • A dedicated WhatsApp business account which provides fact verification service. I have used Twilio's sandbox for WhatsApp service, which invokes a webhook whenever a message is received on this account.
  • A RESTful service, which is invoked by Twilio's sandbox environment. This service gets the forwarded message text which is tokenized and queried for the closest match from the database (I am using spaCy for checking similarity between the message and the database text). If there is a good confidence in the match, the details are then sent back to the caller, otherwise a google link will be crafted and sent back.

Challenges I ran into

There are multiple IFCN certified websites and twitter sources, but unfortunately they do have any well defined structure or any public API to consume this data. Understanding the format of the text for each of these sources and keeping up with any change in future is a very big challenge. I analyzed 4-5 twitter handles, but in the end managed to write a handler for only one.

Accomplishments that I'm proud of

To be able to work towards a solution for a social problem that has been foremost on my mind for the past few years.

What I learned

I got to know about lot of statistics during my research and the efforts that are being done globally to counter fake news.

What's next for Fake News Buster

  • Integration with various IFCN certified websites
  • Deep integration with WhatsApp
  • A global database of fake news with public APIs that can be used by developers to provide different fact checking applications
  • Chrome and Firefox extensions to do fact checking for Facebook and other social media websites using the global database

Built With

Share this project:

Updates