Self learning chatbot

  • 14 Replies
  • 884 Views
*

owl

  • Roomba
  • *
  • 4
Self learning chatbot
« on: April 06, 2017, 05:55:35 pm »
Hi everyone, it's my first post, glad to be here you guys, soo i bet that this subject has been talked before but i need to know if is possible to implement self-learning on a chat bot (with portuguese language) to perform some tasks, like giving answers of FAQ or perform some searches and specially how can i do this?

I had started to play with wit.ai and api.ai, but as i know that kind of chat bots cannot apply self learning.

The objective would be something like this:

User: Please tell me what is the company number?
Bot: Sorry, i don't understand what you are saying, try other way.
User: What is the company phone number?
Bot: The number is XXXXXXXXX
---------- Bot recognize that the first expression is equivalent to the second---------
User: Please tell me what is the company number?
Bot: The number is XXXXXXXXX

That is a basic example :)

Thanks

*

Freddy

  • Administrator
  • **********************
  • Colossus
  • *
  • 5952
  • Mostly Harmless
Re: Self learning chatbot
« Reply #1 on: April 07, 2017, 01:53:09 am »
Hi and welcome to the forum :)

Can you expand on how the bot would be used. Most of the time self learning bots are not great unless for fun, especially unsupervised learning.

If the FAQ feature is important and in a limited domain it's probably best to just use something like AIML and do as many variations on the phrase as you can think of - then by studying chat logs you will see other patterns that could work too, that you had not thought of.

*

Art

  • At the end of the game, the King and Pawn go into the same box.
  • Global Moderator
  • ******************
  • Hal 4000
  • *
  • 4319
Re: Self learning chatbot
« Reply #2 on: April 07, 2017, 09:56:59 pm »
Welcome Owl!

I absolutely agree with Freddy's suggestions with regard to comparing "self-learning" bots to Scripted bots like RiveScript, ChatScript or an AIML based bot.

The Self-learners might not be able to present what they've learned in a manner that's consistent with what or how you'd rather have them present it. Then the question arises as to What the bots are going to learn, How, From Whom, etc. In other words, how would you be able to apply necessary Filters to what the bot is "taking in", learning, storing for later use and will it be appropriate for my intended purpose? If not how?

To greatly simplify things, you might wish to consider a scripted bot like the ones I mentioned earlier. They will allow you to construct them in a manner compliant to your wishes and give the bot enough conversational variety and proper direction to handle many exchanges.

I suggest you take a bit of time to chat with various bots in order to make a more sound decision on the type that would best serve your needs. There are plenty you could chat with online and there are many that you can download and experiment with on your own.

Mitsuku, Skynet-AI, ChatScript, Pandorabots of all kinds. Check out some at the bottom of this page at the Chatterbot Collection.

Best of luck and again, Welcome!
In the world of AI, it's the thought that counts!

*

korrelan

  • Trusty Member
  • ********
  • Replicant
  • *
  • 618
  • Look into my eyes! WOAH!
    • Google +
Re: Self learning chatbot
« Reply #3 on: April 08, 2017, 03:28:27 pm »
Welcome Owl.

 :)
It thunk... therefore it is!

*

owl

  • Roomba
  • *
  • 4
Re: Self learning chatbot
« Reply #4 on: April 10, 2017, 09:28:45 am »
Thanks guys for your help, it's great to see people like you ready to help us (with no experience).

I will take a look to your suggestions, the main problem for me is the Portuguese support, i did some research and seems like it is possible, i don't know how yet but i will keep to search.


Hi and welcome to the forum :)

Can you expand on how the bot would be used. Most of the time self learning bots are not great unless for fun, especially unsupervised learning.

If the FAQ feature is important and in a limited domain it's probably best to just use something like AIML and do as many variations on the phrase as you can think of - then by studying chat logs you will see other patterns that could work too, that you had not thought of.

The idea is, the user will try to use the firs expression:
---User: What is the number?
---Bot: Don't recognize expression.
So, the user will try to use an alternative.
---User: What is the company phone number?
---Bot: The number is ***********.
Now, the bot knows what the user meant.
"What is the number? = What is the company phone number?"

And that can be saved for the next time.


Thanks again :)
« Last Edit: April 10, 2017, 11:21:57 am by owl »

*

