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

CS input and response correlation
 
 

I know CS has a solid methodology in identifying a response.
Is there a way to create a standard function that would measure the similarity correlation between a user generated statement or question and a possible response or rejoinder?

It seems to me that response identification is highly dependent on specific hand generated patterns which involve words, concepts and patterns.  It would be far easier to develop a narrative if there were a way to read in the response and correlate it to a possible response using a special function. This would yield a similarity score which could be used. 
And CS would respond with a specific response if the correlation crosses a threshold.  Or pick the response that has the highest correlation. 

The function could take into account direct word association, in direct connections from ~concepts, in direct connections from synonyms, word heirarchy distance,  and the rarity of each given word, with higher ratings for uncommon words.

This would reduce the time to generate a narrative significantly because most of the work would surround making up good responses. 

I am finding that I spend a lot of time writing up pattern recognition over and over again, and there is a pattern to this pattern. I imagine this would help, if we had such a function.  I am thinking about undertaking this task.

Does anyone have any thoughts on this possible function?

I know this is similar to machine learning,  but I dont know how this would be applied in a practical manner

 

 

 
  [ # 1 ]

A personal observation, I made with A.I. is that always choosing the best response sounds like a good idea, but in practice, there is an unintended consequence.

 

 
  [ # 2 ]

Mike, all of that is doable, and I would throw in roles and parts of speech - better to match MAINVERB and MAINOBJECT rather than some random noun or auxiliary.

We’ve done parts of those points as our system is virtually all data driven.
We make several different evaluations for each utterance to determine the best option.

 

 
  [ # 3 ]

Yes, it would seem to me that finding the best intent could be done by CS, but could also be done independently by a correlation engine, maybe some variation based on tensorflow BERT. And confidence scores could be attached to each intent. Technically, you could have multiple bots, based on different knowledge domains running in parallel also. And one ring would unite them all and choose the best.  The highest score would drive the response. 

I saw something like this in Sir Bruce’s documentation, regarding a first pass and then a second pass when determining the best response. And he hinted to me last year that there is a lot of potential in this space.  Having a strong control script would be needed.
Wondering if I should rip apart my current control script and build something in this space.  It would wreck my current project, but the outcome could be delicious.

I am writing a post processing routine this week, to add avatar animations and facial emotions to the CS output. I am going to look at this topic next.  cheers

 

 
  [ # 4 ]

My control scripts typically accept each sentence in turn, use savesentence on them, invoke some gleaning code to note things of interest.  Then when the last sentence has been saved, I run a loop which does a restoresentence and then runs the actual responses generation.  When I allow a response per input sentence of volley, i have sometimes then decided which one(s) to allow to go to user. And I have even sometimes run another yet another restoresentence loop before the main restoresentence loop, when I want to have some extra layer of response generate a first message, and then the main message comes out. That extra layer is for when the main message may be modified by what was said by this extra layer. Otherwise i would run the extra layer after all main analysis is done, and insert the message using preprint

 

 
  [ # 5 ]

I’ll echo the ^savesentence/^restoresentence style, we use it constantly.
A first pass will collate some basic information and then we have extra phases that will do additional marking, building up knowledge as you go and come across additional context.
You can also test a topic for rule matches to peek into potential responses without actually have to build complex output logic to deal with false positives.

I’m very interesting in hearing how this works out for you as I also think there is a lot of potential in this area and we certainly haven’t covered everything .

There is no requirement to find a response in a single step.

 

 
  [ # 6 ]

Mike mentioned, “Technically, you could have multiple bots, based on different knowledge domains running in parallel also. And one ring would unite them all and choose the best.  The highest score would drive the response.

This thread is a good read, with several A.I. programmers in the discussion.  Theoretically, for multiple bots analyzing a stimulus in parallel, the best response depends upon one of the specialized knowledge domains.  Else, the knowledge domain becomes independent.

So, Mike, are you proposing to build multiple specialized knowledge domains or one generalized knowledge domain?

 

 
  [ # 7 ]

Guru, I am documenting my current functional design logic soon. 
and will propose some approaches for a new functional logical design approach that uses these design concepts. 
This future state will be based on review of other designs. 
Please post your high level functional flow, so it can be part of the mix.

I am not locked into any one idea, but there is merit to running the bots in parallel, to derive possible responses, marking up and setting variables and then evaluating the same within the control script.

 

 
  [ # 8 ]

Oh, I agree. Once, I was in a rush to meet a chatbot contest deadline, and ran some open source A.I. platforms in parallel. To my surprise, I placed fourth place that year in the Chatterbox Challenge.  It got a mention in a news article.

 

 
  [ # 9 ]

I have been proposing the concept of developing specialized knowledge bots, controlled by an overarching management bot, for a number of years. I tried to get Pandorabots to adopt this technical approach for several years but was unsuccessful. I have a basic concept for this approach at https://jflynn124.wixsite.com/mysite/know-a-lot-bots.

∞Pla•Net - Apr 20, 2019:

Mike mentioned, “Technically, you could have multiple bots, based on different knowledge domains running in parallel also. And one ring would unite them all and choose the best.  The highest score would drive the response.

This thread is a good read, with several A.I. programmers in the discussion.  Theoretically, for multiple bots analyzing a stimulus in parallel, the best response depends upon one of the specialized knowledge domains.  Else, the knowledge domain becomes independent.

So, Mike, are you proposing to build multiple specialized knowledge domains or one generalized knowledge domain?

 

 

 
  [ # 10 ]

Mike said “Please post your high level functional flow, so it can be part of the mix.”;

My ChatScript project is so brand new, the drafts are still being edited.

Reference: http://chatbot.altervista.org/flow

 

 
  [ # 11 ]
John Flynn - Apr 20, 2019:

I have been proposing the concept of developing specialized knowledge bots, controlled by an overarching management bot, for a number of years.

John Flynn - Apr 20, 2019:

I have a basic concept for this approach at https://jflynn124.wixsite.com/mysite/know-a-lot-bots.

Mike Canavan - Apr 19, 2019:

And one ring would unite them all and choose the best.

Andy Heydon - Apr 19, 2019:

A first pass will collate some basic information and then we have extra phases that will do additional marking, building up knowledge as you go and come across additional context.

For new projects such as “ChatScript on Twitch”, an advanced parallel topology seems impractical to start out with.

John, the concept you propose is a “Star” parallel topology, I believe.  Mike mentioned a “Ring” topology. And, I think Andy proposes a “Tree” topology.  Are there easier, simpler options to suggest for new ChatScript projects?

ReferenceParallel Networks Typologies” by Dana Vrajitoru:
http://www.cs.iusb.edu/~danav/teach/b424/b424_24_networks.html

Credits:
ChatScript. Author: Ⓒ Bruce Wilcox. License: MIT
WordNet Ⓒ Princeton University. WordNet 3.0 license

 

 
  login or register to react