Discuss Scratch

XComputers
Scratcher
17 posts

Learning Artificial Intelligence Help

I need some ideas and some help on learning artificial intelligence programs. I want to make a very simple one myself, because I have seen VERY simple learning ones on the web before (Cleverbot, for example), and would like to know two things: 1) Is Scratch OR C++ good enough? What is the most I could make with Scratch, and how do I start off with making one in C++? I have programmed with LWJGL (Java), C++, and Scratch, so I know that it will be some work. But, does anyone know of any good resources? Maybe just a chatbot that can remember simple things?
powerpoint56
Scratcher
1000+ posts

Learning Artificial Intelligence Help

Hm. Scratch is definitely suitable for it, but it wouldn't be easy to make a good chatbot in any language.

It is possible make a simple Scratch version of a learning chatbot. I've recently made a Scratch version of Cleverbot, which can learn from the person using it and save information (only if you save the project, though). You can find it here. If you need help figuring out my messy scripts, I'd be happy to help.

XComputers
Scratcher
17 posts

Learning Artificial Intelligence Help

The irony! I had just seen that project before creating this forum post! It is really cool, and gets sorta smart over time. Do you know any resources I can use on the internet to help me? I will also look further into the scripts of your project.
powerpoint56
Scratcher
1000+ posts

Learning Artificial Intelligence Help

XComputers wrote:

The irony! I had just seen that project before creating this forum post! It is really cool, and gets sorta smart over time. Do you know any resources I can use on the internet to help me? I will also look further into the scripts of your project.
Oh, cool! I didn't know that.

Well, I didn't use any to make Cleverbot, but this and this may be helpful.
XComputers
Scratcher
17 posts

Learning Artificial Intelligence Help

Thanks!
powerpoint56
Scratcher
1000+ posts

Learning Artificial Intelligence Help

XComputers wrote:

Thanks!
You're welcome.
danwoodski
Scratcher
100+ posts

Learning Artificial Intelligence Help

This is kind of a different type of AI than learning robots, but I still think it's pretty cool and you might just figure out a thing or two about AI in scratch - http://scratch.mit.edu/projects/569176/
drmcw
Scratcher
1000+ posts

Learning Artificial Intelligence Help

C++ would be much better as string handling is far superior than Scratch's limited join, letter of and length of blocks. Having said that, as you've seen Scratch can be good enough. The Eliza link in my signature is a Scratch version of one of the first chatbots.
jji7skyline
Scratcher
1000+ posts

Learning Artificial Intelligence Help

I've made one with scratch… quite intelligent. Uses lists to create responses and analyse input. Julia
Gravitation
Scratcher
100+ posts

Learning Artificial Intelligence Help

AI really can't be taught; all AIs are different. An AI is a concept, not a technique.

And I seriously don't get why everybody thinks of C++ as so limiting. You can't even begin to compare C++ and Scratch. The browser you're using is probably written in C++. Linux is partially written in it.
Of course it's good enough.
Magnie
Scratcher
100+ posts

Learning Artificial Intelligence Help

For AI, you might want to look at Artificial Neural Networks. Chat bots may not be the best place to start with AI. You might want to try creating an AI for a game and then make a learning AI for that same game, or maybe another. But in general, AI is a very very hard field to get into.
MoreGamesNow
Scratcher
100+ posts

Learning Artificial Intelligence Help

Gravitation wrote:

AI really can't be taught; all AIs are different. An AI is a concept, not a technique.

True, artificial intelligence is a concept, but so is mathematics. And, like math, there is an academic community that has created several effective techniques that can be taught (neural networks, clustering, decision trees, etc).


@XComputers, C++ is one of the fastest programming languages out there. Any kind of chat bot you've seen has likely been coded in either c++ or an equally powerful language. Depending on your ambitions, Scratch may or may not have the type of speed you need.

