IPB

Welcome Guest ( Log In | Register )

2 User(s) are reading this topic (2 Guests and 0 Anonymous Users)
0 Members:

 
Reply to this topicStart new topic
> New chat bot, Let's get started!
#define
post Sep 12 2007, 06:24 PM
Post #1


Catastrophic failure
*****

Group: Moderators
Posts: 2,527
Joined: 1-December 06
From: Boise, ID
Member No.: 13,228



The What:
An application for one-on-one talking and learning for a chat bot.
It will be preloaded with at least 10,000 responses located inside a database.
It will have a means to both export and import its learned knowledge to share with the stealthbot community.
It will provide very easy to use mechanisms to teach it as opposed to slower methods like a learn command.
It will be fully customizable to each individual user.

The Why:
Because it has far more potential then any other chat bot on bnet or here.
The degree of learning goes up exponentially with the number of users sharing their exported bot brains. (which will be way better than just combining text files).
All the chat bots on here use text files, and have poor or inadequate searchability, history, and data.
AI bots learning in a one-on-one environment is much more constructive then doing it somewhere like Battle.net.
I plan on entering this bot into the chatterbox challenge a couple years from now (bnet chat bots don't qualify sad.gif ). I don't plan on ever winning, just being a contender.

The Who:
Since what I am doing has nothing to do with bnet, that is where you come in.
I will work with anyone writing scripts so they can pull from this database which will turn this one-on-one environment to one-to-many.
I also would be interested if someone with artistic ability wants to create a face for the chat bot (different moods).

The How:
C++ Application that will have an interface for very quick and very simple teaching. The responses will consist of 2 tables. The first being the preloaded 10,000+ that I provide which will be the baseline for all the brains, and the second will come empty for you to teach it yourself. When you import someone else's brain it will do the UNION of both your knowledge and the imported brain. The more brains you import, the smarter your bot becomes.
I will keep all kinds of tracking on who taught it what, who's brain it came from, etc so if you import a jackass's brain, it will be simple to purge all data that came from him rather than trying to track down all his crap.

The When:
I realize this is a big project and will take a long time. But rather than releasing it when it is complete, I will be releasing incremental pieces as I get smaller tasks accomplished. Because of this, people writing scripts to talk to the database can start ASAP.

Other than that, if anyone has any thoughts or ideas.. post em.


--------------------
IPB Image
AIM: segfaultcritical
Please don't PM me with tech support questions issues, that is what the forum is for.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Snap
post Sep 12 2007, 07:03 PM
Post #2


The following post is supplementry information
*****

Group: Global Moderators
Posts: 2,922
Joined: 29-January 06
From: Eugene Oregon
Member No.: 31



While I have other projects to work on, I would gladly help as a consultant.

Concepts
If the goal is to attempt to mimic a human response - then it would be logical to think about how the human brain works.
#1. We have a long term memory (your bot does already)
#2. We have a short term memory this is an important key in making your conversations not go in a circle.
#3. We have moods - Sometimes we'll just be in a good mood. - It's hard to break us of our good/bad mood during a day. - Possible, but hard.
#4. We have feelings we react to what is said to us an emotional level. which I gave Warlock my input on some ways to pull this off (I called it moods) - I bet you've read that topic.
#5. We have A.D.D. - ok, well some of us do tongue.gif. - My point being here, is that we will often bring up a subject that was discussed earlier.
#6. We have a since of humor - ok, well some of us do tongue.gif. - - - We hear puns, - relate things said to jokes we've heard. - And laugh at extremes.

The other human attributes can go under "feelings" - - which gives that area quiet the tree of attributes.


The further you perfect these aspects the more human you will make it.
- Some of these things you're gonna want to have in mind from the start.
~ Hope that helps peoplez


--------------------
~Life is all busy and stuff right now. - Car accident, lots of dr. appointments... Other stuff too. I still <3 StealthBot.net - - I'll be around.
Thinking about PMing me? Post it instead! CCX Forums | SnapNJacks Trivia Forums
IPB Image
IPB Image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Ribose
post Sep 12 2007, 07:15 PM
Post #3


So, it's all about fame, huh?
*****

Group: Global Moderators
Posts: 2,950
Joined: 13-February 06
From: Connecticut, USA. (GMT -5:00)
Member No.: 74



I would be happy to help but I would never find time.


--------------------
~Ribose
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
#define
post Sep 12 2007, 09:56 PM
Post #4


Catastrophic failure
*****

Group: Moderators
Posts: 2,527
Joined: 1-December 06
From: Boise, ID
Member No.: 13,228



QUOTE(Ribose @ Sep 12 2007, 07:15 PM) *

I would be happy to help but I would never find time.

Seriously just stop posting then. This is literally like the 10th post you have made talking about how you would love to help but have no time to do it or that you would love to help but your computer is being fixed right now (and then you go on to mention that even when your computer is fixed, you won't have the time to help).
I don't mean to sound mean but that is ALL you ever post about anymore. Also, I don't need help with programming the bot, I want scripters to take on the project of writing a plugin(s) to talk to it for bnet. There are plenty of capable people here (Deadly, Riff, Snap, Jack, 52, etc).

@Snap
Good advice, thanks. The problem I see is that in a one-on-one environment those things are much easier to control (short term memory for example), but when you have 10 people talking to it at once it changes things drastically. When we have a plugin that pulls from the database so a stealthbot talks on bnet, things like short term memory either have to be done way differently or not at all. If User1 talks to the bot and leaves and User2 enters and starts talking, you don't want the bot to bring up stuff from User1's conversation.

Moods I do plan on hitting. Either moods that come directly from a pattern (like if you tell the bot it sucks the bot changes his mood) or putting point values to patterns and if the current points drop below a certain number the bot changes his/her mood to sad/angry or if they get up high enough he/she changes mood to happy. Not sure which way I want to go yet, moods will come quite a bit later on.

It be a lot more straight forward if this bot was always only a one to one conversation, but when keeping in the back of my mind that people will be talking to it on bnet, it adds a lot more complexity in the design.


EDIT:
SQL question... anyone know how to select a random row out of a set of records in SQL?
I am using Microsoft Jet OLEDB 4.0 if it matters.

Prove that I am pounding away at this...
IPB Image

This post has been edited by #define: Sep 12 2007, 11:26 PM


--------------------
IPB Image
AIM: segfaultcritical
Please don't PM me with tech support questions issues, that is what the forum is for.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
FrOzeN
post Sep 13 2007, 12:50 AM
Post #5


Posting God
*****

Group: Sr. Members
Posts: 1,312
Joined: 28-January 06
From: Sydney, New South Wales, Australia
Member No.: 27



Wow, I just typed up this and then noticed this topic. I'll talk to you on AIM about some concepts for understanding messages so we can develop an improved AI for the program. smile.gif


--------------------
IPB Image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
#define
post Sep 13 2007, 08:33 AM
Post #6


Catastrophic failure
*****

Group: Moderators
Posts: 2,527
Joined: 1-December 06
From: Boise, ID
Member No.: 13,228



This is the problem with the ideas we talked about Frozen...
QUOTE
In artificial intelligence, the basic paradigm of intelligent action is that of search through a space of partial solutions (called the problem space) for a goal situation. Each step offers several possibilities, leading to a cascading of possibilities that can be represented as a branching tree. The search is thus said to be combinatorial or exponential. For example, if there are 10 possible actions in any situation, and it takes a sequence of 12 steps to find a solution (a goal state), then there are 10^12 possible sequences in the exhaustive search tree.

When you have a sentence and try to make meaning out of words, you cannot just look at each individual word. The meaning of the sentence is a product of the context each of the words create when combined. This is why it becomes a very difficult task to try and teach a computer the English language. The meaning behind each word in a sentence depends on the context it is used in the sentence.
In theory that would definitely be the best way to make a chat bot, but in practice even the best AI bots out there can't do this yet.
On the other hand, pattern recognition is easy and if you have enough patterns you have yourself a bot that "appears" to know the english language.


--------------------
IPB Image
AIM: segfaultcritical
Please don't PM me with tech support questions issues, that is what the forum is for.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
FrOzeN
post Sep 13 2007, 10:04 AM
Post #7


Posting God
*****

Group: Sr. Members
Posts: 1,312
Joined: 28-January 06
From: Sydney, New South Wales, Australia
Member No.: 27



Yeah, I guess it would take a bit more. The concept was just something I thought up on the spot in reply to that other topic based on my knowledge of how we interpret and read sentences. I think this is another project I should add to my "todo" list, I think it'd be interesting to develop a program that can do some neat analysing of sentences, word by word.


--------------------
IPB Image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
The-Black-Ninja
post Sep 13 2007, 04:08 PM
Post #8


Pure Sex
********

Group: Moderators
Posts: 7,756
Joined: 13-August 06
Member No.: 7,372



Well most AI's rely on Algorithm's (I think ALICE bot does). If you could do soemthing like a "tier" response thing, I believe that would make your job alot easier.


--------------------
IPB Image

-My Plugins :: Thanks Pyro :)
IPB ImageIPB Image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
#define
post Sep 13 2007, 05:34 PM
Post #9


Catastrophic failure
*****

Group: Moderators
Posts: 2,527
Joined: 1-December 06
From: Boise, ID
Member No.: 13,228



QUOTE(The-Black-Ninja @ Sep 13 2007, 04:08 PM) *

Well most AI's rely on Algorithm's (I think ALICE bot does). If you could do soemthing like a "tier" response thing, I believe that would make your job alot easier.

ALICE is all pattern matching, the base 10,000 or so responses I have right now are from ALICE smile.gif

There are better AI chat bots out there (by better I mean impressive learning capabilities) then ALICE, but ALICE can beat them in the challenge because of it's massive database of hard coded responses. They actually sell the database for $1000 (ripoff!)


--------------------
IPB Image
AIM: segfaultcritical
Please don't PM me with tech support questions issues, that is what the forum is for.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
The-Black-Ninja
post Sep 13 2007, 06:04 PM
Post #10


Pure Sex
********

Group: Moderators
Posts: 7,756
Joined: 13-August 06
Member No.: 7,372



ohmy.gif I didn't know that. You could always try, painstakingly, to divide your Databases into categories: objects, persons, places, etc. Based on responses, ie. "what are we doing?", the script would check that "what" is used, so it can refer to an object or a current action, doing is a verb so the script would assume it's dealing with some form of action in the present tense, and so on. Like I said, painstakingly tongue.gif


--------------------
IPB Image

-My Plugins :: Thanks Pyro :)
IPB ImageIPB Image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
#define
post Sep 13 2007, 06:36 PM
Post #11


Catastrophic failure
*****

Group: Moderators
Posts: 2,527
Joined: 1-December 06
From: Boise, ID
Member No.: 13,228



I will have categories, but not like the ones you are talking about. My categories will be much more general like "science, religion, sex, geography, history, etc"
What you are describing gets back into Frozen's idea. While his idea would make the best chat bot in theory... in practice it is an almost impossible task to do well. What our brains interpret effortlessly equates to millions of calculations for one sentence on a computer and the hardest thing about language is that there are always exceptions. (Not even touching on slang yet)
If a sentence was 6 words long and all you had to do was lookup the definitions of each word individually and know what the sentence means, we would already have an AI bot that could pass the Turing Test. The complexity comes from having to form combinations of words together in the sentence to figure out the context. It's kind of like (bot not really) a factorial function...
7 words = 5040 combinations
8 words = 40320 combinations
9 words = 362880 combinations
10 words = 3628800 combinations

You can see how just one more word adds a lot of new combinations.

QUOTE
One of the holy grails of AI and to pass the Turing test is understanding what a person means through his language. The history of AI has be wrought with programs that seemingly understand language but are really using "tricks" to appear intelligent to those that have a genuine understanding because it draws from a knowledge base.

If AI experts who have been doing this for decades cannot yet achieve a computer program that can understand the English language... I don't plan on even attempting it lol. I will however do what everyone else does and use "tricks" to simulate language understanding.
My knowledge base is already fairly good, since I get to start with a large portion of ALICE's brain and work up from there.

