Skip to main content

How to get started with applied artificial intelligence : Make your own J.A.R.V.I.S in minutes





2016 has been the year of the chatbots. A lot of instant messaging platforms have opened up to us developers to allow us to integrate our apps and services with them. This allows the apps/businesses to add an element of conversation to their service. Or it can also act as an automated customer service.

What is a chatbot

A chatbot is a service, powered by rules and sometimes artificial intelligence, that you interact with via a chat interface. This allows us to add an element of conversation to businesses, apps and literally everything around us.

How it is made

A chatbot is made using the power of natural language processing or NLP which helps in parsing text typed or spoken by a user in natural speaking language. This is achieved by the help of machine learning.

Once the language is parsed, the required data can be extracted and used to perform the required actions. This makes it look like the machine is understanding and obeying what we say in our natural language.

How hard is it to make

J.A.R.V.I.S from the movie iron man may seem very hard to build. Of course, it is hard, but not as hard as it looks. The biggest challenge involved in making a chatbot is the natural language processing itself. So if we overcome that, then we have covered half the journey.

There are a lot of free natural language processing services and APIs available. My personal favorites are api.ai and wit.ai.

These services are surprisingly easy to use and are very agile. They also provide speech recognition support right out of the box. Also, they make it easy to integrated with messaging services like facebook messenger, slack, kik etc.

Api.ai was recently acquired by google and wit.ai was acquired by facebook. So both of them offer top-notch services. But I would prefer api.ai over any other service because you know, it's Google's.

How to learn to use these services

There are several resources online, explaining how to uses these services. But my personal favorite is the one by Siraj Raval on youtube. In his video, he clearly explains the differences between each chatbot building services. He also builds a sample chatbot which is capable of handling the sales of a small flower selling shop. Here is his video, it should be more than enough to get you started.

           

With enough practice, you can someday end up building a program better than J.A.R.V.I.S.

I made a python-powered chatbot/assistant which is capable basic operations like opening your favorite websites in the browser by giving text commands in the natural human English. I am still working on it. I'll probably post the code on GitHub when it gets better.

The possibilities with a chatbot are infinite. Most of the apps that are built are used only once by the users. So instead of building apps, we should build chatbot which can be integrated with the user's favorite messaging platform. This will also help the businesses scale much faster without investing on complicated software.

So good luck in building your very first chatbot. Do let me know what you are building in the comments below.


PS : Siraj Raval's youtube channel is awesome. He makes short video tutorials about machine learning and other badass concepts. Do subscribe to his channel

Comments

Popular posts from this blog

HOW TO USE THE DELAY FUNCTION IN C++

Hello programmers!!

Have you ever wondered how people use that effect, in C++ console applications, in which they make characters appear after a certain time. Like they say "loading..." and the cots appear one by one at a particular time interval. This effect looks very cool and makes the applications look very professional.Also see : Basic Algorithms 101 : Checking the validity of an email address (simple beginner approach)

Also see :Basic Algorithms 101 : Checking the validity of an email address (simple beginner approach) 
This 'effect' is called delay. Delay is a more professional term used for some thing that happens a little later than it is expected to happen. This is used in c++ intentionally to either create an 'effect' or to easy the procedures of the application for the user.  Like there are manyuses of the delay function.

Usually in C++ the output appears in the console as soon as it is executed. This might make it look like the application is mad…

HOW TO COPY ANY TEXT TO TURBO C++

Hello!!

Are you one of those people who is in the middle of a C++ program and you know what to do, but you don't know the syntax? So you google and find out the syntax. But in turbo c++ you cannot use ctrl+v. That might be a little pissing off. So the easiest solution would be to get rid of Turbo C++ and get a modern day compiler. But anyway, here is a post on how one can copy text from an external source into the turbo C++ environment.



Also see:Basic algorithms 101 : Checking for the validity of an email address (simple beginner approch) 
C++ is a very powerful language, but the Turbo C++ compiler is bloody ancient and very conservative. The Unix environment it has can be a pain in the neck sometimes. With the modern day compilers like C++ builder, eclipse, and stuff, programming in C++ has become so much easier. Unix environment is not really necessary to build an application. And these new compilers also have a lot of predefined functions for graphics, user interface etc.

Somet…

How to geek: Learn to code like a pro

Warning! Philosophical text ahead. Skip to the next section to avoid it.
A lot of people come up with a lot of brilliant ideas. But not all of them are able to execute their ideas due to lack of programming knowledge. Lack of programming knowledge is something that can only be solved by sitting your ass down and doing a course patiently without giving any excuses. It is important to assess yourself thoroughly. If you don’t know something, you need to accept it. You can’t call yourself a web developer after editing a few HTML templates. If you want to be a web developer, stop editing templates and start building one from scratch. Speed is not more important than fundamentals. If you go after speed, you will end up becoming like season one flash. Another thing I’ve noticed in people is, they are not able to stay motivated for more than a day. They start a course online, binge watch a few videos and then forget about it the next day. An online course is not the same as a TV show. You ca…