I was talking to Milhail, and he said that a computer couldnt understand english, but i beg to differ.
I think I could parse english and even get the computer to understand it, this has got to be done before and if it hasnt I think the world is behind schedule.
I love you
this is an easy example, the computer reads "you" and knows you mean it, and it reads "i" and understands its coming from the person writing the text.
Love is something a computer would have a hard time dealing with, but you could just call it "positive" so the computer reads "positive to me from you" and the computer can understand "I love you"
I know thats a really easy example, and it could get a little more complex than that once the sentence becomes more complex, but im pretty sure i could get it to work, so maybe itll be a pet project of mine for the future, since everyone is so dumb they cant even think its possible.
P.S. love belongs to I, in that sentence, if it was "you love I" it would be different. So youd have to parse it especially in that way.
I'm currently reading Noam Chomsky's "Language and Mind". In the first part, he makes some really strong arguments about the complexity of interpreting "surface structure" (ie, strings of words), into deep structure (ie, actually meaning). Chomsky also makes the point that language is inherently creative, which is something software has not been so good at. If people do figure out how to make computers really understand language, you can be sure that it will be a big deal.
It really isn't fair to say that people are dumb. It may be possible, but its going to require some radically new ideas.
Parse is simple, understand is not. Rouncer, you are underestimating the complexity...
This is a field where computers are in the stone age yet... as is AI in general.
Do not underestimate this area, you're not considering many implicit details of AI. =)
I guess there is more space left in AI for revolutions from individuals than there is in CG (realtime or not).
Tobey, I say people are dumb if they dont even want to try...
I say anyone who tries will come up with something for sure, bring on the brain demos!
I could give you a few more ideas, dont think this is a dead wall area of thought you really can come up with stuff.
Possible ways to make a computer "understand" (understand as in the simplest possible way) could be meaning "categories" in a table like system or even imagine a script for each verb! Just think about it.
As I see it, the computer only has to understand enough for a possible logical reaction, what it says back.
If noone else does it, its gonna be me for sure, thats all I know.
Anyway, ill be back here with an implementation, however simplistic and dumb it is.
Any creativity it has is simple reaction programs, theres nothing that learns or is creative at all, its gonna be take in and spit out as I see it... making it learn is something else.
rouncer, seriously, kudos on you for begin so optimistic about this, but I don't think you really appreciate the complexity of the subject, and the amount of effort that has been put in by some very, very clever people. Understanding English is very difficult.
In order to understand English, you need your AI to have knowledge of culture. For example, if I said that "The Simpsons has jumped the shark" what would an AI make of that? Would it understand the reference to Happy Days, or would it think that an actual shark was involved?
That's just a simple example, there's much more to it than that, and much more subtle things as well.
How would you measure that computer understands what you are typing? Is there some animated face showing emotions based on the interpretation? Or would the program answer something back? I think the complexity of the interaction has a lot to do with how complex the algorithm for understanding sentences would have to be. Btw, underestimating the complexity of the task is great way to get started on working on something instead of getting overhelmed by the complexity of the task
Heres my idea->
so you write the english
it converts it to its meaning language.
it finds (hopefully heirarchically optimized) the command for the meaning from a giant list each single sentence meaning is a separate object string.
it carries out the command.
you can explicitly tell it new things.
and you can tell it to draw simple conclusions.
its not intelligent in any way... but it does "understand" in a loose way by having a reaction to every meaning explicitly... ive got an idea that i can fill out a lot of the missing permutations of logic by running a "concluder algorythm"
"an apple is green"
"green things fit in green spheres"
then it concludes "an apple fits in a green sphere" - even if you didnt tell it. and that just fills in the multitude of gaps youll leave out when your programming it explicitly.
so its nothing special, it might as well be the little program that reads your writing in liesure suit larry... it "understands" english.
rouncer, what you're describing sounds a lot like a program called SHRDLU built in the late 60s.
Oh yes, if you limit the system to a specific domain, it starts to become manageable.
The way I initially understood, I thought you were talking about understanding "open language", which sounds to me in the same way that when somebody talks about the next homebrew WOW, or a Solar System renderer with all details from atoms to asteroids.
I must agree that underestimating may be good to start without fear, though. =)
Just go ahead, I'm one that will be looking forward for any progress you make, please tell us about this project!
Yeh SHRDLU is what i mean... its totally cool. so its been done before, thought so.
thanks for showing me.
SHRDLU in a game would be cool for npcs, dont you think.
Another thing comes to mind that might interest you are chat-bots. There have been chat-bot competitions for years. My understanding is that a wide range of strategies exist.
Lastly, I don't know much about the programming language prolog, but my understanding is that you could tell it that an apple is green, and then that green things fit in spheres, and if you ask if an apple goes in a sphere, it will conclude that it does.
Yeah, Prolog is built for syllogistic reasoning like that, so it might be a good choice for the back-end logic engine.
Interesting topic. I didn't know that about prolog.
You probably should read up on discrete mathematics since it deals with logic and reasoning. My professor was obsessed with Prolog, but we never had the chance to use it in our curriculum. A pity since I hear nothing but good things about it in the field of AI. Although I wouldn't use it to build games. I would much rather see chat bots evolved to actually performing tasks. Start getting computers to interact with people. They don't have to understand (just like a chat bot doesn't really "understand"), but start making a push for a general agent on a PC that works with you.
I was messing around with this recently, it gets very frustrating very quickly though (But maybe that's because I was trying to argue with it )
i just tried the chat-bot nerd_skywalker linked to, and got in an argument with it. quite impressive, because most chat-bots totally fail to be even remotely engaging or coherent.
I dunno about that. I just broke the bot in under 5 sentences. Not much of a conversationalist.
well the first thing it said was nonesense, and then i pointed that out, and then it argued with me over that point
It was all nonsense for me.
I think with AI you have to have a smaller topic area or rule set to not go into stupid land. I took a brief look at prolog and found it somewhat interesting. There is also a p# which is prolog for the .net platform.
next page →