全文共2807字,预计学习时长9分钟

图源:pexels

前段时间上映的日剧《轮到你了》在网络掀起了不少热议,高起低落、烂尾嫌疑令人感到一丝遗憾,但也难以掩盖其剧情的精彩。这部片子融合了很多“接地气”的现代元素,“垃圾分类”、“人工智能”、“偷渡非法居民”等,反映了很多社会热点话题。

其中,最让小芯感兴趣的便是男二为男主做的“AI菜奈”——一个人工智能“聊天机器人”。它的“机智程度”不亚于真人,甚至有网友评论最终破案的其实是“AI菜奈”APP。

“AI菜奈”

这么神奇的聊天机器人,是怎么构建出来的呢?

今天就和小芯一起来深入了解一下吧~

图源:Unsplash

什么是聊天机器人?

聊天机器人,顾名思义,是一个可以同你聊天的机器。

构建聊天机器人的秘诀是使之越来越像人。从“美国运通客户支持”到“Google Pixel呼叫筛选软件”,我们生活中的聊天机器人形态各异,越来越丰富多彩。

聊天机器人实际上是怎样工作呢?

早期版本的聊天机器人运用一种名为模式匹配(pattern matching)的机器学习技术,比今天使用的高级自然语言处理技术要简单的多。

什么是模式匹配?

要理解这一点,想象你会询问一个书商什么问题?比如:“XX书多少钱?”或者“你们有xx作者的什么书?”每个用斜体印刷的问题都是一个模板的例子,用于匹配出现在未来的相似问题。

模式匹配需要许多提前生产出来的模板。基于这些提前生产出来的模板,聊天机器人可以简单轻松地挑选出最佳匹配顾客咨询的模板,并由此给予顾客答案。

你们认为下述的聊天是如何被创建的?

简单地说,问题“May I know the price for”被转化为模板The price of<star/>。模板就像一把钥匙,将储存所有未来的答案。所以我们得到如下的内容

--iPhoneX的价格是1500美元。

--KindlePaperwhite 的价格是100美元。

在AIML(人工智能建模语言)中,编码如下:

#PATTERN MATCHING<category>   <pattern>MAY I KNOW THE PRICEFOR *</pattern>     <template>      <srai>THE PRICE OF<star/></srai>   </template>  </category>------------------------------------------------#PRE_STORED PATTERNS<category>   <pattern>THE PRICE OF iPhoneX?</pattern>   <template>iPhone X Costs$1500.</template></category><category>   <pattern>THE PRICE OF KindlePaperwhite?</pattern>   <template>The all-new kindlepaperwhite costs $100. Yay!! You               have got an offer!! You can get itfor $85 if you apply             the coupon MyGoodBot   </template></category>

自然语言处理聊天机器人

模式匹配实施起来简单迅速,但只可以做到这一步。它需要很多预先生成的范本并且只适用于需要有限数量问题的应用程序。

图源:xkcd

进入自然语言处理环节!自然语言处理是可以理解一大堆问题的相对先进的科技组合。建立聊天机器人的自然语言处理过程可以被拆分为五个主要步骤

1)标识化(Tokenize)—词语切分是把文本切分成小部分,叫做标识符(tokens),同时丢弃掉一些字符特征,比如发音。这些标识符对于文本具有语言代表性。

标识化一个句子

2)标准化(Normalisation)-标准化通过处理文本,找出可能改变客户需求的意思的常见拼写错误。一个非常优秀的研究论文(对推文进行标准化的文章 )很好的阐述了这个观点

推文研究的语法标准化

3)识别实体(Recognising Entities)--这一步骤帮助聊天机器人确定在说些什么。比如这是一个目标,一个国家还是一串数字或者是使用者的地址。

观察如下的例子:Google,IBM 以及微软如何聚集成一个组织,这一步被称作为命名实体识别。

不同单词的实体。

4)依存句法分析(Dependency Parsing)--这一步把句子拆分成名词,动词,宾语,常用词组和标点。这项科技帮助机器确定句法,转而告诉它使用者想表述的意思。

斯坦福 — 依存句法分析示例

5)生成(Generation)--最后一步是如何生成回复。上述步骤通过NLU(自然语言识别器)得以实现,这些步骤帮助机器人理解被写下的句子。然而产出这一步骤通过NLG(自然语言生成器)实现。这一步接收先前NLU步骤的输出并且生成大量同样含义的句子。生成的句子在以下方面大体相似

  • 文字的序列—“thekitchen light”与“the light in the kitchen”相近

  • 单复数—“the kitchen light”与“the kitchen lights”相近

  • 问题—“close the door”与“do you mind closing the door?”相近

  • 否定—“turn on theTv at 19:00”和“don’turn on the tv at 19:00”相近

  • 礼仪--“turn on the tv” 与 “could you please be so kind as to turn on the tv?”相近

基于用户问题的语境,机器人使用上述选项之一进行回复,使得用户满意地返回。在很多案列中,用户很难区别开机器和人类。

自从1995年发明AIML,聊天机器人稳健发展,并且已经取得了很大进步。甚至在2016年一个用户平均消耗大于20分钟在聊天软件上进行互动。其中,Kakao、Whatsapp 以及Line是最受人欢迎的聊天软件。

Similarweb

世界上的企业都正期望通过使用这些机器人消减客户服务的成本,并提供24小时的客户服务。

到2020年,80%的企业需要聊天机器人。

聊天机器人背后的技术——相当标准化的自然语言处理还有很长的路要走,但是即使在当下,自然语言处理在聊天机器人领域仍前景可观。

