日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人工智能 > ChatGpt >内容正文

ChatGpt

AIML元素详细说明

發(fā)布時(shí)間:2023/12/20 ChatGpt 62 豆豆
生活随笔 收集整理的這篇文章主要介紹了 AIML元素详细说明 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

  • 目錄
    • 前言:
    • 1、簡(jiǎn)介
    • 2、詳細(xì)說(shuō)明
    • 總結(jié):

目錄

前言:

智能客服客戶咨詢功能的實(shí)現(xiàn)主要依靠的就是Python的AIML庫(kù),這里就先介紹下AIML。
詳細(xì)的使用教程可參考:https://github.com/andelf/PyAIML
目前大部分AIML只支持Py2.7版本并且不支持中文,即使有支持Py3且支持中文的版本,AIML的一些功能也有一些缺陷,但是黃天不負(fù)有心人,經(jīng)過(guò)博主不斷的搜尋,最終找到了一款算是比較穩(wěn)定的支持Py3版本的AIML。
地址:https://github.com/Shuang0420/aiml
后期博主會(huì)將自己的項(xiàng)目發(fā)布出來(lái),到時(shí)候大家有興趣的也可以參考下。

1、簡(jiǎn)介

AIML是Artificial Intelligence Markup Language的縮寫(xiě), 用于描述一類稱為AIML的對(duì)象,同時(shí)部分描述了計(jì)算機(jī)程序處理這些對(duì)象時(shí)的表現(xiàn)。AIML是XML語(yǔ)言(可擴(kuò)展標(biāo)記語(yǔ)言)的衍生。

AIML對(duì)象是由topic和category單元組成的,格式化或未格式化的數(shù)據(jù)均可。格式化的數(shù)據(jù)是由字符組成的,其中有的組成符號(hào)數(shù)據(jù),有的構(gòu)成AIML元素。AIML元素將應(yīng)答數(shù)據(jù)封裝在文檔中。包含這些元素的字符數(shù)據(jù)有可能被AIML解釋器格式化,也有可能在之后的響應(yīng)中處理。

aiml中的元素不區(qū)分大小寫(xiě)

2、詳細(xì)說(shuō)明

1、think元素

型如: <think><set name="topic">Me</set></think>

放置在template元素里面,表示一旦用戶的輸入匹配到該category時(shí),再回復(fù)應(yīng)答的同時(shí),給一個(gè)變量賦值,這里也就是把Me記在腦子里,以后就可以用<get name=”topic”/>來(lái)取出先前記住的內(nèi)容。

2、<star/>表示*
比如有一個(gè)匹配模式是<pattern>* 你 好 *<pattern>;這里pattern元素里的匹配模式是用*號(hào)表示任意匹配的,但在其他元素里面不能用*號(hào),而用<star/>這個(gè)元素來(lái)表示。

3、<srai>元素
表示<srai>里面的話會(huì)被當(dāng)作是用戶輸入,從新查找匹配模式,直到找到非<srai>定義的回復(fù)。例如:
<srai>我 是 <star/></srai>,那么機(jī)器人會(huì)把“我 是 *”當(dāng)作是用戶輸入來(lái)從新查找匹配模式。(PS:srai不能很好的匹配中文)

4、<condition>元素(condition元素即為做選擇操作時(shí)使用的元素,類似于if-else語(yǔ)句。)
放在template元素里面,可以有多個(gè)condition元素,但不能嵌套(目前還不支持),有3種形式:

<condition name="name" value="value">你好 </condition> <condition name="name" contains="value"> 你好</condition> <condition name="name" exists="value">你好 </condition>

Name是預(yù)先定義的變量,第一種表示name變量的值如果和value相等,回復(fù)內(nèi)容就包括”你好”;第二種表示name變量的值如果里面包含value這個(gè)字符串,回復(fù)內(nèi)容就包括“你好”;第三種表示name變量的值如果存在value的值,回復(fù)內(nèi)容就包括“你好”(這個(gè)什么意思還不明確)
舉個(gè)使用例子:

<category> <pattern>你 好</pattern> <template> 你好阿! <condition name="用戶名字" value="張三"> 你又來(lái)了阿:) </condition> </template> </category>

a. 情況一:如果事先用think設(shè)置了變量“用戶名字”,而且等于“張三”,那么用戶接受到的回復(fù)內(nèi)容是:你好阿!你又來(lái)了阿;)
b.情況二:如果事先沒(méi)有定義或者變量“用戶名字”的值不等于“張三”,那么用戶接受到的回復(fù)內(nèi)容是:你好阿!
寫(xiě)法有一下幾種:

