AIML nyelv

foto1
foto1
foto1
foto1
foto1

Artemisz

Artemisz

Artemisz

Artemisz

Artemisz

Get Adobe Flash player

Callmom

Pandorabots CallMom™ Beta Artemisz Magyar verzió
 

Google play

Néhány parancs amit elfogad (idézőjel közötti szöveg helyére mehet bármi):

milyen nap van ma
mennyi az idő
mi a mai dátum
jegyezd meg "a majom egy állat"
jegyezd meg "a nap forró"
jegyezd meg "London Angliában van"
wikipédia
wikipédia robot
mutasd zebra
merre van "Budapest"
hol található "Budapest"
mutasd "Zebra"
Éhes vagyok
Térkép "Budapest"
keresés "időjárás"
keresés "moziműsor"
keresés "artemiszbot"
keresés "hírek"

kérdés "hány ember él a földön"
mi a "majom"
mi az a "rakéta" 
hírek "Obama"

 

Segítség-Tipp

Hangvezérlés, beszédfelismerés

Google Chrome böngészőhöz telepítsd ezt a kiegészítőt: Google voice search Ezután a beviteli mező melletti kis mikrofon ikonra kattintva szóban is cseveghetsz a Chat bottal.

Login Form

Ki van jelen

Oldalainkat 83 vendég és 0 tag böngészi

Az AIML, más néven Artificial Intelligence Markup Language (Mesterséges Intelligencia Jelölőnyelv) az XML egy dialektusa, ami természetes nyelvi inputra reagáló számítógépes beszélgető programok, úgynevezett csevegőprogramokkészítésére alkalmas. A nyelv és az arra épülő program az úgynevezett pattern-response (kérdés-válasz) modell alapján előre megírt lehetőségek közül választ, egy ügyes programozó így azt az érzetet keltheti a felhasználóban, hogy értelmes lénnyel beszélget.

Az AIML XML-dialektust Richard Wallace fejlesztette ki 1995 és 2002 között. Eredetileg egy továbbfejlesztett és jelentősen kibővítettEliza program, az ALICE (Artificial Linguistic Internet Computer Entity) alapját képezte. A programmal Richard Wallace háromszor is megnyerte az évenként megrendezésre kerülő Loebner-díj versenyt, amelyet a legemberszerűbben kommunikáló számítógépes programnak ítélnek oda.,[1] és 2004-ben ő lett a Chatterbox challenge nyertese is.[2]

Az eredeti A.L.I.C.E. AIML halmaz (a beszélőprogram "agya") GNU Általános Nyilvános Licenc, és mivel a legtöbb AIML fordító szabad szoftver vagy nyílt forráskóddal rendelkező szoftver, sok különböző program és még több halmaz létezik, ezek az úgynevezett Alicebot-klónok. AIML fordítók számos programnyelven íródtak, pl. JavaRubyPythonC++C#Pascal.

 

Az AIML felépítése

Az AIML nyelv legfontosabb elemei a következők:

Category

category - kategória elem a beszélő program tudásának legalapvetőbb építőköve. Egy kategória legalább két további elemből áll, ezek a pattern és template elemek. A pattern jelöli azt a karaktersort, ami inputként, kérdésként értelmezhető, ez az a szó vagy mondat amire a robot válaszként a template elemben meghatározott karaktersort adja vissza, ami így felfogható outputnak, vagy válasznak.

Példa egy egyszerű kategóriára:

<category>
  <pattern>MI A NEVED</pattern>
  <template>A nevem Bond.</template>
</category>

A kategória betöltése után (ami a program indításakor, vagy a program futása közben is történhet) a program a Mi a neved? kérdésre azt fogja válaszolni: A nevem Bond.

Pattern

Egy pattern elem akkor aktiválódik, ha a felhasználó által megadott karaktersornak pontosan megfelel. Például a

 MI A NEVED

pattern válaszát csak akkor kaphatjuk meg, ha pontosan ezt kérdezzük a géptől, és ha egyéb általánosító patternek nincsenek meghatározva, a Hogy hívnak? kérdésre nem fogunk választ kapni. Természetesen megoldható, hogy több különböző kérdésre is ugyanazt válaszolja a program, erről bővebben a template rész srai eleménél.

pattern tartalmazhat helyettesítő elemet, ezt * (csillag) vagy _ (alsó vonás) jelöli. A következő pattern minden olyan inputra tud reagálni, ami "Mi a …" előtaggal kezdődik, és a "…" helyén levő karaktersorra van definiálva legalább egy válasz (kategória):

 MI A *

Mi a kedvenc ételed? - Mi a neved? - Mi a mája muja? …

Ezekben az esetekben a program csak akkor fog tudni válaszolni, ha meg van határozva, hogy mit válaszoljon arra az inputra, hogy

 KEDVENC ÉTELED - NEVED - MÁJA MUJA

Template

template az a válasz, amit a program az adott pattern-re ad. Egy template lehet nagyon egyszerű - pl: A nevem Bond., vagy tartalmazhat változókat: "A nevem <bot name="name"/>.", ami a csevegőprogram tulajdonságait meghatározó "személyiség"-fájlból behelyettesíti a bot nevét, vagy "Azt mondtad a kedvenc színed a <get name="user-favcol"/>.", ami a felhasználó kedvenc színét helyettesíti be, feltéve, hogy meg van határozva ez a változó, és van értéke.

Egy template lehet szöveges, tartalmazhat lista elemeket, vagy akár random válaszokat is:

<category>
 <pattern>MONDJ EGY SZÁMOT</pattern>
  <template>
   <random>
    <li>1</li>
    <li>6</li>
    <li>327</li>
    <li>2178</li>
    <li>23</li>
    <li>57</li>
    <li>10638</li>
    <li>227</li>
   </random>
  </template>
</category>

A legtöbb esetben egy kérdést (inputot) nem csak egyféleképpen lehet megfogalmazni, ilyenkor lehet segítségünkre a srai elem, ami egy másik kategóriára irányítja a programot:

<category>
  <pattern>MI A NEVED</pattern>
  <template>A nevem <bot name="name"/>.</template>
</category>
 
<category>
  <pattern>HOGY HÍVNAK</pattern>
  <template>
    <srai>mi a neved</srai>
  </template>
</category>

Az első kategória a már ismert módon a bot tulajdonságai közül behelyettesíti a name (név) kategóriát. A Hogy hívnak kérdésre a program átirányítja magát a Mi a neved patternre, és az annak megfelelő választ adja. Ez különösen arra jó, hogy ha nem akarjuk ugyanazokat a válaszokat sokszor begépelni. példának álljon itt egy elköszönés:

<category>
 <pattern>VISZONTLÁTÁSRA</pattern>
 <template>
  <random>
   <li>Viszlát!</li>
   <li>Légy jó!</li>
   <li>Szia.</li>
  </random>
 </template>
</category>
 
<category>
 <pattern>VISZLÁT</pattern>
 <template><srai>VISZONTLÁTÁSRA</srai></template>
</category>
 
<category>
 <pattern>MOST MENNEM KELL</pattern>
 <template><srai>VISZONTLÁTÁSRA</srai></template>
</category>

Bármelyik inputra (ViszontlátásraViszlátMost mennem kell) a bot a következő három válasz közül véletlenszerűen választ majd egyet: ViszlátLégy jó!Szia..

Forrás: wikipédia: http://hu.wikipedia.org/wiki/AIML