This post has been edited by #define: Sep 13 2007, 06:38 PM


--------------------
IPB Image
AIM: segfaultcritical
Please don't PM me with tech support questions issues, that is what the forum is for.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
The-Black-Ninja
post Sep 14 2007, 12:16 PM
Post #12


Pure Sex
********

Group: Moderators
Posts: 7,756
Joined: 13-August 06
Member No.: 7,372



Then I'm out of ideas for now tongue.gif The face-mapping wouldn't be THAT hard, I've done a few faces in 3DStudio, the only part I have no idea how to do is coordinate the facial expressions with the context of the chat.


--------------------
IPB Image

-My Plugins :: Thanks Pyro :)
IPB ImageIPB Image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
#define
post Sep 14 2007, 05:35 PM
Post #13


Catastrophic failure
*****

Group: Moderators
Posts: 2,527
Joined: 1-December 06
From: Boise, ID
Member No.: 13,228



QUOTE(The-Black-Ninja @ Sep 14 2007, 12:16 PM) *

Then I'm out of ideas for now tongue.gif The face-mapping wouldn't be THAT hard, I've done a few faces in 3DStudio, the only part I have no idea how to do is coordinate the facial expressions with the context of the chat.

I actually just dove into that last night. LINK
As far as coordinating faces to the chat, that shouldn't be hard since I am doing everything with object orientated design. When the bot pulls a response from the database it will also pull what expression correlates to it (if any) and change his face.
Now all I need is a series of female faces with expressions smile.gif

