Configuring Watson for multiples intents? - ibm-watson

I need a solution inside Watson Conversation, if the user types two or more intents, Waston will tell you that he can only ask one thing at a time. How to make?
SOME EXAMPLE:
I have 2 intents, just for give one example for my question...
#requestLunch and #requestPizza.
If user type:
I want lunch burger and I want pizza. (Have 2 intents)
I want to make Watson answer with:
You can only request one thing at a time. Do you want Lunch or Pizza?
I try it but seems like does not work.
Print:

There is no immediate way to do it. Try something like
<? intents[0].name=="Lunch" && intents[1].name=="Pizza" && intents[0].confidence > .4 && intents[1].confidence > .4)?>
note that the intents sum up to 1, so u need to be careful with the threshold.

Related

pddl precondtion not working correctly in the plan

I am working on a project in pddl. The idea is to pick four balls and transfer them to the conveyer. (defined in the goal) The simple pickup, move and drop actions work fine but when I try to make it more complicated for eg. by adding different poses for the robot,detecting the item before picking, the plan does not follow the pre-condition. For e.g. focus on the pick action, The correct pose is not followed. Any ideas regarding the mistake in the code? The final plan should to have correct pose for the each action and detect the item one by one and not all at once
link below:
http://editor.planning.domains/#read_session=BzTaNrk4dQ
faulty output:
https://i.stack.imgur.com/ubWS8.png
Likely something missing/wrong in the precondition. You have this for the pickup action:
(exists (?f - pose ?g - gripper)
(at-pose robotarm pregrasppose))
Note that you don't use the variables ?f and ?g at all in the fluent.
Thanks haz for going through the code.
I was able to debug it. the assignment of preconditions was incorrect. the correct way of assigning a value to a parameter is the following:
(= ?p findshirt)
in the above line you assign findshirt type to 'p'

Interactive story program

Creating a program that makes use of arrays and pointers and takes several inputs from the user (e.g. Name, Age, etc.) and outputs them into a short story. The story has to be different each time the user runs the program however, like this:
Sample Output:
What is your name? Donkey
How old are you? 30
What is your favorite color? black
Donkey is a 30 year old who likes his black laptop...
Sample Output (second run of the same program):
What is your name? Donkey
How old are you? 30
What is your favorite color? black
Donkey is a 30 year old who likes his black Toyota Corolla...
I can get the inputs from the user and output them just fine; my problem is randomizing the events which incorporate the users data. I'm not really sure where to even begin. I've looked at rand() but I'm not sure how I'm supposed to incorporate it into my program. Any help would be appreciated!
I think the best way to accomplish this is going to be to make an array of a specific set of choices (toyota corolla, laptop) and use the rand() function to choose a random number within the bounds of the array to print out.
incase you want, the following is a tutorial on using the rand(). Just swap "10" for the count of items being added to your array.
http://www.dreamincode.net/forums/topic/14057-producing-random-numbers/

How to search three or more arrays row by row for an optimum value in matlab

