add watson to your apps
TRANSCRIPT
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.
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
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
Creating a NLC1. Prepare your training data
○ Sample Data
2. Create your Bluemix NLC instance
3. Create and train your classifier
○ NLC API Reference
4. Wait for training to be complete
5. Call the classifier with input text
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 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