Next I am going to make him respond to mouse movement by direction he is looking in (if you mouse over his face). Should be fairly easy.


--------------------
IPB Image
AIM: segfaultcritical
Please don't PM me with tech support questions issues, that is what the forum is for.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
The-Black-Ninja
post Sep 14 2007, 10:49 PM
Post #14


Pure Sex
********

Group: Moderators
Posts: 7,756
Joined: 13-August 06
Member No.: 7,372



Macro---Adobe Flash (lol) might be loads easier to work your eye movement on scroll over.


--------------------
IPB Image

-My Plugins :: Thanks Pyro :)
IPB ImageIPB Image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
#define
post Sep 16 2007, 05:04 PM
Post #15


Catastrophic failure
*****

Group: Moderators
Posts: 2,527
Joined: 1-December 06
From: Boise, ID
Member No.: 13,228



QUOTE(The-Black-Ninja @ Sep 14 2007, 10:49 PM) *

Macro---Adobe Flash (lol) might be loads easier to work your eye movement on scroll over.

This wont be hard at all. There are mouse movement events that track x and y coordinates already so all I have to do is map that information to which side of the face its on.

I almost have a basic app ready to post. Right now it just hits a small test database and doesn't have the interface to be taught responses done yet. It is getting close though, here is what I have for the main screen.

IPB Image

The bottom list would be filled with all the patterns that match your last message. This will make it easy to see what it has and easy to add more. With each response you add, you will be able to select a facial expression that the bot will use when responding to that pattern.

@Snap
Any ideas for a cool chat bot icon?


--------------------
IPB Image
AIM: segfaultcritical
Please don't PM me with tech support questions issues, that is what the forum is for.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
The-Black-Ninja
post Sep 16 2007, 09:41 PM
Post #16


Pure Sex
********

Group: Moderators
Posts: 7,756
Joined: 13-August 06
Member No.: 7,372



Looks pretty good...face needs work though wink.gif lol Sorry, as an artist I gotta critique stuff tongue.gif


--------------------
IPB Image

-My Plugins :: Thanks Pyro :)
IPB ImageIPB Image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
#define
post Sep 16 2007, 10:07 PM
Post #17


Catastrophic failure
*****

Group: Moderators
Posts: 2,527
Joined: 1-December 06
From: Boise, ID
Member No.: 13,228



QUOTE(The-Black-Ninja @ Sep 16 2007, 09:41 PM) *

Looks pretty good...face needs work though wink.gif lol Sorry, as an artist I gotta critique stuff tongue.gif

I think the face looks pretty sweet. I did a lot of looking around on the net and this model is by far the best for what I need. I have no use for one kick ass graphic of a face, it would be pointless. It isn't just that one bitmap the whole time, it has expressions. I didn't make the face though, I have little artistic talent and no patience. I got all my expressions from 3D modeling software. If anyone can make a female version with all expressions that would be very cool!

This post has been edited by #define: Sep 16 2007, 10:09 PM


--------------------
IPB Image
AIM: segfaultcritical
Please don't PM me with tech support questions issues, that is what the forum is for.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
BioHazard
post Oct 3 2007, 10:44 PM
Post #18


i love milfs
**

Group: Members
Posts: 80
Joined: 10-February 07
From: Utah, richfield
Member No.: 18,304



will this chatbot some how be available on warcraft? blink.gif if so im totally intrested in teaching


--------------------
IPB Image
TY t-dawg
QUOTE(RoNiN @ Jul 10 2007, 09:55 PM) *

This topic requires immediate attention by all StealthBot.net members, if you do not post within the next eleventy years, your stealthbot will self-destruct.

