AIML - tag <srai>
<srai>Tag to tag uniwersalny. Ten tag umożliwia AIML definiowanie różnych celów dla tego samego szablonu.
Składnia
<srai> pattern </srai>Poniżej przedstawiono powszechnie używane terminy związane z srai -
- Symboliczna redukcja 
- Dziel i rządź 
- Rozdzielczość synonimów 
- Wykrywanie słów kluczowych 
Symboliczna redukcja
Technika redukcji symbolicznej służy do uproszczenia wzorów. Pomaga zredukować złożone wzorce gramatyczne dzięki prostym wzorom (wzorom).
Weźmy na przykład pod uwagę następującą rozmowę.
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.Teraz What if pytania są podnoszone jako
Human: DO YOU KNOW WHO Albert Einstein IS?
Human: DO YOU KNOW WHO Isaac Newton IS?Tutaj, <srai> tag działa. Może przyjąć wzorzec użytkownika jako szablon.
Krok 1: Utwórz kategorie
<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>Krok 2: Utwórz kategorię ogólną za pomocą tagu <srai>
<category>
   <pattern>DO YOU KNOW WHO * IS?</pattern>
   
   <template>
      <srai>WHO IS <star/></srai>
   </template>
   
</category>Przykład
Utwórz srai.aiml inside C > ab > bots > test > aiml i srai.aiml.csv wewnątrz C > ab > bots > test > aimlif katalogi.
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.aimlWykonaj program
Otwórz wiersz polecenia. Iść doC > ab > i wpisz następujące polecenie -
java -cp lib/Ab.jar Main bot = test action = chat trace = falseSprawdź wynik
Zobaczysz następujący wynik -
Human: Do you know who Albert Einstein is
Robot: Albert Einstein was a German physicist.Dziel i rządź
Dziel i rządź służy do ponownego wykorzystania podrzędnych zdań w celu uzyskania pełnej odpowiedzi. Pomaga ograniczyć definiowanie wielu kategorii.
Na przykład rozważ śledzenie rozmowy.
Human: Bye
Robot: GoodBye!
Human: Bye Alice!
Robot: GoodBye!Teraz oczekuje się, że robot odpowie GoodBye! Zawsze, gdy mówi użytkownik Bye na początku zdania.
Umieśćmy tutaj tag <srai>.
Krok 1: Utwórz kategorię
<category>
   <pattern>BYE</pattern>
   <template>Good Bye!</template>
</category>Krok 2: Utwórz kategorię ogólną za pomocą tagu <srai>
<category>
   <pattern>BYE *</pattern>
   
   <template>
      <srai>BYE</srai>
   </template>
   
</category>Przykład
Zaktualizuj srai.aiml inside C > ab > bots > test > aiml i srai.aiml.csv wewnątrz C > ab > bots > test > aimlif katalogi.
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.aimlWykonaj program
Otwórz wiersz polecenia. Iść doC > ab > i wpisz następujące polecenie -
java -cp lib/Ab.jar Main bot = test action = chat trace = falseSprawdź wynik
Zobaczysz następujący wynik -
Human: Bye
Robot: GoodBye!
Human: Bye Alice!
Robot: GoodBye!Rozdzielczość synonimów
Synonimy to słowa o podobnym znaczeniu. Bot powinien odpowiadać w ten sam sposób na podobne słowa.
Weźmy na przykład pod uwagę następującą rozmowę.
Human: Factory
Robot: Development Center!
Human: Industry
Robot: Development Center!Teraz oczekuje się, że robot odpowie Development Center! za każdym razem, gdy mówi użytkownik Factory lub Industry.
Włóżmy <srai> tag do pracy tutaj.
Krok 1: Utwórz kategorię
<category>
   <pattern>FACTORY</pattern>
   <template>Development Center!</template>
</category>Krok 2: Utwórz kategorię ogólną za pomocą tagu <srai>
<category>
   <pattern>INDUSTRY</pattern>
   
   <template>
      <srai>FACTORY</srai>
   </template>
   
</category>Przykład
Zaktualizuj srai.aiml inside C > ab > bots > test > aiml i srai.aiml.csv wewnątrz C > ab > bots > test > aimlif katalogi.
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.aimlWykonaj program
Otwórz wiersz polecenia. Iść doC > ab > i wpisz następujące polecenie -
java -cp lib/Ab.jar Main bot = test action = chat trace = falseSprawdź wynik
Zobaczysz następujący wynik -
Human: Factory
Robot: Development Center!
Human: Industry
Robot: Development Center!Wykrywanie słów kluczowych
Za pomocą srai, możemy zwrócić prostą odpowiedź, gdy użytkownik wpisze określone słowo kluczowe, na przykład Szkoła, bez względu na to, gdzie w zdaniu występuje słowo „szkoła”.
Weźmy na przykład pod uwagę następującą rozmowę.
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.W tym przypadku oczekuje się, że robot odpowie na standardową wiadomość 'School is an important institution in a child's life.' zawsze, gdy użytkownik ma school w zdaniu.
Włóżmy <srai>tag do pracy tutaj. Użyjemy tutaj symboli wieloznacznych.
Krok 1: Utwórz kategorię
<category>
   <pattern>SCHOOL</pattern>
   <template>School is an important institution in a child's life.</template>
</category>Krok 2: Utwórz kategorie ogólne za pomocą tagu <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>Przykład
Zaktualizuj srai.aiml inside C > ab > bots > test > aiml i srai.aiml.csv wewnątrz C > ab > bots > test > aimlif katalogi.
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.aimlWykonaj program
Otwórz wiersz polecenia. Iść doC > ab > i wpisz następujące polecenie -
java -cp lib/Ab.jar Main bot = test action = chat trace = falseSprawdź wynik
Zobaczysz następujący wynik -
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.