|
|
Guru
Total posts: 1081
Joined: Dec 17, 2010
|
Skynet-AI (http://home.comcast.net/~chatterbot/bots/AI/Skynet/) is a web based Chatbot project. It took 4th place in the Chatterbox Challenge (http://www.chatterboxchallenge.com/), an annual competition for chatbots which in 2010 included the best competitors from the last decade.
Skynet-AI was created through the use of JAIL (TM) (JavaScript Artificial Intelligence Language). The AI runs anywhere that a browser with JavaScript exists. This has included cell phones, video game terminals, Windows, Macs/Ipods/Ipads, and Unix machines. All, with identical code and faster than virtually any other AI.
The AI does not identify parts of speech or complex sentences. Instead it attempts to identify the meaning of an input and generate an appropriate response. In that way it is a “stimulus>response” style bot. You give it an input and it responds to you. It does not use recursion, instead it uses a prioritized fuzzy input set to identify a pattern to respond to.
Response generation runs through a system that allows it to add randomness or key variables in the output.
Skynet-AI has been designed to answer questions and act as a web portal. Instead of storing all human knowledge in the AI, it will do a web look-up and either respond or open a web page which provides the response. It can do basic math word problems and open web sites for you.
Comments and questions are welcome.
|
|
|
|
|
Posted: Jan 30, 2011 |
[ # 1 ]
|
|
Guru
Total posts: 1081
Joined: Dec 17, 2010
|
Victor Shulist - Jan 28, 2011:
My approach is very pragmatic. I’m actually not attempting to follow or reproduce the same way the human mind does, (one obvious reason is I’m not much into neurology). My design is very much focused on the fact that a computer is a machine, a digital machine, and not a living biological organism that has the same senses as humans do.
That being said, I am focusing on the strengths a computer has, and use those to tackle the processing of language. This is very similar to the way computers perform math, chess,etc. No attempt was made to reproduce the way humans do these tasks into a computer, but yet the computer can do them better… VERY much better.
Victor, in general I agree with your approach. With Skynet-AI I also attempted to use the strengths of the computer instead of replication of a human mind. I think this has paid off if you look at the difference in performance between Skynet-AI and JSAI Mind. Both are using JavaScript as a foundation but the JSAI Mind attempts to replicate how a human thinks.
While Grace/Clues is focused on grammar and understanding complex sentances, for Skynet-AI the approach was to start with a kernel (a word or keywords) and extract the meaning out of the sentence. By doing a fuzzy match on the input, Skynet-AI attempts to extract meaning from the input stream and respond appropriately. As such, it may not understand complex or compound sentences as well as if it understood core word meaning and grammar, but it is more robust to grammatically incorrect and misspelled sentences.
Using JAIL(TM) (Javascript Artificial Intelligent Language) I hope to extend Skynet-AI‘s functionality to better handle:
Transitivity (http://tim.oreilly.com/pub/gl/53)
The classic example of this is:
Socrates is a man.
All men are mortal.
Is Socrates mortal?
More complex math word problems like you would see in a high school algebra class. My benchmark for it is the classic MIT Student program or University of Chicago Carps.
Example:
The price of a radio is 69.70. If this price is 15 percent less than the
marked price, find the marked price.
Improved date/Time handling, including the ability to use natural language to recognize events and do date math.
|
|
|
|
|
Posted: Jan 30, 2011 |
[ # 2 ]
|
|
Senior member
Total posts: 971
Joined: Aug 14, 2006
|
@Merlin: tx for this posting. Would it be possible to create max 1 link to each URL? Now there are four links to SkyNet. I would suggest only to link the first time. Tx in advance! Erwin
|
|
|
|
|
Posted: Jan 30, 2011 |
[ # 3 ]
|
|
Senior member
Total posts: 974
Joined: Oct 21, 2009
|
Merlin,
Yes, your approach is very interesting as well. There are so many ways we can go about this, I think one of us will achieve this goal !
|
|
|
|
|
Posted: Jan 31, 2011 |
[ # 4 ]
|
|
Senior member
Total posts: 974
Joined: Oct 21, 2009
|
Merlin - Jan 30, 2011:
As such, it may not understand complex or compound sentences as well as if it understood core word meaning and grammar, but it is more robust to grammatically incorrect and misspelled sentences.
After the CLUES engine is able to handle proper grammar, functionality and rules will be added to have it accept ‘bad’ grammar as well.
Merlin - Jan 30, 2011:
Example:
The price of a radio is 69.70. If this price is 15 percent less than the
marked price, find the marked price.
Yes, that is very cool. Also, I am expecting by about mid July, I will give an example of Grace handling an electronics problem such as:
resistor R1 and R2 are in parallel
resistor R2 is a 20 ohm resistor
the voltage across R1 is 100 volts
What is the current through the resistor that is in parallel with R1 ?
This will be a good example of where Grace will, on her own, and by fully understanding the structure of a NL statement, figure out to first replace the “sub tree” of :
the resistor that is in parallel with R1
with R2, to produce, a new, simplified question.
What is the current through R2 ?
and lookup that R2 ohms = 20, voltage over R2 = 100 volts (because of being in parallel with R1, which has 100 volts across it), then divide 100 / 20 = 5 ohms. And respond with:
So you’re asking about current through R2.
The current through R2 is 5 amperes.
This kind of functionality is possible with the current design of the engine, I’m hoping for mid-July. This will show how connected language, knowledge, and perhaps thought, really are.
In the event that there were more than one resistor in parallel with R1, it would know to ask which one you are referring to. but if only one resistor in parallel, it would assume (and state that it assumed that).
|
|
|
|
|
Posted: Jan 31, 2011 |
[ # 5 ]
|
|
Guru
Total posts: 1081
Joined: Dec 17, 2010
|
I have been able to integrate the transformational logic into my test platform so that I can handle structured word problems:
The price of a radio is 69.70. If this price is 15 percent less than the marked price, find the marked price. SKYNET-The answer is: 82
The number of soldiers the Russians have is one half of the number of guns they have. They have 7000 guns. How many soldiers do they have? SKYNET-The answer is: 3500
Each hand has 5 fingers. Each man has 2 hands. How many fingers does a man have? SKYNET-The answer is: 10
I am working on making it more robust with a goal of handling a wider variety of input types and word problems. Additionally, if I put this on-line, I need to decide if I want to use a multi-line input box, a separate word problem input form or have input as a set of single entries that are stored in memory.
If I keep the current input system, I also need to address how the AI identifies that the user wants an answer to a math problem in the context of an ongoing conversation.
|
|
|
|
|
Posted: Jan 31, 2011 |
[ # 6 ]
|
|
Senior member
Total posts: 974
Joined: Oct 21, 2009
|
Merlin
Those are very good examples. Now, when it takes that input, does it match to a template? Or nested templates, or parse trees? If templates, does it match one template to the whole input, or 2 seperate templates for each?
What I mean is, does it do something like the following to match
The (a) of (b) is (c). If this (a) is (d) percent less than the
marked (a), find the marked (a).
Or, does it convert that input to a parse tree?
|
|
|
|
|
Posted: Jan 31, 2011 |
[ # 7 ]
|
|
Guru
Total posts: 1081
Joined: Dec 17, 2010
|
Those are very good examples. Now, when it takes that input, does it match to a template? Or nested templates, or parse trees? If templates, does it match one template to the whole input, or 2 seperate templates for each?
What I mean is, does it do something like the following to match
The (a) of (b) is (c). If this (a) is (d) percent less than the
marked (a), find the marked (a).
Or, does it convert that input to a parse tree?
I use a different approach. I use something you might consider a template for words but not for sentences. It is more of a “transformational” system where I am attempting to transform the input into something that the AI can understand.
Each “neuron” scans the entire input for a match and if found fires the transformation. There are about 50 neurons in this version. Neurons fire in a priority basis.
A simpler version of this is in the current version of Skynet-AI, for example:
USER:how much is 23 times three? AI: 23*3 = sixty nine
In this case the AI first attempts to identify the type of input as a math question.
Then, the input is transformed into a computer friendly form (23*3 vs 23 times three).
The AI then solves the problem (69).
It then translates the answer to natural language.
The response is returned as; [TRANSFORMED INPUT]=[Natural Language Answer].
I did put in the start of a semi-template system in the current Skynet-AI. It recognizes simple word addition and subtraction and does not calculate an answer. For example:
USER:If you had three apples and took one away how many do you have? AI: Ah, subtraction. How about three-one apples.
I was not very happy with that template approach and decided to work on a more robust system more along the lines of the system I am using for basic math functions.
In the problem: The price of a radio is 69.70. If this price is 15 percent less than the
marked price, find the marked price.
SKYNET-The answer is: 82
The AI does a set of prioritized transformations that take the input from English to AI friendly form. It handles breaking the input into manageable parts (multi-line and multi-sentence), transforms the English words (i.e. plus to +), and then attempts to solve the problem. The AI does not understand concepts like “radio” or “marked price”, but it does understand “percent”.
The transformations were identical for each of the examples, and in fact all three were entered at the same time in a text box.
|
|
|
|
|
Posted: Jan 31, 2011 |
[ # 8 ]
|
|
Senior member
Total posts: 974
Joined: Oct 21, 2009
|
Another concept I have in CLUES and I’m wondering if you have in your system is what I am calling Non-predefined determination of structure. This is the functionality of the system, taking logic modules and finding a way to arrange them in such a way that an unknown input, in some structure, is analyzed to determine the structure.
So, effectively, the system writes its own code, by assembling existing modules, then executes that code, and that determines structure of the input, so that the system can deal with structures it hasn’t been told specifically how to handle.
The reason is parse trees can have any of practically unlimited structure. It is impossible to have a template for every one. Thus the system must figure out on its own what the structure is, and map that to knowledge (in the form of both data and logic) to determine what to do with that. I imagine you have a similar concept? Each neuron output feeds into another one, like convention neural net functionality ?
|
|
|
|
|
Posted: Jan 31, 2011 |
[ # 9 ]
|
|
Guru
Total posts: 1081
Joined: Dec 17, 2010
|
This is the functionality of the system, taking logic modules and finding a way to arrange them in such a way that an unknown input, in some structure, is analyzed to determine the structure.
Yes, I have a couple of similar concepts. In the question answering neurons the AI attempts to determine the question type and then responds appropriately.
In the exchange:
USER:What is a bike? AI: Let me think about that some. (Launches a web search and displays page) USER:A bike is a bicycle. AI: OK. What else would you classify as a bicycle? USER:What is a bike? AI: A bicycle.
The AI at first input does not recognize the term “bike” and looks it up on the Internet and opens a definition page.
The user then teaches it a definition with the line USER:A bike is a bicycle..
The AI signifies understanding by saying “OK.” and attempts to solicit other things that may be in the same class. What else would you classify as a bicycle?
The AI has added a high priority neuron to recognize the new item.
When asked a second time it responds with the new definition.
In fact, when I had that “AHA” moment and added the capability to dynamically add neurons, it caused me to rethink and rewrite/restructure the AI.
The AI on the input side has 2 types of neurons. Those that “continue” to other neurons and those that “return” in computer speak. Each neuron has an analog priority. A neuron that “returns” launches an output that may store variables, add new neurons, launch functions, and provide human-like responses. This is what I consider the strength of JAIL (Javascript Artificial Intelligence Language).
|
|
|
|
|
Posted: Jan 31, 2011 |
[ # 10 ]
|
|
Senior member
Total posts: 974
Joined: Oct 21, 2009
|
What about something like:
Black is the color of the sky at night.
When is the sky black?
Or
Painting is Martha’s favorite hobby.
What does Martha like to do ?
|
|
|
|
|
Posted: Feb 1, 2011 |
[ # 11 ]
|
|
Guru
Total posts: 1081
Joined: Dec 17, 2010
|
Victor Shulist - Jan 31, 2011: What about something like:
Black is the color of the sky at night.
When is the sky black?
Or
Painting is Martha’s favorite hobby.
What does Martha like to do ?
The current version of SKynet-AI (.003) does not handle that.
In fact “Black is the color of the sky at night.” would be identified as a statement, not as an attempt to train the AI. Since some higher level neurons might “shadow” lower priority ones, skynet includes a mechanism to force learning. The statement:
Learn Black is the color of the sky at night.
would add new neurons that would recognize:
What is black?
and
What is the color of the sky at night?
One of the limitations of the current version is that the added neurons are not very “fuzzy”. They require a restrictive match to fire. I am exploring ways to change that. I intend to expand the system to enhance the memory and matching system. The test system I am running has shown some promising results in that direction. I am trying to use the same transformational approach that I demonstrated with the word math problems to also include knowledge kernels. Knowledge storage, retrieval and management is one of the vast frontiers that we AI enthusiasts must still blaze trails through.
Just so there is no confusion, the test system (the one that does extended math like the radio example and advanced memory functions) is not on-line yet and is targeted for Version .004.
The basic math, conversational and memory functions can be tested with the .003 version on-line at Skynet-AI.
|
|
|
|
|
Posted: Feb 1, 2011 |
[ # 12 ]
|
|
Senior member
Total posts: 697
Joined: Aug 5, 2010
|
I am confused. I thought the JAIL platform that you are using for skynet-AI is based on regular expressions?
|
|
|
|
|
Posted: Feb 1, 2011 |
[ # 13 ]
|
|
Administrator
Total posts: 2048
Joined: Jun 25, 2010
|
Merlin - Jan 31, 2011:
The price of a radio is 69.70. If this price is 15 percent less than the marked price, find the marked price. SKYNET-The answer is: 82
The number of soldiers the Russians have is one half of the number of guns they have. They have 7000 guns. How many soldiers do they have? SKYNET-The answer is: 3500
Each hand has 5 fingers. Each man has 2 hands. How many fingers does a man have? SKYNET-The answer is: 10
USER:what is 2 add 2?
AI: Let me search for an answer. Sometimes, it takes a couple of seconds. (Chatbot opens a webpage which defines the number 2 instead of giving the answer).
|
|
|
|
|
Posted: Feb 1, 2011 |
[ # 14 ]
|
|
Experienced member
Total posts: 61
Joined: Jan 2, 2011
|
USER:what is 2 add 2?
AI: Let me search for an answer. Sometimes, it takes a couple of seconds. (Chatbot opens a webpage which defines the number 2 instead of giving the answer).
Are you pointing out proof of a rigid structure? What you wrote would be a good test for an American bot.
|
|
|
|
|
Posted: Feb 1, 2011 |
[ # 15 ]
|
|
Administrator
Total posts: 2048
Joined: Jun 25, 2010
|
Toby Graves - Feb 1, 2011:
Are you pointing out proof of a rigid structure? What you wrote would be a good test for an American bot.
No I was pointing out that while it may be able to work out:
The price of a radio is 69.70. If this price is 15 percent less than the marked price, find the marked price.
It doesn’t seem to be able to handle simple maths like “what is 2 add 2”. Surely, it makes sense to start from the basics first?
Not sure what you mean about American, the question is in perfect English.
|
|
|
|