Recommended Posts

hi im looking for an extendible chatbot that i could use to make bots ( for games like counter-strike ) more useful.
for example you could ask, " how many guys round that corner?" and they would reply with an appropriate answer ( NOT like alice bot, with some pointless sircastic answer ).
I realise i would have to send events to the chatbot module thing like when an enemy is spotted or when he has to reload or whatever.
so, does anyone know a chatbot that would fit my needs?
( i will be able to extend quite a bit :) )

Share this post

Link to post

Share on other sites

That's a pretty tall order. You could do what NiceCoder did with his MatrixBot and compare input/events to a user-editable database. Adding weights to each keyword of input could come up with a more 'right' answer. The only problem is that you would have to input/train the bot to a reasonable degree. well, thats my 2c.

Share this post

Link to post

Share on other sites

Original post by ErUsok has anyone got any information about parsing commands?

like "go over there"

or whatever

You can probably get by with most of the available chat bots, even for dealing with text input like "go over there". Unfortunately most chat bots are based on AIML (a markup language) that allows you to group input and responses and has some support for placing things in context. Unfortunately you have to create a very large set of scripts in order for the bot to "appear" intelligent. That doesn't mean they aren't useful as they can be used to monitor, record, and later analyze interactions with real people. This can be very beneficial but you are still limited in what can be done with the bot.

The suggestion to put a certain amount of 'weight' on particular words is a good start but not necessarily the best approach. If you are wanting to parse text and as a result put it into some sort of contextual representation you will want to do look over some of the research in Natural Language Processing (NLP). The approaches in NLP are vastly different from chat bots using AIML in that many NLP systems use parts of speech (PoS) dictionaries and (for English) parses input in a way similar diagramming sentences. Each word in the dictionary is tagged as a verb, adjective, noun, etc. and usually also have additional attributes such as transitive and intransitive. The advantage is that you can deconstruct a particular sentence into context which gives you a better chance of accurately acting on it. Consider the following:

"he kicked the dog""he kicked the bucket"

If you don't put it into context all you may know is that "someone kicked something". With systems such as AIML it would be trivial to continue adding rule sets but it doesn't necessarily mean it will present or determine the context. On the other hand NLP systems can be (and usually are) more difficult to implement. The good thing though is that there are a considerable number of existing PoS dictionaries, parsers, research, and papers so the information is there.

Regardless of whether you choose an AIML based bot or take an NLP approach you may have to deal with spelling issues. With AIML based systems it's usually much harder because everything is based on predefined sets of rules (made of up input and response). You can of course convert those rules during initialization but I haven't seen anyone take that approach. For either system if you encounter a word that is not in the dictionary or rule set you have the option of converting the word into a phonetical representation and finding the best match in the dictionary or word set. You will certainly run into situations where a word is misspelled and there are several words to choose from (ambiguities). In AIML you just pick one and hope it's the correct one. In NLP you have a better chance of picking the correct word if you can determine the context in which it is used.

Each approach has it's own advantages and disadvantages. NLP can be more complex and usually is - it's definitely uses a lot more CPU resources.

If you're interested in researching NLP here are a couple of links to get you started: