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