- AIML Tutorial
- AIML - Home
- AIML - Introduction
- AIML - Environment Setup
- AIML - First Application
- AIML - Basic Tags
- AIML - <star> Tag
- AIML - <srai> Tag
- AIML - <random> Tag
- AIML - <set>, <get> Tags
- AIML - <that> Tag
- AIML - <topic> Tag
- AIML - <think> Tag
- AIML - <condition> Tag
- AIML Useful Resources
- AIML - Quick Guide
- AIML - Useful Resources
- AIML - Discussion
AIML - <srai> 标签
<srai>标签是一个多用途标签。该标签使 AIML 能够为同一模板定义不同的目标。
句法
<srai> pattern </srai>
以下是与srai相关的常用术语-
象征性减少
分而治之
同义词解析
关键词检测
象征性减少
符号简化技术用于简化模式。它有助于用简单的模式减少复杂的语法模式。
例如,考虑以下对话。
Human: Who was Albert Einstein? Robot: Albert Einstein was a German physicist. Human: Who was Isaac Newton? Robot: Isaac Newton was a English physicist and mathematician.
现在如果提出问题怎么办
Human: DO YOU KNOW WHO Albert Einstein IS? Human: DO YOU KNOW WHO Isaac Newton IS?
在这里,<srai>标签起作用了。它可以将用户的模式作为模板。
第 1 步:创建类别
<category> <pattern>WHO IS ALBERT EINSTEIN?</pattern> <template>Albert Einstein was a German physicist.</template> </category> <category> <pattern> WHO IS Isaac NEWTON? </pattern> <template>Isaac Newton was a English physicist and mathematician.</template> </category>
步骤 2:使用 <srai> 标签创建通用类别
<category> <pattern>DO YOU KNOW WHO * IS?</pattern> <template> <srai>WHO IS <star/></srai> </template> </category>
例子
在C > ab > bots > test > aiml目录中创建 srai.aiml ,并在C > ab > bots > test > aimlif目录中创建 srai.aiml.csv。
srai.aiml
<?xml version = "1.0" encoding = "UTF-8"?> <aiml version = "1.0.1" encoding = "UTF-8"?> <category> <pattern> WHO IS ALBERT EINSTEIN </pattern> <template>Albert Einstein was a German physicist.</template> </category> <category> <pattern> WHO IS Isaac NEWTON </pattern> <template>Isaac Newton was a English physicist and mathematician.</template> </category> <category> <pattern>DO YOU KNOW WHO * IS</pattern> <template> <srai>WHO IS <star/></srai> </template> </category> </aiml>
星.aiml.csv
0,WHO IS ALBERT EINSTEIN,*,*,Albert Einstein was a German physicist.,srai.aiml 0,WHO IS Isaac NEWTON,*,*,Isaac Newton was a English physicist and mathematician.,srai.aiml 0,DO YOU KNOW WHO * IS,*,*,<srai>WHO IS <star/></srai>,srai.aiml
执行程序
打开命令提示符。转到C > ab >并输入以下命令 -
java -cp lib/Ab.jar Main bot = test action = chat trace = false
验证结果
您将看到以下输出 -
Human: Do you know who Albert Einstein is Robot: Albert Einstein was a German physicist.
分而治之
分而治之用于重复使用子句子来做出完整的答复。它有助于减少定义多个类别。
例如,考虑以下对话。
Human: Bye Robot: GoodBye! Human: Bye Alice! Robot: GoodBye!
现在这里的机器人预计会回复再见!每当用户在句子开头说“再见”时。
让我们在这里使用 <srai> 标签。
第1步:创建类别
<category> <pattern>BYE</pattern> <template>Good Bye!</template> </category>
步骤 2:使用 <srai> 标签创建通用类别
<category> <pattern>BYE *</pattern> <template> <srai>BYE</srai> </template> </category>
例子
更新C > ab > bots > test > AIML中的 srai.aiml 和C > ab > bots > test > AIMLIF目录中的 srai.aiml.csv。
srai.aiml
<?xml version = "1.0" encoding = "UTF-8"?> <aiml version = "1.0.1" encoding = "UTF-8"?> <category> <pattern> WHO IS ALBERT EINSTEIN </pattern> <template>Albert Einstein was a German physicist.</template> </category> <category> <pattern> WHO IS Isaac NEWTON </pattern> <template>Isaac Newton was a English physicist and mathematician.</template> </category> <category> <pattern>DO YOU KNOW WHO * IS</pattern> <template> <srai>WHO IS <star/></srai> </template> </category> <category> <pattern>BYE</pattern> <template>Good Bye!</template> </category> <category> <pattern>BYE *</pattern> <template> <srai>BYE</srai> </template> </category> </aiml>
星.aiml.csv
0,WHO IS ALBERT EINSTEIN,*,*,Albert Einstein was a German physicist.,srai.aiml 0,WHO IS Isaac NEWTON,*,*,Isaac Newton was a English physicist and mathematician.,srai.aiml 0,DO YOU KNOW WHO * IS,*,*,<srai>WHO IS <star/></srai>,srai.aiml 0,BYE,*,*,Good Bye!,srai.aiml 0,BYE *,*,*,<srai>BYE</srai>,srai.aiml
执行程序
打开命令提示符。转到C > ab >并输入以下命令 -
java -cp lib/Ab.jar Main bot = test action = chat trace = false
验证结果
您将看到以下输出 -
Human: Bye Robot: GoodBye! Human: Bye Alice! Robot: GoodBye!
同义词解析
同义词是具有相似含义的单词。机器人应该以相同的方式回复相似的单词。
例如,考虑以下对话。
Human: Factory Robot: Development Center! Human: Industry Robot: Development Center!
现在这里机器人预计会回复开发中心!每当用户说Factory或Industry时。
让我们在这里使用<srai>标签。
第1步:创建类别
<category> <pattern>FACTORY</pattern> <template>Development Center!</template> </category>
步骤 2:使用 <srai> 标签创建通用类别
<category> <pattern>INDUSTRY</pattern> <template> <srai>FACTORY</srai> </template> </category>
例子
更新C > ab > bots > test > AIML中的 srai.aiml 和C > ab > bots > test > AIMLIF目录中的 srai.aiml.csv。
srai.aiml
<?xml version = "1.0" encoding = "UTF-8"?> <aiml version = "1.0.1" encoding = "UTF-8"?> <category> <pattern> WHO IS ALBERT EINSTEIN </pattern> <template>Albert Einstein was a German physicist.</template> </category> <category> <pattern> WHO IS Isaac NEWTON </pattern> <template>Isaac Newton was a English physicist and mathematician.</template> </category> <category> <pattern>DO YOU KNOW WHO * IS</pattern> <template> <srai>WHO IS <star/></srai> </template> </category> <category> <pattern>BYE</pattern> <template>Good Bye!</template> </category> <category> <pattern>BYE *</pattern> <template> <srai>BYE</srai> </template> </category> <category> <pattern>FACTORY</pattern> <template>Development Center!</template> </category> <category> <pattern>INDUSTRY</pattern> <template> <srai>FACTORY</srai> </template> </category> </aiml>
星.aiml.csv
0,WHO IS ALBERT EINSTEIN,*,*,Albert Einstein was a German physicist.,srai.aiml 0,WHO IS Isaac NEWTON,*,*,Isaac Newton was a English physicist and mathematician.,srai.aiml 0,DO YOU KNOW WHO * IS,*,*,<srai>WHO IS <star/></srai>,srai.aiml 0,BYE,*,*,Good Bye!,srai.aiml 0,BYE *,*,*,<srai>BYE</srai>,srai.aiml 0,FACTORY,*,*,Development Center!,srai.aiml 0,INDUSTRY,*,*,<srai>FACTORY</srai>,srai.aiml
执行程序
打开命令提示符。转到C > ab >并输入以下命令 -
java -cp lib/Ab.jar Main bot = test action = chat trace = false
验证结果
您将看到以下输出 -
Human: Factory Robot: Development Center! Human: Industry Robot: Development Center!
关键词检测
使用srai,当用户键入特定关键字(例如 School)时,无论“school”出现在句子中的哪个位置,我们都可以返回一个简单的响应。
例如,考虑以下对话。
Human: I love going to school daily. Robot: School is an important institution in a child's life. Human: I like my school. Robot: School is an important institution in a child's life.
在这里,机器人预计会回复一条标准消息“学校是孩子生活中的重要机构。” 每当用户的句子中有school时。
让我们在这里使用<srai>标签。我们将在这里使用通配符。
第1步:创建类别
<category> <pattern>SCHOOL</pattern> <template>School is an important institution in a child's life.</template> </category>
步骤 2:使用 <srai> 标签创建通用类别
<category> <pattern>_ SCHOOL</pattern> <template> <srai>SCHOOL</srai> </template> </category> <category> <pattern>_ SCHOOL</pattern> <template> <srai>SCHOOL</srai> </template> </category> <category> <pattern>SCHOOL *</pattern> <template> <srai>SCHOOL</srai> </template> </category> <category> <pattern>_ SCHOOL *</pattern> <template> <srai>SCHOOL</srai> </template> </category>
例子
更新C > ab > bots > test > AIML中的 srai.aiml 和C > ab > bots > test > AIMLIF目录中的 srai.aiml.csv。
srai.aiml
<?xml version = "1.0" encoding = "UTF-8"?> <aiml version = "1.0.1" encoding = "UTF-8"?> <category> <pattern> WHO IS ALBERT EINSTEIN </pattern> <template>Albert Einstein was a German physicist.</template> </category> <category> <pattern> WHO IS Isaac NEWTON </pattern> <template>Isaac Newton was a English physicist and mathematician.</template> </category> <category> <pattern>DO YOU KNOW WHO * IS</pattern> <template> <srai>WHO IS <star/></srai> </template> </category> <category> <pattern>BYE</pattern> <template>Good Bye!</template> </category> <category> <pattern>BYE *</pattern> <template> <srai>BYE</srai> </template> </category> <category> <pattern>FACTORY</pattern> <template>Development Center!</template> </category> <category> <pattern>INDUSTRY</pattern> <template> <srai>FACTORY</srai> </template> </category> <category> <pattern>SCHOOL</pattern> <template>School is an important institution in a child's life.</template> </category> <category> <pattern>_ SCHOOL</pattern> <template> <srai>SCHOOL</srai> </template> </category> <category> <pattern>_ SCHOOL</pattern> <template> <srai>SCHOOL</srai> </template> </category> <category> <pattern>SCHOOL *</pattern> <template> <srai>SCHOOL</srai> </template> </category> <category> <pattern>_ SCHOOL *</pattern> <template> <srai>SCHOOL</srai> </template> </category> </aiml>
星.aiml.csv
0,WHO IS ALBERT EINSTEIN,*,*,Albert Einstein was a German physicist.,srai.aiml 0,WHO IS Isaac NEWTON,*,*,Isaac Newton was a English physicist and mathematician.,srai.aiml 0,DO YOU KNOW WHO * IS,*,*,<srai>WHO IS <star/></srai>,srai.aiml 0,BYE,*,*,Good Bye!,srai.aiml 0,BYE *,*,*,<srai>BYE</srai>,srai.aiml 0,FACTORY,*,*,Development Center!,srai.aiml 0,INDUSTRY,*,*,<srai>FACTORY</srai>,srai.aiml 0,SCHOOL,*,*,School is an important institution in a child's life.,srai.aiml 0,_ SCHOOL,*,*,<srai>SCHOOL</srai>,srai.aiml 0,SCHOOL *,*,*,<srai>SCHOOL</srai>,srai.aiml 0,_ SCHOOL *,*,*,<srai>SCHOOL</srai>,srai.aiml
执行程序
打开命令提示符。转到C > ab >并输入以下命令 -
java -cp lib/Ab.jar Main bot = test action = chat trace = false
验证结果
您将看到以下输出 -
Human: I love going to school daily. Robot: School is an important institution in a child's life. Human: I like my school. Robot: School is an important institution in a child's life.