Ai Dreams Forum

Member's Experiments & Projects => General Project Discussion => Topic started by: 8pla.net on November 17, 2014, 01:49:54 am

Title: Elizabot New Project
Post by: 8pla.net on November 17, 2014, 01:49:54 am
The interview questions from Art are so useful as feedback, I would like to borrow them from the Athena thread for my new project: http://elizabot.com/newproject (http://elizabot.com/newproject)

1). Where is [new project] in terms of development?

    It is in the process of gradual development from a simple to a more complex form.

2). What [is] 'she' capable of doing at this moment?

     'Her' current capability is a fraction of the desired objectives which 'she' was projected to attain.

3). Will [new project] be customizable like adding "brain modules", learning (from chatting, text files, Internet, etc.)?

    Nearly all new projects are customizable.  Learning is usually the main objective of chatting on the Internet.  It would be a shame to waste good human interaction, when trying to simulate human interaction.

4). What would [you] like for [new project] to be able to do in the near future?

    That which it's current levels of complexity prevent it from doing in the present.   What people do effortlessly while chatting, can get really tricky to teach a chatbot.

5). What features, if any, should [new project] be able to do aside from chatting?

    Simulated chatting may feel boundless at times... Often it takes years to convincingly simulate chatting, and the results may still not be flawless.

6). Given her current state of development, when do you think you'd be ready to release a beta version for testing?

    A BETA version usually folllows shortly after the the ALPHA version is released.  Here is the ALPHA version release: http://elizabot.com/newproject (http://elizabot.com/newproject)  This is an early prototype, which represents the underlying basis or principle.  It works now, but it most certainly needs to be fine tuned.  Thanks so much for your support.

This concludes our interview. 
   

(Revised slightly to better align with this new thread.)

___________________________________________________________________________
« Edit Notes:  New Project thread started.


Title: Re: Elizabot New Project
Post by: Art on November 17, 2014, 10:30:41 am
Actually, a New Topic posting might serve better than "diverting" attention or flow of this topic under way and it would also BRING attention to your own research experiments. Just saying....

Title: Re: Elizabot New Project
Post by: 8pla.net on November 17, 2014, 12:39:02 pm
Thanks for the advice, Art.  Just following along to learn a few tips from the Athena project.   Athena is a more mature than my brand new project, which does not even have a name yet.  So here is a question for the Athena project... Matching the input can be done...  Even multiple matches on the input is no problem... But what may be the best way to match and then decide on or generate the best single output?  I am trying to more effectively use the Levenshtein distance, right now.   It's working, but I know I am missing something.
Title: Re: Elizabot New Project
Post by: Freddy on November 17, 2014, 02:23:20 pm
Actually, a New Topic posting might serve better than "diverting" attention or flow of this topic under way and it would also BRING attention to your own research experiments. Just saying....

Agreed, so I split it.
Title: Re: Elizabot New Project
Post by: Snowman on November 17, 2014, 10:40:41 pm
If I'm understanding you right...

What you should do is rate your matches.

For instance, let's say you searched your sentence database using both the words "pickles" and "food".

Now let's say you found three sentences (out of several thousands) that have the word "pickles" or "food" in it:

#1 "I like eating pickles"   
#2 "My mom cooks food"
#3 "My food tastes like pickles"

Now we can rate each sentence.
-Since sentence #1 has only one match, "pickles", then it should receive a rating of '1'.
-Sentence #2, therefore, also has a rating of '1' because it only contains the word "food".
-However, sentence #3 is given the rating of '2' because it contains both "food" and "pickles".

You can do this for entire sentences or with simple words. You can, therefore, use the Levenshtein distance as a type of rating system since it is a definite number. Occasionally, there can be equal ratings between matches, ie. sentence #1 and #2 both have a rating of '1'. In those cases, you can always just randomly pick one.

Basically, when you do a database search you can return all sentences that contain your search words, then rate them according to how closely they match. Use either multiple search words or the Levenshtein distance to rate your searches.

I hope this answered your question. And yes, I do like pickles.  O0
Title: Re: Elizabot New Project
Post by: 8pla.net on November 19, 2014, 01:41:15 pm
As a new project, with limited responses, the approach starts out more basic, using just the built-in language features of PHP...

"pickles and food"

Pseudocode

Regular Expression Match: (pickles|food)
Description: This means lookup "pickles" or "food".

#1 "I like eating pickles"   
#2 "My mom cooks food"
#3 "My food tastes like pickles"

Responses list:

responses[1]="I like eating pickles";
responses[2]="My mom cooks food";
responses[3]="My food tastes like pickles";
Description: This means the list that was looked up for either "pickles" or "food".

Get a response, randomly choosing response number 1, 2, or 3 from the responses list...
Description: This means the computer rolls the dice to get a response by that number.

My questions are:

1.  Do I need a large number of responses, before making the search smarter?
2.  Will a smarter search, always pick the best match, and in effect stop varying the responses?
3.  I know you are busy with your project, do you mind giving advice to a new project?

Please note that this snapshot is just a status report.   The goal may be simplicity and clean code, but the design process is flexible and open to new ideas.  This new project may usually lag behind new suggestions when they present a challenge to be turned into code that works.
Title: Re: Elizabot New Project
Post by: Snowman on November 20, 2014, 01:38:04 am
1.  Do I need a large number of responses, before making the search smarter?

   If your program only had poled three choices then I would probably go with a random response like you suggested. If you have a huge database then it might be better to cull out the less irrelevant ones.   

2. Will a smarter search, always pick the best match, and in effect stop varying the responses?
           
   Its always good to have a better way of searching responses. Yet, there are even better ways than using a rating system to cull out irrelevant choices. For instance, a good Natural Language Processor could look up sentences based on context rather than just word matches. Sometimes you only need random responses and sometimes you need more precision. It all depends on what kind of data you are looking up and what you are using it for.

3. I know you are busy with your project, do you mind giving advice to a new project?

   I help when I can. Plus, most of the time, I learn more about Ai by helping others. People always bring unique ideas to the table. 
Title: Re: Elizabot New Project
Post by: 8pla.net on November 22, 2014, 06:03:19 am
Well, a bit challenging, but I managed to make a working ratings system.
Since I did not get around to tie breaker functionality yet, its seems some
what clear that a ratings system is deterministic.  I haven't released it for
demo yet, because I think it may be overpowering this small chat bot brain.

It is a fantastic idea by Snowman, because you can see precisely how it is
calculating decisions to reach its final response.  The challenge is that it is so
smart that it may in effect shrink this small chat bot knowledge base by selecting
only the most precise responses.

What I need is to add the functionality that prevents repeats.  That should force
it to vary it's responses more.   Maybe I'll do that next.  These are all just some
thoughts to share on the design process.




Title: Re: Elizabot New Project
Post by: 8pla.net on November 23, 2014, 01:27:31 am
I got started building it an internal memory for it to keep track of what it said before.
It needs to be extended further, but the intermediate results show basic improvement.
The dialogue is in reverse chronological order (with the newest on top).

Code
hello
I ALREADY SAID: HI YOU!

hello
HELLO THERE.

how are you?
PRETTY GOOD.

Hello how are you?
HI YOU!

I also quickly added an avatar, (all original, rendered in Blender), and a new theme...

Reference:  http://elizabot.com/newproject/ (http://elizabot.com/newproject/)

Title: Re: Elizabot New Project
Post by: Art on November 23, 2014, 02:04:43 am
Interesting but I picked up quite a lot of Eliza throwbacks in there. It does have a good response time which is always a good thing with chatbots.
May your experiments continue! O0
Title: Re: Elizabot New Project
Post by: 8pla.net on November 23, 2014, 03:01:51 pm
This ALPHA project does not even have a name yet.  Some basic features may be incomplete or not fully implemented, while other basic features are complete.  For example, it's script file is completely separate from the A.I. engine.  So multiple chat bot personalities are possible.  Some time ago I setup an account on GitHub: https://github.com/chatbots  So, I have been considering releasing a beginner level open source chat bot A.I. engine, with room to grow. I wonder what the benefits are to releasing an open source A.I. project?
Title: Re: Elizabot New Project
Post by: Freddy on November 23, 2014, 03:31:49 pm
I think some of the main benefits are that you get to proudly share your work, get useful feedback in terms of bugs and usability and of course further joint development.

The down side could be that it takes a lot of time supporting your project. If like me you have a lot of side projects, maybe sometimes you don't want to work on the open source stuff. It could take you away from other things you would prefer to be doing at the time. Also you might have to get used to refusing things that you don't feel you want to do.

I guess you have to weigh up how long you want to spend working on the open source stuff and if you really have enough time to commit to it and also that you are open to different directions that might be proposed.
Title: Re: Elizabot New Project
Post by: 8pla.net on November 24, 2014, 03:03:11 pm
Thanks for your insights, Freddy.

I added the following functionality to the demonstration for testing purposes:

Code
COMMANDS TO SWITCH BOT PERSONALITIES:
#LOAD BOT 1
#LOAD BOT 2
#LOAD BOT 3

NOTE:  Each command is required to begin with the character "#".

Bot # 1 is a higher quality* human written knowledge base, with fewer records.
Bot # 2 is a generic machine generated knowledge base with considerably more records.
Bot # 3 is a combination of Bot #1 and Bot #2 to further test multiple bot personalities.

This is a limited time demonstration, in order to get feedback, for early ALPHA testing.

* By "higher quality", I mean smarter than the generic machine generated knowledge base.
Title: Re: Elizabot New Project
Post by: 8pla.net on November 29, 2014, 04:50:47 am
Check it out... 

Major personality upgrade!   

New avatar too.
Title: Re: Elizabot New Project
Post by: Art on November 29, 2014, 02:46:58 pm
Liked the new avatar. Kind of caught me off guard but for some reason it kept reminding me of that little clown of Jigsaw in those "SAW" movies. It had those circles on it's face. A bit creepy but ok.

The chat was somewhat improved over my last couple of sessions. It needs some more work, as I informed it.  It then told me, The more I chat with it, the smarter it becomes. I think that might be a ploy to keep me there chatting with it. I don't think it's one of those self learning bots but perhaps the more one chats, the more it's botmaster can choose from to add to it's memory scripts. Just a guess.

More routine feeding and care might just turn out to be a pretty good chatbot! O0
Title: Re: Elizabot New Project
Post by: 8pla.net on November 30, 2014, 12:50:56 am
Let's go to the movies!
Ready... Action! Avatar
  animated in JQuery.

 So, a new avatar just
got newer. "A.I. engine"
button: top, left brings
you to the chat. Enjoy!

Reference:
http://elizabot.com/newproject (http://elizabot.com/newproject)

Show notes:

Still there is so much to
be alpha tested yet. This
is just the beginning now.

Special thanks to you for
watching.  Your feedback
is very much appreciated. 

Title: Re: Elizabot New Project
Post by: Art on November 30, 2014, 01:25:50 pm
Cool.

The chat seems to be getting a bit better and I like how it shows some of the sentence breakdown.

Are these words being retained in the bot memory or used just within the confines of the current conversation?

Title: Re: Elizabot New Project
Post by: 8pla.net on December 01, 2014, 10:14:33 pm
PHP, like Perl and C language, is pretty strong for designing a new A.I. engine, in my opinion.  There are built-in functions in PHP that come in handy for making a chatbot. For example, these words you asked about, are not only being retained, they are being indexed, in a random access memory stack, written by the chatbot itself to its own source code for a state machine. 

You can easily see this in action for yourself. In the web browser, as you chat, just view source... Each time you do, you'll see the memory stack growing as the words are pushed onto it.  It is also writing it's own code to control its own avatar, and you can see that for yourself too. And I just started support for the audio tag in HTML5, by using the Linux command line to generate some vintage robotic sound effects.

I can't tell you how much I appreciate your ALPHA testing.  I think the reports discussed here on aidreams.co.uk have got people curious about it. This brand new bot is starting to get multiple visitors each day.  Seems that JQuery animation experiment is holding up too.  I checked the JQuery animation today on an old Windows XP machine with Internet Explorer.  Everything worked smoothly accept the CSS3.  I also checked the JQuery animation on my android tablet. So far, the ALPHA stage is going pretty well I think.

Reference:
http://elizabot.com/newproject (http://elizabot.com/newproject)



Title: Re: Elizabot New Project
Post by: Art on December 02, 2014, 12:10:22 am
Wow! I just spent the past 10 - 15 minutes chatting and trying to give it honest answers to all it's questions and to offer some help for it.

I am surprised just how much it has gained in just a day of chatting.  Some of the answers were understandably off base a bit but not by much, and some of it's other answers / comments were spot on! Yes, I was also watching those key words to see what it was doing with them. Very interesting process and I think it's only going to get stronger and better in time, perhaps with the passing of each chat (like I told it).

I told it that I thought it needed to come up with a name (other than Santa Claus) for itself. Can't wait to see what develops. Thanks!
- Art -
Title: Re: Elizabot New Project
Post by: 8pla.net on December 15, 2014, 12:23:32 am
I decided to take the advice of Stephen Hawking and prevent my project from becoming self aware.
Title: Re: Elizabot New Project
Post by: DemonRaven on December 15, 2014, 06:01:58 am
It would need to do a lot more to pose any type of risk it would need to actually be able to control other computers and software. IT would also have to decide we posed some real threat to it.