I have a few variables and here they are, three variables "R1, R2 and R3" each have a size of [40 x 1].
I have a fourth variable U of the same dimension. For every U(i) I need to search for an optimum value within R1(i), R2(i) and R3(i) which would return a single value solution. I intend to plot the optimum value against U9i).I have been trying to wrap my head around the knnsearch function but no luck.
Any one out there who could please help??
Thanks
Well when I can't wrap my head around something, I don't come here first.
A lot of people forget this one because we are online, but read a book on the topic. Have your code open so when you see something in the book, test it out.
Draw out any type of diagram. I call these "Napkin Diagrams", because I write it on anything, even a napkin.
I play with code until my keyboard has no letters left on it, then I keep plugging away until the keys fall off
Explore the language API's
Check for public repositories that you can play with
Google, is okay for a quick reference, but google will not teach you anything other than how to google
I talk my code over with myself all the time, people think I'm nuts, but so do I . . It actually works sometimes.
Then if I still can't get it, I come here with a list of things that I have tried, sample code that has not worked, etc.
I used to hate when people told me this, but that was the best thing anyone could have done for me so I tend to do the same now" Thinking about coding is a big part, but u have to get done wht u can. Then we all know what level u are at. Plus it being the end of semester a lot of these types of questions are homework...
Thinking is good, now turn those thoughts into a conceptual design . It's okay to be wrong in this stage, its all just conceptual
If I understood correctly, this might be what you need:
RR = [R1(:) R2(:) R3(:)];
d = bsxfun(#minus,RR, U(:));
[m mi] = min(abs(d),[],2);
answer = RR(:,mi);
first - put the three vectors into a single matrix:
RR = [R1(:) R2(:) R3(:)];
next, take the difference with U: bsxfun is ideal for this kind of thing
d = bsxfun(#minus,RR, U(:));
Now find the minimum absolute difference for each row:
[m mi] = min(abs(d),[],2);
The corresponding indices should allow you to find the "best fit"
answer = RR(:,mi);
I had to do some mind reading to get to this 'answer', so feel free to correct my misunderstanding of your problem!
update if you just need the highest of the three values, then
val = max([R1(:) R2(:) R3(:)]');
plot(U, val);
should be all you need...

VXML for DTMF entry of letters based on their placement on dialpad

I'm brand new to VXML (and coding in general) and apparently what I'm trying to do is... not normal, but hopefully it can be done.
I understand the principle concept of DTMF input with VXML where I use:
<grammar mode="dtmf"><![CDATA[ (*|0|1|2|3|4|5|6|7|8|9)<2-31> ]]></grammar>
<prompt>something here</prompt>
<noinput-nomatch-filled>conditions</noinput-nomatch-filled>
What I'm trying to do is take multiple actions to allow DTMF entry of letters based on their placement on the dialpad. You'd achieve this by first dialing the number that the letter is on (2-9), and the placement of that letter (1-4).
For example: "E" would be 3 and 2 on the dialpad.
I'm at a complete loss as to how this would work in VXML. What I'd like to do is this:
1) PROMPT: Please input your THREE letter code. Please enter your first letter.
2) Expect two DTMF inputs the first number between 2 and 9, the second number between 1 and 4. Based on this logic (33 = F, 94 = Z) the letter is set.
3) PROMPT: The letter you have entered is (INPUT). Is this correct? Press 1 for yes, 2 to retry.
4) Retry or go onto the next letter. So on and so forth.
If anyone has resources so I can stumble upon the answer to this myself, that'd be great! If anyone would like a bounty... that's an option, too! Thank you for reading!
The typical approach to this problem is just accept twice the number of tones as you expect or use a pound terminated input. Then use ECMAscript or server side code to translate the tone strings into the desired letters.
There are a couple of a ways to approach this problem:
1) You could just accept all 2 digit numbers in the grammar and do all validation/calculation on the server side.
and/or
2) Do some validation in the <filled> section and letter-decoding-from-number on the server-side (and then come back with the result and check with the user if that was the intended letter).
For the two-digit grammar, you could parameterize the built-in digits grammar as follows (please note that the URI scheme is platform-specific, so you may need to refer to the user manual of your voice browser to be sure of the exact scheme to be used)
<field type="digits?length=2">
<prompt>Please enter the code of the first letter</prompt>
</field>
There are other ways as well, like you could also do letter-decoding on the client-side using a script on the same page, but hopefully the above gives some ideas on what to choose based on your requirement.
(Actually, the OP would probably not be looking for an answer to this question after so long but hopefully it helps others who landed on this page searching for a solution to a similar question)
The best way could be to define a grammar that link each value to the result letter :
<grammar mode="dtmf" root="letter">
<rule id="letter">
<one-of>
<item>32<tag>E</tag></item>
...
</one-of>
</rule>
</grammar>
Another way is to let the user enter the 2 letters and process it with a EcmaScript function, or use the tag .
I am going to plan to add such feature in the Voximal the VoiceXML interpreter for Asterisk.
But are you sure that the users can be able to understand and use this method to enter letters ?

FizzBuzz comment that confused me - are hard coded conditions wrong?

I discovered the "FizzBuzz" question today at coding horror. Great article. However, something in one of the user-comments confused me -- here's the quote:
Geez guys - EVERY ONE of you who gave
example code - EVERY ONE - hard coded
the FIZZ and BUZZ conditions...
It sounds to me like this poster is ridiculing people for "hard-coding" conditions, ie :
if(i % 3 == 0)
...
What is point the poster is trying to make? Is there another way to specify conditions in a program?
Thanks for taking the time!
Dan
the FIZZ and BUZZ conditions...
The point of Fizz Buzz is to quickly weed out non-programmers, not find the best programmer. Any reasonable function that meets the specification is acceptable for this test.
If you don't hardcode, great, you extra-pass. But, that doesn't get you out of the hard questions that are following. I usually increase the difficulty with each question, but I don't want to waste time if the candidate totally can't answer simple questions.
There's nothing wrong with hardcoding some conditions.
In the context of an interview, when I know that I'm coding FizzBuzz.java and not Enterprise Fizz Buzz with a database and 1000+ simultaneous users requiring five-nines uptime, it's ideal to hardcode these conditions.
Entry-level programmers, the ones you ask FizzBuzz at least, are to follow specifications and make solutions as simple and elegant as possible. If you're an agile software house, including such features goes against YAGNI and should be discouraged. If the interviewer doesn't ask the ability to use other factors besides three and five, then it wasn't in the spec and therefore isn't needed.
It's meant as a joke.

Resources