<category> <pattern>我 頭 發(fā) 的 顏 色 是 藍(lán) 色 *</pattern> <template>哇塞,你很 <condition name="用戶性別" value="女"> 漂亮阿!</condition> <condition name="用戶性別" value="男">英俊阿!</condition> </template> </category><category> <pattern>我 頭 發(fā) 的 顏 色 是 藍(lán) 色 *</pattern> <template>哇塞,你很 <condition> <li name="用戶性別" value="女">漂亮阿!</li> <li name="用戶性別" value="男">英俊阿!</li> </condition> </template> </category><category> <pattern>我 頭 發(fā) 的 顏 色 是 藍(lán) 色 *</pattern> <template>哇塞,你很 <condition name="用戶性別"> <li value="女"> 漂亮阿!</li> <li value="男"> 英俊阿!</li> </condition> </template> </category><category> <pattern>我 頭 發(fā) 的 顏 色 是 藍(lán) 色 *</pattern> <template>哇塞,你很 <condition> <li name="用戶性別" value="女"> 漂亮阿!</li> <li>好看!</li> </condition> </template> </category>

這里最后一個(gè)li元素表示默認(rèn)的情況;即找不到condition相匹配時(shí),就用默認(rèn)的。

6、<gender>元素
替換性別以及代名詞,例如:

<gender>She told him to take a hike.</gender>

將被替換成:He told her to take a hike,跟性別有關(guān)的單詞都將被替換,中文怎么處理不是很清楚。

7、<get name=””名字/>
即得到name的值。

8、<gossip>元素
用來(lái)把改元素里面的內(nèi)容保存到gossip.log文件里。

9、<if>元素
判斷元素,有以下形式:

<if name="topic" value="cars"></if> <if name="topic" contains="cars"></if> <if name="topic" exists="true"></if> 例子: <template> <if name="用戶名稱" exists="true"> 你的名字叫 <get name=”用戶名稱”/>. <else/> 你叫什么名字? </if> </template>

10、<input>表示用戶輸入

例如: <input index="2"/>將輸出用戶倒數(shù)第2次的輸入,看如下對(duì)話: 用戶:好阿 機(jī)器人:你也好,你叫什么名字? 用戶:我叫黑山 機(jī)器人:呵呵,你好黑山。 如果有aiml文件里有片斷: <category> <pattern>嘿 嘿</pattern> <template> <gossip>你剛才說(shuō):“<input index="2"/>”?</gossip> </template> </category> 如果這個(gè)時(shí)候用戶輸入“嘿嘿”,那么機(jī)器人將回復(fù):你剛才說(shuō):“我叫黑山”? Index屬性的數(shù)字表示倒數(shù)第幾句話,1:倒數(shù)第一句,2:倒數(shù)第2句,依此類推。

11、<learn filename=”xxx.aiml”>元素
表示讓機(jī)器人學(xué)習(xí)某個(gè)aiml文件。

12、<li></li>元素
可以在random元素或condition等元素當(dāng)中使用,表示一個(gè)列表;
13、<pattern>表示匹配模式
里面的內(nèi)容必須大寫(xiě),可以有星號(hào)* 或下劃線_,星號(hào)表示匹配所有,任意情況;下劃線的意義跟星號(hào)一樣,除了不能匹配字典里面Z后面的字母。

14、<person>和<person2>
第一個(gè)是把第一人稱轉(zhuǎn)換成第3人稱;第2個(gè)是把第一人稱轉(zhuǎn)成第2人稱。<person/>等于 <person><star/></person>

15、<random>隨機(jī)元素
一般和<li>一起使用,表示從列表里隨機(jī)取一個(gè)。

16、<sentence>元素用來(lái)格式化句子

比如: <sentence>this is some kind of sentence test.</sentence> 可以格式化成:This is some kind of sentence test.即把句子首字母大寫(xiě),還可以添加標(biāo)點(diǎn)符號(hào)等。如: <category><pattern>你是誰(shuí)</pattern><template><sentence>你好我是聊天機(jī)器人小君</sentence></template> </category>

17、<star/>表示星號(hào)
已經(jīng)不推薦使用,只針對(duì)0。9版本,目前一般要加index屬性來(lái)使用,

例如:<star index="1"/>,看如下對(duì)話: 用戶:我的名字叫黑山! <pattern>* 名 字 叫 *</pattern> <template>呵呵,我知道了,你的名字叫<star index="2"/></template>

18、<system><system>元素
表示調(diào)用系統(tǒng)函數(shù),

