This repo contains the API for a chatbot, Ubb, that trains an Natural Language Processing (NLP) model and teaches about personal finance. Built as a group for the final project at Makers Academy. You can access the frontend of the project here.
This was the team's first experience with Python, Django, Natural Language Processing, Tensorflow, and NLTK. It was also the team's first time
The bot logic was built using NLTK, a Python library for NLP, which we used to tokenize and stem a set of intents. We trained the bot by passing that pre-proccessed-data through a neural net using Tensorflow/TFLearn.
The bot can predict the correct intent based on a user input. The user input is then tokenized/stemmed (i.e. create a 'bag of words') and then the model returns a response for the intent that most closely matches the user input.
Finally, the bot returns a response related to that intent.
Once this context is set, the bot also asks the user if they would like more information. If the user says yes, the bot responds with a few reading resources. These resources are curated links from trustworthy sources.
If the bot does not understand or if the user is unsure about what to ask, the bot prompts the user with a list of topics that the user can ask about.
Meghan Iankov | Niki Manoledaki | Bassel Al-Sayed | Shadi Khazaei | Emily Spencer
Frontend: https://finbot-fe.herokuapp.com/ API: https://finbot--api.herokuapp.com/
- Install a version of Python 3 - we recommend Python 3.6, but the program can run witha any version of Python 3. Many of us have Python 3.7.6 installed on our local machines.
- Install TensorFlow 1.13.1
- Install Django
- Install NLTK
###Â 2. Start a python environment Install pipenv if you don't have it already.
brew install pipenv
Then start a local virutal environemnt with pipen shell. This virutal environment automatically detects and runs the latest python version available on your local machine.
$ pipenv shell
After cloning the repo, run:
$ pipenv install
$ python manage.py runserver
- Python
- Django
- Tensorflow
- TFLearn
- NLTK (Natural Language Toolkit)