2
votes

I'm new to Watson services.
I'm creating a chatbot to suggest the best course for a student based on his profile.

I'm supposed to execute queries like
'Which course had a maximum cut-off percentage in the year 2016?',
'Which are the top 3 courses where the cut-off percentage is highest in last three years?' etc.,

What I have done is as I have basic knowledge on Database management I have created the SQL tables.

But I was thinking of how IBM Watson Conversation and Discovery would help. Should I be completely using the conversation for executing the queries or create a document of courses and other parameters and use Discovery to retrieve the answer and integrate it with Conversation.

Ultimately my question is that Watson Conversation enough?

3

3 Answers

1
votes

Based on my experience with IBM Watson API's... I think the Conversation can be enough, but you'll need to train the Intents and the Entities with good examples, like your example above. You can see my answer using intents and entities for creating conditions and the answer from Simon O'Doherty for best practices when you create #Intents and @Entities inside Watson Conversation Service.

If you have created the tables with the data, you don't need to use Discovery, because with Discovery you'll query Unstructured documents, in this case: JSON, PDF, Word, etc... See the Official Architecture:

enter image description here

Obs.: This is one suggestion, maybe IBM professionals will agree, or complement my answer or answer for you another possibility.

1
votes

Conversation is best suited for questions where the frequency of the question is very high. These kinds of questions are termed the "short head". The other kinds of questions you typically see are those which are termed "long tail". These questions are harder to anticipate since the information needed by the user is more varied. Discovery works better in these use cases, as it provides capabilities (passages, relevancy training, aggregations, filters and more) to allow users to explore the results. Discovery allows you to query both structured and unstructured data (not limited to either), and use typical information retrieval methods to slice and dice the result set.

Conversation and Discovery can work together as well. You could have a conversation interface that answers the short head, and then falls back to Discovery when it encounters a question it cannot answer with enough confidence.

In this particular use case, based on your brief description, you may want to investigate Discovery as it will allow you to both submit queries that can accomplish the use cases above, but you may also benefit from being able to train a model to identify which documents (in this case a course) are likely "good" based on labeled ground truth. It also helps when Conversation cannot answer the question, as it is more useful to return a set of likely options rather than nothing at all.

0
votes

Whenever you know that the user's questions will have certain known keywords for sure(in your example "cut-off percentage"), you need to go for IBM Conversation Service, but remember You can just give a reply to the user using conversation service, but for processing the query and fetching results will be well satisfied with Discovery Service, hence its a better idea to integrate Conversational Service with Discovery Service.