您現在的位置是:首頁 > 娛樂

快速搭建對話機器人,就用這一招!

由 CSDN 發表于 娛樂2023-01-26
簡介當用戶提出一個問題時:透過Bert模型將之轉化為特徵向量在Milvus中對特徵向量做相似度檢索,得到與該問題最相似的標準問題的id在PostgreSQL得出對應的答案

怎麼讓機器人自動對話

快速搭建對話機器人,就用這一招!

作者 | Milvus。io

責編 | 胡巍巍

問答系統是自然語言處理領域一個很經典的問題,它用於回答人們以自然語言形式提出的問題,有著廣泛的應用。其經典應用場景包括:智慧語音互動、線上客服、知識獲取、情感類聊天等。常見的分類有:生成型、檢索型問答系統;單輪問答、多輪問答系統;面向開放領域、特定領域的問答系統。本文涉及的主要是在檢索型、面向特定領域的問答系統,通常稱之為——智慧客服機器人。

在過去,客服機器人的搭建通常需要將相關領域的知識(Domain Knowledge),轉化為一系列的規則和知識圖譜。構建過程中重度依賴“人工”智慧,換個場景,換個使用者都需要大量的重複勞動。

隨著深度學習在自然語言處理(NLP)中的應用,機器閱讀可以直接自動從文件中找到匹配問題的答案。深度語言模型會將問題和文件轉化為語義向量,從而找到最後的匹配答案。本文藉助Google開源的Bert模型結合Milvus開源向量搜尋引擎,快速搭建基於語義理解的對話機器人。

整體架構

本文透過語義相似度匹配來實現一個問答系統,大致的構建過程:

獲取某一特定領域裡大量的帶有答案的中文問題(本文將之稱為標準問題集)。

使用Bert模型將這些問題轉化為特徵向量儲存在Milvus中,同時Milvus將給這些特徵向量分配一個向量ID。

將這些代表問題的ID和其對應的答案儲存在PostgreSQL中。

當用戶提出一個問題時:

透過Bert模型將之轉化為特徵向量

在Milvus中對特徵向量做相似度檢索,得到與該問題最相似的標準問題的id

在PostgreSQL得出對應的答案。

系統架構圖如下(藍色線是匯入過程,黃色線是查詢過程):

快速搭建對話機器人,就用這一招!

接下來,將手把手教您搭建一個線上問答系統。

搭建步驟

在搭建之前您需要安裝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技術的大規模落地。

附錄

Milvus網站:milvus。io

系統演示:https://milvus。io/cn/scenarios

詳細步驟(附程式碼):

https://github。com/milvus-io/bootcamp/tree/0。7。0/solutions/QA_System

宣告:本文系作者投稿,不代表CSDN立場。

推薦文章

  • 童年吃過的最難吃的5種零食,如果你都吃過的話真的是太倒黴了!

    生薑糖生薑糖,顧名思義它是用生薑做的,它外面抹上了一層糖,不知道是誰發明的這種東西,生薑的味道那麼怪,竟然和糖混在一起,即使是甜的發齁的糖,依然拯救不了生薑的味道,那種又辣又甜的味道,估計很多人吃過一次後,都不想再吃第二次...

  • 告別伸手黨!這 5個網站讓你有問題不求人

    告別伸手黨!這 5個網站讓你有問題不求人com/5sobooks這是一個國內免費的電子書下載網站,裡面的書籍型別豐富,有小說文學、歷史傳記、人文社科、勵志成功、經濟管理、學習教育、生活時尚、漫畫繪本等,可以滿足我們大部分人的看書需求~網址:https://sobooks...

  • 一名消防員在“3·21”東航MU5735航空器飛行事故處置現場的日記

    一名消防員在“3·21”東航MU5735航空器飛行事故處置現場的日記影片截圖我想著飛機往下飛,黑匣子大機率會在山的最底部,就往底部區域搜尋,我往最下面踩去,站穩之後開始進行挖掘,不知不覺腳已經被泥土覆蓋,挖了一會,感覺小腿有點冰冷,一看大腿已經陷入泥潭,不管我怎麼動怎麼拔都無法動彈,我拿著鋤頭想著挖走自己大...