Inspiration
Nowadays, the Internet represents a powerful and incredibly useful resource, which provides quick access to an unlimited amount of information from all around the world. Anyone, with a simple click, can retrieve the information he is looking for from hundreds of different sources.
Unluckily, this powerful tool brings along with it a considerable problem: the rapid increase of news on the web brought to a drastic rise in the global spread of fake news.
This phenomenon is mostly influencing some particular categories of people, especially those who are not really confident with any kind of technological device. Even though, in the long term, it does directly or indirectly affect all of us.
That’s why we felt necessary to create a service that would help people to have easy access to clear and trustable news, especially in such an emergency situation like the current one created by the spread of COVID-19.
The service we are providing aims to support people in the hard challenge of correctly detecting fake news. It is a quick, reliable, and user-friendly system that could represent a precious resource within the challenge of stopping all those sources of news that are not aiming to spread clear and real information.
Moreover, there are very few competitors, is it possible to find some fake news detection services, but only partial or not very functional. These tools are unable to recognize automatically the reliability of news and are often difficult to use and understand. Although it is possible to find similar services, it is very hard to find services that can give a fast, direct, and easy response to understand.
What it does
The service we provide aims to help people in the hard challenge of correctly detecting fake news. It is a quick, reliable, and user-friendly system that could represent a precious resource within the challenge of stopping all those misinformation sources.
This service computes a reliability score about the content of an input news article. A user can easily access to the service through either a user-friendly web application or a web browser extension. The web browser extension, since it's constantly running in background, allows users to check the reliability of news without any kind of effort. As a matter of fact, it gives the opportunity to get a fast result without the need to switch the current tab or to do any extra research.
The web application allows to accomplish the same task of the web browser extension, but it also able to analyze an input plain text without a URL. Finally, the web application represents a starting point for a future implementation step, which would aim to provide more analytic and customize tools to the user and rendering it as a universal smartphone app.
How we built it
The service we are offering is composed of three independent modules that cooperate with each one another: a Chrome Extension, a Web-Application Front End, and a Back-End that takes advantage from a Machine Learning model.
The Chrome Extension is a simple and standard extension that runs a background script, which allows the different modules to communicate with each other and to keep listening for incoming actions. It contains a script that automatically analyzes the active tab on the browser, providing a reliability score about its content. The logic part of this module is fully implemented using JavaScript and jQuery; at the same time, the pop-up is built using HTML and CSS, together with few JS scripts. The work of this Chrome Extension is split within two main tasks: the first one concerns in the identification of an article within a page, the second one is to communicate the previously identified article to the back-end service. It allows to finally obtain a result which could be shown to the user. In the recent future it will also have the task to cooperate with a MongoDB database to let users report the news as fake and view the actual number of the reports for the considered article.
Similarly, the Web Application is fully implemented in React.js for what concerns the front-end, while the server is implemented in Flask, a python framework. The UI allows users to insert in a search bar a link or even a text to be classified as a real, fake, or doubtful article. The server, on the other hand, deals with the prediction of the data received, through a pre-trained ML model, and sends back the results.
The last but not the least part is the Backend module. The aim of this part of the system is to provide an answer to the requests coming from either the Web Application or the Chrome Extension. It is offering a service based on an Artificial Intelligence framework implemented applying a state of the art Machine Learning model. In order to accomplish it, several fake news datasets are joined, creating a dataset with over 55k true or false news. A preprocessing pipeline is performed on the new source of data: we applied a data cleaning phase, a tokenization step, and then we create a dictionary of most used or relevant words. Textual news are sequences where the word location is essential and each different word has specific value and importance. For these reasons, a recurrent neural network (RNN) has been chosen. In particular, we use a bidirectional type of GRU (BGRU) to take advantage of backward and forward training. The best model has been trained on the dataset, considering the textual title, achieving a good accuracy value on recognition of fake news.
At the end of the development phase, it has been possible to reach the required implementation level for each one of those three modules and to obtain a working prototype of the described system.
Challenges we ran into
During the service development, we ran into a few but consistent challenges. The 4 major issues were:
- Lack of time, intrinsic of a Hackathon.
- Smart working, more challenging than we used to think.
- User-friendliness of the tools. Despite, one of the principal reasons for the spreading of fake news is a lack of desire to check sources or details.
- Communication among each different module in a functional way.
Accomplishments that we are proud of
- More hours programming and fewer hours watching Netflix.
- Final results ready and user-friendly.
- Desire to cooperate and get involved together.
- Ability to understand problems under several points of view and think of new functional solutions.
- Be creative, approach the topic in different ways.
- Learn new methods and new technologies to achieve the desired goal.
What we learned
- Improved remote collaboration and smart working skills.
- Looking at the overall project, analyzing different topics, ranging from technological aspects to business aspects.
- Present your own work as better as possible, without limiting yourself to the submission of the mere source code.
- Combine different branches to obtain a complete working product.
What's next for Veritas
The Veritas system is already deployed and ready to use from users all around the world. Even though, we have been considering a list of relevant future works we will try to accomplish any time soon:
- Create a mobile app: it would allow users to get feedback on the daily news directly on their smartphone, in an easy and even faster way.
- Possibility to report fake news: Such a feature would allow to collect a set of reported fake news, which could be useful to improve the ML model performance in order to make the detection phase even more efficient and consistent.
- Create a database: assuming that users will soon be able to access the 'report fake news' just presented above, it is necessary to implement an online database that would work as a container for the fake news reported by the users.
- Machine Learning model update: several additional works have to be done on the Machine Learning model we have been using in this project. For example, it could take into consideration other features like the number of reports registered from users for a certain news or an external score of reliability of the source. In addition, the online database will allow to upgrade the ML model and perform periodical re-training based on up-to-date new data and user reports.








Log in or sign up for Devpost to join the conversation.