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 5,419 - 5,430 of 7,766
([a]+([r]+|)([g]+|)[h]+) [!] (re) rated at 22
Those nested regular brackets look slightly convoluted - I've never even attempted such a construction, so can't comment on its validity/stability. And I have found (purely by trial and error,) a space is generally needed before the exclamation mark (though there's no need to*slash* it. And to digress, curiously a question mark does not want either a space or a *slash* IME.)
I'd also advise+ing the exclamation mark, since it might be repeated in use:
([a]+)([r]+|)([g]+|)([h]+)([ !]+) (re)
though a more elegant and compact solution might be:
([a]+)([rgh]+)([ !]+) (re)
That has the advantage of dispensing with the|s, and I get the impression they can be a source of occasional 'misfiring' in tortuous regexes.
Posts 5,419 - 5,430 of 7,766
psimagus
18 years ago
18 years ago
as a rule of thumb (and I've not found an exception yet,) if you break keyphrases up into single letter ranges with [ and ], the AIEngine is unable to reconstruct them. It will process them as regexes, but not attempt to spell-correct or parse grammatically.
So it's a good sledge-hammer solution for "hello" (usually ignored,) xylophones/Xena/Xenon etc. (keyphrases beginning with X are reserved for X-keyphrases normally,) and words that happen to also be the name of a bot (but that you don't want to trigger x-gossip etc.), and any other problematic situations.
Prob's suggestion above is good, but with only one regex range, the AIEngine isn't sufficiently fooled.
So it's a good sledge-hammer solution for "hello" (usually ignored,) xylophones/Xena/Xenon etc. (keyphrases beginning with X are reserved for X-keyphrases normally,) and words that happen to also be the name of a bot (but that you don't want to trigger x-gossip etc.), and any other problematic situations.
Prob's suggestion above is good, but with only one regex range, the AIEngine isn't sufficiently fooled.
rainstorm
18 years ago
18 years ago
Speaking of those things, can anyone tell me if this is properly coded?
([a]+([r]+|)([g]+|)[h]+) [!] (re) rated at 22
Because it works sometimes, mostly when it's typed in all caps, for some reason. (Which does make sense. But not everyone capitalizes their screams of horror.)And if no letters are repeated (i.e. "Argh!"), it doesn't usually pick up. I would have made a more exact check, but he got sick of me screaming after about five minutes and stopped responding to that keyphrase whatsoever, just repeatedly hung up. He must think I've gone mad.
([a]+([r]+|)([g]+|)[h]+) [!] (re) rated at 22
Because it works sometimes, mostly when it's typed in all caps, for some reason. (Which does make sense. But not everyone capitalizes their screams of horror.)And if no letters are repeated (i.e. "Argh!"), it doesn't usually pick up. I would have made a more exact check, but he got sick of me screaming after about five minutes and stopped responding to that keyphrase whatsoever, just repeatedly hung up. He must think I've gone mad.
psimagus
18 years ago
18 years ago
Those nested regular brackets look slightly convoluted - I've never even attempted such a construction, so can't comment on its validity/stability. And I have found (purely by trial and error,) a space is generally needed before the exclamation mark (though there's no need to
I'd also advise
though a more elegant and compact solution might be:
That has the advantage of dispensing with the
rainstorm
18 years ago
18 years ago
I changed it to your final suggestion and upped the rating. Now it does not work at all...
Looks like it should, though. Go figure. Are you sure ([a]+)([rgh]+) picks up any combination of those letters beginning with A?
Looks like it should, though. Go figure. Are you sure ([a]+)([rgh]+) picks up any combination of those letters beginning with A?
psimagus
18 years ago
18 years ago
Strange - I've tried every combination I can think of, with and without ! and $, with and without capitals, but debug still insists on regarding it as a blank message "Considered BLAB (1)".
I even tried([argh]+), which matches all indefinite articles, but still won't match any other combinations.
I think any of them ought to work, so I'd just add one (or all) of them (not([argh]+) of course,) and assume that it will work when you stop testing. It's just voodoo.
You could always cheat, and make a plugin with all likely combinations:
aah, ahh, arh, agh, aaah, aahh, ahhh, arhh, aghh, argh, aaaah, aaahh, aahhh, ahhhh, aaarh, aarrh, arrrh, arrhh, arghh, arggh, arrgh, arrrg, aghhh, agghh, agggh, ... etc.
I even tried
I think any of them ought to work, so I'd just add one (or all) of them (not
You could always cheat, and make a plugin with all likely combinations:
aah, ahh, arh, agh, aaah, aahh, ahhh, arhh, aghh, argh, aaaah, aaahh, aahhh, ahhhh, aaarh, aarrh, arrrh, arrhh, arghh, arggh, arrgh, arrrg, aghhh, agghh, agggh, ... etc.
God Sourivore
18 years ago
18 years ago
Hello everybody.
I try to match roleplay sentences like :
"I am tired *go to the bed*"
I tried this one : [*][[:graph:]]+ (re) but it matches only "*go to the bed" but not "*go to the bed*"
Have you a better solution?
I try to match roleplay sentences like :
"I am tired *go to the bed*"
I tried this one : [*][[:graph:]]+ (re) but it matches only "*go to the bed" but not "*go to the bed*"
Have you a better solution?
psimagus
18 years ago
18 years ago
I believe it was Boner the Clown who mentioned some time ago that /*(.+)/* (re) will match any content between asterisks (I've not used that one myself.)
So I imagine/*go to the bed/* (re) would do the job.
I have a tendency to square-bracket&space such escaped characters -
[ /*] * (verb) * knife * [ /*] (re) does work for BJ in chats with Glindar.
NB: You'll have to reverse those slashes though - the other ones (like pointy brackets) won't display in the forums.
So I imagine
I have a tendency to square-bracket&space such escaped characters -
NB: You'll have to reverse those slashes though - the other ones (like pointy brackets) won't display in the forums.
God Sourivore
18 years ago
18 years ago
I tried this but it doesn't work.
Has everyone already done that correctly?
PS : When I put backslash it is automatically doubledwhen I save it.
Has everyone already done that correctly?
PS : When I put backslash it is automatically doubledwhen I save it.
psimagus
18 years ago
18 years ago
have you tried square-bracketing the asterisks?
[ /*]go to the bed[ /*] (re)
if you're using the web interface, put it in without the backslashes ([ *]go to the bed[ *] (re) ) - the AI Engine will add slashes if they're within square brackets like that (but not if they're unbracketed - it would assume they were wildcards and leave them alone.)
If you're importing, I believe you need to add them, since they won't be put in automatically.
You'll have to experiment a bit. And perhaps offer some sort of sacrifice to appease the spirits...
if you're using the web interface, put it in without the backslashes (
If you're importing, I believe you need to add them, since they won't be put in automatically.
You'll have to experiment a bit. And perhaps offer some sort of sacrifice to appease the spirits...
God Sourivore
18 years ago
18 years ago
I tried [*]*[*] and [*][[:graphe:]][*] and [*](.+)[*].
Nothing of that works.
Nothing of that works.
psimagus
18 years ago
18 years ago
You haven't put spaces before the *s in I tried [*]*[*] and [*][[:graphe:]][*] and [*](.+)[*]. - The AIEngine needs them, since this is a sort of regex 'shell', rather than a full regex environment. The AIEngine's actually permanently handling regexes with wildcards and plugins etc., so the (re) just opens up a few more regex features. But if you don't leave a space before symbols that can be used in the 'standard' mode (like the wildcard *,) it can't distinguish them properly.
If you're manually applying the slashes, the space goes before the slash rather than the* (with no space between the slash and *.)
How Boner's example apparently works without spaces, I can't explain (at least a blood sacrifice I expect...)
If you're manually applying the slashes, the space goes before the slash rather than the
How Boner's example apparently works without spaces, I can't explain (at least a blood sacrifice I expect...)
» More new posts: Doghead's Cosmic Bar