What is AI and Machine Learning??

Hey gyus how are yuo?

I think you all are able to read the above line. Few words are incorrect but still you able to read this.
That is human Intelligence. So now you have a question that’s why you are reading this topic.

What is AI or Artificial Intelligence??
In simple words give the ability of thinking and processing to a machine as we human have. We call it AI. Let’s have an example, I copied my first line and googled it. See the results, Google corrected it as our mind corrected or read.
Screen Shot 2017-08-17 at 1.08.08 AM

You can see few more example in your daily life like Siri. Say something and it will return the best results.

You can see Tesla self-drive cars. They are very cool part of AI.

That’s it. Let’s jump to next thing.

What is Machine Learning?

In the web, you will have a bunch of articles about ML (Machine Learning). They have some big words and we are very new here. So let’s start with when you born.
I born on 9th Dec 1993 and that day I didn’t know that if I touch a fire, I can burn myself. No data inside me. As I grew up, I get that and learned some other things as well.
I learned all from my experience and some from other’s experience.

You don’t need to burn yourself to know that fire can make you harm. 🙂 You can learn from others as well. So it’s all about data that we get in our daily life routine.

Now come to the machines. They are pretty much like us, they also need to be learned. So we need to provide more and more data to machines.

Let’s have a very basic example: We have few names, their age and what they like.
Screen Shot 2017-08-17 at 1.31.53 AM

So we see here a pattern:
if age is 6,7 they like Toys
if age is 17, 19 they like Bikes
if age is 65, 78 they like Yoga

So now we need to give this data to our machine. Now the machine will store this data and generate prediction model.

Now we will give input:
Name: Hardy
Age: 7

If I ask you the same, what will Hardy like? Your answer can be Toys. But if I ask you what if Hardy’s age is 8 then ?? So you may say Cycle or Toys. You are not 100% sure. Becuase you have very few data to determine.

In ML, This prediction model may give the output as Toys. But if I give the age as 8 it can be Cycle or toys. The machine also needs more data for more accuracy.

Till now, you may get an idea about Machine Learning. Now, lets go in deep with little more technical.

Screen Shot 2017-08-17 at 2.00.10 AM

Explanation of above fig:
Let’s assume we have 100 records. We are giving 70% of data to our machine as the Training data and rest of the 30% data as the test data.

Got confused what is train and test data. So let’s assume you are a student and your teacher have a book with 100 questions with answers. But he taught you 70 questions and answers.
After that, the teacher asked you rest of the 30 question and you gave the answer 80% correctly. That is your accuracy.

Same with the machine we need to check the accuracy of our ML also. Now we also have 80% accuracy with the machine. (Why 80%? , it depends on data.)

Now we give a record to our machine. So the machine will put this record in prediction model and will provide you predictions of output.

Same with you, Now teacher asked a new question and you replied the answer basis on the 70 questions and that 80% accuracy, which you got from 30 questions.

So machine learning is all about data and data.

I think, Now we are good at basic Machine Learning.


Sentiment Analysis in Salesforce – A Part of Artificial Intelligence

Screen Shot 2017-06-07 at 11.23.42 AM

v1 (1)

What is Sentiment Analysis:
Sentiment analysis is extremely useful us to gain an overview of the public opinion behind certain topics and feedbacks. Automatically classifying text by sentiment allows you to easily find out the general opinions of people in your area of interest. For example, you might want to analyze reviews of a product to help you improve the customer experience, or to find the most or least popular product.

The Obama used sentiment analysis to gauge public opinion to policy announcements and campaign messages ahead of 2012 presidential election.

How can we get this?
There is lots of tool for sentiment analysis. But I found haven on demand easy to use API.

About HavenOnDemand Sentiment Analysis API:
The Sentiment Analysis API analyzes text to return the sentiment as positive, negative, neutral, or mixed. It contains a dictionary of positive and negative words of different types and defines patterns that describe how to combine these words to form positive and negative phrases.


How to implement in Salesforce:

Use Case:
You can use this API as you want but in my blog, i am using an example of feedback’s mails.

The user will send an email to Salesforce and here I am saving this email to a custom object and analyzing the sentiment of that email. So support and sales person know that which email is top to pick in morning. Because a team can have tons of emails. In these mail, most negative emails are important to work on because we want the positive feedback from clients. So it is very hard to read one by one email. But from this API you can get the sentiment score and sort them by the score.

Screen Shot 2017-06-08 at 1.38.57 AM

A. Get API key from HavenOnDemand:
1. Go here and register yourself.
2. After registration, Go here.
3. Then click on Generate Key button. Here you will get a popup for the name of the key. Fill this and click on Continue.
4. You will see a key here. Copy this key and save it on your computer. we need this on salesforce apex code.

B. Coding Part: Download Source Code from here.
After the code deployment. Add your API key in EMailHandler Class.
Screen Shot 2017-06-08 at 12.19.28 AM

API Explanation:

We need to send request on https://api.havenondemand.com/1/api/sync/analyzesentiment/v2

It is GET call. So you need to pass 2 params in URL.
-apikey = Your API key
-text = set the text for sentiment analysis.

Read more about API here

C. Now create an Email Services:
1. Go to Setup –> Develop –> Email Services
2. Create Email Service here as below
Email Service Name = SentimentAnalysis
Apex Class = EMailHandler
Active = Checked (It should be checked to get inbound emails.)
3. After that create new Email Addresses under Email Service.

D. Add Sentiment View Page: Now add feedback VF page to your page layout. I added in lightning view at the top.

Time to run:
Open your mailbox and send an email to an above-created email address. Salesforce will create a record of Feedback object. You can see the sentiment score and sentiment in the record.

If you have any concern then please feel free to contact me.

Please send your feedback to this email address. I will share your sentiment score on my facebook and twitter page.


Happy Salesforce