Fake news is more prevalent than ever, especially after the election, and people are often bombarded with so much information that they do not know what to believe. Thus, for Boston Hacks, we developed Factfindr to combat this problem.

What it does

Factfindr is an SMS chatbot that uses Machine Learning to detect fake news. If one sends a text to +1 (425) 243-0732, the text will be sent to our servers, and analyzed. After analysis, we return a response on whether or not the model predicts the text contains fake news.

How I built it

We used scikit learn to train and test the Multinomial Bayesian Classifier (an ML model) that we use to classify text as real or fake. We used the Twilio API to send and receive text messages, and Flask to create our webhooks. Finally, we used ngrok tunneling to get a URL for localhost.

Challenges I ran into

  1. Surprisingly, there weren't many good datasets for this task, and we spent a long time trying to find one.
  2. We initially tried using transformers (attention-based NLP model) for text classification, but we didn't have a large enough dataset for them to be useful. Thus, we ended up using a Multinomial Bayesian Classifier.

Accomplishments that I'm proud of

We're proud of developing and end to end solution (that is completely functional). Furthermore, we persevered through the many struggles that we faced when developing this, and are proud of our end result.

What I learned

  1. Create and deploy chatbots with Twilio
  2. Using Flask to create webhooks

What's next for Factfindr

  1. We hope to deploy our webhook to a server, rather than just using ngrok to get a URL for a localhost port.
  2. Our models do not currently have a high accuracy (73%), and we really need to improve that to 90-95%+ if we are to deploy this.
  3. We hope to find a new, larger dataset, and to switch to an attention-based model on that dataset.

Built With

Share this project: