基于Java的智能客服系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第1頁
基于Java的智能客服系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第2頁
基于Java的智能客服系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第3頁
基于Java的智能客服系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第4頁
基于Java的智能客服系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩48頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

摘 要AI和5G網(wǎng)絡(luò)的應(yīng)用和普及,將會(huì)帶來時(shí)代的新的變革,企業(yè)應(yīng)該要抓住這樣的機(jī)遇,創(chuàng)造開發(fā)出更好的產(chǎn)品和提供更好的服務(wù)。智能客服將在這個(gè)過程中扮演很重要角色:更智能化的產(chǎn)品需要人和機(jī)器進(jìn)行對(duì)話,更好的用戶體驗(yàn)也需要智能問答。本文客服系統(tǒng)包含人工坐席以及智能客服,默認(rèn)先是智能機(jī)器人對(duì)話,不能回答的問題給人工坐席來回答。NLP來模擬人類進(jìn)行對(duì)話的應(yīng)用。智能聊天機(jī)器人可以代替企業(yè)中比較固定的對(duì)話、重復(fù)的需要大量人力的任務(wù)。企業(yè)需要快速回復(fù)客服問題,在當(dāng)前市場(chǎng)上已經(jīng)存在很多應(yīng)用商能提供較為全面的智能客服系統(tǒng),總體API但是在智能機(jī)器人客服中,用戶的體驗(yàn)大都參差不齊。通常機(jī)器人按照功能可以分QA-BotBM25算法在知識(shí)庫中進(jìn)行匹配客戶的問題以及根據(jù)打分機(jī)制超過閾值進(jìn)行回復(fù)。Java的一個(gè)SpringActiveMqRedis緩ElasticsearchWindowsWindowsk8sDocker容器中。關(guān)鍵:Java 聊天機(jī)器人 知識(shí)庫問答 對(duì)話系統(tǒng) Docker容器目錄摘 要 IAbstract II緒論選背景意義 (1)國(guó)外研現(xiàn)狀 (1)本主要究?jī)?nèi)容 (3)論的章節(jié) (5)客系統(tǒng)礎(chǔ) (6)Java基礎(chǔ) (9)智聊天器人要設(shè)步驟 (13)Spring框架 (14)2.5本小結(jié) (14)系統(tǒng)設(shè)計(jì)智客服統(tǒng)的作原理 (15)3.2整架構(gòu) (22)3.3聊機(jī)器人 (23)3.4評(píng)體系 (24)3.5本小結(jié) (25)機(jī)人客服 (26)4.2對(duì)系統(tǒng) (33)4.3開環(huán)境建 (34)4.4本總結(jié) (39)5.1系環(huán)境 (40)5.2機(jī)人測(cè)試 (40)5.3客服系統(tǒng).........................................................................

(42)5.4本小結(jié) (44)6.1總結(jié) (45)6.2展望 (46)致謝 (47)參文獻(xiàn) (48)1緒論我們?nèi)粘I钪袝?huì)遇到大量的客服問題,比如說你打電話給聯(lián)通、移動(dòng)等,或者說在淘寶上買東西,這些問題大部分都是一些重復(fù)的問題,而且頻率也特別高,非常的耗人工;對(duì)于一些客服咨詢或者任務(wù)需求比較大的企業(yè)來說,如果使用大量的人工在線客服,會(huì)使得企業(yè)在客服這塊的開銷以及成本非常的大;人工客服是不24的有價(jià)值的數(shù)據(jù),這些數(shù)據(jù)也沒有被很好的利用起來。基于以上的這些原因,我們就會(huì)產(chǎn)生一個(gè)比較好的想法:能不能有一個(gè)機(jī)器人24天記錄里面的一些有價(jià)值的知識(shí)點(diǎn)。這也是智能客服所出現(xiàn)的原因及背景。人工智能和5G網(wǎng)絡(luò)應(yīng)用和普及,將帶來時(shí)代的變革,企業(yè)要抓住這樣的機(jī)遇,必須創(chuàng)造更好的產(chǎn)品,提供更好的服務(wù)。聊天機(jī)器人將會(huì)在時(shí)代的更新過程中扮演比較重要的角色,既更加智能化的產(chǎn)品需要客戶和機(jī)器人進(jìn)行對(duì)話。智能客服系統(tǒng)能夠有效減少人工成本、增強(qiáng)用戶體驗(yàn)[1]。企業(yè)需要快速回復(fù)客服問題,在當(dāng)前市場(chǎng)上,存在很多應(yīng)用商能提供較為全面api以集成起來比較輕松。但是在智能機(jī)器人客服中,用戶的體驗(yàn)大都參差不齊。聊天機(jī)器人[2],是一種通過NLP的方式來實(shí)現(xiàn)模擬人類進(jìn)行對(duì)話的應(yīng)用。智能聊天機(jī)器人可以代替企業(yè)中相對(duì)固話、重復(fù)的人力密集型任務(wù)或流程。典型的業(yè)務(wù)場(chǎng)景有:業(yè)務(wù)咨詢類問答機(jī)器人、智能客服類機(jī)器人、行政助理類機(jī)器人、產(chǎn)品推薦類機(jī)器人。智能客服機(jī)器人的發(fā)展趨勢(shì)智能聊天機(jī)器人的首次提出是源于五六十年代,阿蘭圖靈所發(fā)表的《計(jì)算機(jī)器與智能》中提到了圖靈測(cè)試,同時(shí)這也被認(rèn)為是智能聊天機(jī)器人的目標(biāo),讓機(jī)器實(shí)1966年麻省理工學(xué)院的約瑟夫.[3]AI容易實(shí)現(xiàn)落地,這是因?yàn)橹悄芸头到y(tǒng)領(lǐng)域的場(chǎng)景應(yīng)用都是有相對(duì)較明確的特征。決定了基于全量數(shù)據(jù)進(jìn)行高并發(fā)需求處理的人工智能將會(huì)在客服領(lǐng)域大有可為[4]。在人工智能領(lǐng)域,智能客服應(yīng)該是比較容易落地,而且技術(shù)比較成熟,這是因?yàn)榭头I(lǐng)域的場(chǎng)景路徑具有相對(duì)明確的特征,決定了基于全量數(shù)據(jù)進(jìn)行高并發(fā)需求處理的人工智能在客服領(lǐng)域?qū)⒋笥锌蔀?。目前,基于大?shù)據(jù)、云計(jì)算和深度學(xué)習(xí)等領(lǐng)先的人工智能技術(shù),智能客服已經(jīng)可以實(shí)現(xiàn)自主問答、業(yè)務(wù)辦理、故障診斷等一系列復(fù)雜操作,實(shí)現(xiàn)客服行業(yè)中大部分的應(yīng)答需求,快速高效的解決用戶問題。國(guó)內(nèi)在智能聊天機(jī)器人的研究也發(fā)展的很快,國(guó)內(nèi)出現(xiàn)了很多優(yōu)秀的聊天機(jī)器apii細(xì)分。微軟公司也推出了中文聊天機(jī)器人小冰,它是一個(gè)基于情感的聊天機(jī)器人。AI的智能客服已經(jīng)可以做到自主問答和業(yè)務(wù)辦理以及故障診斷等一系列復(fù)雜的操作,20185布的《中國(guó)智能客服行業(yè)研究報(bào)告》統(tǒng)計(jì),包括基礎(chǔ)硬件設(shè)施加客服人員大約規(guī)模40005G越來越普及,時(shí)代更新很快,智能客服系統(tǒng)將會(huì)在對(duì)話系統(tǒng)中扮演越來越重要的角色。智能客服系統(tǒng)細(xì)分領(lǐng)域整個(gè)智能客服系統(tǒng)的發(fā)展非???,市面上已經(jīng)開發(fā)好的智能客服有很多。應(yīng)用也劃分了幾大類的細(xì)分領(lǐng)域。第一大類是對(duì)話操作系統(tǒng)級(jí)別的系統(tǒng)。那么這一類系統(tǒng)比較有代表性的有亞馬第二大類系統(tǒng)是智能客服,智能客服類型中將其又細(xì)分為兩類:一類是企業(yè)內(nèi)部實(shí)現(xiàn)的智能客服,自主研發(fā)的智能系統(tǒng)為了適應(yīng)公司的發(fā)展及需要;還有一類是對(duì)外提供服務(wù)的智能客服,這種客服是以以SaaS平臺(tái)的方式對(duì)外服務(wù)。Sii[Cotna等。智能家居現(xiàn)在做得比較火熱的就是一些智能音箱,比如說亞馬遜Echo等。還有些公司是做一些智能交互的服務(wù),這些智能交互服務(wù)主要是自然語言處理和意圖識(shí)別方面的服務(wù)應(yīng)用,其他的廠商如有需要可以在這些智能交互服務(wù)的基礎(chǔ)之上做一些適合于自己的應(yīng)用系統(tǒng)。第四類是開放平臺(tái),這個(gè)開放平臺(tái)也可以叫BotFactory,比較有代表性的,有GoogleAPI.AIFacebookWit.AILuis.AI等等。這些開放平臺(tái)主要是做任務(wù)對(duì)話方面的一些定制。智能客服系統(tǒng)的常見功能智能客服最常見的功能目前比較多的應(yīng)用方式是擴(kuò)展開發(fā)出智能的客服在人工客服的基礎(chǔ)上,單輪的知識(shí)庫問答、多輪語義對(duì)話以及人機(jī)協(xié)作等都是比較常見的功能。單輪問答:一問一答,但是沒有記錄上下文,每一次問答和下一次問答都沒有任何的關(guān)系。多輪對(duì)話:是帶著上下文來問答,每個(gè)問答可能跟它的上文是有一定關(guān)系,或者是它記錄了上文的一些信息。人機(jī)協(xié)作:它是很有效的輔助人工的功能,目前實(shí)現(xiàn)的應(yīng)用方式主要有:一類是機(jī)器人加人工進(jìn)行問答,另外一大類是機(jī)器人推薦答案然后人工選擇回答。我們這里舉幾個(gè)例子:比如說上班的時(shí)候人工來回答,下班的時(shí)候機(jī)器人來回答;優(yōu)先級(jí)是普通的客戶交給我們的智能機(jī)器人來回答,優(yōu)先級(jí)是VIP的客戶由我們的人工來回答;或者是說分渠道來選擇,比如說微信客戶端訪問的由機(jī)器人回答,手機(jī)客戶端咨詢?cè)L問的由人工回答;還有就是機(jī)器人優(yōu)先回答客戶,機(jī)器人若答不出來,轉(zhuǎn)給人工坐席來回答??头到y(tǒng)主要目標(biāo)智能客服的技術(shù)目標(biāo)是需要做到以下這些目標(biāo),一個(gè)客服的機(jī)器人負(fù)責(zé)回答客戶的一些高頻簡(jiǎn)單問題,將疑難問題交給人工客服團(tuán)隊(duì)來回答,它是根據(jù)不同場(chǎng)景以及不同的技術(shù)條件不同廠商的技術(shù)能力而不同的,有的廠商是80%而有的是90%,這些是不確定的??傊悄芸头龅囊粋€(gè)技術(shù)目標(biāo)就是按照一定比例的解決客服的簡(jiǎn)單的高頻問題,將疑難問題仍然交給人工客服團(tuán)隊(duì)。這是目前智能客服一個(gè)基本的技術(shù)目標(biāo),是一個(gè)比較現(xiàn)實(shí)的目標(biāo)。那么想讓客服的機(jī)器人來完全取代人工客服,這個(gè)目標(biāo)到目前為止在絕大部分場(chǎng)景下還沒有辦法實(shí)現(xiàn),為用戶提供更加便捷、舒適的服務(wù)[6]。客服工作臺(tái)客服人員和消費(fèi)者建立連接,并完成對(duì)話的聊天室,是客服系統(tǒng)的核心之一。除了建立連接的速度,消費(fèi)者的用戶體驗(yàn)也是在聊天的過程中體現(xiàn)的,當(dāng)服務(wù)場(chǎng)景需要智能化和自動(dòng)化時(shí),也是圍繞聊天室進(jìn)行的。我們根據(jù)不同的訪問端客戶的需求不同,實(shí)現(xiàn)的聊天室會(huì)針對(duì)不同的需求有不同的設(shè)計(jì),常見的狀態(tài)(如圖1-1所示)。圖1-1客服工作狀態(tài)客服工作狀態(tài)有排隊(duì)狀態(tài),人工坐席繁忙,消費(fèi)者接入聊天室時(shí)沒有空閑的客服人員接起會(huì)話,這時(shí)消費(fèi)者往往會(huì)等待,在等待的過程中輸入問題。此時(shí)消費(fèi)者不能斷開,斷開后重連有可能重新排隊(duì)?;顒?dòng)狀態(tài),人工坐席加入會(huì)話,開始和消費(fèi)者聊天,解答問題,并且有可能進(jìn)行幾句寒暄。轉(zhuǎn)接狀態(tài),當(dāng)前服務(wù)人員有時(shí)會(huì)需要其他工作人員協(xié)助,往往也會(huì)直接將消費(fèi)者轉(zhuǎn)接到另外一名客服人員。這時(shí),聊天室就被另外一名客服人員接管。關(guān)閉狀態(tài),聊天結(jié)束后的一種狀態(tài),代表服務(wù)聊天結(jié)束后的一種狀態(tài),代表服務(wù)順利完成,比如消費(fèi)者得到了滿意的回答,關(guān)閉聊天室。該論文的實(shí)現(xiàn)分為六個(gè)章節(jié),具體內(nèi)容如下:第一章介紹的是本文的選題背景和意義,首先介紹智能客服系統(tǒng)的國(guó)內(nèi)外研究現(xiàn)狀,智能機(jī)器人的發(fā)展趨勢(shì)、常見功能及細(xì)分領(lǐng)域。然后就是主要研究?jī)?nèi)容,實(shí)現(xiàn)的客服系統(tǒng)目標(biāo)和客服工作臺(tái),最后就是組織結(jié)構(gòu)。第二章介紹的是智能系統(tǒng)理論基礎(chǔ)和實(shí)現(xiàn)系統(tǒng)所需要的關(guān)鍵技術(shù)??头到y(tǒng)基礎(chǔ)包括智能客服的服務(wù)場(chǎng)景、聊天機(jī)器人的分類、智能客服系統(tǒng)可能遇到的問題、Java基礎(chǔ)介紹了mavenactiveMqRedis緩存MySQLesspring框架。第三章是系統(tǒng)的設(shè)計(jì),首先介紹了智能客服系統(tǒng)的工作原理,包括系統(tǒng)所包含的模塊、自然語言理解、意圖識(shí)別、知識(shí)庫、知識(shí)圖譜、對(duì)話系統(tǒng)的設(shè)計(jì)。然后介紹了智能客服整體架構(gòu)接著介紹了聊天機(jī)器人的三種實(shí)現(xiàn),最后介紹了系統(tǒng)的評(píng)價(jià)體系,包括基于人工標(biāo)注的評(píng)價(jià)和基于用戶反饋的評(píng)價(jià)。第四章是系統(tǒng)的實(shí)現(xiàn),首先介紹了智能客服系統(tǒng)的單點(diǎn)登錄,然后介紹了機(jī)器人客服包括從開始創(chuàng)建機(jī)器人、安裝機(jī)器人插件、詞典管理、知識(shí)庫問答對(duì)、意圖識(shí)別、單輪與多輪對(duì)話系統(tǒng)、對(duì)話系統(tǒng)實(shí)現(xiàn)。接著介紹了開發(fā)環(huán)境的配置,最后介紹了開發(fā)好的應(yīng)用程序如何在docker容器中運(yùn)行。第五章是功能的測(cè)試,本章主要演示了我們的智能客服系統(tǒng)以及在局域網(wǎng)和外網(wǎng)情況下和機(jī)器人或者人工坐席對(duì)話,外網(wǎng)的情況還需要進(jìn)行全端口映射。第六章是總結(jié)和展望,首先是對(duì)本文的工作的成果進(jìn)行總結(jié),然后分析了實(shí)現(xiàn)過程中遇到的問題及解決的方案,最后給出了本系統(tǒng)未來可以改進(jìn)的方向。2理論基礎(chǔ)與關(guān)鍵技術(shù)UI開發(fā),后臺(tái)邏輯開發(fā),對(duì)話系統(tǒng)以及系統(tǒng)采用哪種方式來部署。前端頁面采使用freemarkerLayUIspring框架,系統(tǒng)部署可以在云服務(wù)器上,可以配置相關(guān)組件及服務(wù)部署在Windows下,也可以把應(yīng)用打包成Linuxdockerdocker-compose以及最k8s等。WindowsJava語言開發(fā)環(huán)境[7],系統(tǒng)開發(fā)的所用的Idea。智能客服服務(wù)場(chǎng)景聊天客服創(chuàng)建的機(jī)器人,它是模擬和人類問答對(duì)話的程序通過NLP。智能聊天機(jī)器人可以代替企業(yè)中相對(duì)固話、重復(fù)的需要大量人力的任務(wù)。典型業(yè)務(wù)場(chǎng)景:業(yè)務(wù)任務(wù)類機(jī)器人、咨詢問答的機(jī)器人、行政方面的助理機(jī)器人、產(chǎn)品相關(guān)推薦的機(jī)器人。目前已經(jīng)實(shí)現(xiàn)的比較完整的智能客服行業(yè)里,一般包含的應(yīng)用服務(wù)場(chǎng)景有以下IVR以及智能的質(zhì)量檢測(cè)等。以下是阿里云對(duì)外公布的智能客服應(yīng)用框架(2-1所示)。圖2-1智能客服應(yīng)用框架B端企業(yè)帶來的價(jià)值,包括降低人工成本、提高工作效率、提供更精準(zhǔn)準(zhǔn)業(yè)回答等。而智能客服最大的隱性價(jià)值在于實(shí)際場(chǎng)景中得到的標(biāo)準(zhǔn)化后的數(shù)據(jù)積累,可以在挖掘客服價(jià)值信息中起到降本增效的作用,后續(xù)還可以作精準(zhǔn)營(yíng)銷和產(chǎn)品升級(jí)。聊天機(jī)器人分類在智能客服系統(tǒng)里面通常會(huì)有聊天機(jī)器人這個(gè)模塊,它也有不同的分類方式。按照所實(shí)現(xiàn)的功能分為:咨詢問答型機(jī)器人、任務(wù)處理機(jī)器人以及Seq2seq-Bot機(jī)器人。QA-BotBM25[8]知識(shí)庫中進(jìn)行匹配客戶的問Seq2seq-Bot中使用端對(duì)端的生成模型[9]。我們需要提取問句中的焦點(diǎn)詞匯,以此去三元組或知識(shí)圖譜中檢索,且為了提高檢則可以將數(shù)據(jù)用在我們的深度學(xué)習(xí)模型訓(xùn)練,這樣就能得到所需要的目標(biāo)模型。按照模式分類可分為:基于檢索模式和生成式模式。BM25算法對(duì)問題進(jìn)行預(yù)測(cè)打分,根據(jù)系統(tǒng)預(yù)先設(shè)置的閾值分,大于閾值情況下會(huì)從知識(shí)庫中選出答案回復(fù)給用戶。生成式模型[10],這種方法要更難一些,它主要基于機(jī)器翻譯技術(shù),但不是從一種語言翻譯到另一種語言,而是從輸入到輸出的“翻譯”。它可以引用輸入中的實(shí)按領(lǐng)域分類可分為:開放領(lǐng)域和封閉領(lǐng)域。chatbotReddit這樣的社交媒體網(wǎng)站上的chatbot這些系統(tǒng)不需要談?wù)撜?,只需要盡可能有效地完成具體任務(wù)。當(dāng)然,用戶仍然可以在任何他們想要的地方進(jìn)行對(duì)話,但系統(tǒng)并不需要處理所有的這些情況,用戶其實(shí)也不期望這樣做。智能客服系統(tǒng)中遇到的問題做通用智能客服系統(tǒng)還是垂直行業(yè)智能客服系統(tǒng)智能客服系統(tǒng)的都是2B的,通用型智能客服系統(tǒng)意味著市場(chǎng)更大,用戶更多。技術(shù)優(yōu)勢(shì)現(xiàn)階段各家差距不大,小公司可以給用戶定制化,但是通用化系統(tǒng)不可以,最終變成市場(chǎng)很大,但是被一個(gè)個(gè)一句突起的做垂直領(lǐng)域的智能客服系統(tǒng)小公司蠶食了?;ヂ?lián)網(wǎng)剛開始的時(shí)候,門戶網(wǎng)站率先突起,能夠服務(wù)大多數(shù)人的需求,接下來,微信公號(hào)可以訂閱,每個(gè)人的閱讀內(nèi)容都不一樣了,這就是一種定制版的資訊平臺(tái)。從用戶角度來說,定制化是演進(jìn)方向,最終通用型客服會(huì)被垂直行業(yè)智能客服所取代。SAAS服務(wù)還是私有化部署傳統(tǒng)行業(yè)的人工客服有限,往往對(duì)智能機(jī)器人回復(fù)以及結(jié)合人工坐席的需求比較大,單從數(shù)據(jù)安全角度來講,會(huì)隨著技術(shù)發(fā)展來解決,移動(dòng)支付剛開始的時(shí)候大家還很害怕,綁定自己銀行卡會(huì)不會(huì)被盜。有足夠的投入才會(huì)有足夠的資金支撐技化的更快。私有化部署其實(shí)并不是一個(gè)比較好的選擇。服務(wù)大客戶還是中小客戶客戶群體不一樣,但是主攻大客戶的話,一些定制化需求難以滿足,而且大客戶流程比較長(zhǎng),一般具有長(zhǎng)期服務(wù)的服務(wù)商,對(duì)產(chǎn)品成熟性要求比較高,創(chuàng)業(yè)公司很難打進(jìn)去。做垂直領(lǐng)域的SAAS系統(tǒng),就需要有更多的用戶使用,才能更快的迭代系統(tǒng),只有一兩個(gè)大客戶,很難提出建設(shè)性的改進(jìn)建議,所以說做中小客戶,盡快的找到第一批用戶,把系統(tǒng)跑起來然后不斷優(yōu)化迭代。智能客服系統(tǒng)評(píng)價(jià)體系智能客服系統(tǒng)可以進(jìn)行對(duì)比分析[11]??蛻粝M约禾岢龅膯栴}可以盡可能多地被解決,同時(shí)客戶與客服進(jìn)行會(huì)話的滿意度也同樣重要。我們使用最常用的評(píng)估方法Recall@k[12]。從運(yùn)營(yíng)的層面來講,企業(yè)使用智能客服的一大重要原因就是其可以省去大量人力成本。由智能客服完成解答的問題越多,智能客服的攔截率也就越高,對(duì)運(yùn)營(yíng)層面來說效果也就越好,因此機(jī)器人對(duì)用戶咨詢的攔截率也是需要重點(diǎn)考察的指標(biāo)。智能機(jī)器人要有意圖識(shí)別,當(dāng)用戶咨詢時(shí),智能客服需要根據(jù)用戶的問句以及上下文信息,準(zhǔn)確識(shí)別出用戶的咨詢意圖是什么,并返回相應(yīng)的答案。除此以外,為了保證用戶體驗(yàn),還需要借助機(jī)器人的情緒識(shí)別的能力。這樣不僅能夠提高客服滿意度,還能幫助運(yùn)營(yíng)對(duì)業(yè)務(wù)進(jìn)行分析,如判斷其剛上線或剛更新的業(yè)務(wù)的用戶反饋情況(如圖2-2所示)。圖2-2用戶服務(wù)企業(yè)需要快速回復(fù)客服問題,當(dāng)前市場(chǎng)上,存在很多廠商能提供全渠道智能客服系統(tǒng),相對(duì)來說,渠道對(duì)接已經(jīng)非常成熟,集成起來容易。但是在智能客服實(shí)現(xiàn)上,用戶的體驗(yàn)感覺都是不一樣的。Java基礎(chǔ)mavenmaven構(gòu)建工具能夠通過在項(xiàng)目的配置文件中使用少量的配置來管理Javaweb項(xiàng)目的構(gòu)建。Maven的核心功能就是合理描述項(xiàng)目間的依賴關(guān)系,也就是通過pom.xml依賴文件的配置來得到j(luò)arjar包會(huì)很多,這樣自己手動(dòng)去配置是不太現(xiàn)實(shí)的。項(xiàng)目構(gòu)建工具還有g(shù)radle,兩者有一定的區(qū)別,gradleAndroid環(huán)境下的開發(fā)。activeMq消息中間件消息中間件顧名思義實(shí)現(xiàn)的就是在兩個(gè)系統(tǒng)或兩個(gè)客戶端之間進(jìn)行消息傳送。activeMqbrokebroke基于發(fā)布/者向多個(gè)消費(fèi)者推送數(shù)據(jù)。這兩種消息傳遞類型的不同,點(diǎn)對(duì)點(diǎn)傳輸消費(fèi)者可以接/訂閱模式的傳輸方式消費(fèi)者只能接受到連接之后生產(chǎn)者推送的數(shù)據(jù)。activeMq-broker簡(jiǎn)介:brokeractiveMQ的一個(gè)簡(jiǎn)單實(shí)例,在程序中創(chuàng)建brokeractiveMqMaven項(xiàng)目然后引入依賴;2)web10條消息在隊(duì)列中等待10messagemessage待消費(fèi)了;我們先運(yùn)行兩個(gè)消費(fèi)者,在運(yùn)行一個(gè)生產(chǎn)10message,會(huì)發(fā)現(xiàn)對(duì)類中的數(shù)據(jù)會(huì)平均的分給每一個(gè)消費(fèi)者消費(fèi),且每一條數(shù)據(jù)只能被消費(fèi)一次。以上是基于隊(duì)列點(diǎn)對(duì)點(diǎn)的傳輸類型。JavaJMS:JMS是一種規(guī)范,它定義了一些規(guī)則及接口,Java定義了消息服務(wù)的規(guī)范,不管哪個(gè)廠商做的消息服務(wù)的中間件,我們應(yīng)用程序開發(fā)的時(shí)候activeMqactiveMqkafka更多一點(diǎn),kafkaactiveMqkafka本質(zhì)上的工作差不多。Elasticsearch全文搜索我們可以將es安裝成Windows服務(wù)service:1)首先打開dos界面,在es相應(yīng)bin目錄下,運(yùn)行命令service.batinstall;2)esservice.batstart;3)service.msces服務(wù)。esmysql比較多,而文本以es。Redismysql數(shù)據(jù)庫Redis簡(jiǎn)介RedisRedismemcachedmemcached較好但Redis160開始的遞增數(shù)字命databasesredis內(nèi)存數(shù)據(jù)庫操作事務(wù)的命是用keyJedis的使用JedisRedistcpjedistcpjedis對(duì)象的個(gè)數(shù),在極端的情況下可能會(huì)造成連接泄露,而連接池的形式可以有效的保護(hù)和控制資源的使用。redis分片集群大型的應(yīng)用一般都會(huì)隨著訪問并發(fā)量的提高而需要進(jìn)行橫向的擴(kuò)容。redis為一個(gè)很高效的內(nèi)存數(shù)據(jù)緩存,當(dāng)然也有分片特性功能。簡(jiǎn)單介紹數(shù)據(jù)分片模型所謂數(shù)據(jù)分片,就是將所存儲(chǔ)的數(shù)據(jù)按照一定的規(guī)則存儲(chǔ)在不同的服務(wù)上,通redis如何實(shí)現(xiàn)分片redis集群內(nèi)部被固定劃分為16384個(gè)槽(slot)每個(gè)數(shù)據(jù)都會(huì)被存儲(chǔ)在指定槽putkey時(shí),rediscrc160x3FFF進(jìn)行與運(yùn)算確定數(shù)據(jù)存儲(chǔ)的槽位,當(dāng)數(shù)據(jù)正確存儲(chǔ)后,通過Gossip協(xié)議向其他節(jié)點(diǎn)廣播該數(shù)據(jù)的位redis沒有中心路由的概念,所有節(jié)點(diǎn)都知道數(shù)據(jù)-節(jié)點(diǎn)的路由信息。/更新數(shù)據(jù)的時(shí)候是隨機(jī)對(duì)master節(jié)點(diǎn)進(jìn)moved異常(slot沒有正在移動(dòng)過程中)當(dāng)然客戶端最好能緩存數(shù)據(jù)與節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系,提升數(shù)據(jù)訪問或者更新速度。PingPong操作pingpongpingpong能夠提高數(shù)據(jù)傳輸?shù)男edisping的。一般應(yīng)用程序都會(huì)和數(shù)據(jù)庫進(jìn)行連接以存儲(chǔ)數(shù)據(jù),mysqlNavicatmysql數(shù)據(jù)庫(2-3所示)。druid

圖2-3 NavicatformysqlJava大型應(yīng)用系統(tǒng)一般都是要連接數(shù)據(jù)庫的。druid其實(shí)是很不錯(cuò)的一種選擇。Jdbc主要是Java語言和數(shù)據(jù)庫之間連接的驅(qū)動(dòng),是一種標(biāo)準(zhǔn)的Java應(yīng)用編程接口,java語言和其他的數(shù)據(jù)庫。HibernatemysqlSQL前端組件layUIUI框架,其代碼非常簡(jiǎn)潔性很適合較快的開發(fā)系統(tǒng)所需要界面,先去官網(wǎng)下載layerscriptjsHTML/css/jslayUIlayui.csslayui.js<linkrel=“stylesheet”href=“./layui/css/lsyui.css”><scriptsrc=“./layui/layui.js”></script>,js代碼可以直接書bodyjsjs文件。freemarkerThymeleaf,渲染視圖是很不錯(cuò)的選擇。API接口來將語音轉(zhuǎn)換成文本比如科大訊飛。語義處理:由于機(jī)器本來是無法理解文本的含義的,如果要真正做到語義完整的解析理解需要涉及自然語言處理,工程龐大??梢該Q種思維,由于只能是做某個(gè)特定行業(yè)的VSMQA定的語料中這種匹配效果還是相當(dāng)不錯(cuò)的。才能往下分析。VSM:VSM方案,第一步訓(xùn)練階段,由計(jì)算機(jī)程序來總結(jié)分類的規(guī)則;第二步則分類階,給程序一些它之前沒有碰到過的文檔然后進(jìn)行分類。上下文語義:要做到理解上下文語義就需要引入決策樹或神經(jīng)網(wǎng)絡(luò)。Spring框架如果我們開發(fā)的web系統(tǒng)是使用三層結(jié)構(gòu),持久層類中我們使用注解@repository、業(yè)務(wù)層類中我們使用注解@service和控制層相對(duì)應(yīng)的類我們使用注解@controller。Beanspring容器中是容器來創(chuàng)建而不是程序員自己創(chuàng)建bean一個(gè)切面類,主要實(shí)現(xiàn)的原理是利用Java語言中的反射機(jī)制。比如我們的應(yīng)用系統(tǒng)中有重復(fù)的日志模塊,可以在切點(diǎn)處統(tǒng)一使用日志組件,通知有前置通知、后置通知以及環(huán)繞通知等。JavaRediselasticsearch全文檢mysqlactiveMqlayUIjQueryspingspingspringbean初始化及自動(dòng)裝配。3系統(tǒng)設(shè)計(jì)包含的模塊(3-1所示)。

圖3-1工作流程首先可能會(huì)有一個(gè)ASR(語音識(shí)別)模塊,也可能沒有,這取決于具體廠商的一個(gè)選擇,這個(gè)語音識(shí)別模塊會(huì)把語音轉(zhuǎn)換成文字。如果沒有對(duì)應(yīng)的語音識(shí)別轉(zhuǎn)換模塊,那直接操作的就是文本[13]。意圖識(shí)別:對(duì)這個(gè)文字做一個(gè)問句的理解,或者說做一個(gè)查詢的理解,理解完以后,再對(duì)意圖做一個(gè)識(shí)別。機(jī)器回答:最后,我們把這個(gè)問句的理解和意圖識(shí)別的結(jié)果帶到對(duì)話管理系統(tǒng)里邊[14],對(duì)話管理系統(tǒng)會(huì)決定到底是給哪一種機(jī)器人發(fā)過去。這些機(jī)器人最后給出答案,將答案返回[15]。對(duì)話管理系統(tǒng)可以選擇一個(gè)機(jī)器人將問題發(fā)過去[16],也可以同時(shí)將問題發(fā)給所有的機(jī)器人,當(dāng)它們都回復(fù)答案時(shí),進(jìn)行答案選擇再返回,使用哪種方式取決于廠商自己的一個(gè)選擇[17]。這四種類型的智能機(jī)器人對(duì)應(yīng)不同的模塊。第一種是任務(wù)管理類的模塊,比如說訂機(jī)票,它屬于一個(gè)特定的任務(wù),這種Siri,是任務(wù)處理類;第二種是知識(shí)庫問答,也就是咨詢問答類的,只是做一些咨詢類的工作,一般情況下,它并不處理實(shí)際的一些任務(wù);第三類是知識(shí)圖譜問答[18],知識(shí)圖譜是知識(shí)庫中比較常見的是提供一個(gè)問答對(duì)和一個(gè)樹型的結(jié)構(gòu),而知識(shí)圖譜是提供了一個(gè)圖結(jié)構(gòu)。可以認(rèn)為是一個(gè)廣義上的知識(shí)庫問答[19]。第四類是聊天機(jī)器人的技術(shù),聊天并不是客服的首要功能,客服主要是解決原因在于,一是在用戶沒有輸入知識(shí)庫內(nèi)容的時(shí)候,這個(gè)聊天機(jī)器人會(huì)被客戶當(dāng)成是測(cè)試廠商機(jī)器人技術(shù)能力的評(píng)測(cè)對(duì)象;二是在某些場(chǎng)景下,會(huì)讓整個(gè)客服對(duì)話沒那么單調(diào)。自然語言理解自然語言理解主要做一些用戶的問題的預(yù)處理,如果是多句話,那么我們做一個(gè)“分句”,對(duì)每一句話來尋找答案,最后將答案組合起來發(fā)給用戶;“分詞”很常見,分詞后才能理解以及進(jìn)行標(biāo)注,進(jìn)行實(shí)體識(shí)別,這是常規(guī)的一些處理,然后就是句法分析、指代消解,再有就是詞權(quán)重、語義相似度等等,做這些分析都是為后面的算法做準(zhǔn)備,這是首先對(duì)文本進(jìn)行預(yù)處理。意圖識(shí)別第二部分進(jìn)行意圖的識(shí)別預(yù)處理。意圖識(shí)別主要是用戶的這句話暴露了用戶什么樣的意圖,我們這個(gè)例子里“今天天氣怎么樣”,這個(gè)意圖實(shí)際上就是用戶要問天氣。那么如果用戶說“幫我定一張去上海的機(jī)票”,這個(gè)意思就是用戶要訂機(jī)票。意圖識(shí)別一般情況下的使用方式有模板和分類方法。模板的方式:武漢今天天氣怎么樣?”我們會(huì)建一個(gè)叫“city”這里面會(huì)有武漢、北京、上海、天津等城市;我們會(huì)把今天、明天、后天等等也做一個(gè)詞典,詞典名字叫做“date”。這樣如果滿足剛開始有一個(gè)“city”,中間有任意字“date”,然后再有“天氣”分類器方式:我們?cè)谀骋粋€(gè)特定領(lǐng)域里面收集大量語料,人工去標(biāo)注這些語料是屬于哪種意圖的,用分類器模型來做一些二分類或者多分類的分類器,用來判斷意圖。但是分類器方法需要大量人工標(biāo)注的數(shù)據(jù),以及如何去收集多個(gè)領(lǐng)域里面的語料的問題?;谥R(shí)庫的問答我們可以使用檢索的方式來實(shí)現(xiàn)。檢索式回答的流程是:首BM25[20]、TF-IDF或者向量相似度等匹配出一個(gè)問題集合,這類似推薦系統(tǒng)中的召回過程;由于我們是一個(gè)問答系統(tǒng),最終是直接返回給用戶一個(gè)答案,因此需要從問題集合中挑出最相似的那個(gè)問題,這里會(huì)對(duì)問題集合做重排序,例如利用規(guī)則、機(jī)器學(xué)習(xí)或者深度學(xué)習(xí)模型做排序,每個(gè)問題會(huì)被打上一個(gè)分值,最終挑選出top1,將這個(gè)問題對(duì)應(yīng)的答案返回給用戶,這就完成了一次對(duì)話流程。在實(shí)際應(yīng)用中,我們還會(huì)設(shè)置閾值來保證回答的準(zhǔn)確性,若最終每個(gè)問題的得分低于閾值,會(huì)將頭部的幾個(gè)問題以列表的形式返回給用戶,最終用戶可以選擇他想問的問題,進(jìn)而得到具體的答案。知識(shí)庫知識(shí)庫問答[21]bm25問答型機(jī)器人在回答用戶的咨詢之前,首先要分析咨詢的問題并對(duì)問題進(jìn)行歸類,然后再進(jìn)行回答[22]。分為兩個(gè)階段:第一個(gè)階段是侯選集的召回過程,第二個(gè)階段是進(jìn)行重排序。首先是侯選集,侯選集召回有很多種方式,和搜索引擎相比相對(duì)簡(jiǎn)單,原因是搜索引擎要召回的量特別的大,但是知識(shí)庫是人工導(dǎo)入的,它的召回的就沒有那么復(fù)雜。第二是重排序,其實(shí)我們可以用文本相似度、檢索相關(guān)度,如果有足夠數(shù)據(jù)的話,還可以用神經(jīng)網(wǎng)絡(luò)的語義相似度等來做重排序工作。這些工作也可以用多模型融合的方式來做,將多個(gè)模型的結(jié)果綜合考慮得到最終結(jié)果。這些都跟搜索引擎的技術(shù)沒有特別本質(zhì)的區(qū)別,也會(huì)有些微小的差別,這是知識(shí)庫這塊的工作。知識(shí)圖譜知識(shí)圖譜問答最難的一點(diǎn)在于數(shù)據(jù)的整理,其次是工具方面[23-25]。有較多開源的工具比如Neo4j等。假設(shè)我們解決了數(shù)據(jù)來源和更新的問題,同時(shí)也有了工具,接下來要做的事情就是查詢轉(zhuǎn)換的工作,因?yàn)橐话愕闹R(shí)圖譜工具都會(huì)有一些自己的查詢語言。我們所要做的工作實(shí)際上就是把自然語言通過某種方式轉(zhuǎn)換成知識(shí)圖譜的工具所支持的查詢語言[25-27]。查詢轉(zhuǎn)換也有常見的兩種方式,一種是可以用模板,做一些查詢轉(zhuǎn)換的工作[28](如圖3-2所示)。對(duì)話技術(shù)

圖3-2知識(shí)圖譜對(duì)話技術(shù)比較典型的有三大類:第一大類是一種用狀態(tài)機(jī),或者和狀態(tài)機(jī)類似的填槽方式。這種方式的主要特點(diǎn)是將整個(gè)的對(duì)話過程抽象成一個(gè)有限狀態(tài)機(jī),這里面的所有狀態(tài),以及所要執(zhí)行的動(dòng)作都是事先約定好的,所以狀態(tài)機(jī)它比較適合一些場(chǎng)景簡(jiǎn)單的對(duì)話,對(duì)于場(chǎng)景復(fù)雜的對(duì)話,狀態(tài)機(jī)這種方式就已經(jīng)不太適應(yīng)了。第二大類就是馬可夫決策過程(MarkovDecisionProcess,MDP)的方式,它和狀態(tài)機(jī)的區(qū)別在于它里面增加了動(dòng)作,狀態(tài)機(jī)里面的動(dòng)作是我們事先約定好的,是固定的動(dòng)作,已經(jīng)事先知道對(duì)話到了那時(shí)候,于是就固定的采取這樣的動(dòng)作,但是MDP第三大類是端到端的生成式模型。端到端的模型主要出發(fā)點(diǎn)是我有一個(gè)問題,把問題輸入到一個(gè)模型里面之后,這個(gè)模型是幫我解決了我們之前整個(gè)對(duì)話過程所有流程的所有問題,而這個(gè)模型是需要從數(shù)據(jù)里面去學(xué)習(xí),包括對(duì)文本進(jìn)行的自然語言預(yù)處理、用戶的意圖識(shí)別,還有智能客服其他的都需要全方面學(xué)習(xí)。這個(gè)模型對(duì)于我們來說它是個(gè)黑盒,我給它一個(gè)問題,它也能給我答案,我并不需要仔細(xì)的去研究里面是怎么做得,我只需要設(shè)計(jì)訓(xùn)練這么一個(gè)模型就行了。這三種方式是現(xiàn)在的比較常見的三類對(duì)話技術(shù),第一大類,像狀態(tài)機(jī)和填槽這一類是商用系統(tǒng)的主流;第二大類是學(xué)術(shù)界的主流,但是工業(yè)界也在積極的嘗試,有的也已經(jīng)落地或者接近落地;端到端這種模型,主要還是停留在學(xué)術(shù)界的研究階段,目前還沒商業(yè)系統(tǒng)已經(jīng)做到了端到端的模型的產(chǎn)品化,還沒有成為商用主流的技術(shù)。單輪對(duì)話與多輪對(duì)話技術(shù)如下:?jiǎn)屋唽?duì)話指簡(jiǎn)單的一問一答,問題可以用一句話來描述而不依賴于上下文。對(duì)話系統(tǒng)中大量的問題都是這樣的單輪問答,一般這樣的問答依賴于一個(gè)知識(shí)庫/問答對(duì)集合。機(jī)器人從知識(shí)庫里檢索相似的問題,然后給出答案。單輪對(duì)話指標(biāo)召回率指客服機(jī)器人所能夠回答的問題越多召回率越高。召回率等于機(jī)器人能回答的問題數(shù)除以問題的總數(shù),會(huì)話沒有召回可能存在兩種情況:一是知識(shí)庫規(guī)則不夠全面,問題是知識(shí)庫里沒有的問題,在這種情況下需要完善知識(shí)庫,這就涉及到知識(shí)庫的初始設(shè)置和后續(xù)的自己學(xué)習(xí)。二是相似問題在知識(shí)庫里面有,但是由于語義理解問題沒有找到的情況,這就需要對(duì)其進(jìn)行優(yōu)化。例如相同的問題,k8s的k8s以歸類為同一個(gè)問題,這個(gè)就是優(yōu)化算法。準(zhǔn)確率指對(duì)于閑聊機(jī)器人來說,因?yàn)殚e聊場(chǎng)景下沒有明確的正確答案,所以準(zhǔn)確率不是閑聊機(jī)器人的主要評(píng)測(cè)指標(biāo)。閑聊機(jī)器人更加的關(guān)注召回率,比如說問答的相關(guān)性,是否有情感等指標(biāo)。對(duì)任務(wù)型和問答型機(jī)器人來說,要求優(yōu)先保證準(zhǔn)確率,也就是寧愿不回答不要不出錯(cuò)。準(zhǔn)確率這一測(cè)評(píng)指標(biāo)在實(shí)際應(yīng)用中需要人工來標(biāo)注機(jī)器人的回答是否準(zhǔn)確,所以使用場(chǎng)景相對(duì)受限。企業(yè)的客服部門通常會(huì)使用問題解決率來作為日常工作中對(duì)機(jī)器人的主要測(cè)評(píng)指標(biāo)。問題解決率指機(jī)器人成功解決的問題數(shù)=問題總數(shù)-轉(zhuǎn)人工客服的問題數(shù)量-顧客經(jīng)過反饋后不太滿意的回答的數(shù)量,問題解決率等于機(jī)器人成功解決的問題數(shù)除以問題的總數(shù)。企業(yè)需要設(shè)置合理的機(jī)器人轉(zhuǎn)人工策略,確保顧客在客服機(jī)器人不能很好的解決問題的情況下,可以轉(zhuǎn)由人工客服接待。同時(shí),企業(yè)應(yīng)該在智能客服系統(tǒng)中應(yīng)有對(duì)機(jī)器人客服的反饋功能和打分機(jī)制。單輪對(duì)話的難點(diǎn)第一是識(shí)別同一問題的不同表達(dá)式,在口語中通常一個(gè)意思有很多種表達(dá)方式。做的不好的機(jī)器人需要把左邊的幾個(gè)問法一個(gè)個(gè)的錄入,而做得好的機(jī)器人只需要輸入其中一個(gè)問法,其他的問法可以自動(dòng)識(shí)別然后返回一個(gè)相同的答案。第二是理解語義細(xì)微差別,處理差異性問法,語言在敘述中常有細(xì)微的差別,可能是一兩個(gè)子的區(qū)別,語義就不一樣了,也有可能字完全一樣但標(biāo)點(diǎn)語氣不同,表達(dá)的其實(shí)也不是一個(gè)意思。好用的機(jī)器人即使問句非常類似,但語義存在差別,也會(huì)自動(dòng)匹配到不同語義下的不同答案。第三是聚類高頻問題,機(jī)器人可以自動(dòng)學(xué)習(xí)優(yōu)化知識(shí)庫。提高準(zhǔn)確率以及召回率首先需要完善知識(shí)庫。人工進(jìn)行補(bǔ)充知識(shí)庫是非常有難度的,使用的客服機(jī)器人需要有自己學(xué)習(xí)的能力,根據(jù)歷史對(duì)話數(shù)據(jù)自動(dòng)總結(jié)及挖掘不再知識(shí)庫內(nèi)的高頻問句,補(bǔ)充和完善知識(shí)庫。多輪對(duì)話多輪對(duì)話需要考慮話語之間的相互關(guān)系,可以處理不完整的語義情況并且記錄歷史話語。而單輪對(duì)話任意兩句話之間都相互獨(dú)立,執(zhí)行一條指令所需要的全部信息都在這一句話中且沒有記憶功能。多輪對(duì)話評(píng)測(cè)指標(biāo)定制難度API多輪對(duì)話是不一定表現(xiàn)為與客戶問答所進(jìn)行的多次會(huì)話,如果用戶的話語中已經(jīng)提供了充足的信息,或者其他來源的補(bǔ)充信息已經(jīng)足夠?qū)⒂脩舻某醪揭鈭D轉(zhuǎn)換為一條明確的用戶指令,那就不會(huì)存在與用戶的多次對(duì)話交互。多輪對(duì)話難點(diǎn)首先需要準(zhǔn)確進(jìn)行語義理解,要有上下文的關(guān)聯(lián)、支持中途打斷回溯、支持指代識(shí)別。其次是狀態(tài)和個(gè)性化語言生成,“用戶畫像管理”,結(jié)合用戶畫像,機(jī)器人應(yīng)當(dāng)做出個(gè)性問答反饋,比如針對(duì)不同地域的用戶咨詢教育機(jī)構(gòu)選課場(chǎng)景。北京的用戶得到的機(jī)器人回復(fù)應(yīng)當(dāng)是北京開班的課程,上海的用戶得到的回復(fù)則是上海開班的課程。所以即使是相同的問題,不同地域的用戶所問得到的答案會(huì)完全不同。“對(duì)話狀態(tài)管理”,比如“328日北京到上海的機(jī)票”->證信息,“請(qǐng)幫我訂北京到上海的機(jī)票引導(dǎo)出發(fā)時(shí)間&身份證信息。意圖識(shí)別和預(yù)置行業(yè)知識(shí)庫有關(guān)系,預(yù)置行業(yè)知識(shí)庫越完善,機(jī)器人對(duì)用戶的意圖就能夠識(shí)別的更加具體和準(zhǔn)確。在相同的意圖大類下,還有可能會(huì)將更詳細(xì)的意圖進(jìn)行分類。例如:“請(qǐng)問下你們使用哪家快遞公司”和“請(qǐng)問下我的快遞到時(shí)候能收到”都同樣屬于物流咨詢意圖,但從更細(xì)致分類來講,“請(qǐng)問你們發(fā)哪家快遞”屬于咨詢物流供應(yīng)商選型的意圖,而“請(qǐng)問我的快遞走到哪兒了”屬于查詢物流狀態(tài)的意圖。任務(wù)型對(duì)話需要意圖識(shí)別[31-33],而咨詢問答型的對(duì)話并不會(huì)用到意圖識(shí)別。整體技術(shù)架構(gòu)如下圖所示,包括基礎(chǔ)服務(wù)層、應(yīng)用服務(wù)層、編輯運(yùn)營(yíng)層、接入層以及在線客服系統(tǒng)??梢允褂没谏疃葘W(xué)習(xí)的自然語言模型[29-30]?;A(chǔ)服務(wù)層提供對(duì)話系統(tǒng)的基礎(chǔ)技術(shù)能力,系統(tǒng)需要對(duì)用戶輸入的一段語句進(jìn)行理解,同時(shí)需要識(shí)別用戶的意圖,包括通用意圖和業(yè)務(wù)意圖,通用意圖是指用戶是來做業(yè)務(wù)咨詢還是閑聊,業(yè)務(wù)意圖是指若用戶是做業(yè)務(wù)咨詢,具體咨詢什么業(yè)務(wù),這里會(huì)使用文本分類的技術(shù)去識(shí)別用戶意圖(整體架構(gòu)如圖3-3所示)。圖3-3整體結(jié)構(gòu)圖KB-Bot基于問答知識(shí)庫的機(jī)器人、Chat-Bot閑聊類型機(jī)器人。這是智能客服系統(tǒng)的三種核心能力[31-34]。編輯運(yùn)營(yíng)層是指有一個(gè)編輯團(tuán)隊(duì)支撐算法策略迭代,主要完成數(shù)據(jù)標(biāo)注、問答運(yùn)營(yíng)、數(shù)據(jù)分析和效果評(píng)估的工作,這些工作輸出會(huì)作用到基礎(chǔ)服務(wù)API用來給業(yè)務(wù)方的系統(tǒng)進(jìn)行接入。此外,機(jī)器不是萬能的,用戶有很多復(fù)雜的問題仍需要人工解決,這里有一套在線客服系統(tǒng)提供了人工客服功能,應(yīng)用服務(wù)層能夠跟這個(gè)在線客服系統(tǒng)對(duì)接。自然語言理解Jieba,hanlp等;第二步是詞向量轉(zhuǎn)換,中文文本分詞以后依然無法被計(jì)算機(jī)識(shí)別,這是因?yàn)橛?jì)算機(jī)只能進(jìn)行數(shù)字的計(jì)算,word2vec;第三步是相似度計(jì)算,語句相似度指的是在中文語料中,兩句話0-1BM25算法。BM25Query進(jìn)行語素解析,生成語素qiDQIDqi相對(duì)于DQueryD的相關(guān)性得分。第四步是閾值比較,獲取到知識(shí)庫中每個(gè)問題和用戶輸入問題的相似度之后,究竟哪個(gè)問題的答案可以作為機(jī)器人最終的回答返回,這里就需要閾值比較來決定。人工在線客服java來實(shí)現(xiàn)的,采netty-socketIOssosessionsessionsping對(duì)Rds的支持是通過spingdtaRdisjdisConntionctoyRedisjavajedisspringjava組件來完成在線客服系統(tǒng)的開發(fā)實(shí)現(xiàn)。在智能客服系統(tǒng)里面通常都會(huì)有聊天機(jī)器人的模塊。這個(gè)模塊主要有以下三種實(shí)現(xiàn)方式:第一種就是檢索式[35],比如答案是事先編輯好的,并不會(huì)隨便生成,在檢索式里面又會(huì)分為兩大類:第一類是用大量的語料和模型來進(jìn)行訓(xùn)練,需要收集大量的語料,然后把問題和對(duì)應(yīng)的答案輸送到一個(gè)神經(jīng)網(wǎng)絡(luò)的模型,用這個(gè)模型幫我去找到問題和答案之間的相關(guān)度,這樣的話,就能夠用大量的語料訓(xùn)練出聊天機(jī)器人模型,這是最常見的一種方式。第二種方式是基于規(guī)則來做,使用類似于之前介紹過的Alice機(jī)器人所用到AIMLpattern,以及在這個(gè)pattern如果需要編輯大量的規(guī)則,規(guī)則之間可能會(huì)有沖突等問題,所以主流的這種聊天機(jī)器人的方式是我們說到的第一種,用統(tǒng)計(jì)模型和大量的語料來訓(xùn)練聊天機(jī)器人。需要限定在一定的領(lǐng)域里面。開放領(lǐng)域里直接生成式的聊天機(jī)器人會(huì)有一些敏感詞的問題,因?yàn)檎Z料一般是網(wǎng)上收集的,想做到所有語料都人工審核成本是巨大的。所以說生成式需要把它限定在一個(gè)特定的領(lǐng)域里面,生成式分為兩種,一種是純粹的生成,一種是基于一些模板來生成。智能客服系統(tǒng)需要有一個(gè)完備的評(píng)價(jià)體系去評(píng)價(jià)它的好壞,在我們的評(píng)價(jià)體系中有基于人工標(biāo)注的評(píng)價(jià)和基于用戶反饋的評(píng)價(jià)兩種方式:基于人工標(biāo)注的評(píng)價(jià)系統(tǒng)的回答能力受限于知識(shí)庫的豐富程度,因此并非能回答用戶的所有問題,系統(tǒng)最佳的狀態(tài)是將能回答的全部回答準(zhǔn)確,不能回答的全部拒識(shí),即拒絕回答。因此這里的評(píng)價(jià)指標(biāo)包括有結(jié)果率、拒識(shí)率、召回率和準(zhǔn)確率等,我們的目標(biāo)是讓系統(tǒng)的有結(jié)果率無限接近數(shù)據(jù)的真實(shí)有結(jié)果率,召回率和準(zhǔn)確率盡量高。這里我們是通過標(biāo)注標(biāo)準(zhǔn)評(píng)測(cè)集來計(jì)算系統(tǒng)的各項(xiàng)指標(biāo),我們會(huì)從每日的全量數(shù)據(jù)集中抽樣出一個(gè)小數(shù)據(jù)集,保證小數(shù)據(jù)集的數(shù)據(jù)分布盡量符合全量數(shù)據(jù)集,然后由標(biāo)注團(tuán)隊(duì)對(duì)數(shù)據(jù)集做標(biāo)注,標(biāo)注出每個(gè)問題的實(shí)際答案,一般標(biāo)注完成后還有質(zhì)檢的環(huán)節(jié),以保證標(biāo)注結(jié)果盡量準(zhǔn)確,這樣便生成了每日數(shù)據(jù)的標(biāo)準(zhǔn)評(píng)測(cè)集?;谠摌?biāo)準(zhǔn)評(píng)測(cè)集我們會(huì)去評(píng)價(jià)系統(tǒng)的好壞,并且每次做新模型迭代時(shí)都會(huì)使用標(biāo)準(zhǔn)評(píng)測(cè)集去評(píng)價(jià)新模型,只有新模型的效果好了才允許上線?;谟脩舴答伒脑u(píng)價(jià)人工評(píng)價(jià)能夠評(píng)價(jià)智能客服系統(tǒng)的準(zhǔn)確率,但是答案是否合理,能否為用戶解決問題,需要用戶去反饋評(píng)價(jià),整個(gè)智能客服系統(tǒng)的最終目標(biāo)是幫助用戶解決問題。我們會(huì)在產(chǎn)品上設(shè)計(jì)智能客服和在線客服的評(píng)價(jià)功能,例如會(huì)讓用戶評(píng)價(jià)智能客服的每個(gè)單輪對(duì)話回復(fù)的答案或者某個(gè)對(duì)輪語義的對(duì)話,在客戶和人工客服聊天完畢會(huì)發(fā)一份表單讓用戶去評(píng)價(jià)使用系統(tǒng)后的滿意程度。最終我們會(huì)統(tǒng)計(jì)參評(píng)比例、滿意度等指標(biāo),這些指標(biāo)能夠真正的反應(yīng)智能客服系統(tǒng)的好壞。實(shí)際中往往用戶參評(píng)比例低,我們會(huì)使用各種方法去刺激用戶評(píng)價(jià)。意圖識(shí)別、知識(shí)庫、知識(shí)圖譜、對(duì)話系統(tǒng)的設(shè)計(jì)。然后介紹了智能客服整體架構(gòu),包括基礎(chǔ)服務(wù)層、應(yīng)用服務(wù)層、編輯運(yùn)營(yíng)層、接入層以及在線客服系統(tǒng)。接著介紹了聊天機(jī)器人的三種實(shí)現(xiàn),最后介紹了系統(tǒng)的評(píng)價(jià)體系,包括基于人工標(biāo)注的評(píng)價(jià)和基于用戶反饋的評(píng)價(jià)。4系統(tǒng)的實(shí)現(xiàn)各個(gè)系統(tǒng)之間就能夠感知到該用戶已經(jīng)登錄無需再登錄(4-1所示)。圖4-1機(jī)器人客服客服機(jī)器人將加入到聊天室中,它有兩種參與客戶服務(wù)的方式:輔助客服人員及接管聊天室,直接和消費(fèi)者溝通。具體地說,在排隊(duì)階段,引導(dǎo)消費(fèi)者問問題,借助智能問答引擎服務(wù),進(jìn)行意圖識(shí)別,如果意圖匹配到了智能問答引擎中的多輪對(duì)話,就啟動(dòng)多輪對(duì)話,完成服務(wù);未匹配到多輪對(duì)話則繼續(xù)排隊(duì),在客服人員接入會(huì)話時(shí),機(jī)器人客服針對(duì)消費(fèi)者的問題,給客服人員建議回復(fù)。針對(duì)不同企業(yè)客戶的需求,機(jī)器人客服的服務(wù)方式也可以調(diào)整,最主要的是機(jī)器人客服可以利用多輪對(duì)話和知識(shí)庫,提高用戶滿意度、提高效率、人工坐席專注于更加棘手的問題。創(chuàng)建聊天機(jī)器人聊天機(jī)器人即服務(wù),它面向互聯(lián)網(wǎng)用戶開放,聊天機(jī)器人開發(fā)者/開發(fā)商可以快速實(shí)現(xiàn)企業(yè)級(jí)的聊天機(jī)器人服務(wù),以保護(hù)用戶隱私為前提,以提供專業(yè)的服務(wù)來贏得青睞,采用按量計(jì)費(fèi)的方式獲利。目前市面上能夠見到的第三方機(jī)器人有很多比Chatopera云服務(wù)是企業(yè)級(jí)別的服務(wù)我們使用第三方api接口,登錄Chatopera云服務(wù),注冊(cè)并在【控制臺(tái)】中創(chuàng)建聊天機(jī)器人(如圖4-2所示)。圖4-2創(chuàng)建機(jī)器人創(chuàng)建一個(gè)問答作為測(cè)試示例。點(diǎn)擊知識(shí)庫按鈕跳到下一個(gè)頁面后我們?cè)冱c(diǎn)擊新建問24安裝機(jī)器人插件配置環(huán)境變量:在機(jī)器人客服問答中,會(huì)從云服務(wù)檢索答案,答案有時(shí)候也包含很多條記錄,怎么回答訪客的問題按照如下策略:(1)首先,每個(gè)答案包含于訪客問題的相似度,該相似度在0-1區(qū)間,值越大二者越是相似。(2)最高的相似度的答案如何大于或等于最佳回復(fù)閾值時(shí),機(jī)器人客服將直接發(fā)送答案給訪客。(3)如果2中沒有得到答案,那么將相似度大于或等于建議回復(fù)閾值的記錄作為一個(gè)列表發(fā)送給訪客。(4)如果2和3都沒有答案則進(jìn)行預(yù)先設(shè)置好的兜底回復(fù)。設(shè)置環(huán)境變量:0.80.6,議回復(fù)閾值。詞典管理什么是詞典:詞典就是機(jī)器人在對(duì)話中所掌握的概念,機(jī)器人憑借詞典區(qū)分不同實(shí)體,詞典通過不同形式約定了一個(gè)詞匯的集合。實(shí)體是比如訂一份外賣需要知道用戶想定什food、time、num、taste、address,Chatopera機(jī)器人平臺(tái)提供多種形式的詞典。詞典類型:Chatopera機(jī)器人平臺(tái)預(yù)置的詞典,詞典標(biāo)識(shí)以"@"包括詞匯表詞典和正則表達(dá)式詞典兩種類型。系統(tǒng)詞典:(1)系統(tǒng)詞典可以直接引用,無需配置詞條。已有的系統(tǒng)詞典包括:地名(@LOC),人名(@PER)、時(shí)間(@TIME)和組織機(jī)構(gòu)(@ORG),在引用系統(tǒng)詞典頁面中可以看到。(2)引用與取消引用對(duì)于系統(tǒng)詞典我們可以引用或者取消引用。已經(jīng)被引用了的系統(tǒng)詞典我們可以用。詞匯表詞典:詞匯表詞典就是管理詞條,一個(gè)詞匯是否屬于某詞匯表詞典,就是檢查該詞匯1-32位。同一個(gè)機(jī)器人下的詞典標(biāo)識(shí)名不能重復(fù),詞典標(biāo)識(shí)名一經(jīng)確認(rèn)后無法修改。在詞典管理頁面點(diǎn)擊新建自定義詞典,在彈出的對(duì)話框里輸入正確的自定義詞典名稱,詞典類型選擇“詞匯表”,點(diǎn)擊確定。對(duì)于已經(jīng)創(chuàng)建的自定義詞典可以修改中文名。對(duì)于我們不再需要的詞典可以點(diǎn)擊刪除。對(duì)于已經(jīng)綁定了槽位的自定義詞典不可刪除。添加詞條:使用分號(hào)分隔詞項(xiàng),第一個(gè)詞項(xiàng)作為標(biāo)準(zhǔn)詞,后面的詞項(xiàng)作為同義詞。修改詞條:一個(gè)詞條的標(biāo)準(zhǔn)詞一旦確定不可修改,但是同義詞可以修改,點(diǎn)擊編輯按鈕,出現(xiàn)輸入框可以對(duì)同義詞進(jìn)行修改。查找詞條:對(duì)于詞條較多的詞典來說,可以快速搜索詞條。在搜索框輸入我們?cè)跈C(jī)器人詞典中已經(jīng)創(chuàng)建好的詞條之后點(diǎn)擊回車鍵就可以進(jìn)行搜索。搜索完成后搜索框中出現(xiàn)一個(gè)清楚按鈕,點(diǎn)擊之后清除本次搜索。在編輯完所有詞條之后,需要進(jìn)行保存,否則變更不生效。比如本頁詞條有變更的情況下進(jìn)行翻頁或者搜索,都需要先進(jìn)行保存。保存成功后會(huì)重新訓(xùn)練機(jī)器人。為了用戶有更好的體驗(yàn),需要對(duì)自定義詞典進(jìn)行維護(hù)與管理。在創(chuàng)建時(shí),創(chuàng)建詞典添加詞條時(shí),盡可能多的全面的添加不同的詞條和同義詞,便于在槽位中被識(shí)別出來,如果說用戶的詞條在該自定義詞典中沒有就無法識(shí)別。使用時(shí)在歷史消息中可以查看所有機(jī)器人和用戶之間的對(duì)話,如果發(fā)現(xiàn)用戶說的詞條在該自定義詞典中沒有,則應(yīng)該加入詞典。正則表達(dá)式詞典:正則表達(dá)式詞典是通過正則表達(dá)式的形式約束一個(gè)詞匯的集合,正則表達(dá)式是以一定語法作為規(guī)則的語法。命令規(guī)則如下,詞典標(biāo)識(shí)名為字母、數(shù)字、下劃線的1-32位;同一個(gè)機(jī)器人下的詞典標(biāo)識(shí)名是不能夠重復(fù)的;詞典標(biāo)識(shí)名經(jīng)過確認(rèn)后不能再進(jìn)行修改。在詞典管理頁面點(diǎn)擊新建自定義詞典,在彈出的對(duì)話框里輸入正確的自定義詞典名稱,詞典類型選擇"正則表達(dá)式",然后點(diǎn)擊確定。ChatoperaPCRE標(biāo)準(zhǔn),PCRE是"Perl-compatibleregularexpressions"的縮寫,廣泛的被各種編程語言支持,雖然在PCRE機(jī)器人平臺(tái)使用C++BoostRegex庫。添加正則表"添加表達(dá)式"項(xiàng)目下,寫入表達(dá)式,點(diǎn)擊"添加",然后點(diǎn)擊"保存"。保存成功后會(huì)重新訓(xùn)練機(jī)器人,如果遇到錯(cuò)誤會(huì)彈出提示消息,對(duì)于沒有意圖或意圖中沒有說法的情況,訓(xùn)練機(jī)器人會(huì)失敗,這時(shí)候保存正則表達(dá)式詞典是成功的,該錯(cuò)誤可忽略,后續(xù)在添加了意圖和說法后,就正常了。正則表達(dá)式定義支持多個(gè)表達(dá)式,在使用正則表達(dá)式詞典時(shí),會(huì)按照正則表達(dá)式列表的順序進(jìn)行匹配,如果匹配到表達(dá)式就跳過其他表達(dá)式,否則繼續(xù)匹配,直到遍歷表達(dá)式列表。保存成功后會(huì)自動(dòng)訓(xùn)練機(jī)器人,還需要確認(rèn)表達(dá)式是否能夠按(4-3所示)。圖4-3驗(yàn)證表達(dá)式驗(yàn)證表達(dá)式的過程就是在輸入框中輸入一段測(cè)試文本,然后點(diǎn)擊“驗(yàn)證”,結(jié)果會(huì)顯示在下方。上文提到了Chatopera機(jī)器人平臺(tái)的正則表達(dá)式詞典是基于C++BoostRegex庫并使用PCREPCRE正則表達(dá)式有郵箱[-*@([az09]az09]+.)+[z]{2,14\d{15}(\d\d[0-9xX])?QQ號(hào)碼[1-9][0-9]{4,}。正則表達(dá)式是一個(gè)易學(xué)難精的技能,相關(guān)Perl正則表達(dá)式或PCRE正則表達(dá)式的適用于Chatopera機(jī)器人平臺(tái)的正則表達(dá)式詞典。知識(shí)庫知識(shí)庫是基于信息檢索系統(tǒng)的一問一答的問答服務(wù),通過建立【問題-擴(kuò)展問-答案】和近義詞實(shí)現(xiàn)智能問答,常用于常見問題集的機(jī)器人對(duì)話。系統(tǒng)集成聊天機(jī)器人時(shí),發(fā)送的知識(shí)庫檢索或者多倫對(duì)話檢索,會(huì)返回置信度score也稱為命中閾值,該值在[0-1]區(qū)間,值越大代表機(jī)器人越確定回復(fù)的準(zhǔn)確性。對(duì)知識(shí)庫的評(píng)測(cè)常常用一系列測(cè)試問題查詢返回結(jié)果,進(jìn)而計(jì)算機(jī)器人回答的準(zhǔn)確率評(píng)價(jià)檢索系統(tǒng)。在系統(tǒng)集成時(shí),常常設(shè)定一個(gè)置信度,在高于該值時(shí)可以將機(jī)器人的回復(fù)返回給消費(fèi)者?;蛟谀硞€(gè)區(qū)間時(shí),詢問消費(fèi)者是否問以下問題,這是目前智能客服常見的場(chǎng)景。通過知識(shí)庫管理頁面的命中率調(diào)試窗口,開發(fā)者可以調(diào)整置信度來調(diào)試知識(shí)庫。ChatoperaExcelExcel,客服人員想要快速回復(fù)客戶消息非常困難,同時(shí)也有不容易維護(hù)的問題,小助手的出現(xiàn)主要就是專門用于解決這個(gè)問題而開發(fā)的。意圖識(shí)別客戶的意圖是什么,然后根據(jù)識(shí)別到的意圖繼續(xù)與客戶問答。得到這個(gè)意圖的相關(guān)信息之后,機(jī)器人才會(huì)去執(zhí)行這個(gè)意圖所代表的任務(wù)。初次使用首先需要?jiǎng)?chuàng)建一個(gè)機(jī)器人,對(duì)該機(jī)器人進(jìn)行配置,配置主要包括詞典在添加意圖的槽位時(shí)需要對(duì)詞典進(jìn)行配置,包括新建自定義詞典或引用系統(tǒng)詞典。在創(chuàng)建后默認(rèn)是沒有詞條的,這種情況下會(huì)導(dǎo)致訓(xùn)練失敗。相似的在正則表達(dá)式詞典也需要有表達(dá)式定義,否則會(huì)導(dǎo)致機(jī)器人訓(xùn)練失敗。如果碰到訓(xùn)練失敗的情況,通過錯(cuò)誤提示消息進(jìn)行解決,在保存詞典,保存意圖時(shí)會(huì)進(jìn)行訓(xùn)練(如圖4-4所示)。圖4-4意圖識(shí)別模塊配置意圖的槽位時(shí)需要為各個(gè)槽位設(shè)置對(duì)應(yīng)的詞典,此時(shí)可以在槽位配置模塊選擇詞典時(shí)引用系統(tǒng)詞典或者新建自定義詞典,在測(cè)試機(jī)器人的時(shí)候,測(cè)試對(duì)話窗口輸入意圖中的用戶說法對(duì)機(jī)器人進(jìn)行訓(xùn)練,機(jī)器人識(shí)別到意圖后會(huì)對(duì)該意圖下添加的槽位進(jìn)行追問。然后用戶輸入內(nèi)容時(shí)候,該槽位對(duì)應(yīng)的詞典會(huì)進(jìn)行檢索詞條包括標(biāo)準(zhǔn)詞或者近義詞,只要檢索到機(jī)器人會(huì)進(jìn)行下一個(gè)槽位的追問,對(duì)于沒有設(shè)置必填的相應(yīng)槽位,我們的機(jī)器人不再對(duì)其進(jìn)行追問。機(jī)器人識(shí)別到所有的槽位后會(huì)結(jié)束對(duì)話然后建立新的會(huì)話。添加說法:對(duì)于用戶的說法,可以添加沒有槽位的說法,也可以用{}關(guān)聯(lián)槽位,把槽名稱放到{}里面即可,一個(gè)說法可以綁定多個(gè)槽位。用戶說法如果關(guān)聯(lián)槽位后,在測(cè)試機(jī)器人的時(shí)候,用戶輸入該槽位對(duì)應(yīng)的詞典中的詞條,則首先追問的是該槽位。機(jī)器人存在調(diào)試版本時(shí)可進(jìn)行測(cè)試,測(cè)試無誤后可對(duì)當(dāng)前調(diào)試版本進(jìn)行發(fā)布上線。對(duì)于不會(huì)再使用的槽位我們可以刪除它。對(duì)于需要修改的槽位,我們也可以直接進(jìn)行編輯和修改即可。在編輯完所有說法和槽位之后,需要進(jìn)行保存。保存并且訓(xùn)練成功有提示。顯示成功之后我們就可以進(jìn)行測(cè)試了,每次保存并且訓(xùn)練成功后,都會(huì)自動(dòng)更新調(diào)試版本。但是此時(shí)不該急于發(fā)布上線,需要多次在測(cè)試對(duì)話頁面進(jìn)行測(cè)試,確保無誤之后再發(fā)布上線(如圖4-5所示)。圖4-5添加用戶說法和槽位對(duì)話理解方法基于語義解析:任務(wù)型識(shí)別用戶對(duì)話意圖并將其參數(shù)化[36],比如:今天晚上七點(diǎn)幫我在安寧自助火店預(yù)約一個(gè)包廂2個(gè)人。意圖是預(yù)定餐廳,詞槽是餐廳名{安寧自助火鍋}、時(shí)間{2020.5.1119:00}、人數(shù){2},參數(shù)化就是生成結(jié)構(gòu)化的數(shù)據(jù)。技術(shù)手段(如表4-1所示)。表4-1常見技術(shù)手段啟發(fā)式規(guī)則&推導(dǎo)傳統(tǒng)機(jī)器學(xué)習(xí)深度學(xué)習(xí)優(yōu)勢(shì)少量數(shù)據(jù)即可啟動(dòng)數(shù)據(jù)&特征驅(qū)動(dòng)優(yōu)化純數(shù)據(jù)驅(qū)動(dòng)優(yōu)化優(yōu)化手段直觀可控具有較好的泛化效果具有較好的泛化效果劣勢(shì)需要大量的專業(yè)知識(shí)需要領(lǐng)域特征工程容易達(dá)到效果瓶頸需要標(biāo)注大量語料需要海量語料可遷移性較差可遷移性較差可控性、可解釋性差可控性、可解釋性差基于語義匹配:?jiǎn)柎鹦妥R(shí)別用戶對(duì)話意圖并找到與該意圖最相似的問答對(duì),也就是從知識(shí)庫中找出與這句話最相似的問題,然后然后給出這個(gè)相似的問題的答案。技術(shù)手段有先輸入查詢->語言處理->語義計(jì)算<-->問答數(shù)據(jù)庫->相似查詢。詞槽是滿足用戶對(duì)話意圖時(shí)的關(guān)鍵信息和限制條件,可以理解為用戶需要提供的篩選條件。比如在查詢氣候時(shí)詞槽是時(shí)間和地點(diǎn),詞典是詞槽的所有詞匯所組成的。對(duì)話樣本是用來給對(duì)話系統(tǒng)做示范,教它在用戶說的具體句子里,該如何理解對(duì)話意圖,哪個(gè)詞是重要信息及對(duì)應(yīng)的詞槽是什么。對(duì)話模板用來給對(duì)話系統(tǒng)按照具體語法、句式做出的示范,教他在某一特定語法句式中該如何理解對(duì)話意圖,哪個(gè)詞是重要信息以及對(duì)應(yīng)的詞槽,特征項(xiàng)是什么。比如:通過對(duì)話樣本標(biāo)注告訴機(jī)器人“三亞明天會(huì)不會(huì)下雨”與“三亞明天會(huì)下雨嗎”“三亞city這個(gè)詞槽,“明日”和“明天”time詞槽。這樣的訓(xùn)練越多,機(jī)器人的理解能力便越強(qiáng),這與學(xué)習(xí)語言中的人類孩童的學(xué)習(xí)方式十分相似。例如:“[D:sys_loc][D:sys_time]天氣如何”,上述標(biāo)注表示可以將所有滿足“[城市]+[時(shí)間]+天氣如何”query優(yōu)先級(jí)就應(yīng)該是最高的。對(duì)話系統(tǒng)分類按場(chǎng)景分類有任務(wù)型[37],有任務(wù)目標(biāo),且需要參數(shù)化請(qǐng)求比如智能助手,整個(gè)對(duì)話圍繞一個(gè)目標(biāo),一般通過多輪對(duì)話才能達(dá)成這個(gè)目標(biāo)。問答型是有任務(wù)目標(biāo),無參數(shù)化請(qǐng)求如智能客服,單輪就可以完成對(duì)話。閑聊型是開放不限定領(lǐng)域如陪聊機(jī)器人,通常是任務(wù)型和問答型結(jié)合使用。人的表達(dá)會(huì)存在各種各樣的情況,所以不管用戶說什么,不要把它當(dāng)成是一個(gè)錯(cuò)誤來處理,而是要考慮如何把這轉(zhuǎn)變?yōu)橐粋€(gè)機(jī)會(huì),去推進(jìn)更順暢自然的溝通,讓機(jī)器進(jìn)行主動(dòng)學(xué)習(xí)。對(duì)于重要的請(qǐng)求,需要明確的顯性確認(rèn),而對(duì)于低風(fēng)險(xiǎn)的任務(wù)可以采用隱形的確認(rèn)。把它轉(zhuǎn)變?yōu)橐环N提供有價(jià)值的互動(dòng)的機(jī)會(huì),讓機(jī)器人像人一樣在交流中學(xué)習(xí)[38]。對(duì)話系統(tǒng)[39]一般包括語音識(shí)別、自然語言理解、對(duì)話管理等,對(duì)話系統(tǒng)的搭建有兩種方式:代碼工程實(shí)現(xiàn)和第三方工具實(shí)現(xiàn)。傳統(tǒng)的軟件開發(fā)和對(duì)話系統(tǒng)的開發(fā)是有區(qū)別的,對(duì)話系統(tǒng)的分析中,要善于利用線上的對(duì)話日志,通過用戶在對(duì)話過程中的糾正、反饋,來優(yōu)化對(duì)話模型中的對(duì)話理解效果,讓機(jī)器人越來越聰明。我們可以使用ubuntucorpus數(shù)據(jù)集作為測(cè)試集來測(cè)試對(duì)話系統(tǒng)效果[40]。bm25算法,elasticsearch搜索引擎也是采用類似的算算法首先對(duì)查詢語句進(jìn)行語素解析,生成語素qidqid的相關(guān)性得分進(jìn)行加權(quán)dword2vec,將用戶輸入的中文問題轉(zhuǎn)換為計(jì)算機(jī)能夠識(shí)別的數(shù)字。JavaspringRedisRedisMySQL比較慢比如進(jìn)行客服與客戶會(huì)話時(shí)。MySQL用來存儲(chǔ)關(guān)系型的數(shù)據(jù)比如咨詢會(huì)話,elasticsearch建立倒排索引用用來進(jìn)行全文檢索??头到y(tǒng)的訪客與客戶端之間的通信是全雙工通信,websocket是TCP協(xié)議的客戶端與服務(wù)端的雙向通信。依賴:GitJava8maven3.0IntelliJIDEA署在容器中運(yùn)行的話需要Linux下安裝docker及容器管理工具kubernetes或者docker-composeMySQLNavicatforelasticsearchactiveMqWindows服務(wù)(4-6所示)配置執(zhí)行:

