conversational AI in gaming...
I was recently shown a current ai project in the making called "alice bot", im sure a lot of people here would have heard of it. after speaking to the bot i was impressed. "she" doesn't really have any idea whats going, and cant often hold a train of thought (thought sometimes can)...however its the most sophisticated conversationial ai i've ever seen by a LONG way..
this made me start thinking about NPCs in rpg style games...has anybody ever worked on creating an NPC with ACTUAL ligual(sp) recognition? this alice bot says a lot of stupid things but it can comprehend an astounding (well for me atleast) amount of the english language and respond in semi-appropriate ways. (and with relevance to things previously said between you and it)...so perhaps REAL NPCs are not as far off as i had thought.
has anybody had experience with this? i've spoken to many people about their "ideal gaming world", and always inclusive is a non-linear structure to it where there are nearly unlimited possible outcomes depending on how you interact with characters. a game which contained characters that could learn, and that could speak english (beyond being taught that for example "sentances beginning with 'how' are innevitably questions..etc...); i mean real complexity, would be an amazing step in the whole scheme of things. and after looking over the a.l.i.c.e project it seems more possible than i ever imagined.
any thoughts?
[edited by - onfu on May 27, 2002 12:30:56 AM]
Very topical topic! (see Game Programming\Text Based Adventures...a possible come-back?)
There is a distinct difference between an Elisa-type interaction such as Alice and an application capable of actually interpreting what you have said.
Generally, Alice applications have a basic heuristic for re-arranging what you have typed in, and it''s own reponse - the application doesn''t need to interpret what you have said.
For instance, if the user types a sentence begining with the words
''I am..'' the response could replace the words with ''Why are..'' giving the impression that it has understood.
This is a simplified example, but besides having a slightly better heurstic, the algorithm gets no more complicated than looking for key words/phrases and throwing formulating a response based on whats found.
Have you tried keying in the same sentence more than once?
There is a distinct difference between an Elisa-type interaction such as Alice and an application capable of actually interpreting what you have said.
Generally, Alice applications have a basic heuristic for re-arranging what you have typed in, and it''s own reponse - the application doesn''t need to interpret what you have said.
For instance, if the user types a sentence begining with the words
''I am..'' the response could replace the words with ''Why are..'' giving the impression that it has understood.
This is a simplified example, but besides having a slightly better heurstic, the algorithm gets no more complicated than looking for key words/phrases and throwing formulating a response based on whats found.
Have you tried keying in the same sentence more than once?
<a href="http://www.purplenose.com>purplenose.com
i have actually since posting this thread looked closer into alice and i do see that it hasn''t really begun to bridge the gap between a truly interactive conversationalist and one which is only programmed to recognise linguistic patterns and respond in clearly defined ways.
perhaps i''ll take this oppertunity to ask if there is anything out there which one or more steps ahead of alice? im fascinated with artificial learning.....has anybody got any links?
i think if i was capable of creating such an AI i would be mesmerised for an indefinate number of years while it evolved...
i would love for some one to create a system of teaching an AI how to treat verbs, nouns..etc..and how to treat grammar, giving it a system of storing "knowledge" - both conceptual and trivial (sorry if i dont make sense), and then throwing a huge dictionary at it...complete with detailed defenitions for all the words it processes. even if it misunderstood 90% of the content you could use it to emaule insane people...
if only it was that easy ...i can dream
perhaps i''ll take this oppertunity to ask if there is anything out there which one or more steps ahead of alice? im fascinated with artificial learning.....has anybody got any links?
i think if i was capable of creating such an AI i would be mesmerised for an indefinate number of years while it evolved...
i would love for some one to create a system of teaching an AI how to treat verbs, nouns..etc..and how to treat grammar, giving it a system of storing "knowledge" - both conceptual and trivial (sorry if i dont make sense), and then throwing a huge dictionary at it...complete with detailed defenitions for all the words it processes. even if it misunderstood 90% of the content you could use it to emaule insane people...
if only it was that easy ...i can dream
Hi,
I''m actually working on a game, which includes those characters. the''re still some problems but I think, it''ll work.. some day...
I''m trying to''normalize'' written sentences by putting them into a table.
but I don''t really have an idea how to react on this data - besides giving solutions for almost every possible situation.
do you have some idea?
cYa
DjR
I''m actually working on a game, which includes those characters. the''re still some problems but I think, it''ll work.. some day...
I''m trying to''normalize'' written sentences by putting them into a table.
but I don''t really have an idea how to react on this data - besides giving solutions for almost every possible situation.
do you have some idea?
cYa
DjR
cYaDjR====================may you be in heaven half an hourbefore devil knows you''re dead ;)
An interesting link I found a while back telling about a program understanding basic english text.
http://hci.stanford.edu/cs147/examples/shrdlu/
It would be nice if NPCs in most RPGs had that much 'understanding' and ability to converse. Somebody needs to port the source to C/C++ and distribute it freely =-)
What is amazing is that the project was done in 1970 and games still aren't anywhere near that advanced. Imagine if every NPC could converse that well, it would be truly awesome. (Assuming of course its not all hard-coded to treat specific sentances as commands the same way a command-line os does)
"The Requested Information Is Unknown Or Classified" -Anonymous
[edited by - Extrarius on May 28, 2002 10:52:07 AM]
http://hci.stanford.edu/cs147/examples/shrdlu/
It would be nice if NPCs in most RPGs had that much 'understanding' and ability to converse. Somebody needs to port the source to C/C++ and distribute it freely =-)
What is amazing is that the project was done in 1970 and games still aren't anywhere near that advanced. Imagine if every NPC could converse that well, it would be truly awesome. (Assuming of course its not all hard-coded to treat specific sentances as commands the same way a command-line os does)
"The Requested Information Is Unknown Or Classified" -Anonymous
[edited by - Extrarius on May 28, 2002 10:52:07 AM]
"Walk not the trodden path, for it has borne it's burden." -John, Flying Monk
There''s tons of stuff around to read up on this topic... Try having a look for knowledge bases (first order predicate calculus) and natural language processing. This is something like what I''m doing at work right now, I''ve got the knowledge base working in a decent manner, although still working on the inference algorithms. This is the part that will store what it is that has been said in a logical format. ie: "Meredith''s sister''s name is Elizabeth" becomes "E x Sister ( Meredith, x ) & Name ( x ) = Elizabeth". This would mean that there exists an x such that x is a sister of Meredith and the name of x is Elizabeth. This second sentence gets added to the knowledge base and can be used for further inference according to rules like: "A x A y Sister ( x, y ) => Sibling ( x, y )", "A x A y Sibling ( x, y ) & !( x = y ) => Older ( x, y ) || Older ( y, x )". This would allow the knowledge base to understand that a sister is also a sibling and that all siblings are either older or younger than one another. Once the knowledge base is able to do inferences like this you can feed it knowledge in a specific format and allow it to develop new relations between objects in its knowledge base.
For the actual parsing of the natural language input, have a look at chart parsers. These attemp to break a sentence down into phrases and decide which words are related so that it can understand that "The cat fell quickly" means that the act of falling happened quickly, instead of happening very soon.
Since my explanation here really sucks, I''d have to suggest having a look at AIMA (Artificial Intelligence: A Modern Approach), by Stuart Russell and Peter Norvig. They''ve got an excellent website as well with a large list of links pertaining to AI research.
For the actual parsing of the natural language input, have a look at chart parsers. These attemp to break a sentence down into phrases and decide which words are related so that it can understand that "The cat fell quickly" means that the act of falling happened quickly, instead of happening very soon.
Since my explanation here really sucks, I''d have to suggest having a look at AIMA (Artificial Intelligence: A Modern Approach), by Stuart Russell and Peter Norvig. They''ve got an excellent website as well with a large list of links pertaining to AI research.
quote: Original post by DocJunioR
I''m trying to''normalize'' written sentences by putting them into a table.
DjR
What do you mean ''normalisze''? Are you parsing the sentence and using predicate calculus or something similar to encode the logic?
<a href="http://www.purplenose.com>purplenose.com
I just took a lecture on this yesterday for a well fairly respected researcher in the field. As Melraidin said you firstly have to break the sentence up so it can be converted into first order logic. Apparently there are a few ways for doing this. In the way we where shown you break the sentence into noun phrases, verb phrases and articles (a, and, the etc.). From here it is much simpler to break down into FOL and add to the KB. As has already been said Artificial Intelligence: A Modern Approach has a damn good section on it. Also apparently getting an AI to understand one language has been completed, the goal of researches now is for one AI to be able to understand any language (something like the universal translator from star trek).
quote: Original post by Carrot
What do you mean ''normalisze''? Are you parsing the sentence and using predicate calculus or something similar to encode the logic?
I''ve got (or better, i''m going to build) a kind of tree in which some kinds of sentences are registered. Each word in my sentence get''s an ID, defined by the kind of the word (e.g. verb, adjective) If a word isn''t known it will be considered as noun. Now I can parse through the tree by using the list of word kinds. When the end of the tree is reached, I can put each word of my sentence into the table.
cYa
DjR
cYaDjR====================may you be in heaven half an hourbefore devil knows you''re dead ;)
quote: Original post by cronox
...apparently getting an AI to understand one language has been completed, the goal of researches now is for one AI to be able to understand any language
I afraid this isn''t even NEARLY true. Research has got as far as maybe having a good guess at formalising some logic from VERY basic sentences. The field is a long way off actually getting the computer to ''understanding'' to any degree.
Think about it, if this were the case then we could all be having conversations with our computers!
<a href="http://www.purplenose.com>purplenose.com
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement