AIML - srai Tag وسم سراي في لغة نمذجة الذكاء الاصطناعي

AIML - <srai> Tag وسم سراي في لغة نمذجة الذكاء الاصطناعي

AIML - <srai> Tag وسم سراي في لغة نمذجة الذكاء الاصطناعي



العلامة <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>

مثال

أنشئ srai.aiml داخل C> ab> bots> test> aiml and srai.aiml.csv داخل C> ab> bots> test> أدلة aimlif .

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>

star.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.

فرق تسد

يتم استخدام Divide and Conquer لإعادة استخدام الجمل الفرعية في الرد الكامل. يساعد على تقليل تحديد فئات متعددة.

على سبيل المثال ، فكر في متابعة المحادثة.

Human: Bye
Robot: GoodBye!
Human: Bye Alice!
Robot: GoodBye!

الآن هنا من المتوقع أن يرد الروبوت على GoodBye! كلما قال المستخدم إلى اللقاء في بداية الجملة.

دعنا نضع علامة <srai> للعمل هنا.

الخطوة 1: إنشاء فئة

<category>
   <pattern>BYE</pattern>
   <template>Good Bye!</template>
</category>

الخطوة 2: إنشاء فئة عامة باستخدام علامة <srai>

<category>
   <pattern>BYE *</pattern>
   
   <template>
      <srai>BYE</srai>
   </template>
   
</category>

مثال

قم بتحديث srai.aiml من الداخل C> ab> bots> test> aiml and srai.aiml.csv داخل C> ab> bots> test> أدلة aimlif .

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>

star.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!

الآن هنا من المتوقع أن يرد الروبوت مركز التطوير! عندما يقول المستخدم المصنع أو الصناعة .

دعنا نضع علامة <srai> للعمل هنا.

الخطوة 1: إنشاء فئة

<category>
   <pattern>FACTORY</pattern>
   <template>Development Center!</template>
</category>

الخطوة 2: إنشاء فئة عامة باستخدام علامة <srai>

<category>
   <pattern>INDUSTRY</pattern>
   
   <template>
      <srai>FACTORY</srai>
   </template>
   
</category>

مثال

قم بتحديث srai.aiml من الداخل C> ab> bots> test> aiml and srai.aiml.csv داخل C> ab> bots> test> أدلة aimlif .

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>

star.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 ، يمكننا إرجاع استجابة بسيطة عندما يكتب المستخدم كلمة رئيسية معينة ، على سبيل المثال ، المدرسة ، بغض النظر عن مكان وجود "المدرسة" في الجملة.

على سبيل المثال ، ضع في اعتبارك المحادثة التالية.

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.

هنا ، من المتوقع أن يرد الروبوت على رسالة قياسية "المدرسة مؤسسة مهمة في حياة الطفل". كلما كان المستخدم لديه مدرسة في الجملة.

دعنا نضع علامة <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>

مثال

قم بتحديث srai.aiml من الداخل C> ab> bots> test> aiml and srai.aiml.csv داخل C> ab> bots> test> أدلة aimlif .

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>

star.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.