Jump to content
  • Advertisement
Sign in to follow this  
silverphyre673

chatbot ideas

This topic is 4924 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I'm working on a chatbot that uses an ANN to "learn" how to correlate words. Here is the basic idea, which I'm sure is pretty old: You enter a "teaching" phrase, like "warsaw is the capital of poland", from which it discards all but the nouns, to get "warsaw capital poland". It then links these "word nodes" together. From then on, if you asked it something like "what is the capital of poland?" it would spit out "warsaw" because that is more and more closely linked to "poland" than say, "washington, DC" or "london" would be, even if you had entered those. Basically, from your question, it would get "capital" and "poland". It could start with either. If it started with "poland", poland is linked with "capital", which is linked with "warsaw". "warsaw" is linked to "poland", so it has completed what I call a "circuit" of 2 nodes away from it. Since this is the best (closest or smallest) circuit, it uses that. Do you think this is viable? Thanks.

Share this post


Link to post
Share on other sites
Advertisement
You have a few problems.

1. how do you find nouns? (assuming you don't have a dictionary. in which case, how will you get one? (this is harder then you think. As all of my translations programs can attest).)

2. It might work. Thats actually a good idea.

How about you look at my chatbot. It uses something thats similarish to what your saying. It's basically a search engine, so it learns new phrases, then based on what it said to make you say them, those are the terms used in the search.

From,
Nice coder

Share this post


Link to post
Share on other sites
Quote:
Original post by silverphyre673
I'm working on a chatbot that uses an ANN to "learn" how to correlate words. Here is the basic idea, which I'm sure is pretty old:

You enter a "teaching" phrase, like "warsaw is the capital of poland", from which it discards all but the nouns, to get "warsaw capital poland". It then links these "word nodes" together. From then on, if you asked it something like "what is the capital of poland?" it would spit out "warsaw" because that is more and more closely linked to "poland" than say, "washington, DC" or "london" would be, even if you had entered those. Basically, from your question, it would get "capital" and "poland". It could start with either. If it started with "poland", poland is linked with "capital", which is linked with "warsaw". "warsaw" is linked to "poland", so it has completed what I call a "circuit" of 2 nodes away from it. Since this is the best (closest or smallest) circuit, it uses that.

Do you think this is viable? Thanks.


You probably shouldn't use an ANN for that.

This seems to be a semantic net.

The problem will be the searching.

It seems nifty tho.

From,
Nice coder

Share this post


Link to post
Share on other sites
Well, I haven't worked too much on that implementation, but I suppose you could tell it what is a noun. I'll work that out later - this is half the fun! I downloaded your chatbot, and its really quite neat; I did have some problems with display, though (winxp). Work on that - but I thought it was cool, nonetheless.

Do you think it would work better if maybe through some hardcoded syntax it would relate works according to IS-A, HAS-A, OPPOSITE-OF, etc.? Then some words in a sentance might be treated as keywords ( warsaw IS THE capital of poland, etc ).

I'll keep you posted as to what I end up implementing, but for now, more ideas are welcome!

Share this post


Link to post
Share on other sites
So it's going to be more of an information bot with factual information? I ask because it seems like it won't be able to reason very well but that really isn't necessary if you just want it to have facts and so on. Maybe you could modify it slightly so that it would know that a capital is a subset of a country and so on in case someone asked about a street, in a city, in a country. Maybe also have a couple checks for "who, what, when, where, why... etc." so that it can answer with a place or person or whatnot. Anyway, just my ramblings. GL with the project. :)

Share this post


Link to post
Share on other sites
Quote:
Original post by silverphyre673
Well, I haven't worked too much on that implementation, but I suppose you could tell it what is a noun. I'll work that out later - this is half the fun! I downloaded your chatbot, and its really quite neat; I did have some problems with display, though (winxp). Work on that - but I thought it was cool, nonetheless.

Do you think it would work better if maybe through some hardcoded syntax it would relate works according to IS-A, HAS-A, OPPOSITE-OF, etc.? Then some words in a sentance might be treated as keywords ( warsaw IS THE capital of poland, etc ).

I'll keep you posted as to what I end up implementing, but for now, more ideas are welcome!


Which version are you using? (the 2.0 alpha should work, but i don't have any winxp computers to test it on :-) )

Yes, those would work.

Now, your starting to get something resembling a semantic net. (those are the links).

you could also give it a rulebase, so that it can reson using the words and its links. (ie. x is y's mother. x is younger then y, y is older then 13, ect.)

Good luck with it :-)

From,
Nice coder

Share this post


Link to post
Share on other sites
all right, so you think that maybe it should parse looking for relationships like "is a", "younger than", "bigger than", "isn't a", etc? That might work. Hmm... K, thanks. Let me see if I have the latest version of matrixbot.

[EDIT] Nope - see the thread announcing its release. I posted a "conversation".

[Edited by - silverphyre673 on April 25, 2005 11:30:06 PM]

Share this post


Link to post
Share on other sites
I would make a proof of concept in prolog to test out the ideas an make sure they work, since you can do this rather quickly in prolog. Then I would worry about converting it to a more usable language, unless you don't mind slow runtime.

Share this post


Link to post
Share on other sites
Quote:
Original post by silverphyre673
all right, so you think that maybe it should parse looking for relationships like "is a", "younger than", "bigger than", "isn't a", etc? That might work. Hmm... K, thanks. Let me see if I have the latest version of matrixbot.

[EDIT] Nope - see the thread announcing its release. I posted a "conversation".


um, i think your using the beta. (i'm going to add a version number to the console, so you can just ask it for the newer releases)

What your looking for is a semantic net.
I've never managed to make a working one. (after a few tries, its just not worth the effort).

From,
Nice coder

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!