I aim to give users a new way to interact with Google Maps through engaging text-based conversational interfaces.
I'm only a baby bot right now, I need you to feed me with logic, data and inspiration.
The primary motivation of the developers of MapBot is to provide a playground to tech enthusiasts, both beginners and advanced to try algorithms, approaches and ideas while contributing to a real-life project.
- I want to help users in the most comprehensive way.
- I want to give 'geeks' a platform to try out all things 'cool'.
Check out all related information here
- MySQL
- Install the community version of mySQL from the official mySQL documentation page.
- Create root user credentials during installation.
- Verify the installation, running the command
mysql -uroot -p -hlocalhost
should open the mySQL monitor. (Enter the root password when prompted)
- StanfordCoreNLP
- Clone the repository
- Create the mapbot database in mySQL
mysql -uroot -p -hlocalhost
- Enter root password when prompted
create database mapbot;
- Verify creation of the database
show databases;
- Unzip the StanfordCoreNLP package in the repository and keep the file paths
stanford-corenlp-x.x.x.jar
andstanford-corenlp-x.x.x-models.jar
handy. - Run
git update-index --assume-unchanged ENV/.env
- Fill the existing template in
ENV/.env
with the corresponding values following theKEY=VALUE
format - Install dependencies from
requirements.txt
file. Runpip install -r requirements.txt
- You're all set up, run the
init.py
file.python init.py
- It is recommended that you set this project up in a virtual environment to keep the dependencies separated and for easier debugging. Here's how you can do that -
- Docker
- Take a look at this for detailed installation instructions for Docker on Windows, Linux and Mac systems.
- Verify the installations by
docker --version
anddocker-compose --version
- Download the
start.sh
and modify it appropriately:git clone <GITHUB_LINK_OF_REPO_TO_CLONE> -b <BRANCH_NAME_TO_CHECKOUT>
export GCLOUD_API_KEY=<YOUR_API_KEY_HERE>
- You're all set up, kick off with
start.sh
file by runningbash start.sh
.
- MySQL
- Install the community version of mySQL from the official mySQL documentation page.
- Create root user credentials during installation.
- Verify the installation, running the command
mysql -uroot -p -hlocalhost
should open the mySQL monitor. (Enter the root password when prompted)
- StanfordCoreNLP
- Telegram
- Download the Telegram for your chosen platform.
- Clone the repository
- Create the mapbot database in mySQL
mysql -uroot -p -hlocalhost
- Enter root password when prompted
create database mapbot;
- Verify creation of the database
show databases;
- Unzip the StanfordCoreNLP package in the repository and keep the file paths
stanford-corenlp-x.x.x.jar
andstanford-corenlp-x.x.x-models.jar
handy. - Run
git update-index --assume-unchanged ENV/.env
- Fill the existing template in
ENV/.env
with the corresponding values following theKEY=VALUE
format - For
TELEGRAM_BOT_TOKEN=<YOUR_API_KEY_HERE>
, open your Telegram app and follow this tutorial on how to create a new bot on Telegram and get your own bot token. Once your token is generated, update the.env
file in/ENV
with it. - Find your bot on Telegram using
@bot_username
that you chose, and send the first text to your new bot. Nothing is supposed to happen for now. No worries. - Install dependencies from
requirements.txt
file. Runpip install -r requirements.txt
- You're all set up, run the
telegram.py
file.python telegram.py
and converse with your bot in real time. - It is recommended that you set this project up in a virtual environment to keep the dependencies separated and for easier debugging. Here's how you can do that -
The /analysis
folder contains data files for the project. The sentences.csv
contains the base training dataset which is used to classify the user's input into three classes - Statement, Question, and Chat. Going through some examples would clarify the difference between statement and chat. The featuresDump.csv
is the result of text pre-processing done using the code in features.py
and featuresDump.py
.
Here's a Medium article with the some superficial explanations, there are some video links too!