DublinTravelBot — A Natural Language based ChatBot
This project aimed to investigate the impact Natural Language Processing had on the user experience of a ChatBot. This involved building a ChatBot capable of receiving both command and language based input from a user and replying with suitable real-time data from Dublin Bikes and Irish Rail. The process introduced the developer to Python, Natural Language Processing, Data Analytics, Digital Ocean and the Telegram API.
DublinTravelBot is a Telegram ChatBot that uses natural language processing to provide users with real-time information for Irish Rail and Dublin bikes services. The bot is accessible via the Telegram messaging app which is available on Android, iOS, Windows Phone, FireFox OS, macOs, Windows and Linux as well as via a web application. The ChatBot provides users with a new way to interact with public transport using natural language processing to give the illusion of speaking with a real person to retrieve your commute information. This concept allows the bot to understand and derive meaning from the user’s messages before providing them with the relevant data. This data is provided by the Irish Rail Realtime API and the JcDecaux Bikes API. DublinTravelBot also provides users with the location of their nearest or chosen station as well as directions to it and live availability information. This allows users to time and identify their commute options without leaving their current messaging application. This removes the need for additional applications and allows users to interact with the data provider in a new way. The Chabot was developed using the Python programming language – the python-telegram-bot framework provided access to the Telegram API via python. The Chabot retrieves and displays JSON/XML data from the above APIs based on the user’s request. The natural language processing functionality was constructed using the Natural Language Toolkit (NLTK) and SpaCy.
This project found that the inclusion of Natural Language Processing in a ChatBot led to increased user satisfaction with the product. Users generally preferred the lack of a structural requirement in their messages as well as the lenience on spelling.