Discuss Scratch
- Discussion Forums
- » Advanced Topics
- » Learning Artificial Intelligence Help
- XComputers
-
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
-
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.
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,

- XComputers
-
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
-
1000+ posts
Learning Artificial Intelligence Help
Oh, cool! I didn't know that. 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.

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

- danwoodski
-
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
-
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
-
1000+ posts
Learning Artificial Intelligence Help
I've made one with scratch… quite intelligent. Uses lists to create responses and analyse input. Julia
- Gravitation
-
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.
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
-
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
-
100+ posts
Learning Artificial Intelligence Help
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
-
6 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.
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.
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.
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
-
100+ posts
Learning Artificial Intelligence Help
@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
-
500+ posts
Learning Artificial Intelligence Help
Usually they're optimized on compilation, though that's a lot harder in a JIT.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.
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
-
58 posts
Learning Artificial Intelligence Help
I came here to ask the same thing! i want to make one so bad but i failed 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?

- gtoal
-
1000+ posts
Learning Artificial Intelligence Help
I came here to ask the same thing! i want to make one so bad but i failed 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 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
- Discussion Forums
- » Advanced Topics
-
» Learning Artificial Intelligence Help