<label id="jgr5k"></label>
    <legend id="jgr5k"><track id="jgr5k"></track></legend>

    <sub id="jgr5k"></sub>
  1. <u id="jgr5k"></u>
      久草国产视频,91资源总站,在线免费看AV,丁香婷婷社区,久久精品99久久久久久久久,色天使av,无码探花,香蕉av在线
      您正在使用IE低版瀏覽器,為了您的雷峰網賬號安全和更好的產品體驗,強烈建議使用更快更安全的瀏覽器
      此為臨時鏈接,僅用于文章預覽,將在時失效
      人工智能開發者 正文
      發私信給吳楚
      發送

      1

      用 Tensorflow 搭建能理解語境的聊天機器人!

      本文作者: 吳楚 2017-05-27 18:40
      導語:好的聊天機器人體驗一定是語境為王。

      想掌握對話溝通,語境為王。

      我們將使用Tensorflow構建一個聊天機器人框架,向大家示范如何實現上下文的語境處理。

      用 Tensorflow 搭建能理解語境的聊天機器人!

      有沒有想過為什么大多數聊天機器人缺乏會話語境?

      我們將創建一個聊天機器人框架,為一個小島上的輕便摩托車租賃店建立一個對話模型。這家小店的聊天機器人需要處理營業時間,預訂選項等簡單問答。我們也希望它能處理客戶根據上下文提出的問題,例如關于同一天租金的查詢。體驗能做好的話,可以讓客戶的假期留下美好回憶!

      這將通過三個步驟實現:

      • 將對話意圖的定義轉換為Tensorflow模型

      • 接下來,構建一個聊天機器人框架來處理響應

      • 將基礎的上下文語料,整合進響應處理過程

      我們將使用tflearn,一個基于tensorflow的Python包。  一般用iPython notbook作為輔助工具

      把會話意圖的定義,轉化為 TensorFlow 模型

      第一步,完整的notebook腳本可以在這里找到。

      聊天機器人框架框架需要一個能定義會話意圖的架構。有一個簡潔的實現方式,是使用JSON文件

      每個會話意圖包含:

      • 一個標簽(唯一的命名)

      • 模式組(用于神經網絡文本分類器的句子模式)

      • 響應組

      稍后我們將添加一些基本的上下文元素。首先是導入的包:

      用 Tensorflow 搭建能理解語境的聊天機器人!

      如果是新手,看看“7行代碼搞定深度學習”;如果還不清楚 TensorFlow 都能干啥,就看看這個

      用 Tensorflow 搭建能理解語境的聊天機器人!

      加載 JSON 會話意圖文件后,現在可以開始設計我們的文件、詞語和分類器的類。

      用 Tensorflow 搭建能理解語境的聊天機器人!

      我們創建了文件(句子)列表,每個句子是一個由詞干組成的列表,每個文件關聯一個意圖(一個類對象)。

      用 Tensorflow 搭建能理解語境的聊天機器人!

      詞干"tak"將匹配“take”,“taking”,“takers”等。我們可以清理詞語列表,刪除無用的詞目。但現在這樣處理就夠了。

      麻煩的是,這個數據結構不能用到Tensorflow,需要進一步轉換:從由詞語組成的文本轉換成由數值型變量組成的張量。

      用 Tensorflow 搭建能理解語境的聊天機器人!

      注意我們的數據是被打亂了的。Tensorflow將取出其中一些數據,并將其用作測試數據,以衡量新擬合模型的精度。

      如果我們看一個單一的x和y列表元素,我們會得到詞袋數組,一個用于意圖模式,另一個用于意圖類。

      用 Tensorflow 搭建能理解語境的聊天機器人!

      現在可以準備建模了。

      用 Tensorflow 搭建能理解語境的聊天機器人!

      同樣的張量結構,也用在了 'toy’ 例子里的2層神經網絡上,觀察理解這個模型擬合訓練數據的過程,會一直有用。

      用 Tensorflow 搭建能理解語境的聊天機器人!

      要完成這一部分的工作,我們將保存('pickle')模型和文檔,以便下一個notbook腳本可以調用。

      搭建聊天機器人框架

      第二步的完整notebook腳本看這里

      我們將構建一個簡單的狀態機來處理響應,使用我們(從上一步)的意圖模型作為分類器。這就是聊天機器人的工作原理

      語境聊天機器人框架,是帶狀態機的分類器。

      導入相同的庫之后,我們 unpickle 模型和文件,并重新加載意圖文件。注意,聊天框架與我們構建的模型是分開的。除非意圖模式改變,否則不需要重建模型。由于有數百種意圖和數千種模式,模型可能需要幾分鐘的時間才能建立。

      用 Tensorflow 搭建能理解語境的聊天機器人!

      接下來,我們將加載保存的Tensorflow(tflearn框架)模型。需要注意的是,首先需要定義Tensorflow模型需要的數據結構,就像上一節所述。

      用 Tensorflow 搭建能理解語境的聊天機器人!

      在處理意圖之前,我們要想辦法把用戶輸入生成詞袋。這個技巧與我們以前使用過的訓練文本相同。

      用 Tensorflow 搭建能理解語境的聊天機器人!

      用 Tensorflow 搭建能理解語境的聊天機器人!

      現在可以建立響應處理器了。

      用 Tensorflow 搭建能理解語境的聊天機器人!

      每個傳遞給response方法的句子都被分類。分類器使用model.predict()并且非常快。模型返回的概率向量與我們的意圖按順序一一對應,生成潛在響應列表。

      如果一個或多個分類結果高于閾值,就可以判斷一個標簽是否與意圖匹配,然后處理。我們將分類列表作為一個堆棧,并刪除棧頂來尋找合適的匹配意圖,直到找到一個或者棧為空。

      我們來看一個分類示例,返回值中最有可能的標簽及其概率。

      用 Tensorflow 搭建能理解語境的聊天機器人!

      雷鋒網提醒,“你的店今天營業嗎?”不是這個意圖的模式之一:“模式”: [“今天營業嗎?”, “今天什么時候開業?”, “今天的營業時間?”] ;而不管對應項“營業”和“今天” 多么適合模型(它們在選擇的意圖中是突出的)。

      我們現在可以從用戶輸入中生成聊天機器人的響應。

      用 Tensorflow 搭建能理解語境的聊天機器人!

      以及上下文無關的其他響應..

      用 Tensorflow 搭建能理解語境的聊天機器人!

      讓我們利用一些基本的上下文,實現我們聊天機器人的拖欠租賃談話模型。

      用 Tensorflow 搭建能理解語境的聊天機器人!

      語境化

      我們想要處理一個關于租賃摩托車的問題,并咨詢租金是否今天到期。是非問題是一個簡單的語境響應。如果用戶回答“今天” ,上下文是租賃的時間范圍,那么最好調取租賃公司編號1-800的問答響應。不占用時間。

      為了實現這一點,我們將把“狀態”的概念加入我們的框架。這包括用來維護狀態的一個數據結構,和在處理意圖時用來操作這個數據結構的特定代碼。

      因為我們的狀態機的狀態需要容易維護,恢復和復制等等,所以很重要的是要把它全部保存在像字典這樣的數據結構中。

      這是基本語境的處理過程:

      用 Tensorflow 搭建能理解語境的聊天機器人!

      我們的上下文狀態是一個字典數據結構,它將包含每個用戶的狀態。我們將為每個用戶使用一些唯一的標識(例如,元胞數)。這使得我們的框架和狀態機可以同時維護多個用戶的狀態。

      用 Tensorflow 搭建能理解語境的聊天機器人!

      在意圖處理流程中添加了上下文處理流程,如下所示:

      用 Tensorflow 搭建能理解語境的聊天機器人!

      如果一個意圖想設值相應的上下文,則可以這樣做:

      用 Tensorflow 搭建能理解語境的聊天機器人!

      如果其他意圖想要與上下文相關聯,則可以這樣做:

      用 Tensorflow 搭建能理解語境的聊天機器人!

      以這種方式,如果用戶剛剛輸入“today”而與藍色沒有關聯(無上下文信息),則我們的“today”意圖將不被處理。如果他們輸入“today” 作為對我們的Y/N問題(意圖標簽:“rental”)的回應,則意圖被處理。

      用 Tensorflow 搭建能理解語境的聊天機器人!

      上下文狀態更新了。

      用 Tensorflow 搭建能理解語境的聊天機器人!

      我們定義了“greeting”意圖來簡化上下文,就像通常的短對話一樣。添加一個“show_details”參數來幫助我們理解其中的含義。

      用 Tensorflow 搭建能理解語境的聊天機器人!

      再試試輸入“today”,這里有一些值得注意的...

      用 Tensorflow 搭建能理解語境的聊天機器人!

      首先,我們對無上下文相關的“today”的回應是不同的。我們的分類產生了2個合適的意圖,而“opentoday”被選中,因為“今天”的意圖雖然較高的概率,而被限制在不再適用的上下文中。語境很有用!

      用 Tensorflow 搭建能理解語境的聊天機器人!

      用 Tensorflow 搭建能理解語境的聊天機器人!

      有一些事情需要考慮了,那就是下面的語境化...

      帶狀態的狀態模型

      沒錯,你的聊天機器人將不再像無狀態的服務端那么輕松愉快了。

      除非要重置狀態,重新加載模型和文檔 - 每次調用您的聊天機器人框架時,那你都需要引入"狀態"概念。

      這個不難。可以在其進程中運行一個有狀態的聊天框架,并使用RPC(遠程過程調用)或RMI(遠程方法調用)來調用,我推薦Pyro。

      用 Tensorflow 搭建能理解語境的聊天機器人!

      用戶界面(客戶端)通常是無狀態的,例如。HTTP或SMS。

      聊天機器人的客戶端將調用Pyro函數,有狀態服務來處理。看,驚不驚喜,意不意外!

      這是一個構建Twilio SMS聊天機器人客戶端的逐步指南,這里是FB Messenger的一個實現。

      別把狀態存到本地變量

      所有狀態信息都必須放在像字典一樣的數據結構中,容易地持久化,重載或以原子復制。

      每個用戶的會話將生成上下文,這將為帶有該用戶狀態的上下文。用戶ID可以用他們的元胞數,Facebook用戶ID或著其他唯一標識符。

      有些情況需要(按值)復制用戶的會話狀態,然后作為意圖過程來恢復。如果狀態機在框架內帶有狀態相關的變量,那么在實際中難以有效的。

      所以現在你有一個聊天機器人框架,一個有狀態服務的方案,以及可以添加上下文的demo。以后大多數聊天機器人框架都將無縫地銜接上下文。

      想想意圖影響和反應不同上下文(語境)設定的創意方式。用戶的上下文字典可以包含各種各樣的會話上下文。

      來一起愉快地玩耍起來!

      用 Tensorflow 搭建能理解語境的聊天機器人!

      via chatbots magazine,雷鋒網編譯。轉載請聯系雷鋒網。

      相關文章:

      Facebook利用深度學習記憶網絡訓練聊天機器人,與客戶自由對話 | ICLR 2017

      如何讓人類上癮 淺談聊天機器人抓住用戶的藝術

      雷峰網版權文章,未經授權禁止轉載。詳情見轉載須知

      用 Tensorflow 搭建能理解語境的聊天機器人!

      分享:
      相關文章
      當月熱門文章
      最新文章
      請填寫申請人資料
      姓名
      電話
      郵箱
      微信號
      作品鏈接
      個人簡介
      為了您的賬戶安全,請驗證郵箱
      您的郵箱還未驗證,完成可獲20積分喲!
      請驗證您的郵箱
      立即驗證
      完善賬號信息
      您的賬號已經綁定,現在您可以設置密碼以方便用郵箱登錄
      立即設置 以后再說
      主站蜘蛛池模板: 国产毛片三区二区一区| 成在线人视频免费视频| 狠狠色丁香婷婷综合尤物| 亚洲av午夜福利精品一区二区| 影音先锋成人资源| 日本熟妇视频| 四虎影视无码永久免费| 和林格尔县| 免费观看欧美性一级| 毛片免费试看| 国产精品嫩草影院一二三区入口| 熟妇图区| 国产精品欧美一区二区三区不卡| 黑人巨茎大战欧美白妇| 国产suv精品一区二区69| 99久久久无码国产精品动漫| 国精品91人妻无码一区二区三区| 国产富婆一区二区三区| 岛国AV在线| 中文字幕不卡av无码专线一本 | 成人亚洲国产| 四虎永久在线精品免费播放| 成人品视频观看在线| 鲁丝一区鲁丝二区鲁丝三区| 欧美亚洲另类自拍偷在线拍| 538av| 一区二区久久不射av| 狠狠爱天天综合色欲网| 亚洲人无码一区| 日韩av高清无码| 亚洲中文久久精品无码| 免费99精品国产自在现线 | 四虎在线中文字幕一区| 看国产黄大片在线观看| 无码人妻精品区二区蜜桃91| 国产-第1页-浮力影院| 男人j进女人p免费视频| 亚洲一区二区在线无码| 日本久久中文字幕| 潞城市| 国产太嫩了在线观看|