Reputation: 21
Question About Watson Capability
Background We are designing a Chat Bot to answer visitor questions about our company, for example:
Sample questions listed above should be able to address by Chat Bot through #Intent and @Entity mapping into defined Dialog handling to provide a predefined answer.
However, what we want to know is about the more dynamic question and answer support as the following section.
Dynamic Question and Answer Challenge We want our Chat Bot can answer as many as a visitor might ask, but no idea how to handle the question like:
About Staff
How many staff has joined this company in the since 2007 years?
Example answer: Over 20 staffs joined since 2007
Dynamic factors: • # of staff joined • Year Range
How many staff has joined in last five years and resigned?
Example answer: 10 staffs joined and none of them resigned
Dynamic factors: • # of staff joined • Natural Language Year Range • Staff employment status
What is your staff turnover rate?
Example answer: 25% or 0.25
Dynamic factors: • Calculation: # of staff join / # of staff resign
Will a staff get promote easily in your company?
Example answer: Staff will be promoted every 3 years
Dynamic factors: • Calculation: # of staff and promotion date with next title internal average
About Project
Example answer: Project A recorded $10,000,000.00
Dynamic factors: Known how to find project by largest service price
Does your company aggressive on project schedule or service delivery?
Example answer: Most likely we ahead 10% of the original schedule
Dynamic factors: • Known all project and all task duration • Calculate difference between schedule and actual completion date
What is your average project team size?
Example answer: Average project team size is 5 peoples
Dynamic factors: • Known all project and read all project team structure • Calculate the average
Point to Note:
• We don't want to code the Question and Answer explicitly
• We are thinking IBM Watson should be able to answer those questions after understanding our data source
Data Source (in a bunch files of WORD format): • Staff record with Join Date, Last Date and each Promotion Date • Project record including Contract, Proposal, Team Structure and Progress Report
Question would like to clarify or know
• Do sample questions listed above must go through programming to handle?
• Can IBM Watson have a way to answer our question in a meaningful manner like we listed example as above, if we provided those data source to IBM Watson and how?
• For the first 2 questions about staff, do we need to code/define separate 2 mapping to handle these 2 questions even they shared similar structure?
• Can it learn to handle dynamic question structure after we let IBM Watson know enough information to answer those questions.
• If I ask something like [Last 5 Years] // [Since 2012] // [Exclude 2011 or Before] , do Watson know they are referring the same date range? Or we need to teach Watson one by one with #Intent and @Entity?
Upvotes: 0
Views: 673
Reputation: 357
I would like to suggest a conversation/discovery combination. When your dialog can't answer the question then you forward the question to discovery. Discovery can take unstructured data and you can extract that data accordingly and "teach" it to get the right answer.
Upvotes: 0
Reputation: 3469
Conversation are complex in their own right and even with powerful state-of-the-art natural language processing still requires a lot of effort to have an interaction with a human in a chat or voice interface feel natural. If you'd like the to see how far you can get quickly, I'd recommend starting out with a cross-platform natural language processing tool like API.AI.
API.AI supports entity extraction (i.e. it can take a user query and determine what words indicate what dates, numbers and custom entities are and their values), intent identification (it can guess what the user is intending to do if you give it examples of what users would say using machine learning) and supports 14 platforms (Google Assistant, Facebook, Slack, Twilio, Telegram...) all without any code.
If you do want to develop something yourself API.AI has an API and supports 16 SDKs for various platforms (Nodejs, Python, Java, ...) and any language that speaks JSON over HTTP with their fulfillment webhook.
Upvotes: 0
Reputation: 9359
Your question is probably best suited on IBM's DW forum, as it is not really the structure used for Stackoverflow.
To answer all questions:
The purpose of Watson Conversation is to take unstructured conversation and look for, and structure responses in a way that makes it easier for a computer to work with.
Your examples above could be captured using the system entities sys-number
, sys-date
.
Upvotes: 1