aiml

AIML,全名為Artificial Intelligence Markup Language(人工智慧標記語言),是一種創建自然語言軟體代理的XML語言,是由Richard Wallace和世界各地的自由軟體社區在1995年至2002年發明的。

背景

它的雛形是一個名為"A.L.I.C.E." ("Artificial Linguistic Internet Computer Entity")的高度擴展的Eliza機器人。ALICE總共贏得3次每年度的Loebner獎,並且在2004年獲得了Chatterbox Challenge的冠軍。由於A.L.I.C.E. 的AIML設定是在GNU GPL協定下發布的,所以已經有許多基於該程式和AIML庫的“克隆ALICE”出現。目前AIML已經有了Java,Ruby,Python, C ,C#,Pascal等語言的版本。

AIML的元素

category元素

category是AIML庫中的基本單位,每個category元素都至少包含兩個子元素:pattern和template元素。下面是個簡單的例子:

<category>

<pattern>WHAT IS YOUR NAME</pattern>

<template>My name is Leo.</template>

</category>

當這個AIML庫被載入之後,你問機器人“WHAT IS YOUR NAME”,機器人便會回答“My name is Leo.”。

Pattern元素

Pattern主要用來匹配用戶輸入,在原生的英文AIML語法中Pattern支持 _ 和 * 的模糊匹配。例如:

<category>

<pattern>WHAT IS YOUR *</pattern>

<template>My name is Leo.</template>

</category>

只要用戶的輸入是以“WHAT IS YOUR ”開頭,機器人就會回復“My name is Leo.”。

Template元素

很明顯Template元素是機器人的對用戶提問的回答,當用戶的輸入和同一個category下的Pattern相匹配是,就會將此category元素下的Template輸出。

That元素

機器人之所以有思考功能,主要就是that元素的作用。例如:

<category A>

<pattern>是的</pattern>

<that>你是程式設計師嗎?</that>

<template>你最擅長的程式語言是什麼?</template>

</category>

<category B>

<pattern>是的</pattern>

<that>你是學生嗎?</that>

<template> 你是哪個學校的</template>

</category>

機器人首先通過pattern匹配,匹配到了“是的”但是機器人的資料庫中對應“是的”的回答必然非常多,比方有下面A和B兩個categories。於是機器人便去匹配that標籤,也就是機器人自己上句說過的話,即“你是程式設計師嗎?”這樣它就可以確定應該匹配category A了,最後給出正確的回應“你最擅長的程式語言是什麼?”

相關詞條

相關搜尋

熱門詞條

聯絡我們