Hi everyone, for context I am doing taking an undergraduate CS course and need to build a chatbot to address a problem in either medical, food, disaster or education domains. I have been advised by my lecturer to use a chat-bot builder such as Verbot, Sequel, Chatfuel and other similar builders. The chat-bot should be an expert system to address problems in these domains. So I will need to map a knowledge base and prove that there is information exchange between the bot and user as well as some learning capabilities.
As a chat-bot novice, I have no prior experience with chatbots, but I do have C,C# and python programming experience. I would really appreciate it if you guys could give me advise on how to choose a beginner friendly chatbot to help me. Also there are no restrictions on platform integrations for my project đ
Chatbots for Learning: Ways to Gamify Your Chat-Based Learning EnvironmentÂ
Chatbotshave been steadily gaining attentionfor their cost- and time-saving benefits in customer service and sales support roles. With thecorrect application of chatbots, businesses are able to automate repetitive tasks and optimise their operational processes, while simultaneously creating a positive customer experience.
Finance chatbots can provide support anywhere in the world to any user. They are available 365 days a year and can answer a question 24/7, solve common issues quickly like, resetting a password, managing transactions, or finding the nearest open office. Chatbots can handle multiple requests at a time. They decrease user waiting time and resolution time. Chatbots save 4 minutes per inquiry as compared to traditional call centers.
5 Best Resources for learning NLPâââNatural Language Processing
âYou donât understand anything until you learn it more than one way.ââââMarvin Minsky
Natural language processing provides ability to the machines to understand and interpret human language. This is one of the subdomains in Artificial Intelligence.
The power of natural language processing has changed the way we interact with the devices around us. It has let us interact, search, order a machine the language humans use in day to day life. NLP has applications in almost every domain Medical, E-Commerce, Defence etc., The widespread adoption of this technology has lead to rapid development in the recent times.
In this article, I will list out 5 major resources to get started with NLP.
Before we begin, There are some pre-requisites in order to understand the following materials.
Python
Calculus, Linear Algebra, Basic Probability and Statistics
Foundations of Machine learning
1. Stanford CS224N
The first and foremost resource would be the lectures by Stanford. This course starts with the basics, word embeddings. Neural networks, Backpropogation, Dependency parsing, Language models, RNN, seq to seq, Attention, Transformers. It is a perfect resource to get started as it gives strong foundations about all the topics.
This course focuses more on application based learning. Various tasks like sentiment analysis, Question Answering, Translation, Summarization, Chatbots are covered. This is a more structured specialization. The specialization is divided into four courses. Specialization requires you to subscribe. But if you take the courses separately you can audit the courses and access the contents.
Dive into Deep learning is a Deep learning Textbook. It has end to end concepts about Deep learning and a specialized section for Natural Language Processing. Chapter 14 and Chapter 15 cover the NLP Topics from basics to advanced.
Most impressive thing which I liked about this resource is that the code snippet is provided in three frameworks Tensorflow, pytorch and MXnet. This helps a lot when you want to understand the implementation in any of the frameworks.
Jay Alammar has written very expressive blogs about various concepts about Machine learning and Natural Language processing. The Illustrate Transformer is the best resource to understand the Transformers Architecture. There are various well illustrated blogs on Word2Vec, BERT, GPT2, GPT3.
5. Natural Language Processing FundamentalsâââDatacamp
This resource is best for learning the concepts by coding, rather than just going through the materials. Regular expressions, NER are the highlights of this fundamental course along with interactive coding IDE.
Having the right resources to learn at the beginning is very important. Since, many a times we end up spending a lot of time sticking to a single resource and then giving up without completing it.
Proper resources motivate you to learn more
I hope you will find the resources handy when you are getting started or looking to learn a new concept in NLP.
Putting Text on Image Using PythonâââPart I
Computer graphics teaches us how a pixel on a screen can be manipulated to draw beautiful shapes, artistic typography, eye-catching illustrations, âmake-me-look-goodâ photo-filters, and a lot more. Hardware manufacturers, researchers, software developers work together to build great products: smartphones, smartwatches, smart TVs, cameras all with the study of computer graphics.
Despite the fact that computer graphics has evolved so fast and the development of software like Adobe Photoshop, Adobe Illustrator, Sketch has made our lives easier to a great extent, we still cannot generate images on-the-fly with them. In order to do that, weâll need to reach a level where there is no drag and drop, no fancy select-all-make-bold keyboard shortcuts, no cropping, and no copying-pasting.
And we cannot get there by time-travel, but surely with code!
Getting Started
Come along, open your favorite text editor, follow me and Iâll help you draw dynamic text data on images. I assume you have Pythonand pip installed on your computer, but if not, follow the steps in the links to set up the development environment. After youâve done setting up, from the shell, execute the below command to install Pillow(more details here)and its dependencies.
As you now have installed all dependencies, letâs move forward and write some code. Pillow is an extensive library, but for our purpose, weâll be using the following classes:
Image: to create an image object for our greeting background
ImageFont: font of the text we will be drawing on the greeting
Letâs take the following background image and initialize it with the following code:
Code:
# import required classes
from PIL import Image , ImageDraw , ImageFont
# create Image object with the input image
image = Image . open ( ‘background.png’ )
# initialise the drawing context with
# the image object as background
draw = ImageDraw . Draw ( image )
For creating ImageFont objects we also need font(ttf, otf) files. You can use any font of your choice, here Iâll be using the Roboto font which can be downloaded from the Google Fonts GitHub repo .
# create font object with the font file and specify
# starting position of the message
message = “Happy Birthday!”
color = ‘rgb(0, 0, 0)’ # black color
# draw the message on the background
color = ‘rgb(255, 255, 255)’ # white color
image . save ( ‘greeting_card.png’ )
With some fonts, you might have to pass an optional parameter encoding which tells the ImageFont module which encoding to use while opening the font file.
Computer graphics have an inverted coordinate system, the here represents the distance of the text box from the left origin(0, 0) that lies at the top-left corner of the image. x(x=0) and y represents the distance from the top (y=0).
While you save the image, you can pass optional parameters like optimizeand quality to control the size of the output image.
While at work, I recently developed a feature that demanded the creation of a leaderboard image on-the-fly, with user-specific quiz score data. And just with a few lines of code, I was able to create an image like this:
Haptik Weekly Quiz Leaderboard
Voila! It looked great and we decided to use the idea of creating images on-the-go, for other use-cases as well. We currently use Pillow to generate images for Jokes, Motivational Quotes, Horoscopes, Word of the Day etc. in real time, and with data from different API responses.
Haptik Motivational Quote & Word of the Day
The code we used in this post is not sufficient to draw text boxes as shown in the images above. Iâll be writing another post that will focus on text alignment, splitting long text into multiple lines, controlling space between two lines, and more.
Please do give us your feedback if any in the comments section below. Haptik is hiring. Do visit our careers section or get in touch with us at hello@haptik.ai.
Want to develop an Intelligent Virtual Assistant solution for your brand?
From the random hi-hello’s to the formal work meetings, SPACIUM CHAT is there for all your virtual-connection requirements. Download the SPACIUM CHAT App today!
AI(Artificial Intelligence) & NLP(Natural Language Processing) are the biggest player in this evolving technology, CHATBOT.
No doubt it’s evolving as the backbone for the customer service industry, But surprisingly it moves diversity lead the Tech future into automation in every factor. Brands & Companies realizes sales bot is an incredibly feasible and versatile tool for automation business process. Chatbot Marketing is a way to promote products and services via a bot.
The key things expect from chatbots are:
Get prompt solutions.
Considering their queries instantly.
Guidance and a better knowledge base throughout the process.
AI bots have already touched businesses, from banks and hospitals to real estate and e-stores, and all types and sizes of units. They arenât just benefiting businesses but also providing support to non-profit organizations and educational institutions. With the chatbotsâ innovation, the burden of time-consuming tasks was quickly transferred to an automated system, allowing businesses to serve their prospects better. It is one way to stay competitive in modern-day commerce.
With the right choice of the chatbot development team, you can save lots of money and raise revenue and overall customer support services. The adoption rate of such marketing ways is rising immensely following the dynamic market. Nowadays, customers are quite smart and intelligent and get annoyed with old CSS ways. Thus, it is quite essential to introduce better and intelligent ways to connect with the audience. For more details