Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Work in Progress / Sententia 3 - Artificial Intelligence

Author
Message
SamKM
11
Years of Service
User Offline
Joined: 25th May 2009
Location:
Posted: 18th Feb 2013 01:05 Edited at: 18th Feb 2013 01:10


After that nice image, I'm afraid the actual explanation of what this is might be a little bit disappointing
Sententia 3 is (currently, anyway) a 'chatbot' artificial intelligence program, made with DBPro. If you've never heard of chatbots, they are basically programs designed to simulate another human, and talk back to you when you type to them. It's a little different to a few chatbots, which simply give pre-programmed responses, because it learns from talking to people, and decides what to say based on it's knowledge database, and (I'd like to think ) intelligent algorithms. The more conversation it has, the more it's knowledge database grows. For example, if someone asked it for the first time 'What do you think of music?', it would most probably give a vague response, and quickly veer off-topic. During a later conversation with someone, it may ask them 'What do you think of music?', to which they reply 'I like music, it's good!'
If Sententia is then asked again 'What do you think of music?', it will respond 'I like music, it's good!'. It then also tries to use further memories from the same chat file to hold a conversation based on music. Therefore, the more conversations it holds, the more 'intelligent' it becomes.
That's the theory, anyway! In practice, it doesn't always work at the moment...
A screenshot of a conversation:



It still needs work (as the screenshot shows!), but hopefully I should be able to post it in a Program Announcements thread within a week or so, because if anyone is willing to download and talk to it, that'd be really helpful thanks!
Currently, it's at the stage (which most chatbots are actually) of sometimes being frighteningly intelligent, and other times making barely any sense. It's mostly down to whether you're talking to it about something it knows about, or not.
Sententia 3 uses FTP commands to upload to and download from an online database of it's chat files, so every time someone holds a new conversation with it, it will upload that to the database. When anyone else on another computer runs it, it will update it's database with that new chat file.
I'd love to hear your thoughts on this! If anyone wants more screenshots or anything, I'll post them.
Thanks
Samkm
SamKM
11
Years of Service
User Offline
Joined: 25th May 2009
Location:
Posted: 18th Feb 2013 01:07
By the way, if what I posted seems a little vague, I'm feeling pretty tired right now, sorry!
Sergey K
16
Years of Service
User Offline
Joined: 4th Jan 2004
Location:
Posted: 18th Feb 2013 12:03
there been a time i wanted to make something like this my self..
but i understood that i need a big bantch of dynamic database. so the computer will learn during the talk.
in the end i quited the progress cuz my english grammer is not that good for this kind of project.
i hope your skill are better than mine.
i would love to see more progress on that one.

advice; try to use online database as grammer. it might help you.

Advanced Updater for your games!
ShellfishGames
7
Years of Service
User Offline
Joined: 6th Feb 2013
Location:
Posted: 18th Feb 2013 15:52
That's pretty interesting.

It really is kind of cute how the chatbot keeps trying to change topics in the screenshot.

Are you willing to tell us a little bit about the background procedures of the AI? For instance, is it simply picking complete sentences from the data base (i.e. every sentence said by your AI has its origin in a human user having said the same thing before), or does it have its own "understanding" of grammar and dynamically generates the sentences?


I started such projects several times in the past, but never finished any of them. The way I saw it, there were two possible approaches:

A) Create an AI that is already programmed in an intelligent way (I'm not talking about factual knowledge or anything, but its unterstanding of speech and grammar), which would require a lot of programming and certainly result in the ugliest code imaginable

B) Create an AI that starts dumb, but is able to learn anything from experience - however, I always thought that as soon as there is enough data to allow the AI to actually behave somewhat intelligent (which probably would require years of conversation), the whole thing would get way too big and slow for realtime conversations.

Hence I kept losing motivation. Seemingly however, you already reached a pretty interesting state with your implementation.

SamKM
11
Years of Service
User Offline
Joined: 25th May 2009
Location:
Posted: 18th Feb 2013 16:24 Edited at: 18th Feb 2013 19:47
Thanks
I'm sure not convinced my skills are any better than yours, as far as coding is concerned anyway! I've always considered myself pretty sloppy when it comes to design, usually taking the easy but inefficient route. Like for example, Sententia uses a long list of .txt files to hold it's conversations. Whenever you have a new conversation, it just adds to that (when the conversation is finished, so unfortunately it doesn't learn as it goes, as far as the current chat is concerned). Something tells me that just isn't the best way to do it! I should probably have them appended into one large file or something, because that'd surely be faster for Sententia to scan than (currently) 75 or so different files that it has to swap between.
Thanks for the advice as far as using an online database is concerned. I'm not quite sure what you mean though, sorry! If you could explain further, that'd help thanks.
MrValentine
AGK Backer
9
Years of Service
User Offline
Joined: 5th Dec 2010
Playing: FFVII
Posted: 18th Feb 2013 19:22
Interesting...

SamKM
11
Years of Service
User Offline
Joined: 25th May 2009
Location:
Posted: 18th Feb 2013 19:46 Edited at: 18th Feb 2013 19:52
@shellfishgames
Of course I'll explain, thanks for asking
Largely, the AI's responses are indeed simply retrieved from it's stored conversation database. It has two 'layers' (as I think of them) of algorithms. It has it's (sort of) intelligent algorithm, that examines stored conversations, and looks to see if what the user has just said has ever been said by the AI before. If so, it looks to see what the user's response to what the AI said was. The second algorithm is there mainly for if the AI can't find anything good to say, but also is used anyway from time to time, because otherwise the AI wouldn't learn very fast, as it wouldn't use much new material in it's conversations, and therefore gather responses. That layer simply tries to decide the best possible response, choosing from things the user has said at any point in any conversation. If neither layer finds anything good, the AI simply asks a question.

