add watson to your apps

21
Jason Anderson @andersonljason Hacker Dojo - March 23rd, 2016 Add Watson To Your Apps

Upload: jason-anderson

Post on 13-Jan-2017

139 views

Category:

Technology


0 download

TRANSCRIPT

Jason Anderson@andersonljasonHacker Dojo - March 23rd, 2016

Add Watson To Your Apps

Disclaimer● I am not an IBM employee but I am currently consulting with them

Agenda● Overview of Watson Technology● Watson Developer Cloud● Using the Natural Language Classifier● Watson Applicable Apps

Watson History● Then: Watson was a Jeopardy contestant

○ Watson started off as a collection of NLP systems which could play Jeopardy○ Details have been published: http://researcher.watson.ibm.

com/researcher/view_group_pubs.php?grp=2099

● Now: Watson is a collection of business solutions and public APIs○ Jeopardy system has been decomposed into capabilities○ Additionally complementary capabilities have been added○ Capabilities include Language, Speech, Vision, and Data Insights

Watson Components● Watson Engagement Advisor (WEA) - A technology service that interacts with customers,

listens to questions and offers solutions. Engagement Advisor learns with every human interaction and grows its collection of knowledge, quickly adapting to the way humans think.

● Watson Explorer (WEX) - A technology platform that accesses and analyzes structured and unstructured content. Explorer presents data, analytics and cognitive insights in a single view. Explorer gives you the information you’re looking for while uncovering trends, patterns and relationships.

● Watson Discovery Advisor (WDA) - Whether augmenting creativity in the kitchen, developing novel medical treatments, or helping law enforcement, Watson Discovery Advisor accelerates the discovery process, infusing innovation and novel insights into everyone’s activities.

● Watson Developer Cloud (WDC) - The Watson Developer Cloud is a library of Watson APIs that you can use to create Powered by Watson apps.

Watson Developer Cloud

Consume Watson Through Bluemix● Watson is made available as a collection of microservices on Bluemix

Consume Watson Through Bluemix● Run Your Apps: The developer can chose any

language runtime or bring their own. Just upload your code and go

● APIs and Services: A catalog of open source, IBM and third party APIs services allow a developer to stitch together an application in minutes

● DevOps: Development, monitoring, deployment and logging tools allow the developer to run the entire application

● Flexible Pricing: Pay as you go and subscription models offer choice and flexibility

Consume Watson Through Bluemix● Watson is made available as a collection of microservices on Bluemix

Natural Language Classifier

What is a Classifier?● A classifier solves the problem of determining which category a new item

belongs to provided a labeled training set of categorized items● Classifiers are a type of supervised learning

Natural Language Classifier● A defined topology which is optimized for the type of NLC use cases

● Roughly based on a Convolutional Neural Network

● Training process includes randomness therefore the same training data will result in similar but not necessarily identical classifiers

NLC-Enabled App Example

Creating a NLC Ready App● Communicate with the classifier directly using REST APIs or using a SDK

○ Sample Application

// if bluemix credentials exists, then override local

var credentials = extend({

version: 'v1',

url : '<url>',

username : '<username>',

password : '<password>',

}, bluemix.getServiceCreds('natural_language_classifier'));

// Create the service wrapper

var nlClassifier = watson.natural_language_classifier(credentials);

Create the Classifier Connection Query the ClassifiernlClassifier.classify({

text: 'TEXT TO CLASSIFY',

classifier_id: 'YOUR CLASSIFIER ID' },

function(err, response) {

if (err) {

console.log('error:', err);

} else {

// Do something with response;

}

});

NLC Tips1. Data Coverage: Have enough training samples for each category

2. Category Accuracy: Ensure tagged examples truly represent their category

3. Feedback Loop: Add more samples for incorrect classifications

Additional NLC tips can be found in its documentation

Watson Applicable Apps

Watson Applicable Apps1. Apps that have access to a lot of data: Any scenario where you already

have a lot of data. Watson is data hungry!

2. Apps which need to communicate natively to humans

3. Apps with a lot of domain expertise

Example: Watson Health

Q/A Design PatternBuild a Question Answering System:

Dialog - automate branching conversations between a user and your application

Natural Language Classifier - interprets the intent behind text and returns a corresponding classification with associated confidence levels

Retrieve and Rank - find the most relevant information for their query by using a combination of search and machine learning algorithms to detect "signals" in the data

Summary● Watson has evolved to offer a set of Cognitive components which

developers can pick and choose the capabilities they need

● The Natural Language Classifier service allows developers to classify text strings they have not seen before using on a training dataset

● Watson is great for applications which have a lot of data available or need to natively communicate with their users

Questions?