【NLP开发】Python实现聊天机器人(微软小冰)

NLP开发系列相关文章编写如下:

  1. 【NLP开发】Python实现词云图
  2. 【NLP开发】Python实现图片文字识别
  3. 【NLP开发】Python实现中文、英文分词
  4. 【NLP开发】Python实现聊天机器人(ELIZA))
  5. 【NLP开发】Python实现聊天机器人(ALICE)
  6. 【NLP开发】Python实现聊天机器人(ChatterBot)
  7. 【NLP开发】Python实现聊天机器人(微软Azure)
  8. 【NLP开发】Python实现聊天机器人(微软小冰)
  9. 【NLP开发】Python实现聊天机器人(钉钉机器人)
  10. 【NLP开发】Python实现聊天机器人(微信机器人)

文章目录

  • 1、简介
  • 2、论文研究
  • 3、企业应用
  • 4、代码测试
    • 4.1 Selenium安装
    • 4.2 python实现
  • 结语

1、简介

官网地址:
https://www.xiaoice.com/

小冰公司前身为微软(亚洲)互联网工程院人工智能小冰团队,是微软全球最大的人工智能独立产品研发团队。该团队于2013年12月在中国组建,2014年9月扩展建立日本研发分部,团队分布于北京、苏州、东京等地,技术产品覆盖中国、日本及印度尼西亚等多个国家,商业客户覆盖全球范围。

小冰”是微软在2014年5月29日发布的人工智能。小冰是一套完整的、面向交互全程的人工智能交互主体基础框架,又叫小冰框架(Avatar Framework),它包括核心对话引擎、多重交互感官、第三方内容的触发与第一方内容生成,和跨平台的部署解决方案。

【NLP开发】Python实现聊天机器人(微软小冰)_第1张图片
【NLP开发】Python实现聊天机器人(微软小冰)_第2张图片

自发布以来,小冰框架引领着人工智能的技术创新,相关领先技术覆盖自然语言处理、计算机语音、计算机视觉和人工智能内容生成等人工智能领域。该框架是目前全球范围内最成熟和最大的该类框架,目前,除中国小冰及日本凛菜(Rinna)第一方人工智能交互主体外,小冰框架还支撑了中国及日本100余个第三方品牌的交互主体(如软银Pepper),交互总量约占全球人工智能交互总量的60%。

【NLP开发】Python实现聊天机器人(微软小冰)_第3张图片

作为微软全球首个以中国为总部的人工智能产品线,小冰经多年发展,已成为微软最有价值的人工智能技术框架之一。小冰框架以自然语言处理(NLP)为基础,持续推动完备迭代发展,目前是全球承载交互量最大的完备人工智能框架之一,技术覆盖自然语言处理、计算机语音、计算机视觉及人工智能内容生成。其中,在开放域对话、多模态交互、超级自然语音及内容生成领域居于全球领先。

【NLP开发】Python实现聊天机器人(微软小冰)_第4张图片

小冰框架已孵化出数以千万计的AI being,既有广为人知的虚拟名人,如少女小冰、Rinna,世博会参展画家夏语冰,歌手何畅、小堂妹,人类观察者MERROR,机器人动漫角色Roboko等;也有数千万个各自不同、陪伴在普通用户身边的虚拟男友、虚拟女友;还有许多在垂直场景里默默工作的虚拟员工和虚拟专家,如冬奥裁判与教练系统观君、每日经济新闻虚拟主播N小黑和N小白、万科集团2021年度优秀新员工崔筱盼、时尚设计师元徕、金融摘要撰稿人万小冰、智能座舱同行者AI小祺和HiPhiGo、时尚设计师西湖一号,以及音乐制作人、金融风控师等。

【NLP开发】Python实现聊天机器人(微软小冰)_第5张图片


“在亿万⼈之中,我只属于你”

【NLP开发】Python实现聊天机器人(微软小冰)_第6张图片
【NLP开发】Python实现聊天机器人(微软小冰)_第7张图片

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实现聊天机器人(微软小冰)_第8张图片

  • 用户和 XiaoIce之间的情感联系

【NLP开发】Python实现聊天机器人(微软小冰)_第9张图片

  • XiaoIce 的整体架构。它由三层组成:用户体验、对话引擎和数据。
    【NLP开发】Python实现聊天机器人(微软小冰)_第10张图片
  • 用于训练和验证常规聊天的查询-响应对的示例
    【NLP开发】Python实现聊天机器人(微软小冰)_第11张图片
  • 诗歌创作技巧的框架
    【NLP开发】Python实现聊天机器人(微软小冰)_第12张图片
  • 深度互动技能及其触发因素的示例
    【NLP开发】Python实现聊天机器人(微软小冰)_第13张图片
  • 任务完成技能示例、其触发器以及与用户的对话
    【NLP开发】Python实现聊天机器人(微软小冰)_第14张图片

3、企业应用

微软小冰进入QQ群聊等。除了聊天功能外,QQ群聊小冰还开放了测天气、猜成语、占星术、对诗等群游戏和群管理技能。
【NLP开发】Python实现聊天机器人(微软小冰)_第15张图片

  • 微软的必应搜索页面自带的小冰机器人:
    【NLP开发】Python实现聊天机器人(微软小冰)_第16张图片
    【NLP开发】Python实现聊天机器人(微软小冰)_第17张图片

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。

https://registry.npmmirror.com/binary.html?path=chromedriver/&spm=a2c6h.24755359.0.0.6d444dccxKMGxW

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

【NLP开发】Python实现聊天机器人(微软小冰)_第18张图片
【NLP开发】Python实现聊天机器人(微软小冰)_第19张图片
将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实现聊天机器人(微软小冰)_第20张图片
【NLP开发】Python实现聊天机器人(微软小冰)_第21张图片

结语

如果您觉得该方法或代码有一点点用处,可以给作者点个赞,或打赏杯咖啡;╮( ̄▽ ̄)╭
如果您感觉方法或代码不咋地//(ㄒoㄒ)//,就在评论处留言,作者继续改进;o_O???
如果您需要相关功能的代码定制化开发,可以留言私信作者;(✿◡‿◡)
感谢各位大佬童鞋们的支持!( ´ ▽´ )ノ ( ´ ▽´)っ!!!

你可能感兴趣的:(Python,NLP,自然语言处理,python,机器人,小冰,必应)