For the memory retrieval bit, it's not quite as simple as just pick a response, though. Both algorithms work on a probability basis. They both use a variable (usageprobability), which is incremented and decremented depending on various factors in the structure of the sentence, the punctuation, and the recent conversation that has been held. After it has scanned the database, the response with the highest probability is stored and used.

That's basically how it works at the moment anyway, but I'm still working on it, and have plans for how to improve it, including give it at least partial ability to make it's own sentences and substitute words if they seem to have similar uses, and improvements for it's ability to maintain a concept throughout conversation (that'll help it to stop changing the subject!)

Sententia pretty accurately fits into category B) in what you put I'm afraid! You have a good point talking about how it could become too slow to run. I have a few vague ideas for ways around that if it ever became a problem, but at the moment I just try not to think about it, to be honest! I did once make a Sententia 2 (Sententia 1 never got past being able to say "Hello!"...), and that kind of fitted into A). I was basically designing it to give pre-programmed responses based on keywords. I started off enthusiastic, but when I started to get to around 1000 lines or so, I began to realise that I was basically trying to program in responses for every possible thing anyone could ever say to it/ask it, so I gave up!
Design Runner
9
Years of Service
User Offline
Joined: 16th Oct 2010
Location: In my own little world.
Posted: 19th Feb 2013 03:54
Something I think worth checking out would be http://www.chatbotbattles.com/

There are some really good chatbots on there and by talking to them you can figure out how some of them work. Might give you ideas.

Available for freelance work, hard surface 3d artist and current generation game artist. Contact me through email.
SamKM
11
Years of Service
User Offline
Joined: 25th May 2009
Location:
Posted: 19th Feb 2013 23:58
Ok, thanks for that Design Runner! To be honest though, I think I'm going to take a break for a day or so of talking to all chatbots, including my own. I think it's starting to affect my brain, it feels like I can't tell if a typed sentence makes any sense or not anymore xD
Mr Kohlenstoff
14
Years of Service
User Offline
Joined: 7th Jun 2006
Location: Germany
Posted: 20th Feb 2013 08:44
Quote: "I think it's starting to affect my brain, it feels like I can't tell if a typed sentence makes any sense or not anymore"


Don't worry. Or as Lewis Carroll used to say: Never imagine yourself not to be otherwise than what it might appear to others that what you were or might have been was not otherwise than what you had been would have appeared to them to be otherwise.

But seriously - this is pretty cool. I love chatbots. You know, in the most platonic way possible.

swissolo
10
Years of Service
User Offline
Joined: 9th Jan 2010
Location:
Posted: 21st Feb 2013 22:16
There's always cleverbot to use as a model

swis
Joined: Tue Dec 16th 2008
Interstellar
Sergey K
16
Years of Service
User Offline
Joined: 4th Jan 2004
Location:
Posted: 21st Feb 2013 23:16
i remember one back about 10 years ago or even more!
there was a DOS bot that was almost a perfect talking potantial!
it remembered what i said, used the words from my sentences with "almost" perfectly fixed english.

i cant find it now though

Advanced Updater for your games!
SamKM
11
Years of Service
User Offline
Joined: 25th May 2009
Location:
Posted: 23rd Feb 2013 14:17
Thanks for the comments!
Hoping to have a first version of this released in a day or two, it's going well so far! The most irritating thing about it at the moment is that (probably down to it's small chat database size), it appears to develop an obsession with any subject it's introduced to! Currently, it's obsessions include:
Numbers and counting
The alphabet
Blink 182 (the band)
The solar system
God
David Cameron
HAL 9000
Oh well, it makes for an interesting personality I suppose!
@swissolo Thanks! Sententia is kind of based on the idea of Cleverbot, in the way it learns, etc. I get them to talk to eachother sometimes, by entering the responses from one into the other! They mostly end up arguing xD
swissolo
10
Years of Service
User Offline
Joined: 9th Jan 2010
Location:
Posted: 23rd Feb 2013 17:52
Quote: "The most irritating thing about it at the moment is that (probably down to it's small chat database size), it appears to develop an obsession with any subject it's introduced to!"

Maybe that's perfect! Makes it just like a little kid

Quote: "@swissolo Thanks! Sententia is kind of based on the idea of Cleverbot, in the way it learns, etc. I get them to talk to eachother sometimes, by entering the responses from one into the other! They mostly end up arguing xD "

Ah alright makes sense. What might be an interesting experiment would be the ability to select personalities. Cleverbot can certainly be entertaining, but it's often quite moody. Generating responses is certainly impressive enough, but it can still be a little bit robotic in nature. If you were able to separate responses into catagories like angry, kind, curious etc. you could really create quite the authentic talking robot

swis
Joined: Tue Dec 16th 2008
Interstellar
SamKM
11
Years of Service
User Offline
Joined: 25th May 2009
Location:
Posted: 23rd Feb 2013 19:02
@swissolo I've got to agree with you on that one, yeah. Of course, the problem is, without adding in systems more complicated than simple text based communication, how do you have any way of telling what emotion is behind sentences? Let's face it, we humans sometimes have difficulty telling whether a plain text sentence is delivered in a hostile way or not... I did think maybe detecting emoticons, and picking up on them in terms of mood, but not sure... It's not like we use emoticons at the end of every sentence anyway, so that might not help much :/
SamKM
11
Years of Service
User Offline
Joined: 25th May 2009
Location:
Posted: 2nd Mar 2013 02:45
Finally released version 1.0 in Program Announcements

[href][/href]

Login to post a reply

Server time is: 2020-07-14 21:17:26
Your offset time is: 2020-07-14 21:17:26