AIML - <srai> Tag
<srai>Tag adalah tag multiguna. Tag ini memungkinkan AIML menentukan target berbeda untuk template yang sama.
Sintaksis
<srai> pattern </srai>
Berikut adalah istilah-istilah yang umum digunakan terkait dengan srai -
Pengurangan Simbolik
Memecah dan menaklukkan
Resolusi sinonim
Deteksi kata kunci
Pengurangan Simbolik
Teknik reduksi simbolik digunakan untuk menyederhanakan pola. Ini membantu mengurangi pola tata bahasa yang kompleks dengan pola sederhana.
Misalnya, perhatikan percakapan berikut.
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.
Sekarang What if pertanyaan diajukan sebagai
Human: DO YOU KNOW WHO Albert Einstein IS?
Human: DO YOU KNOW WHO Isaac Newton IS?
Sini, <srai> tag berfungsi. Ini bisa mengambil pola pengguna sebagai template.
Langkah 1: Buat kategori
<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>
Langkah 2: Buat kategori umum menggunakan tag <srai>
<category>
<pattern>DO YOU KNOW WHO * IS?</pattern>
<template>
<srai>WHO IS <star/></srai>
</template>
</category>
Contoh
Buat srai.aiml di dalamnya C > ab > bots > test > aiml dan srai.aiml.csv di dalamnya C > ab > bots > test > aimlif direktori.
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
Jalankan Program
Buka prompt perintah. Pergi keC > ab > dan ketik perintah berikut -
java -cp lib/Ab.jar Main bot = test action = chat trace = false
Verifikasi Hasilnya
Anda akan melihat output berikut -
Human: Do you know who Albert Einstein is
Robot: Albert Einstein was a German physicist.
Memecah dan menaklukkan
Divide and Conquer digunakan untuk menggunakan kembali sub kalimat dalam membuat jawaban lengkap. Ini membantu mengurangi pendefinisian beberapa kategori.
Misalnya, pertimbangkan untuk mengikuti percakapan.
Human: Bye
Robot: GoodBye!
Human: Bye Alice!
Robot: GoodBye!
Nah disini robot diharapkan membalas GoodBye! Kapanpun pengguna berkata Bye di awal kalimat.
Mari kita gunakan tag <srai> untuk bekerja di sini.
Langkah 1: Buat kategori
<category>
<pattern>BYE</pattern>
<template>Good Bye!</template>
</category>
Langkah 2: Buat kategori umum menggunakan tag <srai>
<category>
<pattern>BYE *</pattern>
<template>
<srai>BYE</srai>
</template>
</category>
Contoh
Perbarui srai.aiml di dalam C > ab > bots > test > aiml dan srai.aiml.csv di dalamnya C > ab > bots > test > aimlif direktori.
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
Jalankan Program
Buka prompt perintah. Pergi keC > ab > dan ketik perintah berikut -
java -cp lib/Ab.jar Main bot = test action = chat trace = false
Verifikasi Hasilnya
Anda akan melihat output berikut -
Human: Bye
Robot: GoodBye!
Human: Bye Alice!
Robot: GoodBye!
Resolusi Sinonim
Sinonim adalah kata-kata dengan arti yang serupa. Bot harus membalas dengan cara yang sama untuk kata-kata yang mirip.
Misalnya, perhatikan percakapan berikut.
Human: Factory
Robot: Development Center!
Human: Industry
Robot: Development Center!
Nah disini robot diharapkan membalas Development Center! setiap kali pengguna berkata Factory atau Industry.
Mari kita taruh <srai> tag untuk bekerja di sini.
Langkah 1: Buat kategori
<category>
<pattern>FACTORY</pattern>
<template>Development Center!</template>
</category>
Langkah 2: Buat kategori umum menggunakan tag <srai>
<category>
<pattern>INDUSTRY</pattern>
<template>
<srai>FACTORY</srai>
</template>
</category>
Contoh
Perbarui srai.aiml di dalam C > ab > bots > test > aiml dan srai.aiml.csv di dalamnya C > ab > bots > test > aimlif direktori.
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
Jalankan Program
Buka prompt perintah. Pergi keC > ab > dan ketik perintah berikut -
java -cp lib/Ab.jar Main bot = test action = chat trace = false
Verifikasi Hasilnya
Anda akan melihat output berikut -
Human: Factory
Robot: Development Center!
Human: Industry
Robot: Development Center!
Deteksi Kata Kunci
Menggunakan srai, kami dapat mengembalikan respons sederhana saat pengguna mengetikkan kata kunci tertentu, misalnya, Sekolah, di mana pun "sekolah" berada dalam kalimat.
Misalnya, perhatikan percakapan berikut.
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.
Di sini, robot diharapkan membalas pesan standar 'School is an important institution in a child's life.' kapan pun pengguna memilikinya school dalam kalimat tersebut.
Mari kita taruh <srai>tag untuk bekerja di sini. Kami akan menggunakan kartu liar di sini.
Langkah 1: Buat kategori
<category>
<pattern>SCHOOL</pattern>
<template>School is an important institution in a child's life.</template>
</category>
Langkah 2: Buat kategori umum menggunakan tag <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>
Contoh
Perbarui srai.aiml di dalam C > ab > bots > test > aiml dan srai.aiml.csv di dalamnya C > ab > bots > test > aimlif direktori.
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
Jalankan Program
Buka prompt perintah. Pergi keC > ab > dan ketik perintah berikut -
java -cp lib/Ab.jar Main bot = test action = chat trace = false
Verifikasi Hasilnya
Anda akan melihat output berikut -
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.