How to train IBM Watson Assistant to answer from a specific dataset (say a eBook)? - ibm-cloud

I am a new bee to IBM Watson. I went through videos to create virtual assistant/chatbot where we could define intents/entities and answer accordingly. This seems fine when I have limited number of intents/entities. But say, I have a eBook and I want to train Watson to answer from this eBook. How do I achieve this. Anyone high level approach or direction will be really helpful.

There are different approaches.
You could use the integrated search skill which provides a link to Watson Discovery. You would upload your eBook to Watson Discovery and kind of index it.
Another approach is to use a database or something else as backend. Based on the input which identifies the search term and scopes which eBook to search, the answer would be retrieved from the backend database. This tutorial features a Db2 database and Watson Assistant retrieves the answer from the database. A similar approach is taken in this sample which shows how to retrieve excerpts from Wikipedia.

Related

IBM Watson chat bot

I am currently working on Watson chat bot with the aim of creating a virtual assistant for customers which hopefully will be capable of handling the requests. Within a node I ask a question like "Can you provide me the serial number?" to the customer. What I want Watson to do is that save that serial number as a variable so that I can respond the customer like "Okay so the number you provided is "that number", do you confirm?" I would be very happy if someone can help me out with this. How am I going to integrate a variable capable of storing the customerĀ“s input?
Thank you in advance!
I recommend starting with this tutorial on building a database-driven Slack chatbot. The source code is available on GitHub.
The tutorial shows how to gather event data. The typical way of getting data from an user is to save the relevant parts in so-called context variables. You can access those variables from within dialog nodes, print values in responses or pass them to other code for backend processing (like in a database system).

Create a chatbot for stock market using IBM Watson

I would like to create stock bot which can have basic conversation and give me stock price in conversation.
To get stock price i am using yahoo finance api.
For basic conversation i am using
IBM watson conversation api
I have also used
IBM NLU (natural language understanding) Api
to verify different company names asked in different manner but i am not getting expected result.
For example if i search
"What is price of INFY?"
then it should give me correct answer and should filtered out as my action should be to pass INFY in yahoo finance api. This should also work if i change format of question asked.
Below is the flow chart setup which i made on node-red panel of bluemix (IBM).
Could you help me to find out exact api's and flow which could help me achieve my goal.
This is a pretty big one, but at least some first impression comments...
Watson Conversation Service is already integrated with NLU component - the intents and entities TAB. The company names could be extracted from the input text with the use of entities and entities synonyms. Drawback here is that the user needs to list all the possible variants of how the company name can look like, but on the other hand, the entities specification can be imported in the Conversation through a csv file.
In general the integration of Watson Conversation service and some 3rd party services needs to be done outside the Conversation service - as it as of now - does not explicitly support calling of 3rd party APIs, so the node.js solution here seems a sound one. What you need to specify is how the integration of WCS and 3rd party services will look like. The general pipeline could look like:
user inputs text to the system
text goes to Watson Conversation Service
the intent and company name is extracted in WCS
WCS sends text output + sets a special variable in the node output field such as "stocks" : "Google" that will tell the node.js component that sits after the conversation service to find out and include stocks market value of Google inside the output text
Now - back to your solution - it might make sense to have also a dedicated NLC service that will be used only to extract the companies name in the system. However I would use this only if it would turn out that e.g. entities in WCS service are not robust enough to capture the companies properly (my feeling here is that for this particular use case the entities with synonyms might work ok).

IBM DataConnect refine operations

The supported list of transformations in IBM's ETL service DataConnect in Bluemix Cloud are these ones here: https://console.ng.bluemix.net/docs/services/dataworks1/using_operations.html#concept_h4k_5tf_xw
I have looked and looked but with no luck, what if I want to transform some of my data with an operation that is not included here? For example run custom code in a column and get some specific output?
Data Connect does not currently support refine operations outside of those provided with the service. We are adding new features and functionality weekly, but if you have a specific operation in mind, please let us know.
I will find out for you if we have the ability to execute custom code on our roadmap.
Regards,
Wesley - IBM Bluemix Data Connect Engineering
As Wes mentions above in the short term we will continue to add new data preparation and transformation capabilities to the service. Currently there is no extensibility that allows you to code new transformations.
In the longer term we are considering allowing users to edit/extend pipelines using languages like Scala and Python. We don't have a defined date for these new capabilities.
Regards,
Hernando Borda
IBM Bluemix Data Connect Product Manager

Creating an IBM Watson search engine using Bluemix for internet & database research

I would like to use Bluemix to create an IBM Watson search engine (i.e. similar to a Google Search Engine interface) that will query either the internet (websites I specify) or online database and provide summaries of unstructured data, identify concepts, etc.
Are there any existing apps like this available or does anyone know how this can be setup with Bluemix or another platform?
You should take a look at the Alchemy API service on Bluemix.
It allows you to do things like extract entities and keywords.
Most of the APIs allow you to feed them html, text or web-based content. Stringing a bunch of these together and tagging content in a database such as Elasticsearch should allow you to achieve what you're after.
Hard to be too specific given the fairly broad nature of your question.

How do I ingest corpus data into IBM Watson?

I am building a application where I am trying to use IBM Watson question & answer API.
Currently I see only corpus for Healthcare and Travel, but I would like to ingest Custom dataset suiting my needs. Can anyone please point me to right direction or exact API which does that or IBM already built explorer which I can use to upload the data files directly.
Thanks for the help
At this time you can not ingest corpus data into IBM Watson. That is coming in the future.