天天看点

【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???