|
Posted: Aug 18, 2011 |
[ # 196 ]
|
|
Guru
Total posts: 1081
Joined: Dec 17, 2010
|
You are right Dave. I did it as an exercise, along with testing how compressed I could get the download. Tools like JSmin make it relatively easy.
http://www.crockford.com/javascript/jsmin.html
|
|
|
|
|
Posted: Aug 22, 2011 |
[ # 197 ]
|
|
Guru
Total posts: 1297
Joined: Nov 3, 2009
|
Are giant codebases and databases dominating and/or obfuscating chatter robot advancement?
Is the only solution to throw tens of thousands, even millions of lines of code and data at every A.I. problem?
|
|
|
|
|
Posted: Aug 22, 2011 |
[ # 198 ]
|
|
Guru
Total posts: 1297
Joined: Nov 3, 2009
|
@Merlin:
What are some other ways the heavy weight chatter robots can defeat the purpose of a light weight chatter robot class?
@Dave:
Can you think of any other ways to help protect a light weight chatter robot class, to give this A.I. research a fair chance?
|
|
|
|
|
Posted: Aug 23, 2011 |
[ # 199 ]
|
|
Guru
Total posts: 1081
Joined: Dec 17, 2010
|
Are giant codebases and databases dominating and/or obfuscating chatter robot advancement?
They are dominating. Part of this is because some have been around longer. Others just make it easier to start up a bot.
Is the only solution to throw tens of thousands, even millions of lines of code and data at every A.I. problem?
No. Even uncompressed Skynet-AI doesn’t come anywhere near 10k lines. An effective bot does not have to have a huge interpreter or bloated knowledge base.
What are some other ways the heavy weight chatter robots can defeat the purpose of a light weight chatter robot class?
I don’t think there is anything wrong with large bots. And, so far, some of the best bots can be very large. What I do think you highlight is that the industry might benefit from a “small bot contest”.
Maybe something like the 5k/10k web contests.
http://10k.aneventapart.com/
|
|
|
|
|
Posted: Aug 27, 2011 |
[ # 200 ]
|
|
Guru
Total posts: 1297
Joined: Nov 3, 2009
|
@Merlin:
Thanks for your reply. Programming a “small bot” is a rewarding challenge. Regardless of what anyone says, it is quite a feat to build a new bot with basic features. For example try inverting “I help you and you help me.” to “You help me and I help you.” or something similar. The point being that, do enough inversion and you may wind up inverting either what you just inverted, or inverting what is already “canned” inverted… Oops! So you have to decide how to design features like this, which makes small bot building a lot of fun.
|
|
|
|
|
Posted: Aug 27, 2011 |
[ # 201 ]
|
|
Administrator
Total posts: 3111
Joined: Jun 14, 2010
|
That’s why, when I coded a function to change from first person to second, I made it a three-step process, using an intermediate variable, to prevent re-converting back to the original. It seems to work pretty well for me.
|
|
|
|
|
Posted: Aug 28, 2011 |
[ # 202 ]
|
|
Guru
Total posts: 1081
Joined: Dec 17, 2010
|
8PLA • NET - Aug 27, 2011: @Merlin:
Thanks for your reply. Programming a “small bot” is a rewarding challenge. Regardless of what anyone says, it is quite a feat to build a new bot with basic features.
I agree. I often use small prototype bots to test out new techniques or features I want to try (although I seldom put them on-line). I did this with the new math features, the word count function and a real-time part of speech checker.
8PLA • NET - Aug 27, 2011: @Merlin:
For example try inverting “I help you and you help me.” to “You help me and I help you.” or something similar.
Although Dave hates them , Regular Expressions are a powerful tool that can be used in a variety of languages to do this.
“I help you and you help me.”.replace(/(I .+you) and (you.+me)/g,”$2 and $1”)
It does become trickier when the string is going to be processed multiple times. For me an example of this is when I change point of view in a response. As Dave points out you need some kind of intermediate form so that the things you are changing don’t get flipped back and forth.
A technique I use to do this is to add a control character to the output string and then strip it out as the last replace expression. For example:
%=”::percent::”
you = “m%e”
me = “y%ou”
...
%=”“
“::percent::”=”%”
|
|
|
|
|
Posted: Aug 28, 2011 |
[ # 203 ]
|
|
Administrator
Total posts: 3111
Joined: Jun 14, 2010
|
That’s exactly what I do, Merlin, though I use a tilde (~), but it’s functionally the same.
|
|
|
|
|
Posted: Aug 28, 2011 |
[ # 204 ]
|
|
Guru
Total posts: 1297
Joined: Nov 3, 2009
|
Let’s begin by emphasizing that
making multiple passes is an
ingenious elegant solution of
inversion. The following
discussion is not a criticism of
the wonderful contributions made
to this thread.
What is intended is to present
a hypothesis about various new
principles of design that may be
applied to a legacy chatter robot
design, as long as classic bot
building techniques have not
become a lost art.
Are we to conclude that a chatter
robot needs several passes to
simulate what a human naturally
does in a single pass? For the
sake of conversation, let’s say
hypothetically, that multi-pass
inversion was originally devised
50 years ago.
How may we revisit the early
design elements and principles to
attempt fundamental changes such
as the possibility of single pass
inversion like people naturally do,
when legacy chatter robot designs
are so stigmatized in the industry?
|
|
|
|
|
Posted: Aug 29, 2011 |
[ # 205 ]
|
|
Guru
Total posts: 2372
Joined: Jan 12, 2010
|
I certainly think multiple passes are needed. In my chatscript bots, I often have to rewrite a sentence when it involves pronouns, so that the sentence will contain the correct meaning. Though maybe you don’t think that constitutes multiple passes. Certainly AIML depends on recursive input, which if you submit an input multiple times with variations, would constitute multiple passes also.
Then again, for handling “emotion”, Suzette would generate her output and then do a pass over what the user said and what she said to adjust emotions, sometimes inserting additional output to the user.
Or, because the engine supports reflection, a pass might run at the end to see if she changed topics, and if so, insert a transitional sentence.
Nor do I know for sure what you mean by “what a human does in one pass”, in that when a human is processing a sentence (like a garden path sentence), when the human reaches the end and it doesn’t match the presumed parse, the human has to rethink the sentence to get the correct parse.
|
|
|
|
|
Posted: Aug 30, 2011 |
[ # 206 ]
|
|
Guru
Total posts: 1081
Joined: Dec 17, 2010
|
If you look at the example I gave:
“I help you and you help me.”.replace(/(I .+you) and (you.+me)/g,”$2 and $1”)
the inversion is done in a single pass.
But, multiple passes over the input string are useful to fix things like typos/spelling errors. The alternative is to make the AI tolerant of input errors. It is possible, but the resulting code may introduce false positives and may be harder to understand.
The example I gave would also invert:
“I hep you and you hlep me.”
|
|
|
|
|
Posted: Sep 2, 2011 |
[ # 207 ]
|
|
Guru
Total posts: 1297
Joined: Nov 3, 2009
|
Thanks for pointing that out, Merlin.
I read your regular expressions,
yet, I have to admit, I missed that
it was single inversion.
Multiple passes are a good way to
to it Bruce. I don’t mean to suggest
otherwise. I like this technique too,
because it works good.
What I intended was that multiple passes
on full sentences, I think, is more of
a simulation than word by word is. And,
I fully admit to using an oversimplified
theory, here, for the sake of conversation.
|
|
|
|
|
Posted: Sep 2, 2011 |
[ # 208 ]
|
|
Guru
Total posts: 1297
Joined: Nov 3, 2009
|
8pla.net Robot Reporter
http://www.8pla.net/robotReporter
Just For Fun, I started building a TV channel in PHP Ming.
|
|
|
|
|
Posted: Sep 5, 2011 |
[ # 209 ]
|
|
Guru
Total posts: 1297
Joined: Nov 3, 2009
|
8PLA • NET - Sep 2, 2011: 8pla.net Robot Reporter
http://www.8pla.net/robotReporter
Just For Fun, I started building a TV channel in PHP Ming.
News Update
|
|
|
|
|
Posted: Sep 11, 2011 |
[ # 210 ]
|
|
Guru
Total posts: 1297
Joined: Nov 3, 2009
|
Trying to fall asleep, I began writing imaginary source code on my imaginary computer, while slowly drifting away to dream land. When I awoke, I quickly brought my dream source code into the real world, and my dream came true.
Rollo Carpenter - Sep 10, 2011: Quoted from Robitron… Answer: Allow your bot to look completely wacko for several years and millions of interactions - aka early jabberwacky - and despite lots of people including even other bot developers thinking you must be wacko too. Then gradually add more and more rules that filter input, over many more years, until the point where it reaches about 95%! A long-term view was definitely required, and lots of data despite all that filtering.
Look at this wonderfully brilliant advice from Rollo Carpenter, “Allow your bot to look completely wacko” which is a perfect inspiration and mantra for my latest creation. After searching for a word with the letter ‘o’ for an ending, that I could add the ending ‘bot’ to get a suffix ‘obot’ which rhymes with ‘robot’ [(something)obot] ... It turns out ‘wackobot’ is a fun combination.
http://www.wackobot.com
Wackobot only knows what it remembers from what you, and other visitors, teach it, which is very little right now because it is so new. The textbox to teach it what to say, ONLY works when the checkbox is checked or it just gets ignored. The textbox for chats works when you click SEND. Wackobot is my simple, small, pre-alpha, prototypical, dream source code, which made the jump to the real world.
|
|
|
|