一圖簡看基於搜索的問答機器人設計

前言

對於 chatbot,如今學界更流行的實現方式是基於深度學習和強化學習,好比seq2seq模型,具體可參考前面的文章《深度學習的seq2seq模型》。數據庫

而對於工業界,直接用 seq2seq 模型來實現端對端的仍是幾乎沒有的,但在不少模塊的處理也開始引入深度學習,除此以外也會嘗試使用強化學習。目前來看能工業界使用的更多仍是傳統的基於搜索的實現,本文來看看如何設計基於搜索的問答系統。網絡

關於問答系統

問答系統主要就是實現用戶提問,而後返回一個最合理的回答。問答系統與通常的搜索引擎不太同樣的是它容許用戶用天然語言進行提問,理論上若是要作出較好的效果都須要涉及到天然語言處理。併發

核心思想

收集現有的全部問答集,根據用戶的提問,由計算機負責解析問題的語義並從問答集中檢索出最相關的問答對應的答案返回給用戶。另外,爲了使系統更具魯棒性更加友好,咱們能夠選出最相關的前N條問答組成候選集,另外再提供必定的機制在用戶不滿意結果時向其提供候選集的其餘答案。機器學習

核心模塊

這裏寫圖片描述

  • spider,負責網絡爬取相關的問答併入庫到數據庫。
  • 知識庫,業務最專業最準確的知識來源。
  • 人工添加,支持人工添加新問答。
  • QA數據庫,用於存儲全部的問答集,能夠由兩張表存放,問題表和答案表,經過 id 關聯起來,而且答案表中也可保存答案相關的文檔名稱,後面可做爲答案附件。
  • lucen,用於將數據庫相關問答集創建索引,注意這裏只需創建問題的索引,由於根據用戶檢索候選集時只需根據問題來檢索。
  • 類似性工具,對若干個問答候選集進行評分,選出與用戶提問最類似的那個問題對應的答案,返回給用戶。類似性能夠用word2vec或編輯距離。

-------------推薦閱讀------------分佈式

個人2017文章彙總——機器學習篇ide

個人2017文章彙總——Java及中間件工具

個人2017文章彙總——深度學習篇學習

個人2017文章彙總——JDK源碼篇搜索引擎

個人2017文章彙總——天然語言處理篇.net

個人2017文章彙總——Java併發篇


跟我交流,向我提問:

這裏寫圖片描述

公衆號的菜單已分爲「讀書總結」、「分佈式」、「機器學習」、「深度學習」、「NLP」、「Java深度」、「Java併發核心」、「JDK源碼」、「Tomcat內核」等,可能有一款適合你的胃口。

爲何寫《Tomcat內核設計剖析》

歡迎關注:

這裏寫圖片描述
相關文章
相關標籤/搜索