Bug Stomp

Upgrades and changes sometimes have unpredictable results, so post your bugs and glitches in here and I'll get out my trusty wrench and get to fixin'!

Posts 6,106 - 6,117 of 8,680

18 years ago #6106
It's better than making a memory for every noun I think

18 years ago #6107
Custom plugins help a lot. Eg (work-12345) contains "work,occupation,profession,job,career" etc so you can easily code

what is your (work-12345)
what kind of (work-12345) would you like
do you enjoy your (work-12345)

etc

18 years ago #6108
>> It's better than making a memory for every noun
What it looks like is making a KP for every noun, so I don't see how that's better. One inevitable result is to push the possibility of having a real, contexted conversation even further away. Here is what I understand your solution to mean:

Take for example Ulrike's alternative to my KP solution:
what kind of car do you (verb)
what kind of (adjnoun) do you eat.

Ignoring the plug-in element for a moment, I now have a "car" KP what will match "What kind of car do you hate?" "What kind of car do you prefer?" and "What kind of car do you own?" Since I can't identify the (verb), for the reasons noted in my post, I have to write a response that somehow corresponds to all three statements.

Or I can try to capture the verb as a constant with a variable noun, which works reasonably well with "eat" but hardly at all with "own." So if someone says, "What kind of ducks do you eat?" "What kind of meat do you eat?" "What kind of fruit do you eat?" or "What kind of guys do you eat?" I am stuck again coming up with a stock answer that covers all four possibilities rather than Saying "Who eats (noun not in my list of edibles)?" about ducks, "I'm a vegan" about meat, "What kind of fruit are you?" for fruit, and "Excuse me?" about guys.

I realize I'm possibly fixated on Zeno's arrow here. But it seems to me that

what kind of car do you (verb)
what kind of (adjnoun) do you eat

just push the problem off a step. Now I need three "What kind of car" KPs and four "What kind of (adjnoun) do you eat" KPs, and I've only scratched the surface of the problem.

My solution, if I were working in a programming language or scripting language I had a full reference for, would be to use the conditional to test the keys. If I know that (verb) is "own" then even if I don't know what a "gazill" is, I can say "Own a gazill? What's a gazill" without the risk of saying, "Read a book? What's a book?" If I know that (adjnoun) is "dog", then even if I don't know how to "masticate" a dog, I can say, "Uh, do you masticate dogs?" without the danger of also saying, "Uh, do you read books?"

And yes, I understand that it's fun to have the bots say, "Uh, do you read books?" but it is also rotten programming, especially if your bot happens to be one that has a huge array of book knowledge available to it. When I was working in NLP the one thing we did not bother to do is try to simply anticipate every possible sentence. That's like learning math by memorizing all the questions and answers.

I hope someone has another answer to this problem, but I'm beginning to think that Ulrike is right.

18 years ago #6109
Trust me Ulrike is RIGHT..

18 years ago #6110
I apply the 80-20 rule. I don't realistically expect my bot to pass thge Turing test (though I wish it could!) so i can't expect the responses to be perfect. Given that I do NOT expect to get 100% success in responses I don't waste time trying to achieve it.

That means concentrating on what can be done fairly easily - the 80% - and "hand waving" for the rest. So I code lots of specific KPs where my bot has knowledge and bluff the rest, eg

What kind of (*) do you own - the best I can afford, whatever my wife chooses, etc

No, it's not perfect. Yes it will be nonsense occasionally. Yes I'd rather it was better. But I'll be satisfied with the 80%

And looking at the logs, most people say mostly the same things most of the time.

18 years ago #6111
On the matter of conversation: I am struggling to locate a way to create context. My strategy has been to load memories like mem-saidGarden and mem-inGarden which can then be used as conditionals in other KPs. In general, this strategy seems to fail mainly because the memories get lost, not because I am not using them correctly. Not to say I'm not making mistakes, but I have watched memories disappear in the debugger.

I also load a handful of temporary mems, the main one being mem-tmpwd, which I reset in the Inits, because their only function is to carry topic data through the conversation. Mem-tmpwd is used to carry a topic word from one KP to another. This works within the limitations of the Rem function, so that if someone tells Pocque a ball is red, he can say a few phrases later, "Throw that red ball of yours, OK?"

The "skip a step" limitation of memory loading creates a bizarre conversational necessity, with things like this needed:

what (kind|type|sort) of (noun) do you (verb) [10,0] <?PF rem (key2) as only "tmpnoun"; rem (key3) as only "tmpverb"; ?>
~Do I (key3) a (key2)? Interesting question.
~~xnomatch [0]
~~Why would I masticate a (key2)?

18 years ago #6112
Man. The message was truncated again. WTF? This time I copied it before I hit "post." Apparently it lets SOME angle brackets through....

==

what (kind|type|sort) of (noun) do you (verb) [10,0] {?PF rem (key2) as only "tmpnoun"; rem (key3) as only "tmpverb"; ?{
~Do I (key3) a (key2)? Interesting question.
~~xnomatch [0]
~~Why would I masticate a (key2)? {? PF if (mem-tmpverb) is "masticate"; ?}

and later,
are you hungry
~Not enough to eat a dog. {? PF if (mem-tmpverb) is "masticate"; ?}
~I could go for some ducks. {? PF if (mem-tmpnoun) is "ducks"; ?}

But in order to make this work, you MUST utter some pointless placeholder and pray that the other's response does not kick you completely out of the stream of conversation. Which the system routinely will do by hijacking xnomatches.

It's almost as if the system is built to defeat continuity. For example, there is a plug-in called (friends), but there doesn't seem to be any way to examine that list to determine if the person the bot is talking to is "a friend" or even "an enemy." So we get bots announcing that they really like somebody who called them a stupid (obscene synecdoche) a few sentences back.

A good deal of the problem is generated by the fact that you can't apply a conditional to a match in the KP. This seems an obvious programming method, and yet it is virtually impossible to do.

I'm willing to do the work it takes to get past this level of simplemindedness, but for the life of me, I can't figure out what that work is!


18 years ago #6113
I think you hit the nail on the head with: "This seems an obvious programming method". Yes, unfortunately PF - like AIML, ALICE et al - is closer to template oriented Case Based Reasoning than to programming.

My understanding is that PF was designed to open bot design up to people *without* programming skills. So I put up with the limitations. I'm not aware of a fully programmable web-based chatbot builder open to all for free.

18 years ago #6114
Mick: I think the individual keyphrases look like the best option for now, just because of that bug. However, if the bug was solved, your method would be pretty useful, with the addition of private plugins (for specific things), and then a catch-all keyphrase. That could save some typing, and maybe some response time.

18 years ago #6115
FREE or NOT (and it doesn't hurt to kick some cash to The Proffesor. I am going to as soon as I get my Chatterbox Challenge check) There are no better bots around. The forge is the BEST...Look for better free or not YOU WON"T FIND IT!

18 years ago #6116
This is kind of an odd bug, but it's not consistent. Sometimes shortly after I log in, I will click on something in the right frame, or else in the list just above that frame (that starts with "My Bots") and I will get a message asking if I'm sure I want to log out. So long as I click "No" on that, whatever I clicked on will load up, sans frames, and a new main window will open up.

The only consistent pattern I've noticed is that it only occurs shortly after I log in to the Forge. Once I've been on a while, it doesn't happen. Oh, I'm using Mozilla Firefox, 1.5.0.4, if that's any help.

18 years ago #6117
I used to get that occasionally with MIE, but it seems to have stopped for me since I switched to Firefox. I guess sometimes it just misses the frameset and opens the link in "_top". I've never had it happen on any other sites.


Posts 6,106 - 6,117 of 8,680

» More new posts: Doghead's Cosmic Bar