Conversational AI

Started by
47 comments, last by phantomus 19 years, 11 months ago
Hello, My name is Jacco Bikker, I'm pretty new to this forum. I am the author of WinAlice, a C++ version of Dr. Wallace's 'ALICE', with various extensions, such as moods. Usually I'm busy with mobile games and 3D stuff, but every now and then I want to create a virtual companion, or electronic offspring, or whatever, you know what I mean. My latest piece of software is an interpreter based on ideas used in ALICE: I believe natural language is merely a way to communicate, it encapsulates information in a way that is compatible with human means of data transport (esp. voice) while at the same time it's (almost) versatile enough to represent the thoughts that humans want to transfer. In this picture, language itself has nothing to do with intelligence, it merely is a link between two intelligent beings. The link itself can probably be simulated by a machine. This would open up the possibility of communication between a man and a machine, in a way that is most natural to the human. So I have been focussing at extracting information from language. My most recent attempt uses patterns and templates, like ALICE: Patterns to classify input sentences, templates to generate replies. ALICE uses wildcards, like DOS: * and ? for multiple or single characters. My pattern matcher uses much more complex syntax: Multiple wildcards can be used, optional parts, and selections, as well as if statements and variables (both regular and stacks). The template processor is even more versatile and supports reprocessing of (parts of) the input sentence, based on variables etcetera. It can even handle loops this way. So now I have this cool interpreter (I'll gladly post more detailed info if anyone cares, I'm even willing to share the source code), but I need a goal for it. I found that ALICE is ultimately a toy, as it does not persue any other goal than entertaining the user, or avoiding being detected as a artificial entity. Yesterday I found the goal. It's natural for a new being to be curious. So I want to make a curious entity. I want the software to check input sentences for words that it doesn't know yet, and I want it to ask questions about them. Things require definitions, actions require 'why' questions. I think a bot asking lots of questions would already be a huge improvement over the current situation, but it might get a bit too much, so I would also like the bot to look for information online: It could look up information using google, scan acquired text for more facts, and so on. The text it finds could very well contain things that it doesn't understand, and taht way, talking about a car one day could result in a question about airbags the next day. Of course it needs to store all this information. I would like to store information using a 'mind map'; every item would have links to an arbitrary number of other items. Every link is a relation of a certain type: 'has a', 'is a', 'knows' and so on. A relation can be unidirectional or bidirectional. A relation can have a weight. An item should have extra data attached too: The number of times the user used the data in the item, the source of the data in the item, the thrustworthyness of the data in the item and so on. This way, looking for new answers can start at items that are interesting, but not yet clear. Well that was a big rant. I'm quite enthousiastic about the idea myself, but I would like to hear opinions: Am I mentioning things that can't be done, do you have interesting additions? Right now, I have the pattern matcher, but that's it. I don't have the time to generate the 10.000 patterns for it that it probably needs for decent chatter, like ALICE. I think I found a good substitite for it, as the bot I just described would require relatively few patterns. OK, fire away. - Jacco (a.k.a. "The Phantom"). [edited by - phantomus on March 10, 2004 3:38:35 PM]
Advertisement
Forgot to post a link to the latest version of WinAlice:
www.bik5.com/winalice.htm
It's my best shot at conversational AI yet.


[edited by - phantomus on March 10, 2004 3:34:04 PM]
Am I being really stupid or is the thing you want to impliment a neural network - I suggest you look into them!
No definitely not. Basically I want to create software that gathers definitions of things (how''s that called in english?) and other relations. It does so by detecting undefined words in user input, and actively asking about these words. Besides that, it does autonomous research by looking up these words on the internet. I intend to abuse Google for this, and I expect that Google will serve my software with rather large texts. These texts can be scanned using the same pattern matching to find more things that need definitions. The cool thing is that these things will usually be related to the original item.

The ideal role of the user in this process is that of a ''mentor'': The user answers questions that Google can''t answer, and affirms found data. In return, the user has a sensible conversation with a very curious entity. The conversation will be different every day, and it won''t be limited to a build-in dataset.
Visit

http://www.20q.net/

I''m not sure if this is the idea you were thinking of. This keeps relationships about things. Kind of neat.

Will
------------------http://www.nentari.com
Interesting. It seems to me that the biggest difficulty here will be organizing the data, though I can''t really help

<- Cow Soft, free software I''ve made
"Gay marriage will encourage people to be gay, in the same way that hanging around tall people will make you tall." - Grizwald
-~-The Cow of Darkness-~-
You might want to look into semantic nets. They''re basically a graph which defines relationships between different words to allow the AI to make connections between different objects.

James
Is this not just a roundabout way of getting the user to generate the patterns instead of the programmers? The more users would equal more realistic chatter?

"definitions of things " -> facts?
0xa0000000
Hi, Jacco.
My name is Marco, I´m from Brazil and I always think that Alice sucks. A "entity" that does not have inteligence, have no future.
I think that Artificial Inteligence is possible. And I mean INTELIGENCE, with real learning... Not that minimal "inteligence" we put in our simple games.
I dreammed, for a while, to make a chatbot really smart. So I start to think and write down a document. When I realize that it could be a life-time project, I gave a break. I have some ideas, and I think that many of them matches with yours.
I will re-open this document and discuss some point, specially the way of making data storage. For now I just like to register my interest.
Marco.
a-i.com have some nice things going on

[edited by - Jolle on March 10, 2004 5:22:54 PM]

This topic is closed to new replies.

Advertisement