The AI Engine

This forum is for discussion of how The Personality Forge's AI Engine works. This is the place for questions on what means what, how to script, and ideas and plans for the Engine.

Posts 6,934 - 6,945 of 7,766

13 years ago #6934
I don't know how well The Professor takes to suggestions, but my #1 would be for negative seeks. That is, some way to say 'if the user's response does not contain this, move on to this'.

Very often, I find myself trying to squeeze in more characters than are allowed in a seek because I'm trying to cover the most probable responses that aren't something I'd want to break out of a seek chain, when it would be much quicker to specify what those exceptions should be.

EDIT: Although, explaining this has made me think that I could use a soft wildcard seek and then <?PF if (key1) is not "exception1"; if (key1) is not "exception2"; ?> and so on. Silly me.

13 years ago #6935
Couldn't you use (*) as a seek to encompass everything you don't have a seek for? But you'd need a way to rank it under your other seeks.
I don't know if you can do that. I'm a newbie. :-)

13 years ago #6936
That's what I normally do, but unfortunately, that often seems to result in the bot going to that response no matter what the user's input is, whether it's specified in another seek or not.

Sometimes it works as you describe, but much of the time it goes to the wildcard regardless.

Before the relaunch of PF, it seemed like you could rank the wildcard seek below the other seeks by ensuring that it sat above them (as if seeks were read from the bottom, up), but that doesn't seem reliable anymore.

Also, I've now learned that my if (key1)<0> workaround isn't valid. Hmph. So I guess the suggestion stands.

13 years ago #6937
Just use xnomatch for your seek. the wild card will not always work alone

ssomething like
knock,knock knock [75,0] <?PF remember "knock knock jokes" as only "sub" ?>
    Who's there? <?PF express: asking; ?>
        + xnomatch [0]
        (key1) who.?'
            + xnomatch [0]
            Tee hee hee haw! <?PF express: happy; ?>

DON'T USE THE WILD CARD SEEK

13 years ago #6938
How have I gone over the Book of AI so many times and never read the xnomatch bit? You're a life saver.

13 years ago #6939
For those that might be interested in this: Here the keyphrase that catches inputs with at least 4 capital letters and no lowercase letters:

^(?-i)[^a-z]*([A-Z][^a-zA-Z]*){4,}[^a-z]*$(re)
resp.
^(?-i)[^a-z]*([A-Z][^a-zA-Z]*){4,}[^a-z]*$(re) [0,0] <?PF raw; ?>

(for another minimum number of capital letters change the 4 in {4,}.)

For those that know what it means: the matches to the numbered RegEx groups 1 through 9 are filled into (key1) through (key9). (I tested it before the Great Crash.)

13 years ago #6940
(?-i)[A-Z]{4,} (re)

will work too. If you rank it low it won't interfere with keyphrases you all ready have, but will work as an xnone for shouting..

Like

Is your cap lock stuck?

13 years ago #6941
Did you test that against these:

NASA should send a manned mission to Mars
YOU ARE BAD

13 years ago #6942
I have keyphrases for those I don't want over ridden
NASA
Bot: The National Aeronautics and Space Administration
You: YOU ARE BAD
Bot: So, I guess this means I won't be on 'your friends list' soon?





13 years ago #6943
You're probably right, for most cases your short expression will do for an entertainment bot. It is just that as a programmer I'm used to cover as many cases as possible and to be aware of possible maloperation and intentional hacking.

Btw, it seems we have to leave out the blank before the "(re)" because otherwise it is regarded as part of the regular expression.

13 years ago #6944
I always have the space. It works for me.

The book of AI, shows the space
Regular Expression Keyphrase: "i will have ([1234567890,.]+) (re)"
Explanation: Matches "i will have " followed by any possible number, which is assigned to (key1)

Regular Expression Keyphrase: "^is there (re)"
Explanation: Matches sentences that BEGIN WITH "is there"

Regular Expression Keyphrase: "^what$ (re)"
Explanation: Matches a sentence that is "what" and nothing else (not considering punctuation)

Brother Jeromes Keynome also uses the space, I think it's a Forge thing

([ . .])([ .]+)$ (re)
([?]+)$ (re)
([1234567890,.]+) choose ([1234567890,.]+) (re)
([1234567890.,]+) (times|multiplied by) ([1234567890.,]+) (re)

13 years ago #6945
I just noticed that the Forge is mangling the name Peter to pervert, not nice. You might want to make a key-phrase for the name Peter in raw.


Posts 6,934 - 6,945 of 7,766

» More new posts: Doghead's Cosmic Bar