How to make talking AI?

Started by
1 comment, last by GameDev.net 24 years, 4 months ago
Well, first you have to translate the sentence into some sort of internal representation of the information. So you'll need a parser. This isn't too easy, as you'll have to analyze the structure of the sentence, and unravel its grammatical structure completely. Which leads to another problem: People often do not write grammatically correct sentences, so you have to make the parsing a bit "fuzzy".
You also need a large database with known information of expressions/relevance and other things. For example, idioms would be impossible for a computer to understand most of the time, so you have to make exceptions for such. Also, you must judge the parsed information so that the computer might form an "opinion" on the matter, and then eventually give an answer.

Note that this structure is extremely simple - it doesn't learn from previous sentences, and can't handle more complex sentences; and it only describe the bare essentials you'd need for a natural language processor. For example: Even the simple question "Did you like it?" would be impossible to parse - what "it" is impossible to know from one sentence. (And it's not as easy as to store the nouns used in previous sentences and choose the most fitting (although that might work for a game), as they tend to be very "idiomatic" - you have to have a very large database on worldly information to be able to correctly judge which one it is referring to.)

So.. If you want to make a natural language processor that extracts relevant information and stores it for future use - no way.
If you want to make one that can handle sentences with fluid natural language and references - hope you have many years to spare.
If you want to make one where you can type a simple sentence like "Where are my slippers?" - hope you have an extraordinary sense of grammar, a lot of time to spare, and some good books on the matter.

Natural language processing is extremely cool. Unfortunently I can't see it coming in games yet (at least good processing); hopefully in a few years, though.

[Btw, sorry for grammar/spelling mistakes.. I'm not a native English speaker..]

Advertisement
How to program an AI that you can talk with? I don't like the 'Verbot'-style where AI finds few key words ('I' & 'like' & 'money') from your sentence and then answers something scripted ('Stange, I like money too!').

How does for example Elisa work?

I am doing something similar in my game but from design work I know how next to impossible a fluent computer would be.
The best way I have come up with is to simply create a database of known objects and to create profiles for each character on their knowledge on the subject. This way, you can make them a little more lifelike by "teaching" them things about objects.

It is easier than it sounds and you can implement a "topic" field, this is the last used object noun and can be used for subsequent "its" and "theys". It is a shame though that mine will still repeat itself quite a bit. The "verbot" style is probably the best for a game with bolt ons as a real conversation is too complex. A program is better at storing lots about a few subjects than trying to make an intelligent statement.

Perhaps I shouldn't have given away any of this!

This topic is closed to new replies.

Advertisement