First published on MSDN on Apr 19, 2017
Guest post by Maya Afshar from
University College London
What is this all about?
As a Computer Science student at university, I sometimes felt conscious if I am spending my time learning things that will help me with to tackle real-world problems. By real-world problems, I mean the ones engineers and product managers at companies like Microsoft face during their time of employment. Fortunately, at UCL, students get the opportunity to work on a real project with real clients as a part of their course. Our official programme at UCL for industry projects is called the UCL
Industry Exchange Network (IXN),
which was created five years ago. It now encompasses over 500 candidates a year at all levels of Computer Science, working with charities, healthcare, researchers, entrepreneurs, government/public sector, finance industries and of course the tech sectors
My industrial project was one of the many projects hosted by Microsoft at UCL, the
. This project was also supported by an industrial client Kent County Council.
My role within the team was that of team leader, the team comprises of three students, and our goal was to deliver a proof of concept for the idea of the named project. I will expand the project’s idea, the technology we used to develop the proof of concept, and my own thoughts on this project in this blog post.
All my team members and I are second year students studying computer science (at UCL)
I personally am interested in logic and programming principals, machine learning and software engineering, and of course I go to hackathons, volunteer for some of them, and drink coffee! I was the team leader and project manager of our project, focusing on moving it forward and delivering deliverables on time. I also was responsible for creating and training our language processing unit (
) model and making sure it would be capable to create a good interaction with the users of spot market chatbot.”
Figure 1 - Product website
Imagine the times you go for shopping on the high street. The amount of time you might need to spend on finding a specific product you’ve been looking for can easily make anyone frustrated. Window shopping usually takes a lot of time and you might never find and remember what you have been looking for.
Now imagine you have a personal assistant, a chat-bot, that not only can tell you where exactly every single item is (Which store? Where in the store?), but also can give you recommendations on what to buy, based on your own personal profile, search history, social media, etc. Sounds cool, right?
Spot market chat-bot can do even more. It’s not just about items, but you can also find your preferred restaurants, cinemas and places to go to. It’ll basically turn into your assistant on the high street, and saves you a lot of time.
How are we even doing this?
Spot market is a big project that has been at UCL for some time. Master level students have been working on the
spot market engine
, which is the brain of this project. It uses Machine learning algorithms and user’s personal data in order to generate the personalised recommendations for each user. This engine however, only provides and API for us, and does not give any channel to interact with the user.
Our part of this project, was to create an interactive chat-bot, using natural language processing to be able to interact with the users in the simplest way, just like a personal assistant. We used Microsoft
(Language Understanding Intelligence Suite) and
Microsoft Bot Framework
to develop the core parts of this chat-bot, meaning the language understanding unit and the core for the bot. We created a LUIS model for the chat-bot to understand the user’s intents from their conversation with the bot, and also turn the engine’s recommendations to user friendly natural language. We also used the Microsoft Bot Framework to deploy the bot’s core and allow users from different channels (Skype, Facebook Messenger, Telegram, etc.) connect to the bot.
Figure 2 - high level architecture of Spot Market Chat-bot
Being able to work with clients from a great company like Microsoft, allowed me to get a much better sense of how developing a software engineering project, and managing all the aspects of it from development to liaising with the client works. To me, it was like doing an internship while studying at university, Overall, it was a great university experience!