客服机器人源码_快速搭建对话机器人,就用这一招!
問答系統(tǒng)是自然語言處理領(lǐng)域一個(gè)很經(jīng)典的問題,它用于回答人們以自然語言形式提出的問題,有著廣泛的應(yīng)用。其經(jīng)典應(yīng)用場景包括:智能語音交互、在線客服、知識(shí)獲取、情感類聊天等。常見的分類有:生成型、檢索型問答系統(tǒng);單輪問答、多輪問答系統(tǒng);面向開放領(lǐng)域、特定領(lǐng)域的問答系統(tǒng)。本文涉及的主要是在檢索型、面向特定領(lǐng)域的問答系統(tǒng),通常稱之為——智能客服機(jī)器人。
在過去,客服機(jī)器人的搭建通常需要將相關(guān)領(lǐng)域的知識(shí)(Domain Knowledge),轉(zhuǎn)化為一系列的規(guī)則和知識(shí)圖譜。構(gòu)建過程中重度依賴“人工”智能,換個(gè)場景,換個(gè)用戶都需要大量的重復(fù)勞動(dòng)。
隨著深度學(xué)習(xí)在自然語言處理(NLP)中的應(yīng)用,機(jī)器閱讀可以直接自動(dòng)從文檔中找到匹配問題的答案。深度語言模型會(huì)將問題和文檔轉(zhuǎn)化為語義向量,從而找到最后的匹配答案。本文借助Google開源的Bert模型結(jié)合Milvus開源向量搜索引擎,快速搭建基于語義理解的對(duì)話機(jī)器人。
| 整體架構(gòu)
本文通過語義相似度匹配來實(shí)現(xiàn)一個(gè)問答系統(tǒng),大致的構(gòu)建過程:
當(dāng)用戶提出一個(gè)問題時(shí):
系統(tǒng)架構(gòu)圖如下(藍(lán)色線是導(dǎo)入過程,黃色線是查詢過程):
接下來,將手把手教您搭建一個(gè)在線問答系統(tǒng)。
| 搭建步驟
在搭建之前您需要安裝Milvus、Postgresql,具體安裝步驟請參考官網(wǎng)。
1.數(shù)據(jù)準(zhǔn)備
本文中的實(shí)驗(yàn)數(shù)據(jù)來自:https://github.com/SophonPlus/ChineseNlpCorpus。
該項(xiàng)目下的FAQ問答系統(tǒng)中的金融數(shù)據(jù)集,我們從中一共整理了33萬條數(shù)據(jù)。結(jié)合這組數(shù)據(jù),我們可以快速搭建一個(gè)xx銀行智能客服機(jī)器人。
2.生成特征向量
本系統(tǒng)使用了Bert已預(yù)訓(xùn)練好的一個(gè)模型。在啟動(dòng)服務(wù)前,需要下載該模型:https://storage.googleapis.com/bert_models/2018_11_03/chinese_L-12_H-768_A-12.zip
使用該模型將問題庫轉(zhuǎn)化為特征向量,以用于后續(xù)的相似度檢索。更多bert服務(wù)相關(guān)可參考:https://github.com/hanxiao/bert-as-service
3.導(dǎo)入Milvus和PostgreSQL
將上述產(chǎn)生的特征向量歸一化處理后導(dǎo)入Milvus中存儲(chǔ),然后j將Milvus返回的id以及該id對(duì)應(yīng)的問題的答案導(dǎo)入PostgreSQL中。PostgreSQL中的表結(jié)構(gòu):
4.獲取答案
用戶輸入一個(gè)問題,通過Bert產(chǎn)生特征向量后,在Milvus庫中找出與之最相似的一個(gè)問題。本文采用的余弦距離來表示兩個(gè)句子間的相似度,由于所有向量都進(jìn)行了歸一化,因此兩個(gè)特征向量的余弦距離越接近1表示相似度也高越高。庫中可能沒有與用戶給定問題比較相似的問題,所以在實(shí)踐中我們可以設(shè)定了一個(gè)閾值0.9,當(dāng)檢索出來的最相似的距離小于該閾值時(shí),則返回本系統(tǒng)未收錄相關(guān)問題的提示。
| 系統(tǒng)演示
系統(tǒng)初始界面如下:
在對(duì)話框中輸入你的問題,將會(huì)收到對(duì)應(yīng)的答案。如圖:
| 總結(jié)
上述的問答系統(tǒng)搭建是不是很簡單?有Bert模型的加持,你根本不需要預(yù)先對(duì)語料進(jìn)行分類整理、標(biāo)簽化等工作。同時(shí),得益于開源向量搜索引擎Milvus的高性能和可擴(kuò)展性,系統(tǒng)可以支撐上億級(jí)別的語料庫。Milvus向量搜索引擎已經(jīng)加入Linux AI (LF AI)基金會(huì)進(jìn)行孵化,歡迎大家加入Milvus社區(qū)。讓我們一起加速AI技術(shù)的大規(guī)模落地。
系統(tǒng)演示:https://milvus.io/cn/scenarios
詳細(xì)步驟(附代碼):
https://github.com/milvus-io/bootcamp/tree/0.7.0/solutions/QA_System?github.com*原文來源:https://mp.weixin.qq.com/s/nHsg8Iu8BkMeiRCRoPr7ew
想讓 Milvus 手把手教你如何搭建智能問答機(jī)器人嗎?現(xiàn)在就報(bào)名4/23 晚上7點(diǎn)的直播喔!
利用Bert和Milvus快速搭建智能問答機(jī)器人 ?www.huodongxing.com| 歡迎加入 Milvus 社區(qū)
http://github.com/milvus-io/milvus | 源碼
http://milvus.io | 官網(wǎng)
http://milvusio.slack.com | Slack 社區(qū)
http://zhihu.com/org/zilliz-11/columns | 知乎
http://zilliz.blog.csdn.net | CSDN 博客
?
總結(jié)
以上是生活随笔為你收集整理的客服机器人源码_快速搭建对话机器人,就用这一招!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysqlsql varchar类型只取
- 下一篇: securecrt是什么工具_网络总出故