AIML nyelv

foto1
foto1
foto1
foto1
foto1

Artemisz

Artemisz

Artemisz

Artemisz

Artemisz

Get Adobe Flash player

Artemiszbot - Bot libre

Bot libre (Beta) Artemisz Magyar verzió
 

Bot libre 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
wikipédia robot
időjárás
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"

 

 

Ki van jelen

Oldalainkat 280 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