Thursday, July 19, 2012
Character development in AIML
Over the past couple of months I've been working on the AIML for Atomic and Romeo.
Initially I started with an AIML set sourced from Alicebots.org (aiml-en-us-foundation-alice.v1-7.zip). This set contains a huge repository of knowledge - tens of thousands of categories.
One of the early problems I encountered was the 'full-stop' problem. Inside a Category the Template (the response to the Pattern) can contain multiple ideas expressed as independent sentences each with a full-stop. That works well when the chat-bot is talking to a human being. The human puts the ideas together in some manner. However, when a multi-sentence Template is transposed to become the input Pattern for a second chat-bot that chat-bot tends to respond to each of the sentences as if they were unconnected ideas. This often leads to non sequiturs. This problem is exacerbated by iteration.
The dialogue runs off in multiple strange directions. Also, if another multi-sentence Template is encountered there are now four individualised lines of thought. As the process continues the blocks of dialogue from each character become longer, more complex and riddled with non sequiturs.
I decided to strip a lot of the content out of the supplied set to bring it back to just a couple of AIML file containing just a couple of thousand Categories. Then I went on to strip out full-stops in the middle of Patterns and Template. This took ages - seriously weeks of work and testing.
And the result of all of this was truly unsatisfactory. The chat-bots were processing words but the words were in on consistent way related to the characters.
In the next post I'll talk about the characters.
Initially I started with an AIML set sourced from Alicebots.org (aiml-en-us-foundation-alice.v1-7.zip). This set contains a huge repository of knowledge - tens of thousands of categories.
One of the early problems I encountered was the 'full-stop' problem. Inside a Category the Template (the response to the Pattern) can contain multiple ideas expressed as independent sentences each with a full-stop. That works well when the chat-bot is talking to a human being. The human puts the ideas together in some manner. However, when a multi-sentence Template is transposed to become the input Pattern for a second chat-bot that chat-bot tends to respond to each of the sentences as if they were unconnected ideas. This often leads to non sequiturs. This problem is exacerbated by iteration.
The dialogue runs off in multiple strange directions. Also, if another multi-sentence Template is encountered there are now four individualised lines of thought. As the process continues the blocks of dialogue from each character become longer, more complex and riddled with non sequiturs.
I decided to strip a lot of the content out of the supplied set to bring it back to just a couple of AIML file containing just a couple of thousand Categories. Then I went on to strip out full-stops in the middle of Patterns and Template. This took ages - seriously weeks of work and testing.
And the result of all of this was truly unsatisfactory. The chat-bots were processing words but the words were in on consistent way related to the characters.
In the next post I'll talk about the characters.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment