AI Zone Admin Forum Add your forum

NEWS: Chatbots.org survey on 3000 US and UK consumers shows it is time for chatbot integration in customer service!read more..

Trying to make more in-depth responses
 
 

I have just started testing out chatscript, and have a question about how to solve a few topics the best way. I’m trying to make a bot that goes more into the topics of a conversation and need some start help of some topics that may be a bit more advanced, but if I could get a good start with these, I would be able to work out more on my own.

If you look at the examples, I’m sure you will see how these kind of responses demonstrate more intelligent answers and illusion of really understanding. So it would be very interesting to get these to work.

Some topics I try to make:

1. I want to create a response for input with the phrases “I need to *” or “I have to *”. I want the response to be: “What would happen if you didn’t?” or “What is the worst thing that could happen?”

Example:
Input: I need to get 1000 dollers by thursday
Response: “What would happen if you didn’t?” or “What is the worst thing that could happen if you don’t get it?”

Input: I have to get a vacation soon
Response: What would happen if you did?

2. Is there any way to detect if a verb has been made into a noun, like:
  Verb: learn, relate, decide, invest, depress
  Noun: learning, relationship, decision, investment, depression

And use it like this:
Input: I’m having problems with my relationship
Reponse: How are you relating?

Input: The decision is final
Reponse: What are you deciding?

etc.

3. Is there any way to detect words of “comparisons”, like bigger, better, smarter, faster, smaller, cheaper etc..?

Example:
Input: Andy is always smarter
Response: Smarter than who specifically?

Input: I wish I was taller
Response: Taller than who exactly?

4. Cause and effect. (“If, then”, “* makes me”, “I won’t * until *”, or other combinations of forces, makes, creates, leads to, compels, requires, instills and causes)

Example:
input: Andy makes me angry
response: How exactly does Andy make you angry?

Input: If I give my children everything they want, they will love me.
Response: How exactly does giving children everything they want make them love you?

 

 
  [ # 1 ]

topic: ~misc ()
s: ( < I [‘need ‘have] to ) [What would happen if you didn’t?][What would happen if you did?]

choosing ‘need to insure tense is present tense.

#2 Is there any way to detect if a verb has been made into a noun, like:
  Verb: learn, relate, decide, invest, depress
  Noun: learning, relationship, decision, investment, depression
—- not in the general case.  Gerunds could be detected, but that doesn’t give the relationship-relate form.
You could build a table associating words manually, then look that up. The table would create fact forming the relationship, and make the noun be a member of a set of known ones that have this property. So the pattern could be
s: (  _~nountoverb) ^query(direct_sv _0 verb ?) How are you @0object?

But you have a more serious problem because you don’t have context to decide you want to do this.  Eg.
“The decision is final”  vs “The decision of the court was unanimous”—> “What are you deciding?” 
how do you know the user is the one deciding?

3: comparisons
u: ( _~adjective_more) ‘_0 than who specifically?

4: Andy makes me angry
s: ( _* make _*) How does ‘_0 make ‘_1?

5: If I give my children everything they want, they will love me.
this is a complicated example because you are not just trying to rephrase the verb, but also other things. So you probably cant do this with a single pattern. The question becomes how general the patterns can be. One such easy pattern is:

s: ( if * _~verb *~2 _~noun_plural _*, they will _~verb me)
How exactly does ^pos(verb _0 participle) ‘_1 ‘_2 make them ‘_3 you?

 

 
  [ # 2 ]

This is gold.

For this to work I think it needs to be structured so it can capture the context first, and then refine the questions for the matching context.

I think I will start by making a table for associating the verb-nouns and begin there and test the lookups.

This is a stating point based on the Neuro Linguistic Programming model called the “meta model”. A therapeutic model to get to the core of a problem. If I get this working, I will add another model to question the assumtions and presuppisitions detected from the meta model to break the current thinking.

Thanks a lot for the tips for how to get started on this.

 

 
  [ # 3 ]

I’ve started on the verb-to-noun-concept by making a table.. is the procedure correct?

1. First I made a new file in RAWDATA/ONTOLOGY called verbtonoun.top
2. Then I added the file to files1.txt
3. I edited verbtonoun.top and this is how it looks like (the top is copied from opposite.top):

.......................................................................................
concept: ~numberoperator()
table: ~numberOperator (^op ^iop)
^createfact(^op member ~numberOperator)
^createfact(^iop inverse ^op)
DATA:

# have to quote * because otherwise it means ignore- ^ must appear after remainder line, to not look like a script command
remainder add \n mod add \n modulo add \n - plus \n / multiply \n % multiply \n quotient multiply
\* divide \n x divide \n exponent square_root \n power square_root

^ root \n plus minus \n minus plus \n subtract add \n deduct add \n multiply divide
times divide \n divide times \n + minus \n add minus

table: ~nountoverb (^arg1 ^arg2) # makes bi-directional so dont have to list both ways here
^createfact(^arg1 opposite ^arg2 0)
^createfact(^arg2 opposite ^arg1 0)
DATA:
approve approval
accept acceptance
.............................................................................................................

4. Then I edited simpletopic.top and it looks like this for now:

s: (  _~nountoverb) ^query(direct_sv _0 verb ?) How are you @0object?

..................

Did I miss anything?

 

 
  [ # 4 ]

The file does not need to be in ONTOLOGY folder. And to make it simple to upgrade chatscript versions, I recommend it be a file in your own rawdata space or MERELY added to your existing simpletopics file.

Creating facts like “^createfact(^arg2 opposite ^arg1 0)” and then querying via _0 verb ?  makes no sense. the query verb and the fact verb must match. AND since “opposite” is already a verb used for opposites and your data is not opposites, I recommend a different verb.  “derive” is a fine verb but it is arbitrary.

 

 
  login or register to react
‹‹ Gozins and Gozouts      C++ Help ››