LOCKSUIT

  • Trusty Member
  • *********
  • Terminator
  • *
  • 971
  • First it wiggles, then it is rewarded.
    • Enter Lair
Re: Self learning chatbot
« Reply #5 on: April 10, 2017, 02:48:13 pm »
If it can recognize "What is the company phone number?", and if it can recognize that "What is the number?" is "What is the company phone number?", then it should work on the first run i.e. it didn't learn it only simply is able to recognize *similar input ex. images.

You could say "What is the number?" doesn't match enough for recognition, and because it matches a somewhat previous line, it now makes its score higher, say in the future when the correct line is never said anymore.

?

*

owl

  • Roomba
  • *
  • 4
Re: Self learning chatbot
« Reply #6 on: April 10, 2017, 03:13:46 pm »
That was a bad example..

But no, the bot just will make that match ("What is the number?" is "What is the company phone number?") after the user insert the right sentence.


Like this, the bot only knows that ( "What is the company phone number?" is "The number is ***********" )
So:
---User: What is the number?
---Bot: Don't recognize expression.
So, the user will try to use an alternative.
---User: What is the company phone number?
---Bot: The number is ***********.

Now the bot should know that when the user made the first question, he was trying to ask the same of the second question.

So the bot will add this to his code:
"What is the number? = What is the company phone number?"


This is like a real life conversation (deduction) when he asked for the number, he was trying to ask for the company phone number.

Sorry, that is a little hard to explain.



In the beginning of the conversation

u: WHAT (what is the company phone number) The number is *********.



After the conversation

u: WHAT (what is the company phone number) The number is *********.

u: (what is the number) ^reuse(WHAT)

*

Art

  • At the end of the game, the King and Pawn go into the same box.
  • Global Moderator
  • ******************
  • Hal 4000
  • *
  • 4319