Heavy Stealth Bot and Foolops Bot supporter Kings Foolops site here
WarCraft West League is UP Check out the Unfinished site here
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
#define
post Oct 3 2007, 11:05 PM
Post #19


Catastrophic failure
*****

Group: Moderators
Posts: 2,527
Joined: 1-December 06
From: Boise, ID
Member No.: 13,228



QUOTE(BioHazard @ Oct 3 2007, 10:44 PM) *

will this chatbot some how be available on warcraft? blink.gif if so im totally intrested in teaching

The first part of the project is an application to teach it that will be 10x simpler and more entertaining to teach it than on battle.net. The second part would be making a plugin to allow the bot to bring what he has learned to Battle.net.

This post has been edited by #define: Oct 3 2007, 11:05 PM


--------------------
IPB Image
AIM: segfaultcritical
Please don't PM me with tech support questions issues, that is what the forum is for.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
FiftyToo
post Oct 15 2007, 03:36 PM
Post #20


Posting God
*****

Group: Sr. Members
Posts: 1,552
Joined: 28-September 06
From: Ohio
Member No.: 9,153



@Random records

You could do this in the data logic or the business logic.

DATA:

Depending on how many rows are in the result set, you could create a dynamic column and have its value set to RAND(). You would then order the result set on that column. This might not be possible with your database engine, I am not sure if access can order on dynamic columns. You could try using the numeric number of the column in the ORDER BY clause.

CODE
SELECT TOP 1 UserID, Name, Age, RAND() AS o FROM Users ORDER BY o
SELECT TOP 1 UserID, Name, Age, RAND() AS o FROM Users ORDER BY 4


BUSINESS:

This method is easy. Just get the number of records returned, pick a random number between 1 and the count, and then move the cursor in the recordset forward that many rows.

52

This post has been edited by FiftyToo: Oct 15 2007, 03:37 PM


--------------------
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
#define
post Oct 15 2007, 10:36 PM
Post #21


Catastrophic failure
*****

Group: Moderators
Posts: 2,527
Joined: 1-December 06
From: Boise, ID
Member No.: 13,228



QUOTE
BUSINESS:

This method is easy. Just get the number of records returned, pick a random number between 1 and the count, and then move the cursor in the recordset forward that many rows.

52

That's what I've always done when doing random stuff in a database, just seems lame to me because I know you can do it in the SQL statement.

QUOTE
SELECT TOP 1 UserID, Name, Age, RAND() AS o FROM Users ORDER BY o

This does what I would expect it to... just selects first row with a random number, but the random number does nothing for which row is selected. If I select TOP x, all records would have same number o, and have same order every time.

The dynamic column would work, and would probably be my last resort. Looping through the record set works for me, I just thought there had to be something simple and slick in SQL.
(RAND() doesn't work for me, I have to use RND, and it gives a decimal number back)


--------------------
IPB Image
AIM: segfaultcritical
Please don't PM me with tech support questions issues, that is what the forum is for.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
FiftyToo
post Oct 16 2007, 08:44 AM
Post #22


Posting God
*****

Group: Sr. Members
Posts: 1,552
Joined: 28-September 06
From: Ohio
Member No.: 9,153



QUOTE(#define @ Oct 15 2007, 10:36 PM) *

QUOTE
BUSINESS:

This method is easy. Just get the number of records returned, pick a random number between 1 and the count, and then move the cursor in the recordset forward that many rows.

52

That's what I've always done when doing random stuff in a database, just seems lame to me because I know you can do it in the SQL statement.

QUOTE
SELECT TOP 1 UserID, Name, Age, RAND() AS o FROM Users ORDER BY o

This does what I would expect it to... just selects first row with a random number, but the random number does nothing for which row is selected. If I select TOP x, all records would have same number o, and have same order every time.

The dynamic column would work, and would probably be my last resort. Looping through the record set works for me, I just thought there had to be something simple and slick in SQL.
(RAND() doesn't work for me, I have to use RND, and it gives a decimal number back)


OK, apparently that only works in MySql. I think thats the reason I did it differently with my scramblebot. I just pulled all the records on Event_Load and then just grabbed a random row using rs.Move().

http://www.petefreitag.com/item/466.cfm

52


--------------------
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 User(s) are reading this topic (2 Guests and 0 Anonymous Users)
0 Members:

 



- Lo-Fi Version Time is now: 20th July 2019 - 10:41 AM
Skin by Andrea
Website Legal Information | Hosted by LunarPages