圖4-6Windows服務(wù)spring8035,因?yàn)閼?yīng)用是部署在本地執(zhí)行,本地電腦網(wǎng)絡(luò)沒有接入公網(wǎng),所以其他客戶端只能在局域網(wǎng)內(nèi)訪問程序,為webnat123nat123訪問者軟件,這web應(yīng)用。我們的應(yīng)用系統(tǒng)還esmysql數(shù)據(jù)庫、消activeMqRedis的連接端口、數(shù)據(jù)庫的服務(wù)器地址在本文中是本機(jī)、連接池的最大連接數(shù)等。Elasticsearchmysql的配置(4-7所示):圖4-7es和mysql配置activeMq配置(4-8所示):Redis配置(4-9所示

圖4-8activeMq配置docker

圖4-9redis配置DockerLinux下運(yùn)行的容器技術(shù),它和虛擬機(jī)不同,兩者的隔離級(jí)別不一樣。微服務(wù)技術(shù)近年來越來越興起,因?yàn)槿萜髦羞\(yùn)行應(yīng)用程序方便快捷,不需要配置繁瑣的環(huán)境變量和運(yùn)行配置,只需要在一臺(tái)機(jī)器上把已經(jīng)開發(fā)好的應(yīng)用程序打包成鏡像然后發(fā)布到的個(gè)人倉庫或者公共倉庫,在任何電腦上就可以下拉鏡像,然后docker容器中運(yùn)行應(yīng)用程序,而且容器可以和宿主機(jī)的端口進(jìn)行映射,可以把容器中運(yùn)行的應(yīng)用發(fā)布成服務(wù),這樣外界也就可以訪問容器中運(yùn)行的應(yīng)用了。Dockerdocker-swam,docker-swam是一款用來管理多主機(jī)上docker容器工具,可以監(jiān)控容器狀態(tài)。如果容器的狀態(tài)不正常它會(huì)幫你重新啟動(dòng)k8s它本身的功能是和DockerSwarmk8s是谷歌公司根據(jù)自身多年的運(yùn)維經(jīng)驗(yàn)研發(fā)的一dockerswamdocket公司研發(fā)的。Docker-Compose只能管理當(dāng)前主機(jī)上的Docker,也就是說不能去啟動(dòng)其他主機(jī)上的Docker容器。composek8sdocker-compose.ymldocker-compose.ymlk8sdocker-compose.ymlconvert操作去轉(zhuǎn)換,我們也是可以直接運(yùn)行命令的??梢园岩呀?jīng)開發(fā)好的應(yīng)用程序打包成鏡像,然后在容器中運(yùn)行服務(wù),首先需要Linuxk8sdocker-compose使用較為簡(jiǎn)單,所以本文使用它來安裝服務(wù)。首先寫好docker-compose.yaml文件,終端進(jìn)入到該目錄運(yùn)行以下命令(4-10所示):圖4-10啟動(dòng)服務(wù)圖4-11應(yīng)用程序啟動(dòng)應(yīng)用程序啟動(dòng)后(4-11所示)localhost:8035就可以訪問到我們的智能客服系統(tǒng),然后輸入管理員賬號(hào)和密碼就登錄到系統(tǒng)了。查看運(yùn)行中的服務(wù)(如圖4-12所示)。圖4-12運(yùn)行中的服務(wù)docker-compose.yaml文件里面經(jīng)常會(huì)有服務(wù)名和容器的名字,這兩者docker的概念,所以我們?cè)赿ocker里面,處理的是容器。服務(wù)是屬于docker-compose的概念。docker-composestart/stop處理的服務(wù)名字而不是容器名字。創(chuàng)建機(jī)器人、安裝機(jī)器人插件、詞典管理、知識(shí)庫問答對(duì)、意圖識(shí)別、單輪與多輪Windowsdocker容器中運(yùn)行。5系統(tǒng)功能測(cè)試系統(tǒng)環(huán)境主要包含了軟件檢測(cè)與硬件檢測(cè)。其中硬件環(huán)境是本機(jī)Windows10系統(tǒng)電腦,具體配置參數(shù)如表5-1所示。軟件測(cè)試環(huán)境如表5.2所示。5-1CPU內(nèi)存操作系統(tǒng)Inter(R)Core(TM)i5-7300U@2.0GHz2.50GHz8.00GBwindows105-2軟件名稱版本Redis5.0.5Elasticsearch2.4.6activeMq5.14.3Mysql5.7Nginx1.10.3Kubernetes1.8.7這些相關(guān)軟件涵蓋了智能客服系統(tǒng)的開發(fā)和測(cè)試環(huán)境需要用到的相關(guān)服務(wù),安裝并且配置好這些軟件之后,就可以進(jìn)行相關(guān)指標(biāo)的測(cè)試了。決率。召回率指機(jī)器人能答上來的問題越多,則召回率越高。召回率=機(jī)器人能回答的問題數(shù)/問題總數(shù)。問題解決率計(jì)算如下,機(jī)器人成功解決的問題數(shù)=問題總數(shù)-轉(zhuǎn)人工客服的問題數(shù)量-顧客反饋不滿意的數(shù)量,問題解決率=機(jī)器人成功解決的問題數(shù)/問題總數(shù)。準(zhǔn)確率這一測(cè)評(píng)指標(biāo)在實(shí)際應(yīng)用中需要人工來標(biāo)注機(jī)器人的回答是否準(zhǔn)確,所以使用場(chǎng)景相對(duì)受限。圖5-1知識(shí)庫測(cè)試2000.6,然后在Chatopera(5-1所示)。根據(jù)知識(shí)庫系統(tǒng)匹配到的問題數(shù),可計(jì)算得召回率、準(zhǔn)確率、問題解決率相關(guān)指標(biāo)(5-3所示)服結(jié)合人工客服解決一些咨詢類的問題。表5-3測(cè)試結(jié)果召回率準(zhǔn)確率問題解決率96.26%95.43%94.69%登錄我們的智能客服系統(tǒng)設(shè)置好的賬號(hào)和密碼,本系統(tǒng)使用單點(diǎn)登錄(如圖5-2所示)。5-2登錄界面進(jìn)入系統(tǒng)后,點(diǎn)擊坐席進(jìn)入對(duì)話列表頁面,可以顯示歷史

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論