天天看點

【NLP開發】Python實作聊天機器人(微軟小冰)

文章目錄

  • ​​1、簡介​​
  • ​​2、論文研究​​
  • ​​3、企業應用​​
  • ​​4、代碼測試​​
  • ​​4.1 Selenium安裝​​
  • ​​4.2 python實作​​
  • ​​結語​​

1、簡介

小冰公司前身為微軟(亞洲)網際網路工程院人工智能小冰團隊,是微軟全球最大的人工智能獨立産品研發團隊。該團隊于2013年12月在中國組建,2014年9月擴充建立日本研發分部,團隊分布于北京、蘇州、東京等地,技術産品覆寫中國、日本及印度尼西亞等多個國家,商業客戶覆寫全球範圍。

小冰”是微軟在2014年5月29日釋出的人工智能。小冰是一套完整的、面向互動全程的人工智能互動主體基礎架構,又叫小冰架構(Avatar Framework),它包括核心對話引擎、多重互動感官、第三方内容的觸發與第一方内容生成,和跨平台的部署解決方案。

【NLP開發】Python實作聊天機器人(微軟小冰)
【NLP開發】Python實作聊天機器人(微軟小冰)

自釋出以來,小冰架構引領着人工智能的技術創新,相關領先技術覆寫自然語言處理、計算機語音、計算機視覺和人工智能内容生成等人工智能領域。該架構是目前全球範圍内最成熟和最大的該類架構,目前,除中國小冰及日本凜菜(Rinna)第一方人工智能互動主體外,小冰架構還支撐了中國及日本100餘個第三方品牌的互動主體(如軟銀Pepper),互動總量約占全球人工智能互動總量的60%。

【NLP開發】Python實作聊天機器人(微軟小冰)

作為微軟全球首個以中國為總部的人工智能産品線,小冰經多年發展,已成為微軟最有價值的人工智能技術架構之一。小冰架構以自然語言處理(NLP)為基礎,持續推動完備疊代發展,目前是全球承載互動量最大的完備人工智能架構之一,技術覆寫自然語言處理、計算機語音、計算機視覺及人工智能内容生成。其中,在開放域對話、多模态互動、超級自然語音及内容生成領域居于全球領先。

【NLP開發】Python實作聊天機器人(微軟小冰)

小冰架構已孵化出數以千萬計的AI being,既有廣為人知的虛拟名人,如少女小冰、Rinna,世博會參展畫家夏語冰,歌手何暢、小堂妹,人類觀察者MERROR,機器人動漫角色Roboko等;也有數千萬個各自不同、陪伴在普通使用者身邊的虛拟男友、虛拟女友;還有許多在垂直場景裡默默工作的虛拟員工和虛拟專家,如冬奧裁判與教練系統觀君、每日經濟新聞虛拟主播N小黑和N小白、萬科集團2021年度優秀新員工崔筱盼、時尚設計師元徕、金融摘要撰稿人萬小冰、智能座艙同行者AI小祺和HiPhiGo、時尚設計師西湖一号,以及音樂制作人、金融風控師等。

【NLP開發】Python實作聊天機器人(微軟小冰)

“在億萬⼈之中,我隻屬于你”

【NLP開發】Python實作聊天機器人(微軟小冰)
【NLP開發】Python實作聊天機器人(微軟小冰)

2、論文研究

《The Design and Implementation of XiaoIce, an Empathetic Social Chatbot》(March 01 2020,Li Zhou, Jianfeng Gao, Di Li, Heung-Yeung Shum),本篇論文描述了小冰系統的底層算法實作。

​​​https://direct.mit.edu/coli/article/46/1/53/93380/The-Design-and-Implementation-of-XiaoIce-an​​

本論文介紹了微軟小Ice的發展,這是世界上最受歡迎的社交聊天機器人。XiaoIce被獨特地設計為具有情感聯系的人工智能伴侶,以滿足人類對溝通,情感和社會歸屬感的需求。我們在系統設計中同時考慮了智能商數和情商,将人機社交聊天作為馬爾可夫決策過程的決策,并優化了 XiaoIce 的長期使用者參與度,以預期的每次會話對話次數 (CPS) 來衡量。我們詳細介紹了系統架構和關鍵元件,包括對話管理器,核心聊天,技能和移情計算子產品。我們展示了 XiaoIce 如何動态識别人類的感受和狀态,了解使用者意圖,并在整個長時間的對話中響應使用者需求。自2014年釋出以來,XiaoIce已與超過6.6億活躍使用者進行了溝通,并成功地與其中許多使用者建立了關系。對大規模線上日志的分析表明,XiaoIce的平均CPS達到了23,明顯高于其他聊天機器人甚至人類對話。
【NLP開發】Python實作聊天機器人(微軟小冰)
  • 使用者和 XiaoIce之間的情感聯系
