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..

Meaning in the output
 
 

Hello,

my post might seem a little bit philosophical, maybe anyone can help my understanding?

After downloading the chatscript software from Github and doing the tutorial and checking out the documentation, I am amazed at the possibilities of chatscript, yet I fail to understand the general approach:
For any user input, a chatscript bot has clever ways of identifying the meaning (normalization, POS tagging, keyword search, topic determination etc.). There are concept and fact databases to help with that.
But from my naive understanding, the output of a bot is hard-coded and not part of the database. A bot does not understand its output the same way it understands its input. A bot can give a response, that it himself would not be able to understand. Why is that?
I know I can do self-reflection, but that that seems a very indirect way to get the meaning of the output.

Am I missing something?

 

 
  [ # 1 ]

Hello, Jörg, and welcome to chatbots.org! smile

You know, that is an interesting concept! I wonder how difficult it would be to “build” a response/rejoinder, or even a gambit by starting off with a generic statement (example to follow), and run it back through the same steps that the input goes through to generate a (semi) unique response. For example, if the input is (or parses to) “how are you”, it would be interesting to take a generic statement (“I am fine”), run it through the same processes that the input receives, and thus have a new, semantically similar response created (e.g. “I am well, thank you”, or “Just fine!”). Yes, I know that this is not a likely scenario at present, for several reasons, but it would be nice to have. wink

 

 
  [ # 2 ]

CS can output one of several variations by enclosing each variant in square brackets.
You can use ^pick() on a concept to random select a word from a concept.
You can use ^pos() to generate the appropriate word variation (e.g. verb tense).
You can use the random keyword for a topic to randomly select a gambit.
And of course you can call out to all manner of services for suitable output.

So there are many ways to generate output that has some variation and is not all hard-coded. In general that randomness is a good thing because it makes the bot’s response more believable.

Any text, including output, can be analyzed to perform the exact same POS marking as the original input. Indeed it is a common pattern to rewrite the original input to “normalize” certain constructs and ^analyze() it so that this becomes the input to be matched from that point onwards.

The control script can do anything so it is possible to repeatedly apply sentences, either input from the user, or made up by the bot/developer, and continue until you are happy with some output or extracting meaning. Plus you can go back to previous sentences to restart the process.

 

 
  [ # 3 ]

Ok, thank you! Your answers are definitely helpful. I was thinking along the lines of including the bot’s answer in its knowledge database, so that it at least knows its own answers for later reference.

 

 
  login or register to react