Re: Self learning chatbot
« Reply #7 on: April 10, 2017, 04:35:13 pm »
Some Chatbots (RiveScript for this example) will allow for the inclusion of various wordings or phrases within the Trigger portion (User's query / statement):

+ what is your (phone number|cell phone number|cell number|mobile number)
- That number is XXX-XXX-XXXX <get name>.
- Thank you <get name>, that number is XXX-XXX-XXXX.
- It is XXX-XXX-XXXX. I hope this helps.

You can add all kinds of functionality to your Input and Output routines.

So be careful not to get reckless by using a lot of the wildcards in your Trigger / User statements as it can cause confusion in some areas if too many are used.

what is his * number

This would accept basically any input from words of all kind including swearing and other unwanted input for your bot to try to digest.

##########
The nice thing about the first example I showed is that it saves you from using a lot / multiple lines of scripting, still accomplishing the same result.

Hope this helps a bit.
In the world of AI, it's the thought that counts!

*

Freddy

  • Administrator
  • **********************
  • Colossus
  • *
  • 5952
  • Mostly Harmless
Re: Self learning chatbot
« Reply #8 on: April 10, 2017, 05:20:57 pm »
I think Art is going in the right direction with this one. That way is a lot simpler too.

I can see what you mean Owl. The difficulty is that what if the user completely changes the direction of the chat and it does not fall into place. Then it would learn a question that is unrelated. Hmm. I will think on it.

*

Don Patrick

  • Trusty Member
  • *******
  • Starship Trooper
  • *
  • 368
    • Artificial Detective
Re: Self learning chatbot
« Reply #9 on: April 10, 2017, 05:57:10 pm »
Owl's example sentences could be detected as a probable rephrase by the amount and order of same words. Otherwise, yes, users tend to change to entirely different questions if one question doesn't work. I believe Harumi is tuned for flexible learning along these lines, but it's not an open source system.
Personal project: NLP -> learning -> knowledge -> logical inference -> A.I.

*

LOCKSUIT

  • Trusty Member
  • *********
  • Terminator
  • *
  • 971
  • First it wiggles, then it is rewarded.
    • Enter Lair
Re: Self learning chatbot
« Reply #10 on: April 11, 2017, 01:46:48 am »
Oh so you mean once the recognitions fail but then once succeed, it makes all other input before = the finally recognized address.

Also to fix that (because that's problematic) you said to do it to previous sentences starting with the same word ex. "what" or multiple same words i.e. matches more.

*

owl

  • Roomba
  • *
  • 4
Re: Self learning chatbot
« Reply #11 on: April 11, 2017, 12:26:04 pm »

Yeh that's a bad way to do this because if some human start to understand how the bot learns then he can teach what he want.

So imagine:
Human: Are you stupid?
Bot: I don't understand.
Human: Are you a bot?
Bot: Yes i am.

now the bot is stupid... xD

Thanks for your help, i understand that will be very hard to validate what the bot will learn and will be almost impossible to make the bot follow the path we want. (Since i'm just one guy)

Also, i just want to know why should i use AIML or ChatScript or RiveScript instead of use api.ai or wit.ai, seems to me that is easy to implement supervision learning since we just need to go to to the page validate what we want, now that tools are free and seems that they are easy to control because i can call functions of other languages to process what i want. (Also have portuguese support)
Sorry for my big curiosity. :)

*

Art

  • At the end of the game, the King and Pawn go into the same box.
  • Global Moderator
  • ******************
  • Hal 4000
  • *
  • 4319
Re: Self learning chatbot
« Reply #12 on: April 11, 2017, 01:05:28 pm »
With your reference to wit.ai and api.ai, this indicates that you are trying to create a chat-type bot capable of learning various tasks, more like an agent
.
Note that the wit.ai has been acquired by Facebook. Even before that, they had an agreement that you, the user would have to adhere to stating that they could if so inclined, use any or all of your data that you had created with their app.

Now there's something to think about. Whether or not Facebook has kept those same conditions is anyone's guess.

The other app is cross platform (api.ai). Speaktoit - you might wish to read their privacy agreement before you choose to adopt their product as well. Very briefly - Speaktoit may gather information related to the use of its Services. This information may include private data. Speaktoit may use this information to provide the services and share this information with others, improve its products, track geographical data, or enforce the terms of this Agreement...Speaktoit may share certain information with research organizations and other vendors.

Learning might be a bit difficult within the confines of these apps.

If you want straightforward bots than can handle a variety of input and have that input totally controlled by you, then do consider RiveScript, ChatScript or an AIML derivative (of which there are many).

A learning bot (which I personally favor for experimental use) might take a considerable time to develop and it's output might prove to be less than desirable. Cute and uber cool in theory but miserable in practical application.

Just my take, Owl as life is full of decisions. ;)
In the world of AI, it's the thought that counts!

*

8pla.net

  • Trusty Member
  • *********
  • Terminator
  • *
  • 767
    • 8pla.net
Re:
« Reply #13 on: April 11, 2017, 06:00:07 pm »
Owl posted, "I just want to know why should i use AIML or ChatScript or RiveScript instead of use api.ai or wit.ai"

Perhaps you shouldn't?

Build a self learning chatbot hybrid from AIML, ChatScript, RiveScript, api.ai, wit.ai is my suggestion.

Perhaps you'll accidentally discover something new about self learning chatbots.

My Very Enormous Monster Just Stopped Using Nine

*

Art

  • At the end of the game, the King and Pawn go into the same box.
  • Global Moderator
  • ******************
  • Hal 4000
  • *
  • 4319
Re: Self learning chatbot
« Reply #14 on: April 12, 2017, 02:32:45 am »
Some of us remember an old friend Guile Lindroth of www.guile3d.com or www.nextos.com

The reason is mention it is because I believe Guile was Portuguese.It also handled Pandorabots and AIML as well.

I'm not sure how much of his site is still active but as I recall, his Denise character was capable of a great number of things so it might still be worth checking out. Perhaps the overall price isn't as high since the site's copyright is 2 years old.

Worth a check...  O0
In the world of AI, it's the thought that counts!

 


Security for multirobot systems
by Tyler (Robotics News)
June 24, 2017, 12:00:16 pm
Daniel Zuo: Creative approaches to connectivity
by Tyler (Robotics News)
June 23, 2017, 12:00:06 pm
Cutting down the clutter in online conversations
by Tyler (Robotics News)
June 22, 2017, 12:00:12 pm
Brain-controlled robots
by Tyler (Robotics News)
June 21, 2017, 12:01:51 pm
Putting data in the hands of doctors
by Tyler (Robotics News)
June 20, 2017, 12:03:24 pm
Microsoft's Invoke
by Freddy (AI News )
June 20, 2017, 12:41:48 am

Users Online

24 Guests, 0 Users

Most Online Today: 33. Most Online Ever: 208 (August 27, 2008, 09:36:30 am)

Articles