Secondly, the idea of Cleverbot was/is that it responds to humans with other humans' responses. In other words, it stores users responses in a database and uses those stored responses to respond to other humans. It doesn't really generate its sentences from “scratch” per se. This method is certainly pretty effective, but might not be as purely AI as you wanted (I was certainly disillusioned when I learned this!).

I'm not an expert on machine learning and/or artificial intelligence, so I'm not sure how much I can help you, but could you let us know what kind of knowledge/experience you're working from?
zeusoflightning
Scratcher
6 posts

Learning Artificial Intelligence Help

drmcw wrote:

C++ would be much better as string handling is far superior than Scratch's limited join, letter of and length of blocks. Having said that, as you've seen Scratch can be good enough. The Eliza link in my signature is a Scratch version of one of the first chatbots.

No, C++ would not be good for that sort of thing. C++ has weird syntax (excluding the parts that were selected out of it and pulled to later languages), and due to it's being so low level, makes it far more time consuming to do simple tasks than with other languages. Any sane person would use a high level scripting language, or Lisp. Lisp may be extremely old, but it has been extremely popular in AI development for a reason. Lisp is amazing. Check it out.

Gravitation wrote:

AI really can't be taught; all AIs are different. An AI is a concept, not a technique.

And I seriously don't get why everybody thinks of C++ as so limiting. You can't even begin to compare C++ and Scratch. The browser you're using is probably written in C++. Linux is partially written in it.
Of course it's good enough.

C++ is extremely powerful and low level. It is anything but limiting and widely used. Unless you consider it limiting in it's difficulty to use, in THAT case I would agree.

MoreGamesNow wrote:

Gravitation wrote:

AI really can't be taught; all AIs are different. An AI is a concept, not a technique.

True, artificial intelligence is a concept, but so is mathematics. And, like math, there is an academic community that has created several effective techniques that can be taught (neural networks, clustering, decision trees, etc).


@XComputers, C++ is one of the fastest programming languages out there. Any kind of chat bot you've seen has likely been coded in either c++ or an equally powerful language. Depending on your ambitions, Scratch may or may not have the type of speed you need.

Secondly, the idea of Cleverbot was/is that it responds to humans with other humans' responses. In other words, it stores users responses in a database and uses those stored responses to respond to other humans. It doesn't really generate its sentences from “scratch” per se. This method is certainly pretty effective, but might not be as purely AI as you wanted (I was certainly disillusioned when I learned this!).

I'm not an expert on machine learning and/or artificial intelligence, so I'm not sure how much I can help you, but could you let us know what kind of knowledge/experience you're working from?

Not by much, and it's not worth it. All of the modern languages have been optimized to death, and those that use JIT (C++ doesnt) can actually run multiple times faster than C++. And yes, scratch most likely wont have the speed you want. Scratch is extremely slow. As I said, I would advise some sort of scripting language or Lisp for that.

C++ is really extremely overrated. I personally think it's obsolete and anything done in it can be done in another language and be just as fast or faster, take less time to make, be less buggy, and be maintained more easily.

And I second AIs being extremely complicated. It's really high up there on difficulty, and it's rather different than other things in programming (when I say that I include things on scratch). And you can't just say AI. The topic of AIs are so broad, you really need to be more specific.

Last edited by zeusoflightning (July 24, 2014 03:51:54)

MoreGamesNow
Scratcher
100+ posts

Learning Artificial Intelligence Help

zeusoflightning wrote:

MoreGamesNow wrote:

@XComputers, C++ is one of the fastest programming languages out there. Any kind of chat bot you've seen has likely been coded in either c++ or an equally powerful language. Depending on your ambitions, Scratch may or may not have the type of speed you need.


Not by much, and it's not worth it. All of the modern languages have been optimized to death, and those that use JIT (C++ doesnt) can actually run multiple times faster than C++. And yes, scratch most likely wont have the speed you want. Scratch is extremely slow. As I said, I would advise some sort of scripting language or Lisp for that.


