Log in

View Full Version : Plans for an Advanced AI called ATIS


Silicate Wielder
January 4th, 2014, 12:33 AM
Hello again, im back with some more information on ATIS and my hopes for the project. I'll later be setting up a page for ATIS on my website that will include updates, news, and release information if it's requested (I hope you guys do, i'm working my ass off for this)

If you havent seen my first post on this please read that first: http://www.virtualteen.org/forums/showthread.php?t=199540

Before we get too into this I will also let you know that this post will be painfully long depending on how indepth I go into things, and how many times I decide to edit this.

To start off ATIS was something that originated back when I was in my repeat year of 6th grade and since then i've been going back and forth from it and other ideas i've had. by the time I was nearing the end of 7th grade I was doing early experimentation with online storage and retrieval of information, with things such as chatrooms, live feeds of information, sound networking, and a simple AI that learned and picked random responses as you spoke with it, After that was an attempt at creating a graphics engine that could print text out. And when I entered 8th grade I began to tinker with concepts for thinking systems and research on Linguistics, how we think, and toyed around with thoughts on how emotion could be simulated. I began researching and trying out AIs that spoke and responded. but never found one that could truly learn. Only recently have I begun true development, first with looking into past projects and isolating old code so that I could learn how to recreate it and make it more efficient, I then started creating the basic elements of the Response generator, starting with programing it to seperate text using a hardcoded divider, and then moving onto making it learn, and progressing to allowing it to learn multiple responses to an answer by directly asking.

And today marks the day when I enter phase 2 of response testing. I plan on it analyzing everything that is said to it, and allowing it to learn off of that.
However I do not quite know how I will achieve this, I just have some basic ideas of how processing will occour.

Right now what it does is takes user input, and then searches a long list of comparisons, if it finds one with that input, it then adds the resonse included to a list of responses to choose from, it repeats this untill it has no more to proccess, once done it is done, it either does two things, if there are no responses available it will directly ask for responses, otherwise it will choose a random response out of all of them and respond with that.

Tell me if there are corrections to be made with this post and tell me what you think, I need all the feedback I can get.

Stronk Serb
January 8th, 2014, 07:30 PM
An AI... Fascinating. I mean really, you are my age and you are making an AI by yourself, I hope it all goes well.

Joseph69
January 26th, 2014, 05:08 PM
Which programming language are you using to create it in?

Silicate Wielder
January 26th, 2014, 06:20 PM
scratch.mit.edu, but I have stencyl, however I do not know how to create attribute lists.

Typhlosion
January 26th, 2014, 10:17 PM
Whoa! Quite the interesting project!

Where does the comparison list come from?
How long does it take w/o animating the text? Would a 'skip'/'debug' option be simple to add?
Why Scratch???

And a suggestion: add aliases to the same word, such as "Hi" > "Hey" or "Dont" > "Don't". Eliminating identical synonyms can drastically increase processing speed by shortening the comparison list.

EDIT: Adding aliases means you will have to have a separate dictionary for aliases, either constructed by thyself or by AI. AI could compare questions w/ same answer to associate one term as the equal to another.
EDIT2: NVM, saw turbo mode. EDIT4: But turbo mode couldn't be activated by a button rather than a hidden sequence?
EDIT3: Using the '++' to terminate the response is not clear enough. Adding ++ to a sentence (rather than a new line) seems more logical and intuitive. Just trim() and parse the last two characters in the string.

Silicate Wielder
January 26th, 2014, 10:50 PM
Whoa! Quite the interesting project!

Where does the comparison list come from?
How long does it take w/o animating the text? Would a 'skip'/'debug' option be simple to add?
Why Scratch???

And a suggestion: add aliases to the same word, such as "Hi" > "Hey" or "Dont" > "Don't". Eliminating identical synonyms can drastically increase processing speed by shortening the comparison list.
EDIT: Adding aliases means you will have to have a separate dictionary for aliases, either constructed by thyself or by AI. AI could compare questions w/ same answer to associate one term as the equal to another.

the comparison list was the simplest idea I could think of at the time, it contains the entire speech library of the AI.

I have not tested that, I'll get to it as soon as I straighten out my flashplayer situation, or chrome decides to start working. (As I am now running Kubuntu Linux)

Why scratch? It's the language I am most familiar in and I can access it anyplace provided there is an internet connection. However I would like to program a new version that is available for iOS and Android through StencylWorks where I can utilize more advanced features. however that isnt going to be possible to atleast put into work untill I understand how to create Attribute Lists.


yeah I thought about adding aliases, but I also wanted to keep the AI relatively simple for users who dont have technical knowledge.

Im trying to figure out how I could allow it to learn english, possibly allowing it to learn correlation between words by "feeding" it text and then also learning through interaction between user and the AI, however I have no solid ideas as to how this would work at the moment. Aliases would be very handy for it's database if I can get a stable alias building engine working. If you want to see the second generation when I release it (Which will be after I finish this game I have been working on) You should probably PM me.

Yeah the learning feature was a bit rough, I need to smooth that out in the next Speech Engine.

Typhlosion
January 26th, 2014, 11:22 PM
the comparison list was the simplest idea I could think of at the time, it contains the entire speech library of the AI. Quick question: I am aware the project is a WIP, but how do you intend to store the comparison list in the future? Curiosity.

Why scratch? It's the language I am most familiar in and I can access it anyplace provided there is an internet connection. However I would like to program a new version that is available for iOS and Android through StencylWorks where I can utilize more advanced features. however that isnt going to be possible to atleast put into work untill I understand how to create Attribute Lists. I don't understand what you are referring to as attribute lists, never heard of the before.
Do you intend to keep working on the block/snap structure in Stencyl or code?

yeah I thought about adding aliases, but I also wanted to keep the AI relatively simple for users who dont have technical knowledge. Aliases might be as simple as the comparison list. It's a parse and replace function based on a list as well.

Aliases would be very handy for it's database if I can get a stable alias building engine working. This is a very far-fetched idea, but retrieving Dictionary/Google suggestions and allowing corrections akin to Google Translate might be a nice (put exhausting) path to aliases

If you want to see the second generation when I release it (Which will be after I finish this game I have been working on) You should probably PM me.This would probably better through PM hereon. I'm quite eager for V2, and love to see it when done :D

Silicate Wielder
January 26th, 2014, 11:50 PM
Quick question: I am aware the project is a WIP, but how do you intend to store the comparison list in the future? Curiosity.

I don't understand what you are referring to as attribute lists, never heard of the before.
Do you intend to keep working on the block/snap structure in Stencyl or code?

Aliases might be as simple as the comparison list. It's a parse and replace function based on a list as well.

This is a very far-fetched idea, but retrieving Dictionary/Google suggestions and allowing corrections akin to Google Translate might be a nice (put exhausting) path to aliases

This would probably better through PM hereon. I'm quite eager for V2, and love to see it when done :D

Attribute lists are lists of data, or attributes/variables

They're a bit more difficult to implement, but once implemented should be easier to work with.

I'm aiming for an offline AI

and yeah it probably is better to go PM from here on I'll be getting back to work with this as soon as I get a windows XP VM set up, and finish my game.

LunarScorpio
January 30th, 2014, 02:34 PM
ATIS is already something though, you may struggle to get that as a name out.

Silicate Wielder
January 31st, 2014, 05:21 PM
I realixed that and now have plans for changing it's name,