This is a chatbot that will give answers to most of your corona related questions/FAQ. The chatbot will give you answers from the data given by WHO(https://www.who.int/). This will help those who need information or help to know more about this virus.
It uses a neural network with two hidden layers(enough for these QnA) that predicts which pattern matches with the user’s question and sends toward that node. More patterns can be added from user’s questions to train it for more improved results and add more info about coronavirus in the JSON file. The more you train this chatbot the more it gets precise. The advantage of using deep learning is that you don’t have to ask the same question as written in JSON file cause stemmed words from the pattern are matched with user question
Python 3 NumPy nltk TensorFlow v.1.15 (no GPU required) tflearn
To feed the data to chatbot I have used json with possible question patterns and our desired answers.
The JSON file used for the project is WHO
For this project, I have named my JSON file as WHO.json
In the JSON file tag is the category in which all those responses fall.
patterns are used for listing all possible question patterns.
responses contains all the responses with respect to the patterned questions
Bag of Words:
As we know neural networks and machine learning algorithms require numerical input. So out list of strings won’t cut it. We need some way to represent our sentences with numbers and this is where a bag of words comes in.What we are going to do is represent each sentence with a list the length of the number of words in our model vocabulary. Each position in the list will represent a word from our vocabulary.f the position in the list is a 1 then that will mean that the word exists in our sentence, if it is a 0 then the word is nor present.
Developing a Model:
model = tflearn.DNN(net) model.fit(training, output, n_epoch=1000, batch_size=8, show_metric=True) model.save("model.tflearn")
Our chat-bot will predict the answers based on the model we train. Here we will use the neural networks to build the model. The goal of our network will be to look at a bag of words and give a class that they belong too (one of our tags from the JSON file).
Input: what is coronavirus ? Output:COVID-19 is an infectious disease caused by the most recently discovered coronavirus. This new virus and disease were unknown before the outbreak began in Wuhan, China, in December 2019. Input: what are the symptoms of COVID 19? Output: He most common symptoms of COVID-19 are fever, tiredness, and dry cough. Some patients may have aches and pains, nasal congestion, runny nose, sore throat or diarrhea. These symptoms are usually mild and begin gradually. Some people become infected but don’t develop any symptoms and don't feel unwell. Most people (about 80%) recover from the disease without needing special treatment.
Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.
To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course.
- Corona Virus Live Updates for India - Using Python
- Python - Get Confirmed, Recovered, Deaths cases of Corona around the globe
- Get Corona cases details - Python PyQt5
- Corona Virus cases of various countries - Using Python PyQt
- Corona Virus Details in India - Using Python PyQt5
- Grouped Boxplots in Python with Seaborn
- Bulk Posting on Facebook Pages using Selenium
- Serializing JSON data in Python
- Python - Difference Between json.load() and json.loads()
- Scrape Google Search Results using Python BeautifulSoup
- How to remove empty tags using BeautifulSoup in Python?
- Web scraper for extracting emails based on keywords and regions
- Parsing tables and XML with BeautifulSoup
- Check data type in NumPy
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.