I called C++ “one of the fastest programming languages out there” because it can compete with other widely used, powerful languages. There are certainly faster languages out there, though I wasn't aware that JIT languages were significantly faster in practice (let alone multiple times faster). That sounds awesome though! Could you link me to an article with a JIT language that is multiple times faster than C++?

Last edited by MoreGamesNow (July 26, 2014 00:50:55)

astro-mechanic
Scratcher
500+ posts

Learning Artificial Intelligence Help

zeusoflightning wrote:

MoreGamesNow wrote:

Gravitation wrote:

AI really can't be taught; all AIs are different. An AI is a concept, not a technique.

True, artificial intelligence is a concept, but so is mathematics. And, like math, there is an academic community that has created several effective techniques that can be taught (neural networks, clustering, decision trees, etc).


@XComputers, C++ is one of the fastest programming languages out there. Any kind of chat bot you've seen has likely been coded in either c++ or an equally powerful language. Depending on your ambitions, Scratch may or may not have the type of speed you need.

Secondly, the idea of Cleverbot was/is that it responds to humans with other humans' responses. In other words, it stores users responses in a database and uses those stored responses to respond to other humans. It doesn't really generate its sentences from “scratch” per se. This method is certainly pretty effective, but might not be as purely AI as you wanted (I was certainly disillusioned when I learned this!).

I'm not an expert on machine learning and/or artificial intelligence, so I'm not sure how much I can help you, but could you let us know what kind of knowledge/experience you're working from?

Not by much, and it's not worth it. All of the modern languages have been optimized to death, and those that use JIT (C++ doesnt) can actually run multiple times faster than C++. And yes, scratch most likely wont have the speed you want. Scratch is extremely slow. As I said, I would advise some sort of scripting language or Lisp for that.

C++ is really extremely overrated. I personally think it's obsolete and anything done in it can be done in another language and be just as fast or faster, take less time to make, be less buggy, and be maintained more easily.
Usually they're optimized on compilation, though that's a lot harder in a JIT.

JIT is “just in time”, the language is executed like Python and compiled to machine code during runtime at “hot spots”. So the compiling is being done on only parts of the code and while it's running, so it slows down the program. Thus, JIT code takes a while to “warm up” and it's still got interpreted bits mixed up in there and they're usually pretty heavily sandboxed. It's very hard to find something that runs faster than -o3 gcc-c.
pepperman
Scratcher
58 posts

Learning Artificial Intelligence Help

XComputers wrote:

I need some ideas and some help on learning artificial intelligence programs. I want to make a very simple one myself, because I have seen VERY simple learning ones on the web before (Cleverbot, for example), and would like to know two things: 1) Is Scratch OR C++ good enough? What is the most I could make with Scratch, and how do I start off with making one in C++? I have programmed with LWJGL (Java), C++, and Scratch, so I know that it will be some work. But, does anyone know of any good resources? Maybe just a chatbot that can remember simple things?
I came here to ask the same thing! i want to make one so bad but i failed
gtoal
Scratcher
1000+ posts

Learning Artificial Intelligence Help

pepperman wrote:

XComputers wrote:

I need some ideas and some help on learning artificial intelligence programs. I want to make a very simple one myself, because I have seen VERY simple learning ones on the web before (Cleverbot, for example), and would like to know two things: 1) Is Scratch OR C++ good enough? What is the most I could make with Scratch, and how do I start off with making one in C++? I have programmed with LWJGL (Java), C++, and Scratch, so I know that it will be some work. But, does anyone know of any good resources? Maybe just a chatbot that can remember simple things?
I came here to ask the same thing! i want to make one so bad but i failed

I hacked up a very simple chatbot last night at http://scratch.mit.edu/projects/35470990/ which you're welcome to take as a starting point for something a bit more intelligent. If you have questions about how it works or want ideas on how to develop it further, start a new conversation in the forums and let me know where it is via my profile and I'll be happy to help out.

Graham

Powered by DjangoBB