期待着人手一个专属聊天机器人时代的到来。(也不知是福是祸)

图源:pexels

推荐阅读专题

留言 点赞 发个朋友圈

我们一起分享AI学习与发展的干货

编译组:龚雪、贺宇

相关链接:

https://towardsdatascience.com/how-to-build-a-chatbot-a-lesson-in-nlp-d0df588afa4b

如需转载,请后台留言,遵守转载规范

推荐文章阅读

ACL2018论文集50篇解读

EMNLP2017论文集28篇论文解读

2018年AI三大顶会中国学术成果全链接

ACL2017 论文集:34篇解读干货全在这里

10篇AAAI2017经典论文回顾

长按识别二维码可添加关注

读芯君爱你

构建属于自己的“聊天机器人”——NLP系列相关推荐

  1. msbuild构建步骤_如何按照以下步骤构建最终的AI聊天机器人

    msbuild构建步骤 by Paul Pinard 保罗·皮纳德(Paul Pinard) 如何按照以下步骤构建最终的AI聊天机器人 (How to build the ultimate AI ch ...

  2. 构建你自己的聊天机器人 Why You Should Build Your Own Chatbot?

    作者:禅与计算机程序设计艺术 1.简介 2020年,人工智能火爆的时代正酝酿着一个全新的阶段--人机协作,使得人的思维方式逐渐从单一的输出行为转变为高度个性化.多样化的输入反馈模式,人机交互不断升级, ...

  3. python 机器人聊天_使用python构建您的第一个聊天机器人并将其集成到电报中

    python 机器人聊天 Did you know? 你知道吗? "Chatbots can cut operational costs by up to 30%. eCommerce ch ...

  4. 【NLP】创建强大聊天机器人的初学者指南

    作者 | Louis Teo 编译 | VK 来源 | Towards Data Science 你是否面临着太多来自客户的标准要求和问题,并且难以应对?你是否在寻找一种既不增加成本又扩大客户服务的方 ...

  5. python构建聊天机器人之录制声音保存为音频文件(利用pyaudio进行录音)

    最近心血来潮想利用 python构建一个智能语音聊天机器人,这样就能在我们无聊的时候和我们聊天以此打发时间啦:). 要想最终实现聊天机器人的构建需要经过一系列过程功能的实现,大致思路为程序接受用户的语 ...

  6. 如何使用 ChatGPT API 构建您自己的 AI 聊天机器人:分步教程

    在一个突破性的公告中,OpenAI 最近向开发人员和公众介绍了ChatGPT API.特别是,为ChatGPT Plus 提供支持的新"gpt-3.5-turbo"型号已经以便宜 ...

  7. 使用dialogflow和firebase构建whatsapp聊天机器人的指南

    ChatBots are conversational agents, programs capable of conducting a conversation with an Internet u ...

  8. 独家 | 聊天机器人开发中的机器学习(附链接)

    作者:Omkar Prabhune 翻译:方星轩校对:王雨桐本文约2800字,建议阅读5分钟 本文作者从聊天机器人的种类.用途以及架构等角度介绍目前的聊天机器人技术,并在文末分享了一些聊天机器人行业的 ...

  9. 用深度学习构造聊天机器人简介

    聊天机器人(也可以称为语音助手.聊天助手.对话机器人等)是目前非常热的一个人工智能研发与产品方向.很多大的互联网公司重金投入研发相关技术,并陆续推出了相关产品,比如苹果 Siri .微软 Cortan ...

最新文章

  1. Window7系统 中常见的进程命令分析?
  2. maven项目里面程序不能正确读取resources目录配置文件
  3. 自定义语言的实现——解释器模式
  4. 项目参与度较低怎么办?
  5. SpringCloud 微服务网关Gateway 动态路由配置
  6. 大数据---数据分析师的完整流程与知识结构体系
  7. 考研分享:三战南大,考研的路上你从不孤独(内附500G最新考研资料分享)
  8. 服务器系统read,虚拟磁盘服务器系统的开发与实现-Read.PDF
  9. xilinx sdk查看结构体定义open declaration
  10. conda 安装本地包_export包本地安装以及R包被CRAN移除后如何继续安装
  11. 实验五:py求函数驻点极大小值凹凸区间拐点
  12. python携程怎么做数据同步_利用python yielding创建协程将异步编程同步化
  13. 着色Shading(2)(着色的继续、管线和纹理映射)(笔记)
  14. 新技术加速隐私暴露,如何应对?
  15. Java的SSL连接
  16. 《Excel 职场手册:260招菜鸟变达人》一第 4 招 身份证号码、银行卡号等超过15位数据的录入技巧...
  17. 企业如何才能打造出一个高端大气上档次的公司品牌(官网)网站?
  18. Perl-字符串与排序2
  19. waf怎么读_技术分享:杂谈如何绕过WAF(Web应用防火墙)
  20. TD-SCDMA系统中随机接入过程分析

热门文章

  1. Android 开发中调用google语音接口
  2. 计算机毕业设计springboot小组学习系统
  3. 小微企业信用评级方法
  4. 单片机编程软件很简单(二),keil单片机编程软件心得秘笈
  5. STM32WB55无限固件库升级文档说明和脚本文件升级程序免输入命令
  6. ubuntu16.04安装skype
  7. 精准营销的IT应用和价值
  8. 手把手带你实现西瓜视频的责任链埋点框架
  9. P1265 公路修建
  10. android转flutter成型来读一读