廣州市執(zhí)信中學(xué) 聶碩琳
智能聊天機(jī)器人的主要用于模擬人類(lèi)對(duì)話或聊天,應(yīng)用場(chǎng)景是客服坐席。它替代客服人員回答大量重復(fù)而且簡(jiǎn)單的問(wèn)題,反映速度比人要快很多,而且不會(huì)感到疲憊和厭煩。它唯一的需求是有電源供應(yīng)。
聊天機(jī)器人分為目標(biāo)驅(qū)動(dòng)型和無(wú)目標(biāo)驅(qū)動(dòng)型。目標(biāo)驅(qū)動(dòng)型機(jī)器人的語(yǔ)料庫(kù)通常是固定的,因此針對(duì)用戶(hù)的提問(wèn),回答也是固定的,開(kāi)發(fā)起來(lái)相對(duì)也比較簡(jiǎn)單。微信群里的自動(dòng)回復(fù)就屬于這一類(lèi)機(jī)器人的應(yīng)用場(chǎng)景。無(wú)目標(biāo)驅(qū)動(dòng)型機(jī)器人如微軟的小冰,賢二機(jī)器人等,它們可以回答用戶(hù)千奇百怪的問(wèn)題,可以代替真人客服與用戶(hù)進(jìn)行聊天。
一般來(lái)說(shuō),聊天機(jī)器人應(yīng)該具備以下特點(diǎn):
(1)正確回答問(wèn)題。如果與人聊天時(shí)總是答非所問(wèn),那就不能稱(chēng)之為智能聊天機(jī)器人。
(2)回答問(wèn)題時(shí)使用正確的語(yǔ)法。在內(nèi)容完整,邏輯合理的基礎(chǔ)上,要保證語(yǔ)句的通順,符合語(yǔ)法規(guī)則,這樣才不會(huì)引起歧義。
(3)答案應(yīng)變化多端,豐富多彩。既然是聊天機(jī)器人,就不能給人無(wú)聊的感受,應(yīng)該通過(guò)不同的用詞和句法,使對(duì)話能夠完成,并解答用戶(hù)的疑問(wèn)。這樣才能吸引更多的用戶(hù)使用聊天機(jī)器人。然而做到以上這幾點(diǎn)需要多種技術(shù)的結(jié)合,包括自然語(yǔ)言處理、大數(shù)據(jù)分析、機(jī)器學(xué)習(xí)等等。Google的ALICE便使用了這些技術(shù)。
1960年外國(guó)的科學(xué)家就提出“計(jì)算機(jī)要能用自然語(yǔ)言與人溝通”的設(shè)想。隨著科學(xué)技術(shù)的發(fā)展和移動(dòng)互聯(lián)網(wǎng)的日新月異,各大互聯(lián)網(wǎng)公司推出了自己的智能聊天機(jī)器人,替代人工面對(duì)龐大的客服需求,使得聊天機(jī)器人成為人們關(guān)注的方向之一。國(guó)外聊天機(jī)器人的發(fā)展比較早,目前已經(jīng)有很多成熟的產(chǎn)品,比如蘋(píng)果的Siri, 用戶(hù)可以給Siri發(fā)布定時(shí)、打開(kāi)應(yīng)用等指令。 微軟的小冰可以與用戶(hù)進(jìn)行有趣的聊天。還有Google的Alice,IBM的Watson等。聊天機(jī)器人在中國(guó)也有廣泛的應(yīng)用,比如許多微信群,淘寶的客服,百度的度秘,科大訊飛的語(yǔ)音助手等都能提供智能聊天服務(wù),極大地減少了人工成本。但是相較于國(guó)外,發(fā)展還是相對(duì)落后,主要原因是中文比較難處理,語(yǔ)料庫(kù)的積累也比較少。
在機(jī)器人的主要設(shè)計(jì)技術(shù)方面,目前比較主流的是基于人工模板和人工智能的兩種聊天機(jī)器人。
基于人工模板的聊天機(jī)器人制作最簡(jiǎn)單,主要是通過(guò)人工錄入一些對(duì)話的模板,當(dāng)有用戶(hù)提問(wèn)時(shí),會(huì)從這些模板中找出匹配的答案返回給用戶(hù)。這種技術(shù)的優(yōu)點(diǎn)是開(kāi)發(fā)簡(jiǎn)單,返回答案速度快,缺點(diǎn)是答案單一,人工成本高。
基于人工智能的聊天機(jī)器人是利用一些算法來(lái)生成答案,答案的準(zhǔn)確度取決于算法的好壞。這種聊天機(jī)器人有自我學(xué)習(xí)的能力,隨著聊天次數(shù)的增多,答案也會(huì)越來(lái)越準(zhǔn)確。這種聊天機(jī)器人的優(yōu)點(diǎn)是前期不需要人工輸入大量模板,答案較靈活,缺點(diǎn)是開(kāi)發(fā)難度大,模型訓(xùn)練復(fù)雜。這種聊天機(jī)器人制作的主要難點(diǎn)在于語(yǔ)料庫(kù)的積累,規(guī)則的匹配。
行為主義理論又稱(chēng)為刺激-反應(yīng)理論,這種理論認(rèn)為通過(guò)對(duì)環(huán)境的“刺激”和對(duì)行為的“強(qiáng)化”,所有行為都可以被設(shè)計(jì)、創(chuàng)造乃至改變。另外,只要不斷地強(qiáng)化正確的反應(yīng),消除錯(cuò)誤的反應(yīng),學(xué)習(xí)的效果就會(huì)越好。本文中提到的ALICE的AIML(人工智能標(biāo)記語(yǔ)言)采用的就是“刺激-反應(yīng)”理論,通過(guò)對(duì)輸入語(yǔ)句進(jìn)行匹配和分析,也就是刺激,給出答案,即反應(yīng),從而使得答題內(nèi)容能夠正確地的表示并傳輸。
智能聊天機(jī)器人涉及多方面的技術(shù),比如大數(shù)據(jù)分析、自然語(yǔ)言處理、機(jī)器學(xué)習(xí)等,這些都屬于人工智能的范圍。自然語(yǔ)言處理是智能聊天機(jī)器人的核心技術(shù)之一。機(jī)器人會(huì)根據(jù)用戶(hù)輸入的語(yǔ)句,進(jìn)行分詞,然后和語(yǔ)料庫(kù)進(jìn)行比對(duì),然后返回預(yù)先設(shè)定的回答。機(jī)器人的語(yǔ)料庫(kù)越大,返回的答案越精確,這就涉及到了大數(shù)據(jù)技術(shù)。另外,機(jī)器人從這么龐大的語(yǔ)料庫(kù)中篩選獲取準(zhǔn)確數(shù)據(jù)的過(guò)程,就使用了機(jī)器學(xué)習(xí)的算法,并且機(jī)器人還有自學(xué)習(xí)的能力,能通過(guò)和不同的人聊天,積累經(jīng)驗(yàn),會(huì)變得越來(lái)越智能,并能夠應(yīng)付更多不同的提問(wèn)。
自然語(yǔ)言處理是研究實(shí)現(xiàn)人與計(jì)算機(jī)之間用自然語(yǔ)言進(jìn)行溝通的技術(shù),涉及到語(yǔ)言學(xué)、數(shù)學(xué)、計(jì)算機(jī)科學(xué)等多種學(xué)科。自然語(yǔ)言處理的應(yīng)用主要在聊天機(jī)器人、機(jī)器翻譯、搜索引擎等領(lǐng)域。自然語(yǔ)言處理在智能聊天機(jī)器人的開(kāi)發(fā)中起著重要的作用。自然語(yǔ)言處理主要包括詞法分析、句法分析和語(yǔ)義分析三大部分。詞法分析的核心即分詞。句法分析就是對(duì)自然語(yǔ)言中句子的結(jié)構(gòu)、語(yǔ)法進(jìn)行分析,如辨別疑問(wèn)句和感嘆句等。而語(yǔ)義分析則注重情感分析和整個(gè)段落的上下文分析,辨別一些字詞在不同的上下文中特定的語(yǔ)義和情感態(tài)度。
機(jī)器人的語(yǔ)料庫(kù)也叫知識(shí)庫(kù),知識(shí)庫(kù)的設(shè)計(jì)要通過(guò)大量的調(diào)研,作為前期的語(yǔ)料儲(chǔ)備。在機(jī)器人與用戶(hù)溝通積累到一定程度后,機(jī)器人可以將這些聊天內(nèi)容儲(chǔ)存并分析,從而豐富語(yǔ)料庫(kù)。當(dāng)機(jī)器人要回答問(wèn)題時(shí),要先對(duì)問(wèn)題進(jìn)行分詞,這就涉及到了分詞器。分詞器也分多種語(yǔ)言。常用的分詞技術(shù)有基于字符串的分詞算法,基于統(tǒng)計(jì)以及基于理解的分詞算法。分詞完成后,拿這些詞語(yǔ)與語(yǔ)料庫(kù)中的數(shù)據(jù)進(jìn)行相似度計(jì)算,選擇相似度大的結(jié)果返回給用戶(hù)。
IBM給出了大數(shù)據(jù)的5V特點(diǎn),分別是Volume(大量)、Velocity(高速)、Variety(多樣)、Value(低價(jià)值密度)、Veracity(真實(shí)性)。首先數(shù)據(jù)量要大,并且處理速度快,而數(shù)據(jù)格式、內(nèi)容多種多樣;通過(guò)對(duì)大數(shù)據(jù)的挖掘能得到少量數(shù)據(jù)得不到的有價(jià)值的信息;另外數(shù)據(jù)要真實(shí)可靠。
大數(shù)據(jù)分析是對(duì)大規(guī)模的數(shù)據(jù)進(jìn)行分析的技術(shù)。大數(shù)據(jù)分析的流程一般分為數(shù)據(jù)收集、數(shù)據(jù)預(yù)處理、算法分析挖掘、產(chǎn)生結(jié)果、結(jié)果可視化這五步。其中數(shù)據(jù)收集是前提,數(shù)據(jù)預(yù)處理是將收集到的雜亂的數(shù)據(jù),按照一定格式存儲(chǔ),并對(duì)無(wú)效數(shù)據(jù)進(jìn)行過(guò)濾。算法分析挖掘時(shí)通過(guò)運(yùn)用一些算法來(lái)處理這些數(shù)據(jù),產(chǎn)生有價(jià)值的信息,并作出預(yù)測(cè),最后可視化是將結(jié)果以合適的方式展現(xiàn)出來(lái),可以是統(tǒng)計(jì)圖,也可以是表格。
智能聊天機(jī)器人的語(yǔ)料庫(kù)積累到一定規(guī)模后,對(duì)語(yǔ)料庫(kù)的挖掘過(guò)程就可以稱(chēng)之為大數(shù)據(jù)分析。語(yǔ)料庫(kù)的積累即是數(shù)據(jù)收集的過(guò)程。數(shù)據(jù)在存儲(chǔ)的過(guò)程中,可以進(jìn)行初步的篩選,去掉無(wú)意義或重復(fù)的語(yǔ)句,保證語(yǔ)料庫(kù)的質(zhì)量。聊天機(jī)器人在收到請(qǐng)求后,會(huì)利用一些機(jī)器學(xué)習(xí)的算法從語(yǔ)料庫(kù)中搜集、挖掘可能的答案,最后將最適合的答案返回給用戶(hù)。
機(jī)器學(xué)習(xí)是人工智能的核心,在人工智能的各個(gè)領(lǐng)域都有應(yīng)用。機(jī)器學(xué)習(xí)是機(jī)器研究獲取新知識(shí)的技術(shù)。機(jī)器學(xué)習(xí)分為監(jiān)督學(xué)習(xí)和無(wú)監(jiān)督學(xué)習(xí),以及半監(jiān)督學(xué)習(xí)。監(jiān)督學(xué)習(xí)就是通過(guò)給定的有標(biāo)簽的訓(xùn)練集來(lái)訓(xùn)練模型。無(wú)監(jiān)督學(xué)習(xí)是沒(méi)有給定有標(biāo)簽的數(shù)據(jù)集,需要通過(guò)初始化,不斷地優(yōu)化模型。半監(jiān)督學(xué)習(xí)介于兩者之間,訓(xùn)練集的標(biāo)簽可能不是最終的標(biāo)簽,只是一個(gè)中間結(jié)果。常用的機(jī)器學(xué)習(xí)算法有決策樹(shù)、關(guān)聯(lián)規(guī)則、人工神經(jīng)網(wǎng)絡(luò)等等。
智能聊天機(jī)器人在檢索答案的過(guò)程中往往會(huì)產(chǎn)生許多結(jié)果,并且會(huì)給這些結(jié)果打分,最后返回打分最高的結(jié)果。這個(gè)分值是在與人們聊天的過(guò)程中根據(jù)人們的反饋積累下來(lái)的,所以智能聊天機(jī)器人模型的訓(xùn)練是有監(jiān)督的。
ALICE第一個(gè)版本是由Richard S.Wallac于1995年開(kāi)發(fā)完成的,先后有300多人為其做出貢獻(xiàn),目前存儲(chǔ)四萬(wàn)多條知識(shí)分類(lèi),可以支持英語(yǔ)、德語(yǔ)、法語(yǔ)等多種語(yǔ)言,現(xiàn)在ALICE在問(wèn)答系統(tǒng)、智能導(dǎo)航、網(wǎng)站服務(wù)等系統(tǒng)中都有廣泛的應(yīng)用。
ALICE具有豐富的標(biāo)簽,算法也并不復(fù)雜,主要采用的是模式匹配的方法。
ALICE有兩個(gè)核心的模塊:AIML語(yǔ)料庫(kù)和Chatterbean引擎。AIML即人工智能標(biāo)記語(yǔ)言,是基于XML發(fā)展的,采用了簡(jiǎn)單的模式匹配和“刺激-反應(yīng)”理論。Chatterbean使用JAVA語(yǔ)言開(kāi)發(fā),該引擎負(fù)責(zé)處理用戶(hù)的輸入,并對(duì)AIML進(jìn)行解析。
AIML的標(biāo)簽主要有
ALICE運(yùn)行過(guò)程中,所有AIML文件將以多叉樹(shù)的形式組織成“Graphmastert”對(duì)象,加載到內(nèi)存中。Graphmastert由一系列的Nodemapper節(jié)點(diǎn)組成。Graphmastert即根節(jié)點(diǎn),每個(gè)子節(jié)點(diǎn)是一個(gè)單詞或者一個(gè)通配符,順序根據(jù)pattern中的位置排列。所有pattern的根節(jié)點(diǎn)相同,從而使得機(jī)器人擁有一個(gè)強(qiáng)大的知識(shí)庫(kù)。每個(gè)葉子節(jié)點(diǎn)包含一個(gè)template,即對(duì)pattern的應(yīng)答。當(dāng)用戶(hù)的問(wèn)題經(jīng)過(guò)規(guī)范化預(yù)處理后,與pattern匹配成功后將返回對(duì)應(yīng)的葉子節(jié)點(diǎn)。
ALICE的工作流程分為四步:
(1)初始化。將AIML文件知識(shí)庫(kù)載入內(nèi)存。
(2)處理用戶(hù)輸入。接收到用戶(hù)的輸入請(qǐng)求后,通過(guò)提取關(guān)鍵詞,替換,去除噪聲等方式為下一步的問(wèn)題查詢(xún)推理做準(zhǔn)備。
(3)問(wèn)題查詢(xún)推理。問(wèn)題推理是ALICE工作的核心步驟。主要是通過(guò)與規(guī)則進(jìn)行逐步匹配,對(duì)問(wèn)題進(jìn)行推理定位。
(4)模板處理。主要是對(duì)上一步的問(wèn)題進(jìn)行完善。得到最可能的答案。
ALICE的優(yōu)點(diǎn)在于與自然語(yǔ)言的匹配及上下文語(yǔ)境的理解,以及語(yǔ)料庫(kù)龐大,知識(shí)容易擴(kuò)展。但在中文處理問(wèn)題上,ALICE并不成熟,因?yàn)闈h語(yǔ)不像英語(yǔ)等語(yǔ)言,用空格或其他標(biāo)記分詞,這就加大了ALICE對(duì)中文支持的難度。對(duì)漢語(yǔ)的分詞采用一般匹配法、詞頻統(tǒng)計(jì)法等。另外對(duì)同義句的處理也是一大難點(diǎn)。
本程序旨在實(shí)現(xiàn)人與機(jī)器人的聊天對(duì)話,目的是可以隨意聊天,好玩。比如機(jī)器人可以回答“你好”“現(xiàn)在幾點(diǎn)了”等問(wèn)題。
本程序在Windows操作系統(tǒng)下開(kāi)發(fā),使用JAVA語(yǔ)言,運(yùn)用Eclipse IDE,JDK版本為1.8。
本程序的相關(guān)技術(shù)主要包括兩個(gè)部分:
(1)AIML語(yǔ)料庫(kù)的設(shè)計(jì)
AIML基于xml格式標(biāo)簽,AIML的基本單位是category,即類(lèi)別。每一類(lèi)別包括一個(gè)輸入和一個(gè)輸出。問(wèn)題也叫作刺激,被稱(chēng)為template模式。AIML使用
(2)Chatterbean引擎的使用
Chatterbean是使用純Java語(yǔ)言開(kāi)發(fā)的,是一個(gè)免費(fèi)的軟件,適用于AIML1.0標(biāo)準(zhǔn)。JAVA程序中并不支持javascript,但AIML中可以支持javascript。Chartterbean使用了Rhino來(lái)使得Java可以操作javascript,從而支持了交互模式。
源碼結(jié)構(gòu)如圖所示。主要包含三部分。
(1)Bitoflife包:機(jī)器人的核心包,其中包含了AIML及Chatterbean引擎源代碼。
(2)Bots包:其中idiom.aiml是自定義的AIML。
Substitutions.xml存儲(chǔ)了替換詞,如輸入what’s your name, 和輸入what is your name, 都能得到正確的回答,是因?yàn)榕渲昧耍?/p>
“
context.xml用于配置系統(tǒng)的上下文,設(shè)置了應(yīng)用的屬性,如
Splitter.xml用于配置詞匯的分隔符,如
(3) Src包:Chat.java中包含了main程序的入口。
在AIML文件中主要用到了如下標(biāo)簽:
:表示應(yīng)答。
:支持Alice的學(xué)習(xí)功能,幫助Alic記住之前對(duì)方的聊天記錄。
本程序的AIML文件如圖所示。
5.效果展示
聊天機(jī)器人替代了一些簡(jiǎn)單,重復(fù)的工作,使人們從中解脫出來(lái),去做更有價(jià)值的事情。但是就像硬幣有兩面,任何新事物的誕生也必然會(huì)有風(fēng)險(xiǎn),智能聊天機(jī)器人的廣泛推廣,也會(huì)導(dǎo)致問(wèn)題。首先是用戶(hù)隱私的問(wèn)題,機(jī)器人會(huì)記錄下來(lái)與所有人聊天的信息,一旦這些信息被泄露就會(huì)造成用戶(hù)隱私泄露。另外,聊天機(jī)器人功能越來(lái)越強(qiáng)大,可替代的勞動(dòng)力也越來(lái)越多,有人會(huì)擔(dān)心因此而造成大量勞動(dòng)力失業(yè)。面對(duì)這些問(wèn)題,人類(lèi)應(yīng)不斷地優(yōu)化聊天機(jī)器人,增加它的安全性,以防數(shù)據(jù)泄露。另外人們也在不斷地提升自己,同時(shí)社會(huì)還應(yīng)該創(chuàng)造更多就業(yè)機(jī)會(huì),這樣才不會(huì)在新生事物普及的同時(shí)引發(fā)新的社會(huì)矛盾。
本文通過(guò)對(duì)聊天機(jī)器人的發(fā)展現(xiàn)狀以及研究背景進(jìn)行分析,闡述聊天機(jī)器人的設(shè)計(jì)理論和技術(shù)原理,并對(duì)ALICE的制作原理進(jìn)行解釋?zhuān)詈蠼榻B了基于ALICE的聊天機(jī)器人的程序開(kāi)發(fā),實(shí)現(xiàn)了一個(gè)簡(jiǎn)單版的聊天機(jī)器人。雖然實(shí)現(xiàn)了智能聊天機(jī)器人的基本功能,但比較簡(jiǎn)單,沒(méi)有實(shí)現(xiàn)對(duì)中文以及復(fù)雜問(wèn)題的支持,語(yǔ)料庫(kù)也不夠復(fù)雜。下一步會(huì)在此程序的基礎(chǔ)上引入中文分詞技術(shù),擴(kuò)展AIML的知識(shí)庫(kù),強(qiáng)化機(jī)器人的人工智能技術(shù)。
[1]馮德虎.基于ALICE的研究生招生咨詢(xún)智能聊天機(jī)器人研究與實(shí)現(xiàn)[D].西南交通大學(xué),2013.
[2]劉超,馬東宇.智能問(wèn)答的聊天機(jī)器人系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].信息技術(shù),2017(05).
[3]楊凱翔.聊天機(jī)器人知識(shí)挖掘方法研究[D].華南理工大學(xué),2015.