例如: <system>date</system>表示取系統(tǒng)當(dāng)前日期 警告:使用這個(gè)元素要千萬(wàn)小心,因?yàn)橛锌赡苁褂脩暨\(yùn)行你的系統(tǒng)命令。 19、<template>定義回復(fù)的模板。

20、<that>元素

表示先前機(jī)器人說(shuō)的話,例如: <category> <pattern></pattern> <that>一 起 聊 聊 電 影 好 嗎 *</that> <template>那你喜歡什么電影那?</template> </category> 即:如果機(jī)器人先前問(wèn)用戶“一起聊聊電影好嗎?”,而且現(xiàn)在用戶回答了“好”,那么匹配正確,回復(fù)內(nèi)容為:“那你喜歡什么電影那?” 如果要取前面的前面機(jī)器人的話,可以用:<that index=”nx,ny”>,例如:<that index=”2,<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />1”>表示取機(jī)器人倒數(shù)第2句的話,<that index=”2,1”>也等于<justbeforethat/>

21、<thatstar index=”n”>元素
先前第n個(gè)機(jī)器人說(shuō)過(guò)的星號(hào)部分的話,

<thatstar/>等于<thatstar index="1"/>.看個(gè)例子: <category> <pattern>你好</pattern> <template> 計(jì)算機(jī) 的 型 號(hào) 是 什 么 </template> </category> <category> <pattern>*</pattern> <that>* 的 型 號(hào) 是 什 么</that> <template><star/> 這個(gè)型號(hào)是<thatstar/>里面 <random> <li>很好的商品</li> <li>很流行的商品</li> <li>很華麗的商品</li> <random></template> </category> 對(duì)話場(chǎng)景: 用戶:你好 機(jī)器人:計(jì)算機(jī) 的 型 號(hào) 是 什 么 用戶:p4 機(jī)器人:p4這個(gè)型號(hào)是計(jì)算機(jī)里面很好的商品

22、<think>
記錄用戶輸入且里面的內(nèi)容不回復(fù)給用戶。

例如: <category> <pattern>I AM FEMALE</pattern> <template>Thanks for telling me your gender. <think> <set namegender>female</set> </think> </template> </category> 這里把female這個(gè)值保存到gender這個(gè)變量里,且回復(fù)內(nèi)容不包括female。

23、<Topic name=”film”>元素

用來(lái)設(shè)置主題,例如: <aiml> <topic name="功夫"><category> <pattern> phrase </pattern> <that> phrase </that> <template> phrase </template> </category> </topic> </aiml> 只有當(dāng)前的topic系統(tǒng)變量是“功夫”時(shí)才會(huì)匹配到這里。

24、<topicstar index=”n”>元素用來(lái)得到先前倒數(shù)第n次談?wù)摰闹黝}。

總結(jié):

個(gè)人感覺(jué)在業(yè)務(wù)咨詢模塊,包括在整個(gè)智能客服的項(xiàng)目中,這個(gè)AIML知識(shí)庫(kù)即用以上的這些語(yǔ)法組成的知識(shí)庫(kù)的設(shè)計(jì)是最重要、最耗時(shí)的工作,因?yàn)槿绻堰@個(gè)知識(shí)庫(kù)設(shè)計(jì)好,后面可以省去很多事情,但是如何才能設(shè)計(jì)好這個(gè)知識(shí)庫(kù)呢?這就是一個(gè)經(jīng)驗(yàn)問(wèn)題了,你除了需要有相關(guān)的盡可能多的數(shù)據(jù)外,還得了解咨詢業(yè)務(wù)中那些問(wèn)題是常見(jiàn)的,對(duì)于一些常見(jiàn)問(wèn)題你需要怎么去設(shè)計(jì)這個(gè)知識(shí)庫(kù)去匹配等等,最終你還需要熟悉整個(gè)AIML的標(biāo)簽以及如何將業(yè)務(wù)問(wèn)題最優(yōu)化的使用這些標(biāo)簽來(lái)表示(畢竟真實(shí)的業(yè)務(wù)咨詢場(chǎng)景出現(xiàn)的問(wèn)題會(huì)是各種各樣,一旦數(shù)據(jù)量大了之后,很有可能整個(gè)知識(shí)庫(kù)就會(huì)發(fā)生沖突,如輸入一個(gè)問(wèn)題,有兩個(gè)匹配的答案,那么這時(shí)系統(tǒng)就會(huì)崩潰。。。后面就會(huì)有一大堆的問(wèn)題接踵而來(lái))。所以感覺(jué)這部分跟技術(shù)關(guān)聯(lián)不是特別大,更多的是和業(yè)務(wù)關(guān)聯(lián)比較大。

總結(jié)

以上是生活随笔為你收集整理的AIML元素详细说明的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。