【NLP開發】Python實作聊天機器人(微軟小冰)
  • XiaoIce 的整體架構。它由三層組成:使用者體驗、對話引擎和資料。
  • 【NLP開發】Python實作聊天機器人(微軟小冰)
  • 用于訓練和驗證正常聊天的查詢-響應對的示例
  • 【NLP開發】Python實作聊天機器人(微軟小冰)
  • 詩歌創作技巧的架構
  • 【NLP開發】Python實作聊天機器人(微軟小冰)
  • 深度互動技能及其觸發因素的示例
  • 【NLP開發】Python實作聊天機器人(微軟小冰)
  • 任務完成技能示例、其觸發器以及與使用者的對話
  • 【NLP開發】Python實作聊天機器人(微軟小冰)

3、企業應用

微軟小冰進入QQ群聊等。除了聊天功能外,QQ群聊小冰還開放了測天氣、猜成語、占星術、對詩等群遊戲和群管理技能。

【NLP開發】Python實作聊天機器人(微軟小冰)
  • 微軟的必應搜尋頁面自帶的小冰機器人:
  • 【NLP開發】Python實作聊天機器人(微軟小冰)

4、代碼測試

4.1 Selenium安裝

Selenium 是什麼?一句話,自動化測試工具。它支援各種浏覽器,包括 Chrome,Safari,Firefox 等主流界面式浏覽器,如果你在這些浏覽器裡面安裝一個 Selenium 的插件,那麼便可以友善地實作Web界面的測試。

Selenium 2,又名 WebDriver,它的主要新功能是內建了 Selenium 1.0 以及 WebDriver(WebDriver 曾經是 Selenium 的競争對手)。也就是說 Selenium 2 是 Selenium 和 WebDriver 兩個項目的合并,即 Selenium 2 相容 Selenium,它既支援 Selenium API 也支援 WebDriver API。

​​http://chromedriver.storage.googleapis.com/index.html​​

【NLP開發】Python實作聊天機器人(微軟小冰)
【NLP開發】Python實作聊天機器人(微軟小冰)

将Chromedriver.exe複制粘貼到執行代碼的檔案夾下.

4.2 python實作

# coding = utf-8
from time import sleep
from selenium import webdriver
from selenium.webdriver.common.by import By

# 啟動浏覽器
driver = webdriver.Chrome()

print("1.通路必應網站")
driver.get('https://cn.bing.com/search?q=hello')
driver.refresh()
sleep(3)

print("2.查找頁面右側的縮小圖示")
inputTag = driver.find_element(By.ID, "ev_talkbox_min")
inputTag.click()
sleep(1)

print("3.查找聊天輸入框和按鈕")
ev_send_text = driver.find_element(By.ID, "ev_send_text")
ev_send_button = driver.find_element(By.ID, "ev_send_button")
sleep(1)

words = [
    "你好", 
    "我是愛看書的小沐",
    "講個笑話", 
    "今天天氣",
    "唱首歌",
    "再見,小沐"
    ]

for i in range(len(words)):
    print("4.輸入您的問題")
    ev_send_text.click()
    ev_send_text.send_keys(words[i])
    sleep(1)

    print("5.發送您的問題")
    ev_send_button.click()
    sleep(1)

# 等待5秒
sleep(5)
# 退出
driver.quit()      
【NLP開發】Python實作聊天機器人(微軟小冰)
【NLP開發】Python實作聊天機器人(微軟小冰)

結語

​如果您覺得該方法或代碼有一點點用處,可以給作者點個贊,或打賞杯咖啡;​

​╮( ̄▽ ̄)╭

​如果您感覺方法或代碼不咋地//(ㄒoㄒ)//,就在評論處留言,作者繼續改進;​

​o_O???